From 340e2b1a4c74f653454348914c408420d5d3c28a Mon Sep 17 00:00:00 2001 From: Planet-Lab Support Date: Thu, 6 Oct 2005 18:53:18 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create branch 'planetlab-3_2-branch'. --- .cvsignore | 14 + Documentation/BK-usage/00-INDEX | 51 - Documentation/BK-usage/bk-kernel-howto.txt | 283 - Documentation/BK-usage/bk-make-sum | 34 - Documentation/BK-usage/bksend | 36 - Documentation/BK-usage/bz64wrap | 41 - Documentation/BK-usage/cpcset | 36 - Documentation/BK-usage/cset-to-linus | 49 - Documentation/BK-usage/csets-to-patches | 44 - Documentation/BK-usage/gcapatch | 8 - Documentation/BK-usage/unbz64wrap | 25 - Documentation/COPYING.modules | 708 + Documentation/DocBook/mousedrivers.tmpl | 1022 - Documentation/DocBook/tulip-user.tmpl | 325 - Documentation/DocBook/via-audio.tmpl | 595 - Documentation/README.moxa | 18 - Documentation/arm/SA1100/PCMCIA | 374 - Documentation/arm/XScale/ADIFCC/80200EVB | 110 - Documentation/arm/XScale/IOP3XX/IQ80310 | 247 - Documentation/arm/XScale/IOP3XX/IQ80321 | 215 - Documentation/arm/XScale/IOP3XX/aau.txt | 178 - Documentation/arm/XScale/IOP3XX/dma.txt | 214 - Documentation/arm/XScale/IOP3XX/message.txt | 110 - Documentation/arm/XScale/IOP3XX/pmon.txt | 71 - Documentation/arm/XScale/cache-lock.txt | 123 - Documentation/arm/XScale/pmu.txt | 168 - Documentation/arm/XScale/tlb-lock.txt | 64 - Documentation/as-iosched.txt | 165 - Documentation/cdrom/mcd | 4 - Documentation/devices.txt | 1 + Documentation/digiboard.txt | 272 - Documentation/dvb/firmware.txt | 120 - Documentation/filesystems/umsdos.txt | 100 - Documentation/i2c/i2c-old-porting | 626 - Documentation/i2c/i2c-parport | 156 - Documentation/i2c/i2c-pport | 45 - Documentation/i2c/i2c-velleman | 23 - Documentation/input/appletouch.txt | 84 + Documentation/isdn/README.eicon | 118 - Documentation/kdump.txt | 105 + Documentation/mkdev.cciss | 40 - Documentation/mkdev.ida | 40 - Documentation/networking/README.ipw2100 | 179 + Documentation/networking/README.ipw2200 | 194 + Documentation/networking/ethertap.txt | 268 - Documentation/scsi/ChangeLog | 2023 - Documentation/scsi/qla2xxx.revision.notes | 457 - Documentation/sound/oss/ChangeLog.awe | 230 - Documentation/sound/oss/ChangeLog.multisound | 213 - Documentation/sysrq.txt | 8 + Documentation/usb/philips.txt | 236 - Documentation/usb/silverlink.txt | 78 - Documentation/vserver/debug.txt | 106 + MAINTAINERS | 19 + Makefile | 8 +- arch/alpha/Kconfig | 2 + arch/alpha/kernel/entry.S | 21 +- arch/alpha/kernel/ptrace.c | 2 + arch/alpha/kernel/systbls.S | 10 +- arch/alpha/lib/io.c | 594 - arch/alpha/mm/init.c | 1 + arch/arm/Kconfig | 2 + arch/arm/boot/compressed/head-ftvpci.S | 47 - arch/arm/boot/compressed/hw-bse.c | 74 - arch/arm/common/platform.c | 35 - arch/arm/common/plx90x0.c | 178 - arch/arm/configs/a5k_defconfig | 522 - arch/arm/configs/adi_evb_defconfig | 678 - arch/arm/configs/adsbitsy_defconfig | 661 - arch/arm/configs/brutus_defconfig | 296 - arch/arm/configs/empeg_defconfig | 264 - arch/arm/configs/flexanet_defconfig | 895 - arch/arm/configs/freebird_defconfig | 614 - arch/arm/configs/freebird_new_defconfig | 634 - arch/arm/configs/graphicsclient_defconfig | 729 - arch/arm/configs/graphicsmaster_defconfig | 742 - arch/arm/configs/huw_webpanel_defconfig | 434 - arch/arm/configs/iq80310_defconfig | 768 - arch/arm/configs/pangolin_defconfig | 739 - arch/arm/configs/pfs168_mqtft_defconfig | 778 - arch/arm/configs/pfs168_mqvga_defconfig | 778 - arch/arm/configs/pfs168_sastn_defconfig | 770 - arch/arm/configs/pfs168_satft_defconfig | 778 - arch/arm/configs/sherman_defconfig | 215 - arch/arm/configs/stork_defconfig | 961 - arch/arm/configs/system3_defconfig | 962 - arch/arm/configs/trizeps_defconfig | 843 - arch/arm/defconfig | 510 - arch/arm/kernel/calls.S | 1 + arch/arm/kernel/ptrace.c | 2 + arch/arm/kernel/time-acorn.c | 66 - arch/arm/lib/io-readsl-armv3.S | 78 - arch/arm/lib/io-readsl-armv4.S | 132 - arch/arm/mach-adifcc/Makefile | 11 - arch/arm/mach-adifcc/arch.c | 32 - arch/arm/mach-adifcc/irq.c | 61 - arch/arm/mach-adifcc/mm.c | 23 - arch/arm/mach-footbridge/arch.c | 149 - arch/arm/mach-footbridge/irq.c | 111 - arch/arm/mach-footbridge/mm.c | 103 - arch/arm/mach-ftvpci/Makefile | 13 - arch/arm/mach-ftvpci/core.c | 96 - arch/arm/mach-ftvpci/leds.c | 36 - arch/arm/mach-ftvpci/pci.c | 60 - arch/arm/mach-iop3xx/arch.c | 50 - arch/arm/mach-iop3xx/iop310-irq.c | 111 - arch/arm/mach-iop3xx/iop310-pci.c | 434 - arch/arm/mach-iop3xx/iop321-mm.c | 43 - arch/arm/mach-iop3xx/iop331-mm.c | 43 - arch/arm/mach-iop3xx/iq80310-irq.c | 139 - arch/arm/mach-iop3xx/iq80310-pci.c | 164 - arch/arm/mach-iop3xx/iq80310-time.c | 124 - arch/arm/mach-iop3xx/mm-321.c | 63 - arch/arm/mach-iop3xx/mm.c | 69 - arch/arm/mach-iop3xx/xs80200-irq.c | 63 - arch/arm/mach-ixp4xx/prpmc1100-pci.c | 120 - arch/arm/mach-ixp4xx/prpmc1100-setup.c | 98 - arch/arm/mach-lh7a40x/fiq.S | 39 - arch/arm/mach-lh7a40x/ide-lpd7a40x.c | 166 - arch/arm/mach-omap/bus.c | 246 - arch/arm/mach-omap/clocks.c | 705 - arch/arm/mach-omap/innovator1510.c | 99 - arch/arm/mach-omap/innovator1610.c | 91 - arch/arm/mach-omap/irq.h | 172 - arch/arm/mach-omap/leds-perseus2.c | 102 - arch/arm/mach-omap/omap-generic.c | 77 - arch/arm/mach-omap/omap-perseus2.c | 116 - arch/arm/mach-sa1100/adsbitsy.c | 151 - arch/arm/mach-sa1100/brutus.c | 41 - arch/arm/mach-sa1100/empeg.c | 39 - arch/arm/mach-sa1100/flexanet.c | 188 - arch/arm/mach-sa1100/freebird.c | 81 - arch/arm/mach-sa1100/graphicsclient.c | 202 - arch/arm/mach-sa1100/graphicsmaster.c | 291 - arch/arm/mach-sa1100/huw_webpanel.c | 85 - arch/arm/mach-sa1100/itsy.c | 41 - arch/arm/mach-sa1100/leds-adsbitsy.c | 96 - arch/arm/mach-sa1100/leds-brutus.c | 111 - arch/arm/mach-sa1100/leds-flexanet.c | 129 - arch/arm/mach-sa1100/leds-graphicsclient.c | 104 - arch/arm/mach-sa1100/leds-graphicsmaster.c | 104 - arch/arm/mach-sa1100/leds-pfs168.c | 99 - arch/arm/mach-sa1100/leds-system3.c | 48 - arch/arm/mach-sa1100/nanoengine.c | 53 - arch/arm/mach-sa1100/omnimeter.c | 63 - arch/arm/mach-sa1100/pangolin.c | 44 - arch/arm/mach-sa1100/pfs168.c | 116 - arch/arm/mach-sa1100/sherman.c | 31 - arch/arm/mach-sa1100/stork.c | 348 - arch/arm/mach-sa1100/system3.c | 474 - arch/arm/mach-sa1100/trizeps.c | 232 - arch/arm/mach-sa1100/xp860.c | 93 - arch/arm/mach-sa1100/yopy.c | 95 - arch/arm/mach-tbox/Makefile | 11 - arch/arm/mach-tbox/core.c | 73 - arch/arm/mm/copypage-v4mc.S | 80 - arch/arm/mm/copypage-xscale.S | 113 - arch/arm/mm/minicache.c | 73 - arch/arm26/Kconfig | 2 + arch/arm26/boot/compressed/ofw-shark.c | 258 - arch/arm26/kernel/calls.S | 5 + arch/arm26/kernel/ptrace.c | 2 + arch/arm26/kernel/time-acorn.c | 69 - arch/arm26/lib/io-readsl-armv3.S | 78 - arch/arm26/lib/io-readsw-armv3.S | 107 - arch/arm26/lib/io-writesw-armv3.S | 127 - arch/arm26/machine/head.S | 111 - arch/arm26/machine/oldlatches.c | 72 - arch/arm26/machine/small_page.c | 191 - arch/arm26/mm/mm-memc.c | 202 - arch/cris/Kconfig | 2 + arch/cris/arch-v10/drivers/ethernet.c | 1789 - arch/cris/arch-v10/drivers/ide.c | 945 - arch/cris/arch-v10/drivers/serial.c | 5042 --- arch/cris/arch-v10/drivers/serial.h | 137 - arch/cris/kernel/hexify.c | 31 - arch/cris/kernel/ksyms.c | 96 - arch/h8300/Kconfig | 2 + arch/h8300/kernel/ints.c | 2 +- arch/h8300/kernel/ptrace.c | 2 + arch/h8300/platform/h8300h/aki3068net/ram.ld | 11 - arch/h8300/platform/h8300h/generic/ram.ld | 11 - arch/h8300/platform/h8300h/generic/rom.ld | 12 - arch/h8300/platform/h8300h/h8max/ram.ld | 11 - arch/h8300/platform/h8s/edosk2674/ram.ld | 10 - arch/h8300/platform/h8s/edosk2674/rom.ld | 11 - arch/h8300/platform/h8s/generic/ram.ld | 8 - arch/h8300/platform/h8s/generic/rom.ld | 11 - arch/h8300/platform/h8s/ints.c | 2 +- arch/i386/Kconfig | 98 + arch/i386/Kconfig.debug | 67 +- arch/i386/Makefile | 10 +- arch/i386/boot/.cvsignore | 4 + arch/i386/boot/compressed/.cvsignore | 3 + arch/i386/boot/compressed/head.S | 6 +- arch/i386/boot/compressed/misc.c | 10 +- arch/i386/boot/tools/.cvsignore | 1 + arch/i386/boot/video.S | 4 + arch/i386/boot98/Makefile | 102 - arch/i386/boot98/bootsect.S | 397 - arch/i386/boot98/compressed/Makefile | 25 - arch/i386/boot98/compressed/head.S | 128 - arch/i386/boot98/compressed/misc.c | 379 - arch/i386/boot98/compressed/vmlinux.scr | 9 - arch/i386/boot98/install.sh | 40 - arch/i386/boot98/mtools.conf.in | 17 - arch/i386/boot98/setup.S | 876 - arch/i386/boot98/tools/build.c | 185 - arch/i386/boot98/video.S | 262 - arch/i386/defconfig | 2 +- arch/i386/kernel/.cvsignore | 4 + arch/i386/kernel/Makefile | 9 +- arch/i386/kernel/apic.c | 30 + arch/i386/kernel/asm-offsets.c | 2 +- arch/i386/kernel/cpu/common.c | 6 + arch/i386/kernel/cpu/cpufreq/acpi.c | 518 - arch/i386/kernel/cpu/proc.c | 4 +- arch/i386/kernel/crash_dump.c | 105 + arch/i386/kernel/dstack.S | 63 + arch/i386/kernel/dstackdump.c | 41 + arch/i386/kernel/entry.S | 8 +- arch/i386/kernel/i386_ksyms.c | 6 + arch/i386/kernel/i8259.c | 12 + arch/i386/kernel/irq.c | 13 +- arch/i386/kernel/machine_kexec.c | 233 + arch/i386/kernel/nmi.c | 3 +- arch/i386/kernel/process.c | 61 + arch/i386/kernel/ptrace.c | 2 + arch/i386/kernel/reboot.c | 82 +- arch/i386/kernel/relocate_kernel.S | 118 + arch/i386/kernel/setup.c | 10 + arch/i386/kernel/signal.c | 4 +- arch/i386/kernel/smp.c | 58 +- arch/i386/kernel/smpboot.c | 4 +- arch/i386/kernel/stackoverflow.c | 40 + arch/i386/kernel/std_resources.c | 204 - arch/i386/kernel/sys_i386.c | 15 +- arch/i386/kernel/syscall_table.S | 12 +- arch/i386/kernel/sysenter.c | 74 +- arch/i386/kernel/traps.c | 106 +- arch/i386/kernel/vmlinux.lds.S | 59 +- arch/i386/kernel/vsyscall-sysenter.S | 6 +- arch/i386/kernel/vsyscall.lds | 67 - arch/i386/kernel/vsyscall.lds.S | 4 +- arch/i386/mach-es7000/es7000.c | 279 - arch/i386/mach-es7000/setup.c | 106 - arch/i386/mach-es7000/topology.c | 64 - arch/i386/mach-pc9800/Makefile | 5 - arch/i386/mach-pc9800/setup.c | 117 - arch/i386/mach-pc9800/std_resources.c | 195 - arch/i386/mach-pc9800/topology.c | 44 - arch/i386/mm/discontig.c | 1 + arch/i386/mm/highmem.c | 19 +- arch/i386/mm/init.c | 74 +- arch/i386/mm/mmap.c | 6 +- arch/i386/mm/pgtable.c | 3 + arch/i386/pci/changelog | 62 - arch/i386/power/pmdisk.S | 56 - arch/ia64/Kconfig | 5 +- arch/ia64/Makefile | 4 + arch/ia64/configs/generic_defconfig | 1123 - arch/ia64/dig/topology.c | 43 - arch/ia64/ia32/binfmt_elf32.c | 13 +- arch/ia64/ia32/ia32_entry.S | 2 +- arch/ia64/kernel/entry.S | 10 +- arch/ia64/kernel/ia64_ksyms.c | 6 + arch/ia64/kernel/perfmon.c | 4 +- arch/ia64/kernel/perfmon_hpsim.h | 75 - arch/ia64/kernel/process.c | 30 +- arch/ia64/kernel/ptrace.c | 3 + arch/ia64/kernel/smp.c | 54 +- arch/ia64/kernel/traps.c | 6 + arch/ia64/mm/contig.c | 3 + arch/ia64/mm/discontig.c | 3 + arch/ia64/mm/fault.c | 12 +- arch/ia64/mm/init.c | 89 + arch/ia64/sn/fakeprom/Makefile | 29 - arch/ia64/sn/fakeprom/README | 93 - arch/ia64/sn/fakeprom/fpmem.c | 252 - arch/ia64/sn/fakeprom/fpmem.h | 76 - arch/ia64/sn/fakeprom/fprom.lds | 103 - arch/ia64/sn/fakeprom/fpromasm.S | 395 - arch/ia64/sn/fakeprom/fw-emu.c | 775 - arch/ia64/sn/fakeprom/klgraph_init.c | 205 - arch/ia64/sn/fakeprom/main.c | 109 - arch/ia64/sn/fakeprom/make_textsym | 174 - arch/ia64/sn/fakeprom/runsim | 387 - .../sn/include/pci/pcibus_provider_defs.h | 43 - arch/ia64/sn/include/pci/pcidev.h | 54 - arch/ia64/sn/include/shub.h | 39 - arch/ia64/sn/include/shubio.h | 3476 -- arch/ia64/sn/io/Makefile | 13 - arch/ia64/sn/io/cdl.c | 79 - arch/ia64/sn/io/drivers/Makefile | 10 - arch/ia64/sn/io/drivers/ioconfig_bus.c | 382 - arch/ia64/sn/io/hwgfs/Makefile | 10 - arch/ia64/sn/io/hwgfs/hcl.c | 702 - arch/ia64/sn/io/hwgfs/hcl_util.c | 175 - arch/ia64/sn/io/hwgfs/interface.c | 325 - arch/ia64/sn/io/hwgfs/labelcl.c | 656 - arch/ia64/sn/io/hwgfs/ramfs.c | 208 - arch/ia64/sn/io/io.c | 739 - arch/ia64/sn/io/machvec/Makefile | 10 - arch/ia64/sn/io/machvec/iomv.c | 76 - arch/ia64/sn/io/machvec/pci.c | 52 - arch/ia64/sn/io/machvec/pci_bus_cvlink.c | 922 - arch/ia64/sn/io/machvec/pci_dma.c | 677 - arch/ia64/sn/io/platform_init/Makefile | 10 - arch/ia64/sn/io/platform_init/sgi_io_init.c | 174 - arch/ia64/sn/io/sn2/Makefile | 14 - arch/ia64/sn/io/sn2/bte_error.c | 217 - arch/ia64/sn/io/sn2/geo_op.c | 311 - arch/ia64/sn/io/sn2/klconflib.c | 572 - arch/ia64/sn/io/sn2/klgraph.c | 577 - arch/ia64/sn/io/sn2/l1_command.c | 131 - arch/ia64/sn/io/sn2/ml_SN_init.c | 109 - arch/ia64/sn/io/sn2/ml_SN_intr.c | 320 - arch/ia64/sn/io/sn2/ml_iograph.c | 770 - arch/ia64/sn/io/sn2/module.c | 236 - arch/ia64/sn/io/sn2/pcibr/Makefile | 16 - arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c | 178 - arch/ia64/sn/io/sn2/pcibr/pcibr_config.c | 195 - arch/ia64/sn/io/sn2/pcibr/pcibr_dvr.c | 2662 -- arch/ia64/sn/io/sn2/pcibr/pcibr_error.c | 1873 - arch/ia64/sn/io/sn2/pcibr/pcibr_hints.c | 175 - arch/ia64/sn/io/sn2/pcibr/pcibr_intr.c | 700 - arch/ia64/sn/io/sn2/pcibr/pcibr_reg.c | 879 - arch/ia64/sn/io/sn2/pcibr/pcibr_rrb.c | 887 - arch/ia64/sn/io/sn2/pcibr/pcibr_slot.c | 1842 - arch/ia64/sn/io/sn2/pciio.c | 1004 - arch/ia64/sn/io/sn2/pic.c | 835 - arch/ia64/sn/io/sn2/shub.c | 246 - arch/ia64/sn/io/sn2/shub_intr.c | 259 - arch/ia64/sn/io/sn2/shuberror.c | 822 - arch/ia64/sn/io/sn2/shubio.c | 490 - arch/ia64/sn/io/sn2/xbow.c | 1020 - arch/ia64/sn/io/sn2/xtalk.c | 927 - arch/ia64/sn/io/snia_if.c | 108 - arch/ia64/sn/io/xswitch.c | 168 - arch/m68k/Kconfig | 2 + arch/m68k/apollo/dn_debug.c | 22 - arch/m68k/kernel/ptrace.c | 2 + arch/m68k/sun3x/sun3x_ksyms.c | 13 - arch/m68knommu/Kconfig | 2 + arch/m68knommu/kernel/ptrace.c | 2 + .../platform/5206/ARNEWSH/crt0_ram.S | 213 - .../platform/5206e/MOTOROLA/crt0_ram.S | 178 - .../m68knommu/platform/5206e/eLITE/crt0_ram.S | 346 - .../platform/5249/MOTOROLA/crt0_ram.S | 230 - .../m68knommu/platform/5272/CANCam/crt0_ram.S | 154 - .../platform/5272/MOTOROLA/crt0_ram.S | 165 - .../m68knommu/platform/5272/NETtel/crt0_ram.S | 196 - .../m68knommu/platform/5272/SCALES/crt0_ram.S | 154 - .../m68knommu/platform/5272/senTec/crt0_ram.S | 159 - .../platform/527x/M5271EVB/crt0_ram.S | 166 - .../platform/527x/M5275EVB/crt0_ram.S | 166 - .../platform/5282/MOTOROLA/crt0_ram.S | 171 - arch/m68knommu/platform/5282/Makefile | 21 - arch/m68knommu/platform/5282/config.c | 82 - arch/m68knommu/platform/5282/pit.c | 87 - .../m68knommu/platform/5282/senTec/crt0_ram.S | 180 - .../platform/528x/M5282EVB/crt0_ram.S | 171 - .../m68knommu/platform/528x/senTec/crt0_ram.S | 180 - .../platform/5307/ARNEWSH/crt0_ram.S | 167 - .../platform/5307/CLEOPATRA/crt0_ram.S | 183 - .../platform/5307/MOTOROLA/crt0_ram.S | 167 - arch/m68knommu/platform/5307/MP3/crt0_ram.S | 181 - .../m68knommu/platform/5307/NETtel/crt0_ram.S | 204 - .../platform/5407/CLEOPATRA/crt0_ram.S | 180 - .../platform/5407/MOTOROLA/crt0_ram.S | 160 - .../m68knommu/platform/68328/pilot/crt0_rom.S | 224 - .../platform/68360/uCquicc/crt0_ram.S | 408 - .../platform/68360/uCquicc/crt0_rom.S | 420 - .../platform/68EZ328/ucsimm/crt0_fixed.S | 109 - .../platform/68EZ328/ucsimm/crt0_himem.S | 1 - .../platform/68EZ328/ucsimm/crt0_ram.S | 167 - .../platform/68EZ328/ucsimm/crt0_rom.S | 1 - arch/m68knommu/platform/68VZ328/de2/Makefile | 12 - .../m68knommu/platform/68VZ328/de2/crt0_ram.S | 135 - .../platform/68VZ328/ucdimm/Makefile | 12 - .../platform/68VZ328/ucdimm/crt0_fixed.S | 109 - .../platform/68VZ328/ucdimm/crt0_himem.S | 1 - .../platform/68VZ328/ucdimm/crt0_ram.S | 171 - .../platform/68VZ328/ucdimm/crt0_rom.S | 1 - arch/mips/Kconfig | 2 + arch/mips/baget/Makefile | 53 - arch/mips/baget/baget.c | 96 - arch/mips/baget/bagetIRQ.S | 96 - arch/mips/baget/balo.c | 190 - arch/mips/baget/balo_supp.S | 142 - arch/mips/baget/irq.c | 407 - arch/mips/baget/ld.script.balo | 125 - arch/mips/baget/print.c | 116 - arch/mips/baget/prom/Makefile | 5 - arch/mips/baget/prom/init.c | 32 - arch/mips/baget/reset.c | 32 - arch/mips/baget/setup.c | 489 - arch/mips/baget/time.c | 105 - arch/mips/configs/bosporus_defconfig | 671 - arch/mips/configs/eagle_defconfig | 749 - arch/mips/configs/mirage_defconfig | 671 - arch/mips/configs/mtx1_defconfig | 671 - arch/mips/configs/pb1000_defconfig | 671 - arch/mips/configs/xxs1500_defconfig | 671 - arch/mips/ddb5xxx/common/irq.c | 47 - arch/mips/hp-lj/Makefile | 26 - arch/mips/hp-lj/asic.c | 28 - arch/mips/hp-lj/gdb_hook.c | 99 - arch/mips/hp-lj/init.c | 50 - arch/mips/hp-lj/int-handler.S | 70 - arch/mips/hp-lj/irq.c | 37 - arch/mips/hp-lj/setup.c | 150 - arch/mips/hp-lj/utils.c | 69 - arch/mips/hp-lj/utils.h | 19 - arch/mips/kernel/irix5sys.h | 1029 - arch/mips/kernel/linux32.c | 2 +- arch/mips/kernel/ptrace.c | 2 + arch/mips/kernel/reg.c | 69 - arch/mips/kernel/scall32-o32.S | 2 +- arch/mips/kernel/scall64-64.S | 2 +- arch/mips/kernel/scall64-n32.S | 2 +- arch/mips/kernel/scall64-o32.S | 2 +- arch/mips/kernel/syscall.c | 21 +- arch/mips/kernel/sysirix.c | 4 +- arch/mips/mm-32/Makefile | 19 - arch/mips/mm-32/tlbex-r4k.S | 524 - arch/mips/mm-64/Makefile | 25 - arch/mips/mm-64/tlb-dbg-r4k.c | 71 - arch/mips/mm-64/tlb-glue-r4k.S | 41 - arch/mips/mm-64/tlb-glue-sb1.S | 66 - arch/mips/mm-64/tlbex-r4k.S | 203 - arch/mips/mm/tlb64-glue-r4k.S | 41 - arch/mips/mm/tlb64-glue-sb1.S | 66 - arch/mips/mm/tlbex-r3k.S | 224 - arch/mips/mm/tlbex32-mips32.S | 253 - arch/mips/mm/tlbex32-r3k.S | 194 - arch/mips/mm/tlbex32-r4k.S | 262 - arch/mips/mm/tlbex64-r4k.S | 203 - arch/mips/momentum/ocelot_c/pci-irq.c | 72 - arch/mips/momentum/ocelot_g/gt64240.h | 1238 - arch/mips/momentum/ocelot_g/gt64240_dep.h | 57 - arch/mips/momentum/ocelot_g/pci-irq.c | 73 - arch/mips/pci/fixup-eagle.c | 60 - arch/mips/pci/fixup-lasat.c | 6 - arch/mips/pci/fixup-mv64340.c | 42 - arch/mips/pci/fixup-tb0229.c | 64 - arch/mips/pci/fixup-victor-mpc30x.c | 48 - arch/mips/pci/ops-mv64340.c | 145 - arch/mips/pci/ops-vrc4173.c | 120 - arch/mips/pci/pci-hplj.c | 204 - arch/mips/ramdisk/Makefile | 20 - arch/mips/ramdisk/ld.script | 9 - arch/mips/vr41xx/common/ksyms.c | 33 - arch/mips/vr41xx/common/rtc.c | 321 - arch/mips/vr41xx/common/serial.c | 178 - arch/mips/vr41xx/common/vrc4171.c | 106 - arch/mips/vr41xx/nec-eagle/Makefile | 10 - arch/mips/vr41xx/nec-eagle/irq.c | 190 - arch/mips/vr41xx/nec-eagle/setup.c | 97 - arch/mips/vr41xx/tanbac-tb0229/reboot.c | 27 - arch/mips/vr41xx/tanbac-tb0229/tb0219.c | 44 - arch/parisc/Kconfig | 2 + arch/parisc/configs/n4000_defconfig | 927 - arch/parisc/kernel/head64.S | 327 - arch/parisc/kernel/ptrace.c | 3 + arch/parisc/kernel/sys_parisc32.c | 1 + arch/parisc/kernel/syscall_table.S | 11 + arch/ppc/8260_io/commproc.c | 179 - arch/ppc/8260_io/uart.c | 3061 -- arch/ppc/8xx_io/uart.c | 3012 -- arch/ppc/Kconfig | 39 + arch/ppc/Makefile | 1 + arch/ppc/boot/include/serial.h | 4 +- arch/ppc/boot/include/zlib.h | 430 - arch/ppc/boot/lib/zlib.c | 2169 -- arch/ppc/boot/simple/chrpmap.S | 19 - arch/ppc/boot/simple/gt64260_tty.c | 322 - arch/ppc/boot/simple/legacy.S | 19 - arch/ppc/boot/simple/misc-chestnut.S | 41 - arch/ppc/boot/simple/misc-ev64260.S | 68 - arch/ppc/boot/simple/misc-mv64x60.S | 57 - arch/ppc/boot/simple/mv64x60_stub.c | 24 - arch/ppc/defconfig | 1330 - arch/ppc/kernel/Makefile | 1 + arch/ppc/kernel/entry.S | 16 +- arch/ppc/kernel/head.S | 2 +- arch/ppc/kernel/head_e500.S | 1019 - arch/ppc/kernel/machine_kexec.c | 114 + arch/ppc/kernel/misc.S | 6 +- arch/ppc/kernel/pci-dma.c | 49 - arch/ppc/kernel/ppc_ksyms.c | 2 - arch/ppc/kernel/ptrace.c | 42 +- arch/ppc/kernel/relocate_kernel.S | 135 + arch/ppc/kernel/syscalls.c | 15 +- arch/ppc/kernel/time.c | 13 +- arch/ppc/mm/cachemap.c | 174 - arch/ppc/mm/hashtable.S | 4 +- arch/ppc/ocp/Makefile | 6 - arch/ppc/ocp/ocp-driver.c | 195 - arch/ppc/ocp/ocp-probe.c | 113 - arch/ppc/ocp/ocp.c | 109 - arch/ppc/oprofile/init.c | 23 - arch/ppc/platforms/85xx/mpc8540.c | 97 - arch/ppc/platforms/85xx/mpc8555.c | 95 - arch/ppc/platforms/85xx/mpc8560.c | 74 - arch/ppc/platforms/85xx/mpc85xx_devices.c | 552 - arch/ppc/platforms/85xx/mpc85xx_sys.c | 118 - arch/ppc/platforms/error_log.c | 183 - arch/ppc/platforms/error_log.h | 95 - arch/ppc/platforms/est8260_setup.c | 65 - arch/ppc/platforms/ev64260_setup.c | 476 - arch/ppc/platforms/lopec_pci.c | 99 - arch/ppc/platforms/lopec_serial.h | 39 - arch/ppc/platforms/lopec_setup.c | 378 - arch/ppc/platforms/mcpn765_serial.h | 64 - arch/ppc/platforms/mvme5100_pci.c | 121 - arch/ppc/platforms/mvme5100_serial.h | 54 - arch/ppc/platforms/mvme5100_setup.c | 284 - arch/ppc/platforms/pmac_sleep.S | 2 +- arch/ppc/platforms/powerpmc250_serial.h | 40 - arch/ppc/platforms/pq2ads_setup.c | 66 - arch/ppc/platforms/proc_rtas.c | 788 - arch/ppc/platforms/prpmc750_serial.h | 43 - arch/ppc/platforms/prpmc800_serial.h | 49 - arch/ppc/platforms/rpx8260.c | 65 - arch/ppc/platforms/rpxsuper.h | 72 - arch/ppc/syslib/gt64260_common.c | 1664 - arch/ppc/syslib/m8260_pci.c | 194 - arch/ppc/syslib/m8260_pci.h | 76 - arch/ppc/syslib/ppc4xx_serial.c | 171 - arch/ppc/syslib/ppc8260_pic.c | 131 - arch/ppc/syslib/ppc8260_pic.h | 13 - arch/ppc64/Kconfig | 2 + arch/ppc64/Makefile | 6 +- arch/ppc64/boot/Makefile | 3 + arch/ppc64/boot/addSystemMap.c | 248 - arch/ppc64/boot/main.c | 1 + arch/ppc64/boot/no_initrd.c | 2 - arch/ppc64/boot/start.c | 654 - arch/ppc64/kernel/chrp_setup.c | 464 - arch/ppc64/kernel/iSeries_IoMmTable.c | 169 - arch/ppc64/kernel/iSeries_IoMmTable.h | 85 - arch/ppc64/kernel/mf_proc.c | 250 - arch/ppc64/kernel/misc.S | 24 +- arch/ppc64/kernel/open_pic.c | 886 - arch/ppc64/kernel/open_pic.h | 42 - arch/ppc64/kernel/open_pic_defs.h | 283 - arch/ppc64/kernel/open_pic_u3.c | 348 - arch/ppc64/kernel/pSeries_htab.c | 408 - arch/ppc64/kernel/pci_dma_direct.c | 89 - arch/ppc64/kernel/pmac_iommu.c | 305 - arch/ppc64/kernel/process.c | 1 + arch/ppc64/kernel/ptrace.c | 2 + arch/ppc64/kernel/smp.c | 51 +- arch/ppc64/kernel/stab.c | 281 - arch/ppc64/kernel/sys_ppc32.c | 14 +- arch/ppc64/kernel/traps.c | 3 + arch/ppc64/mm/init.c | 41 + arch/ppc64/xmon/setjmp.c | 77 - arch/s390/Kconfig | 2 + arch/s390/Makefile | 5 + arch/s390/kernel/compat_exec.c | 92 - arch/s390/kernel/ptrace.c | 4 +- arch/s390/kernel/syscalls.S | 2 +- arch/s390/kernel/traps.c | 6 +- arch/s390/lib/memset.S | 30 - arch/s390/lib/memset64.S | 30 - arch/s390/lib/strcmp.S | 27 - arch/s390/lib/strcmp64.S | 27 - arch/s390/lib/strcpy.S | 20 - arch/s390/lib/strcpy64.S | 20 - arch/s390/lib/strncpy.S | 35 - arch/s390/lib/strncpy64.S | 35 - arch/s390/mm/init.c | 5 + arch/sh/Kconfig | 2 + arch/sh/boards/systemh/Makefile | 13 - arch/sh/boards/systemh/io.c | 283 - arch/sh/boards/systemh/irq.c | 111 - arch/sh/boards/systemh/setup.c | 80 - arch/sh/defconfig | 372 - arch/sh/kernel/kgdb_stub.c | 2 +- arch/sh/kernel/ptrace.c | 2 + arch/sh/tools/machgen.sh | 71 - arch/sh64/defconfig | 667 - arch/sh64/lib/old-checksum.c | 17 - arch/sparc/Kconfig | 2 + arch/sparc/Makefile | 3 + arch/sparc/kernel/ptrace.c | 4 + arch/sparc/kernel/sys_sparc.c | 5 +- arch/sparc/kernel/systbls.S | 2 +- arch/sparc64/Kconfig | 2 + arch/sparc64/Makefile | 3 + arch/sparc64/kernel/binfmt_aout32.c | 1 + arch/sparc64/kernel/ptrace.c | 4 + arch/sparc64/kernel/sys_sparc.c | 5 +- arch/sparc64/kernel/systbls.S | 4 +- arch/sparc64/lib/U3copy_in_user.S | 140 - arch/sparc64/lib/VIS.h | 128 - arch/sparc64/lib/VISbzero.S | 274 - arch/sparc64/lib/VIScopy.S | 1138 - arch/sparc64/lib/VIScsum.S | 546 - arch/sparc64/lib/VIScsumcopy.S | 897 - arch/sparc64/lib/VIScsumcopyusr.S | 916 - arch/sparc64/lib/VISmemset.S | 240 - arch/sparc64/lib/blockops.S | 451 - arch/sparc64/lib/rwlock.S | 85 - arch/sparc64/lib/rwsem.c | 239 - arch/sparc64/lib/splock.S | 35 - arch/sparc64/solaris/fs.c | 4 +- arch/um/Kconfig | 2 + arch/um/Kconfig_block | 105 - arch/um/Makefile | 2 +- arch/um/drivers/hostaudio_user.c | 149 - arch/um/drivers/slip_proto.h | 93 - arch/um/dyn.lds.S | 167 - arch/um/include/.cvsignore | 4 + arch/um/include/2_5compat.h | 24 - arch/um/include/Makefile | 7 - arch/um/include/frame.h | 53 - arch/um/include/frame_user.h | 23 - arch/um/include/hostaudio.h | 48 - arch/um/include/sysdep-i386/.cvsignore | 2 + arch/um/include/sysdep-i386/frame.h | 29 - arch/um/include/sysdep-i386/frame_kern.h | 69 - arch/um/include/sysdep-i386/frame_user.h | 91 - arch/um/include/umn.h | 27 - arch/um/kernel/.cvsignore | 3 + arch/um/kernel/checksum.c | 45 - arch/um/kernel/frame.c | 343 - arch/um/kernel/frame_kern.c | 148 - arch/um/kernel/initrd_kern.c | 59 - arch/um/kernel/initrd_user.c | 46 - arch/um/kernel/mprot.h | 6 - arch/um/kernel/physmem.c | 4 +- arch/um/kernel/process.c | 48 +- arch/um/kernel/process_kern.c | 2 + arch/um/kernel/ptrace.c | 2 + arch/um/kernel/skas/exec_user.c | 63 - arch/um/kernel/skas/include/mmu.h | 27 - arch/um/kernel/skas/include/mode.h | 37 - arch/um/kernel/skas/include/mode_kern.h | 53 - arch/um/kernel/skas/include/ptrace-skas.h | 57 - arch/um/kernel/skas/include/uaccess.h | 40 - arch/um/kernel/skas/sys-i386/Makefile | 12 - arch/um/kernel/skas/sys-i386/sigcontext.c | 114 - arch/um/kernel/skas/util/.cvsignore | 1 + arch/um/kernel/skas/util/mk_ptregs.c | 51 - arch/um/kernel/sys_call_table.c | 277 - arch/um/kernel/syscall_kern.c | 16 +- arch/um/kernel/tt/include/mmu.h | 23 - arch/um/kernel/tt/include/mode.h | 38 - arch/um/kernel/tt/include/mode_kern.h | 53 - arch/um/kernel/tt/include/ptrace-tt.h | 26 - arch/um/kernel/tt/include/uaccess.h | 71 - arch/um/kernel/tt/sys-i386/Makefile | 12 - arch/um/kernel/tt/sys-i386/sigcontext.c | 60 - arch/um/kernel/user_syms.c | 113 - arch/um/main.c | 195 - arch/um/sys-i386/extable.c | 30 - arch/um/sys-i386/util/.cvsignore | 2 + arch/um/sys-i386/util/mk_thread_kern.c | 22 - arch/um/sys-i386/util/mk_thread_user.c | 30 - arch/um/sys-x86_64/util/mk_thread_kern.c | 21 - arch/um/sys-x86_64/util/mk_thread_user.c | 30 - arch/um/uml.lds.S | 92 - arch/um/util/.cvsignore | 2 + arch/um/util/mk_constants_kern.c | 28 - arch/um/util/mk_constants_user.c | 28 - arch/um/util/mk_task_kern.c | 17 - arch/um/util/mk_task_user.c | 30 - arch/v850/Kconfig | 2 + arch/v850/kernel/ptrace.c | 2 + arch/x86_64/Kconfig | 19 + arch/x86_64/ia32/ia32_aout.c | 1 + arch/x86_64/ia32/ia32_binfmt.c | 16 +- arch/x86_64/ia32/ia32entry.S | 12 +- arch/x86_64/ia32/sys_ia32.c | 13 +- arch/x86_64/kernel/Makefile | 1 + arch/x86_64/kernel/Makefile-HEAD | 38 - arch/x86_64/kernel/apic.c | 30 + arch/x86_64/kernel/domain.c | 93 - arch/x86_64/kernel/e820.c | 2 - arch/x86_64/kernel/i8259.c | 14 + arch/x86_64/kernel/io_apic.c | 34 +- arch/x86_64/kernel/machine_kexec.c | 246 + arch/x86_64/kernel/process.c | 15 +- arch/x86_64/kernel/ptrace.c | 2 + arch/x86_64/kernel/reboot.c | 81 +- arch/x86_64/kernel/relocate_kernel.S | 141 + arch/x86_64/kernel/setup64.c | 25 +- arch/x86_64/kernel/smp.c | 50 +- arch/x86_64/kernel/sys_x86_64.c | 3 +- arch/x86_64/kernel/traps.c | 6 +- arch/x86_64/kernel/vsyscall.S | 169 - arch/x86_64/kernel/warmreboot.S | 83 - arch/x86_64/lib/old-checksum.c | 33 - arch/x86_64/mm/Makefile | 2 +- arch/x86_64/mm/fault.c | 5 +- arch/x86_64/mm/init.c | 58 +- arch/x86_64/mm/mmap.c | 95 + arch/xen/Kconfig | 194 + arch/xen/Kconfig.drivers | 57 + arch/xen/Makefile | 74 + arch/xen/boot/Makefile | 11 + arch/xen/configs/xen0_defconfig_x86_32 | 1113 + arch/xen/configs/xen0_defconfig_x86_64 | 995 + arch/xen/configs/xenU_defconfig_x86_32 | 533 + arch/xen/configs/xenU_defconfig_x86_64 | 514 + arch/xen/i386/Kconfig | 984 + arch/xen/i386/Makefile | 102 + arch/xen/i386/kernel/Makefile | 102 + arch/xen/i386/kernel/cpu/Makefile | 31 + arch/xen/i386/kernel/cpu/common.c | 648 + arch/xen/i386/kernel/cpu/mtrr/Makefile | 16 + arch/xen/i386/kernel/cpu/mtrr/main.c | 165 + arch/xen/i386/kernel/entry.S | 1077 + arch/xen/i386/kernel/head.S | 184 + arch/xen/i386/kernel/i386_ksyms.c | 195 + arch/xen/i386/kernel/ioport.c | 129 + arch/xen/i386/kernel/irq.c | 261 + arch/xen/i386/kernel/ldt.c | 264 + arch/xen/i386/kernel/microcode.c | 163 + arch/xen/i386/kernel/pci-dma.c | 211 + arch/xen/i386/kernel/process.c | 795 + arch/xen/i386/kernel/putuser.S | 87 + arch/xen/i386/kernel/setup.c | 1639 + arch/xen/i386/kernel/smp.c | 619 + arch/xen/i386/kernel/smpboot.c | 1359 + arch/xen/i386/kernel/time.c | 829 + arch/xen/i386/kernel/timers/Makefile | 17 + arch/xen/i386/kernel/timers/timer_tsc.c | 379 + arch/xen/i386/kernel/traps.c | 1012 + arch/xen/i386/kernel/vsyscall-note.S | 32 + arch/xen/i386/kernel/vsyscall.S | 15 + arch/xen/i386/mm/Makefile | 24 + arch/xen/i386/mm/fault.c | 562 + arch/xen/i386/mm/highmem.c | 100 + arch/xen/i386/mm/hypervisor.c | 223 + arch/xen/i386/mm/init.c | 803 + arch/xen/i386/mm/ioremap.c | 442 + arch/xen/i386/mm/pgtable.c | 441 + arch/xen/i386/pci/Makefile | 31 + arch/xen/i386/pci/direct.c | 81 + arch/xen/i386/pci/irq.c | 156 + arch/xen/kernel/Makefile | 18 + arch/xen/kernel/ctrl_if.c | 566 + arch/xen/kernel/devmem.c | 158 + arch/xen/kernel/evtchn.c | 590 + arch/xen/kernel/fixup.c | 83 + arch/xen/kernel/gnttab.c | 391 + arch/xen/kernel/reboot.c | 276 + arch/xen/kernel/skbuff.c | 47 + arch/xen/kernel/smp.c | 19 + arch/xen/kernel/vmlinux.lds.S | 275 + arch/xen/kernel/xen_proc.c | 18 + arch/xen/x86_64/Kconfig | 458 + arch/xen/x86_64/Makefile | 92 + arch/xen/x86_64/kernel/Makefile | 66 + arch/xen/x86_64/kernel/asm-offsets.c | 70 + arch/xen/x86_64/kernel/e820.c | 533 + arch/xen/x86_64/kernel/early_printk.c | 240 + arch/xen/x86_64/kernel/entry.S | 1181 + arch/xen/x86_64/kernel/head.S | 207 + arch/xen/x86_64/kernel/head64.c | 132 + arch/xen/x86_64/kernel/init_task.c | 49 + arch/xen/x86_64/kernel/ioport.c | 63 + arch/xen/x86_64/kernel/irq.c | 105 + arch/xen/x86_64/kernel/ldt.c | 267 + arch/xen/x86_64/kernel/pci-dma.c | 256 + arch/xen/x86_64/kernel/pci-nommu.c | 96 + arch/xen/x86_64/kernel/process.c | 713 + arch/xen/x86_64/kernel/setup.c | 1379 + arch/xen/x86_64/kernel/setup64.c | 346 + arch/xen/x86_64/kernel/signal.c | 493 + arch/xen/x86_64/kernel/smp.c | 411 + arch/xen/x86_64/kernel/smpboot.c | 958 + arch/xen/x86_64/kernel/traps.c | 974 + arch/xen/x86_64/kernel/vsyscall.c | 190 + arch/xen/x86_64/kernel/x8664_ksyms.c | 223 + arch/xen/x86_64/mm/Makefile | 26 + arch/xen/x86_64/mm/fault.c | 591 + arch/xen/x86_64/mm/hypervisor.c | 271 + arch/xen/x86_64/mm/init.c | 941 + arch/xen/x86_64/mm/ioremap.c | 466 + arch/xen/x86_64/mm/pageattr.c | 247 + arch/xen/x86_64/pci/Makefile | 41 + arch/xen/x86_64/pci/Makefile-BUS | 22 + configs/kernel-2.6.10-i686-planetlab.config | 1417 + .../kernel-2.6.10-i686-uml-planetlab.config | 537 + configs/kernel-2.6.11-i586-smp.config | 2787 ++ configs/kernel-2.6.11-i586.config | 2794 ++ configs/kernel-2.6.11-i686-smp.config | 2791 ++ configs/kernel-2.6.11-i686.config | 2796 ++ configs/kernel-2.6.12-i586.config | 2849 ++ configs/kernel-2.6.12-i686-planetlab.config | 1474 + .../kernel-2.6.12-i686-smp-planetlab.config | 1486 + configs/kernel-2.6.12-i686-smp.config | 2850 ++ .../kernel-2.6.12-i686-uml-planetlab.config | 547 + configs/kernel-2.6.12-i686-xen0.config | 2700 ++ .../kernel-2.6.12-i686-xenU-planetlab.config | 975 + configs/kernel-2.6.12-i686-xenU.config | 943 + configs/kernel-2.6.12-i686.config | 2851 ++ configs/kernel-2.6.8-i586-smp.config | 2487 ++ configs/kernel-2.6.8-i586.config | 2504 ++ ...kernel-2.6.8-i686-planetlab-desktop.config | 1750 + configs/kernel-2.6.8-i686-planetlab.config | 1114 + configs/kernel-2.6.8-i686-smp.config | 2490 ++ .../kernel-2.6.8-i686-uml-planetlab.config | 519 + configs/kernel-2.6.8-i686.config | 2505 ++ configs/kernel-2.6.9-i686-planetlab.config | 1129 + crypto/Kconfig | 19 + crypto/Makefile | 5 + crypto/api.c | 16 +- crypto/digest.c | 8 + crypto/mpi/Makefile | 30 + crypto/mpi/generic_mpi-asm-defs.h | 10 + crypto/mpi/generic_mpih-add1.c | 62 + crypto/mpi/generic_mpih-lshift.c | 66 + crypto/mpi/generic_mpih-mul1.c | 58 + crypto/mpi/generic_mpih-mul2.c | 63 + crypto/mpi/generic_mpih-mul3.c | 64 + crypto/mpi/generic_mpih-rshift.c | 65 + crypto/mpi/generic_mpih-sub1.c | 62 + crypto/mpi/generic_udiv-w-sdiv.c | 130 + crypto/mpi/longlong.h | 1502 + crypto/mpi/mpi-add.c | 258 + crypto/mpi/mpi-bit.c | 245 + crypto/mpi/mpi-cmp.c | 71 + crypto/mpi/mpi-div.c | 345 + crypto/mpi/mpi-gcd.c | 60 + crypto/mpi/mpi-inline.c | 33 + crypto/mpi/mpi-inline.h | 128 + crypto/mpi/mpi-internal.h | 265 + crypto/mpi/mpi-inv.c | 148 + crypto/mpi/mpi-mpow.c | 113 + crypto/mpi/mpi-mul.c | 202 + crypto/mpi/mpi-pow.c | 312 + crypto/mpi/mpi-scan.c | 129 + crypto/mpi/mpicoder.c | 359 + crypto/mpi/mpih-cmp.c | 58 + crypto/mpi/mpih-div.c | 534 + crypto/mpi/mpih-mul.c | 547 + crypto/mpi/mpiutil.c | 214 + crypto/signature/Makefile | 10 + crypto/signature/dsa.c | 98 + crypto/signature/key.h | 7 + crypto/signature/ksign-keyring.c | 112 + crypto/signature/ksign-parse.c | 609 + crypto/signature/ksign-publickey.c | 19 + crypto/signature/ksign.c | 179 + crypto/signature/local.h | 163 + drivers/Makefile | 1 + drivers/acpi/acpi_ksyms.c | 159 - drivers/acpi/ec.c | 2 +- drivers/acpi/osl.c | 2 +- drivers/acpi/pci_irq.c | 2 +- drivers/acpi/processor.c | 2644 -- drivers/acpi/processor_idle.c | 39 + drivers/atm/lanai.c | 1 + drivers/atm/nicstarmac.h | 14 - drivers/base/interface.c | 51 - drivers/block/DAC960.c | 13 +- drivers/block/Kconfig | 11 + drivers/block/Makefile | 2 + drivers/block/carmel.c | 1763 - drivers/block/cciss.c | 1 + drivers/block/cpqarray.c | 1 + drivers/block/diskdump.c | 1121 + drivers/block/elevator.c | 6 +- drivers/block/floppy.c | 2 +- drivers/block/floppy98.c | 4682 --- drivers/block/paride/setup.h | 69 - drivers/block/vroot.c | 266 + drivers/cdrom/cdrom.c | 3 +- drivers/cdrom/mcd.c | 1565 - drivers/cdrom/mcd.h | 106 - drivers/char/.cvsignore | 2 + drivers/char/Kconfig | 2 + drivers/char/Makefile | 1 + drivers/char/README.computone | 10 - drivers/char/README.cycladesZ | 8 - drivers/char/README.cyclomY | 23 - drivers/char/README.epca | 532 - drivers/char/README.scc | 5 - drivers/char/agp/hp-agp.c | 3 +- drivers/char/agp/intel-mch-agp.c | 643 - drivers/char/busmouse.c | 456 - drivers/char/busmouse.h | 27 - drivers/char/console_macros.h | 71 - drivers/char/crash.c | 129 + drivers/char/cyclades.c | 2 +- drivers/char/digi_bios.h | 177 - drivers/char/digi_fep.h | 517 - drivers/char/drm/ati_pcigart.h | 206 - drivers/char/drm/drm_agpsupport.h | 468 - drivers/char/drm/drm_auth.h | 230 - drivers/char/drm/drm_bufs.h | 1269 - drivers/char/drm/drm_context.h | 578 - drivers/char/drm/drm_dma.h | 181 - drivers/char/drm/drm_drawable.h | 56 - drivers/char/drm/drm_drv.h | 1060 - drivers/char/drm/drm_fops.h | 156 - drivers/char/drm/drm_init.h | 128 - drivers/char/drm/drm_ioctl.h | 349 - drivers/char/drm/drm_irq.h | 368 - drivers/char/drm/drm_lock.h | 168 - drivers/char/drm/drm_proc.h | 547 - drivers/char/drm/drm_scatter.h | 231 - drivers/char/drm/drm_stub.h | 236 - drivers/char/drm/drm_vm.h | 667 - drivers/char/drm/ffb.h | 12 - drivers/char/drm/gamma.h | 77 - drivers/char/drm/i810.h | 77 - drivers/char/drm/i830.h | 83 - drivers/char/drm/i915.h | 53 - drivers/char/drm/mga.h | 63 - drivers/char/drm/r128.h | 75 - drivers/char/drm/radeon.h | 112 - drivers/char/drm/sis.h | 61 - drivers/char/drm/tdfx.h | 50 - drivers/char/dtlk.c | 4 +- drivers/char/dz.c | 1540 - drivers/char/dz.h | 230 - drivers/char/fep.h | 168 - drivers/char/h8.c | 1180 - drivers/char/h8.h | 246 - drivers/char/hangcheck-timer.c | 2 +- drivers/char/hp600_keyb.c | 340 - drivers/char/ip2/Makefile | 12 - drivers/char/ip2/ip2mkdev.c | 123 - drivers/char/ip2/ip2stat.c | 115 - drivers/char/ip2/ip2trace.c | 279 - drivers/char/isicom.c | 2 +- drivers/char/lp_old98.c | 537 - drivers/char/mem.c | 224 +- drivers/char/moxa.c | 2 +- drivers/char/mxser.c | 2 +- drivers/char/pcmcia/synclink_cs.c | 4 +- drivers/char/pcxx.c | 2353 -- drivers/char/pcxx.h | 128 - drivers/char/random.c | 10 +- drivers/char/rio/cdproto.h | 55 - drivers/char/riscom8.h | 2 +- drivers/char/rsf16fmi.h | 13 - drivers/char/serial_tx3912.c | 981 - drivers/char/serial_tx3912.h | 92 - drivers/char/sh-sci.c | 1646 - drivers/char/sh-sci.h | 478 - drivers/char/sn_serial.c | 1028 - drivers/char/sonypi.h | 431 - drivers/char/specialix_io8.h | 2 +- drivers/char/synclink.c | 4 +- drivers/char/synclinkmp.c | 4 +- drivers/char/sysrq.c | 13 +- drivers/char/tpqic02.c | 2812 -- drivers/char/tty_io.c | 33 +- drivers/char/tty_ioctl.c | 4 +- drivers/char/upd4990a.c | 432 - drivers/cpufreq/proc_intf.c | 0 drivers/firmware/pcdp.c | 1 + drivers/i2c/busses/Kconfig | 30 +- drivers/i2c/busses/i2c-ixp42x.c | 176 - drivers/i2c/i2c-sensor.c | 167 - drivers/ide/Kconfig | 6 + drivers/ide/ide-cd.c | 120 +- drivers/ide/ide-default.c | 73 - drivers/ide/ide-disk.c | 12 +- drivers/ide/ide-dma.c | 1 - drivers/ide/ide-io.c | 65 +- drivers/ide/ide-iops.c | 97 +- drivers/ide/ide-tcq.c | 808 - drivers/ide/legacy/hd98.c | 883 - drivers/ide/legacy/pc9800.c | 84 - drivers/ide/legacy/pdc4030.c | 679 - drivers/ide/legacy/pdc4030.h | 70 - drivers/ide/pci/Makefile | 1 + drivers/ide/pci/adma100.c | 30 - drivers/ide/pci/adma100.h | 28 - drivers/ide/pci/aec62xx.h | 122 - drivers/ide/pci/alim15x3.h | 37 - drivers/ide/pci/amd74xx.h | 168 - drivers/ide/pci/cmd640.h | 32 - drivers/ide/pci/cmd64x.h | 95 - drivers/ide/pci/cs5520.c | 2 +- drivers/ide/pci/cs5520.h | 48 - drivers/ide/pci/cs5530.h | 34 - drivers/ide/pci/cy82c693.h | 83 - drivers/ide/pci/generic.c | 73 +- drivers/ide/pci/generic.h | 120 - drivers/ide/pci/hpt34x.h | 29 - drivers/ide/pci/hpt366.c | 472 +- drivers/ide/pci/hpt366.h | 483 - drivers/ide/pci/it8172.h | 34 - drivers/ide/pci/it821x.c | 812 + drivers/ide/pci/ns87415.h | 31 - drivers/ide/pci/opti621.h | 31 - drivers/ide/pci/pdc202xx_new.h | 118 - drivers/ide/pci/pdc202xx_old.h | 144 - drivers/ide/pci/piix.c | 11 +- drivers/ide/pci/piix.h | 63 - drivers/ide/pci/rz1000.h | 45 - drivers/ide/pci/sc1200.h | 34 - drivers/ide/pci/serverworks.c | 10 +- drivers/ide/pci/serverworks.h | 69 - drivers/ide/pci/siimage.c | 8 +- drivers/ide/pci/siimage.h | 73 - drivers/ide/pci/sis5513.h | 34 - drivers/ide/pci/sl82c105.h | 34 - drivers/ide/pci/slc90e66.h | 36 - drivers/ide/pci/triflex.h | 42 - drivers/ide/pci/trm290.c | 1 + drivers/ide/pci/trm290.h | 32 - drivers/ide/pci/via82cxxx.h | 44 - drivers/ide/ppc/swarm.c | 101 - drivers/ieee1394/.cvsignore | 2 + drivers/ieee1394/ohci1394.c | 8 +- drivers/input/gameport/ns558.c | 3 + drivers/input/keyboard/98kbd.c | 391 - drivers/input/keyboard/atkbd.c | 12 +- drivers/input/misc/98spkr.c | 96 - drivers/input/mouse/98busmouse.c | 197 - drivers/input/serio/98kbd-io.c | 179 - drivers/isdn/icn/icn.c | 2 +- drivers/isdn/tpam/Kconfig | 15 - drivers/isdn/tpam/Makefile | 11 - drivers/isdn/tpam/tpam.h | 229 - drivers/isdn/tpam/tpam_commands.c | 987 - drivers/isdn/tpam/tpam_crcpc.c | 162 - drivers/isdn/tpam/tpam_hdlc.c | 923 - drivers/isdn/tpam/tpam_main.c | 297 - drivers/isdn/tpam/tpam_memory.c | 247 - drivers/isdn/tpam/tpam_nco.c | 651 - drivers/isdn/tpam/tpam_queues.c | 401 - drivers/macintosh/macserial.h | 10 +- drivers/md/.cvsignore | 9 + drivers/md/Makefile | 2 + drivers/md/raid5.c | 2 + drivers/media/dvb/b2c2/b2c2-common.c | 214 - drivers/media/dvb/b2c2/b2c2-usb-core.c | 548 - drivers/media/dvb/bt8xx/dst.h | 40 - drivers/media/dvb/dibusb/dvb-dibusb-pid.c | 80 - drivers/media/dvb/dibusb/dvb-dibusb.c | 1032 - drivers/media/dvb/dvb-core/Makefile.lib | 1 - drivers/media/dvb/dvb-core/dvb_functions.c | 89 - drivers/media/dvb/dvb-core/dvb_functions.h | 50 - drivers/media/dvb/dvb-core/dvb_i2c.c | 290 - drivers/media/dvb/dvb-core/dvb_i2c.h | 63 - drivers/media/dvb/dvb-core/dvb_ksyms.c | 57 - drivers/media/dvb/frontends/alps_tdlb7.c | 724 - drivers/media/dvb/frontends/alps_tdmb7.c | 458 - drivers/media/dvb/frontends/dst-bt878.h | 38 - drivers/media/dvb/frontends/dst.c | 1187 - .../media/dvb/frontends/grundig_29504-401.c | 664 - .../media/dvb/frontends/grundig_29504-491.c | 465 - drivers/media/dvb/frontends/sp887x_firm.h | 1375 - drivers/media/video/cx88/cx88-video.c | 2 +- drivers/media/video/tuner.c | 1425 - drivers/message/fusion/ascq_tbl.c | 2416 -- drivers/message/fusion/ascq_tbl.sh | 109 - drivers/message/fusion/isense.c | 119 - drivers/message/fusion/isense.h | 95 - drivers/message/fusion/mptbase.c | 1 + drivers/message/fusion/scsi3.h | 707 - drivers/message/fusion/scsiops.c | 309 - drivers/message/i2o/i2o_core.c | 3978 -- drivers/mtd/devices/doc1000.c | 594 - drivers/mtd/maps/chestnut.c | 91 - drivers/mtd/maps/ich2rom.c | 316 - drivers/mtd/maps/integrator-flash-v24.c | 258 - drivers/mtd/mtdblock.h | 35 - drivers/mtd/nand/nand.c | 1397 - drivers/net/3c59x.c | 2 +- drivers/net/acenic.c | 2 +- drivers/net/auto_irq.c | 68 - drivers/net/b44.c | 1 + drivers/net/bagetlance.c | 1368 - drivers/net/ethertap.c | 390 - drivers/net/fc/Makefile | 8 - drivers/net/fc/iph5526.c | 4645 --- drivers/net/fc/iph5526_ip.h | 24 - drivers/net/fc/iph5526_novram.c | 278 - drivers/net/fc/iph5526_scsi.h | 31 - drivers/net/fc/tach.h | 475 - drivers/net/fc/tach_structs.h | 428 - drivers/net/hamradio/Kconfig | 2 +- drivers/net/ixgb/ixgb_main.c | 4 +- drivers/net/ne2k_cbus.c | 887 - drivers/net/ne2k_cbus.h | 481 - drivers/net/net_init.c | 152 - drivers/net/ns83820.c | 1 + drivers/net/rcif.h | 292 - drivers/net/rclanmtl.c | 2029 - drivers/net/rclanmtl.h | 701 - drivers/net/rcpci45.c | 1049 - drivers/net/shaper.c | 40 +- drivers/net/sundance.c | 4 +- drivers/net/tg3.c | 1 + drivers/net/tokenring/ibmtr.c | 9 +- drivers/net/wan/comx-hw-comx.c | 1450 - drivers/net/wan/comx-hw-locomx.c | 496 - drivers/net/wan/comx-hw-mixcom.c | 960 - drivers/net/wan/comx-hw-munich.c | 2854 -- drivers/net/wan/comx-proto-fr.c | 1014 - drivers/net/wan/comx-proto-lapb.c | 551 - drivers/net/wan/comx-proto-ppp.c | 269 - drivers/net/wan/comx.c | 1128 - drivers/net/wan/comx.h | 232 - drivers/net/wan/comxhw.h | 113 - drivers/net/wan/falc-lh.h | 102 - drivers/net/wan/hscx.h | 103 - drivers/net/wan/mixcom.h | 35 - drivers/net/wan/munich32x.h | 191 - drivers/net/wan/wanxlfw.inc | 158 - drivers/net/wan/z85230.h | 2 +- drivers/net/wireless/Kconfig | 191 + drivers/net/wireless/Makefile | 3 + drivers/net/wireless/ieee80211/LICENSE | 339 + drivers/net/wireless/ieee80211/Makefile | 23 + drivers/net/wireless/ieee80211/ieee80211.h | 872 + .../net/wireless/ieee80211/ieee80211_crypt.c | 253 + .../net/wireless/ieee80211/ieee80211_crypt.h | 104 + .../wireless/ieee80211/ieee80211_crypt_ccmp.c | 477 + .../wireless/ieee80211/ieee80211_crypt_tkip.c | 714 + .../wireless/ieee80211/ieee80211_crypt_wep.c | 277 + .../net/wireless/ieee80211/ieee80211_module.c | 266 + drivers/net/wireless/ieee80211/ieee80211_rx.c | 1183 + drivers/net/wireless/ieee80211/ieee80211_tx.c | 464 + drivers/net/wireless/ieee80211/ieee80211_wx.c | 526 + drivers/net/wireless/ipw2100/LICENSE | 339 + drivers/net/wireless/ipw2100/Makefile | 15 + drivers/net/wireless/ipw2100/ipw2100.c | 8975 +++++ drivers/net/wireless/ipw2100/ipw2100.h | 1287 + drivers/net/wireless/ipw2200/LICENSE | 339 + drivers/net/wireless/ipw2200/Makefile | 15 + drivers/net/wireless/ipw2200/ipw2200.c | 7342 ++++ drivers/net/wireless/ipw2200/ipw2200.h | 1773 + drivers/net/wireless/orinoco.c | 2458 +- drivers/net/wireless/orinoco.h | 31 +- drivers/parport/procfs.c | 12 +- drivers/pci/.cvsignore | 3 + drivers/pci/hotplug/pciehp_sysfs.c | 143 - drivers/pci/search.c | 2 +- drivers/pcmcia/bulkmem.c | 218 - drivers/pcmcia/sa1100.h | 164 - drivers/pcmcia/sa1100_adsbitsy.c | 103 - drivers/pcmcia/sa1100_flexanet.c | 168 - drivers/pcmcia/sa1100_freebird.c | 135 - drivers/pcmcia/sa1100_graphicsclient.c | 154 - drivers/pcmcia/sa1100_graphicsmaster.c | 106 - drivers/pcmcia/sa1100_pangolin.c | 147 - drivers/pcmcia/sa1100_pfs168.c | 141 - drivers/pcmcia/sa1100_stork.c | 198 - drivers/pcmcia/sa1100_system3.c | 115 - drivers/pcmcia/sa1100_trizeps.c | 165 - drivers/pcmcia/sa1100_xp860.c | 154 - drivers/pcmcia/sa1100_yopy.c | 125 - drivers/pcmcia/sa11xx_core.c | 971 - drivers/pcmcia/sa11xx_core.h | 121 - drivers/s390/cio/qdio.c | 12 +- drivers/s390/cio/qdio.h | 2 + drivers/s390/cio/requestirq.c | 45 - drivers/s390/net/qeth_main.c | 4 + drivers/s390/scsi/zfcp_aux.c | 5 +- drivers/sbus/char/aurora.h | 2 +- drivers/scsi/Kconfig | 2 +- drivers/scsi/ahci.c | 1 + drivers/scsi/aic7xxx/.cvsignore | 4 + drivers/scsi/dc390.h | 32 - drivers/scsi/dmx3191d.h | 48 - drivers/scsi/dpt/dpt_osdutil.h | 358 - drivers/scsi/fd_mcs.h | 37 - drivers/scsi/gdth.c | 1 + drivers/scsi/i60uscsi.c | 805 - drivers/scsi/i91uscsi.c | 2672 -- drivers/scsi/i91uscsi.h | 843 - drivers/scsi/ide-scsi.c | 7 +- drivers/scsi/ini9100u.c | 727 - drivers/scsi/ini9100u.h | 251 - drivers/scsi/inia100.c | 580 - drivers/scsi/inia100.h | 533 - drivers/scsi/lasi700.h | 49 - drivers/scsi/libata-core.c | 2 +- drivers/scsi/megaraid/Kconfig.megaraid | 2 - drivers/scsi/pc980155.c | 299 - drivers/scsi/pc980155.h | 52 - drivers/scsi/pcmcia/qlogic_core.c | 2 - drivers/scsi/qla2xxx/ql6322.c | 108 - drivers/scsi/qla2xxx/ql6322_fw.c | 7433 ---- drivers/scsi/qla2xxx/qla_listops.h | 351 - drivers/scsi/qla2xxx/qla_os.h | 94 - drivers/scsi/qlogicfas.h | 124 - drivers/scsi/qlogicfc.h | 80 - drivers/scsi/qlogicisp.h | 69 - drivers/scsi/sata_promise.c | 56 +- drivers/scsi/scsi_devinfo.c | 1 + drivers/scsi/scsi_obsolete.h | 106 - drivers/scsi/scsi_pc98.c | 69 - drivers/scsi/scsi_syms.c | 97 - drivers/scsi/scsicam.c | 15 +- drivers/scsi/scsiiom.c | 1654 - drivers/scsi/sym53c8xx_2/sym_conf.h | 110 - drivers/scsi/sym53c8xx_2/sym_misc.c | 111 - drivers/serial/68328serial.h | 10 +- drivers/serial/68360serial.c | 8 +- drivers/serial/8250.c | 7 +- drivers/serial/8250_hcdp.c | 268 - drivers/serial/8250_hcdp.h | 82 - drivers/serial/crisv10.h | 4 +- drivers/serial/mcfserial.h | 4 +- drivers/serial/serial98.c | 1120 - drivers/tc/zs.h | 10 +- drivers/usb/core/driverfs.c | 229 - drivers/usb/core/hub.c | 2 +- drivers/usb/host/ehci-hcd.c | 1 + drivers/usb/host/hc_simple.c | 1039 - drivers/usb/host/hc_simple.h | 231 - drivers/usb/host/hc_sl811.c | 1361 - drivers/usb/host/hc_sl811.h | 385 - drivers/usb/host/hc_sl811_rh.c | 583 - drivers/usb/host/ohci-omap.h | 57 - drivers/usb/image/hpusbscsi.c | 523 - drivers/usb/image/hpusbscsi.h | 73 - drivers/usb/input/Kconfig | 19 + drivers/usb/input/Makefile | 1 + drivers/usb/input/appletouch.c | 471 + drivers/usb/media/pwc-ctrl.c | 1644 - drivers/usb/media/pwc-if.c | 2193 -- drivers/usb/media/pwc-ioctl.h | 279 - drivers/usb/media/pwc-misc.c | 146 - drivers/usb/media/pwc-uncompress.c | 180 - drivers/usb/media/pwc-uncompress.h | 84 - drivers/usb/media/pwc.h | 271 - drivers/usb/media/pwc/pwc-uncompress.c | 11 +- drivers/usb/media/pwc_kiara.h | 270 - drivers/usb/media/pwc_nala.h | 66 - drivers/usb/media/pwc_timon.h | 270 - drivers/usb/media/w9968cf_externaldef.h | 94 - drivers/usb/misc/speedtch.c | 1373 - drivers/usb/misc/tiglusb.c | 592 - drivers/usb/misc/tiglusb.h | 43 - drivers/usb/storage/scsiglue.c | 2 +- drivers/usb/storage/transport.c | 7 +- drivers/usb/storage/usb.c | 2 +- drivers/video/aty/radeon_base.c | 11 + drivers/video/aty/radeon_pm.c | 283 +- drivers/video/intelfb/intelfbdrv.h | 69 - drivers/video/logo/.cvsignore | 13 + drivers/video/savage/savagefb.c | 2276 -- drivers/xen/Makefile | 13 + drivers/xen/balloon/Makefile | 2 + drivers/xen/balloon/balloon.c | 438 + drivers/xen/blkback/Makefile | 2 + drivers/xen/blkback/blkback.c | 751 + drivers/xen/blkback/common.h | 104 + drivers/xen/blkback/control.c | 61 + drivers/xen/blkback/interface.c | 249 + drivers/xen/blkback/vbd.c | 287 + drivers/xen/blkfront/Kconfig | 6 + drivers/xen/blkfront/Makefile | 3 + drivers/xen/blkfront/blkfront.c | 1480 + drivers/xen/blkfront/block.h | 117 + drivers/xen/blkfront/vbd.c | 507 + drivers/xen/blktap/Makefile | 3 + drivers/xen/blktap/blktap.c | 87 + drivers/xen/blktap/blktap.h | 252 + drivers/xen/blktap/blktap_controlmsg.c | 501 + drivers/xen/blktap/blktap_datapath.c | 472 + drivers/xen/blktap/blktap_userdev.c | 470 + drivers/xen/console/Makefile | 2 + drivers/xen/console/console.c | 811 + drivers/xen/evtchn/Makefile | 2 + drivers/xen/evtchn/evtchn.c | 430 + drivers/xen/netback/Makefile | 2 + drivers/xen/netback/common.h | 103 + drivers/xen/netback/control.c | 56 + drivers/xen/netback/interface.c | 380 + drivers/xen/netback/netback.c | 819 + drivers/xen/netfront/Kconfig | 6 + drivers/xen/netfront/Makefile | 2 + drivers/xen/netfront/netfront.c | 1300 + drivers/xen/privcmd/Makefile | 2 + drivers/xen/privcmd/privcmd.c | 232 + drivers/xen/usbback/common.h | 85 + drivers/xen/usbback/control.c | 61 + drivers/xen/usbback/interface.c | 252 + drivers/xen/usbback/usbback.c | 1070 + drivers/xen/usbfront/usbfront.c | 1738 + drivers/xen/usbfront/xhci.h | 183 + fs/aio.c | 2 +- fs/attr.c | 52 +- fs/befs/debug.c | 2 +- fs/binfmt_aout.c | 1 + fs/binfmt_elf.c | 123 +- fs/binfmt_flat.c | 1 + fs/binfmt_som.c | 1 + fs/char_dev.c | 2 +- fs/dcache.c | 36 +- fs/devpts/inode.c | 34 +- fs/exec.c | 9 +- fs/ext2/balloc.c | 10 + fs/ext2/ialloc.c | 14 +- fs/ext2/inode.c | 73 +- fs/ext2/ioctl.c | 10 +- fs/ext2/namei.c | 2 + fs/ext2/super.c | 10 +- fs/ext2/xattr.c | 7 + fs/ext3/balloc.c | 42 +- fs/ext3/ialloc.c | 14 +- fs/ext3/inode.c | 105 +- fs/ext3/ioctl.c | 53 +- fs/ext3/namei.c | 2 + fs/ext3/super.c | 16 +- fs/ext3/xattr.c | 9 +- fs/fat/fatfs_syms.c | 48 - fs/fcntl.c | 16 +- fs/file_table.c | 8 + fs/hfsplus/ioctl.c | 3 +- fs/inode.c | 9 +- fs/intermezzo/Makefile | 11 - fs/intermezzo/cache.c | 207 - fs/intermezzo/dcache.c | 342 - fs/intermezzo/dir.c | 1333 - fs/intermezzo/ext_attr.c | 197 - fs/intermezzo/file.c | 534 - fs/intermezzo/fileset.c | 674 - fs/intermezzo/inode.c | 179 - fs/intermezzo/intermezzo_fs.h | 923 - fs/intermezzo/intermezzo_idl.h | 304 - fs/intermezzo/intermezzo_journal.h | 24 - fs/intermezzo/intermezzo_kml.h | 260 - fs/intermezzo/intermezzo_lib.h | 162 - fs/intermezzo/intermezzo_psdev.h | 55 - fs/intermezzo/intermezzo_upcall.h | 146 - fs/intermezzo/journal.c | 2452 -- fs/intermezzo/journal_ext2.c | 90 - fs/intermezzo/journal_ext3.c | 283 - fs/intermezzo/journal_obdfs.c | 193 - fs/intermezzo/journal_reiserfs.c | 140 - fs/intermezzo/journal_tmpfs.c | 107 - fs/intermezzo/journal_xfs.c | 161 - fs/intermezzo/kml.c | 194 - fs/intermezzo/kml_decode.c | 1016 - fs/intermezzo/kml_reint.c | 647 - fs/intermezzo/kml_setup.c | 58 - fs/intermezzo/kml_unpack.c | 712 - fs/intermezzo/kml_utils.c | 43 - fs/intermezzo/methods.c | 493 - fs/intermezzo/presto.c | 736 - fs/intermezzo/psdev.c | 647 - fs/intermezzo/replicator.c | 290 - fs/intermezzo/super.c | 407 - fs/intermezzo/sysctl.c | 368 - fs/intermezzo/upcall.c | 559 - fs/intermezzo/vfs.c | 2416 -- fs/ioctl.c | 51 + fs/jfs/acl.c | 29 +- fs/jfs/jfs_defragfs.h | 51 - fs/jfs/jfs_filsys.h | 1 + fs/jfs/jfs_imap.c | 21 +- fs/jfs/jfs_inode.c | 2 + fs/jfs/super.c | 9 +- fs/libfs.c | 18 +- fs/lockd/clntlock.c | 13 +- fs/lockd/clntproc.c | 22 +- fs/lockd/host.c | 6 +- fs/lockd/lockd_syms.c | 36 - fs/lockd/svc.c | 19 +- fs/lockd/xdr4.c | 3 + fs/locks.c | 24 + fs/namei.c | 163 +- fs/namespace.c | 193 +- fs/ncpfs/file.c | 2 +- fs/nfs/dir.c | 5 +- fs/nfs/inode.c | 44 +- fs/nfs/nfs3xdr.c | 28 +- fs/nfs/nfsroot.c | 8 +- fs/nfsd/auth.c | 9 +- fs/nfsd/nfs3xdr.c | 16 +- fs/nfsd/nfs4state.c | 3 + fs/nfsd/nfs4xdr.c | 9 +- fs/nfsd/nfsctl.c | 103 +- fs/nfsd/nfssvc.c | 96 +- fs/nfsd/nfsxdr.c | 16 +- fs/nfsd/vfs.c | 29 +- fs/open.c | 41 +- fs/partitions/ibm.c | 9 + fs/partitions/nec98.c | 188 - fs/partitions/nec98.h | 10 - fs/pipe.c | 4 +- fs/posix_acl.c | 4 + fs/proc/Makefile | 1 + fs/proc/array.c | 138 +- fs/proc/base.c | 114 +- fs/proc/generic.c | 14 +- fs/proc/inode.c | 2 + fs/proc/kcore.c | 12 +- fs/proc/proc_misc.c | 39 +- fs/proc/root.c | 4 + fs/proc/task_mmu.c | 25 +- fs/proc/vmcore.c | 239 + fs/quota.c | 26 +- fs/read_write.c | 2 + fs/reiserfs/file.c | 2 +- fs/reiserfs/inode.c | 73 +- fs/reiserfs/ioctl.c | 20 +- fs/reiserfs/namei.c | 3 + fs/reiserfs/super.c | 5 + fs/reiserfs/xattr.c | 9 +- fs/smbfs/ChangeLog | 160 - fs/stat.c | 1 + fs/super.c | 19 +- fs/sysfs/mount.c | 4 +- fs/umsdos/Makefile | 13 - fs/umsdos/README-WIP.txt | 114 - fs/umsdos/dir.c | 810 - fs/umsdos/emd.c | 660 - fs/umsdos/inode.c | 483 - fs/umsdos/ioctl.c | 446 - fs/umsdos/mangle.c | 522 - fs/umsdos/namei.c | 1124 - fs/umsdos/rdir.c | 248 - fs/umsdos/specs | 289 - fs/xattr.c | 22 +- fs/xfs/linux-2.6/xfs_ioctl.c | 6 + fs/xfs/linux-2.6/xfs_iops.c | 35 + fs/xfs/linux-2.6/xfs_linux.h | 1 + fs/xfs/linux-2.6/xfs_lrw.c | 2 +- fs/xfs/linux-2.6/xfs_super.c | 9 + fs/xfs/linux-2.6/xfs_sysctl.c | 28 +- fs/xfs/linux-2.6/xfs_vnode.c | 9 + fs/xfs/linux-2.6/xfs_vnode.h | 5 +- fs/xfs/linux/kmem.h | 197 - fs/xfs/linux/mrlock.h | 106 - fs/xfs/linux/mutex.h | 53 - fs/xfs/linux/sema.h | 67 - fs/xfs/linux/spin.h | 74 - fs/xfs/linux/sv.h | 89 - fs/xfs/linux/time.h | 51 - fs/xfs/linux/xfs_aops.c | 1276 - fs/xfs/linux/xfs_buf.c | 1811 - fs/xfs/linux/xfs_buf.h | 594 - fs/xfs/linux/xfs_cred.h | 50 - fs/xfs/linux/xfs_file.c | 546 - fs/xfs/linux/xfs_fs_subr.c | 124 - fs/xfs/linux/xfs_fs_subr.h | 49 - fs/xfs/linux/xfs_globals.c | 72 - fs/xfs/linux/xfs_globals.h | 44 - fs/xfs/linux/xfs_ioctl.c | 1236 - fs/xfs/linux/xfs_iops.c | 708 - fs/xfs/linux/xfs_iops.h | 51 - fs/xfs/linux/xfs_linux.h | 367 - fs/xfs/linux/xfs_lrw.c | 1028 - fs/xfs/linux/xfs_lrw.h | 116 - fs/xfs/linux/xfs_stats.c | 132 - fs/xfs/linux/xfs_stats.h | 164 - fs/xfs/linux/xfs_super.c | 850 - fs/xfs/linux/xfs_super.h | 129 - fs/xfs/linux/xfs_sysctl.c | 163 - fs/xfs/linux/xfs_sysctl.h | 107 - fs/xfs/linux/xfs_version.h | 44 - fs/xfs/linux/xfs_vfs.c | 327 - fs/xfs/linux/xfs_vfs.h | 206 - fs/xfs/linux/xfs_vnode.c | 442 - fs/xfs/linux/xfs_vnode.h | 651 - fs/xfs/xfs_cap.c | 206 - fs/xfs/xfs_clnt.h | 1 + fs/xfs/xfs_dinode.h | 12 +- fs/xfs/xfs_fs.h | 5 +- fs/xfs/xfs_inode.c | 24 +- fs/xfs/xfs_itable.c | 2 + fs/xfs/xfs_mac.c | 72 - fs/xfs/xfs_mount.h | 1 + fs/xfs/xfs_vfsops.c | 7 + fs/xfs/xfs_vnodeops.c | 26 +- include/.cvsignore | 1 + include/asm-alpha/cpumask.h | 6 - include/asm-alpha/fcntl.h | 1 + include/asm-alpha/init.h | 1 - include/asm-alpha/module.h | 3 + include/asm-alpha/page.h | 1 + include/asm-alpha/rmap.h | 7 - include/asm-alpha/unistd.h | 1 + include/asm-arm/arch-adifcc/adi_evb.h | 19 - include/asm-arm/arch-adifcc/dma.h | 18 - include/asm-arm/arch-adifcc/hardware.h | 27 - include/asm-arm/arch-adifcc/io.h | 22 - include/asm-arm/arch-adifcc/irqs.h | 20 - include/asm-arm/arch-adifcc/memory.h | 27 - include/asm-arm/arch-adifcc/param.h | 3 - include/asm-arm/arch-adifcc/serial.h | 34 - include/asm-arm/arch-adifcc/system.h | 28 - include/asm-arm/arch-adifcc/time.h | 9 - include/asm-arm/arch-adifcc/timex.h | 10 - include/asm-arm/arch-adifcc/uncompress.h | 35 - include/asm-arm/arch-adifcc/vmalloc.h | 15 - include/asm-arm/arch-cl7500/ide.h | 50 - include/asm-arm/arch-cl7500/keyboard.h | 16 - include/asm-arm/arch-cl7500/serial.h | 47 - include/asm-arm/arch-cl7500/time.h | 43 - include/asm-arm/arch-clps711x/keyboard.h | 26 - include/asm-arm/arch-ebsa110/ide.h | 1 - include/asm-arm/arch-ebsa110/serial.h | 35 - include/asm-arm/arch-ebsa110/time.h | 118 - include/asm-arm/arch-ebsa285/ide.h | 49 - include/asm-arm/arch-ebsa285/serial.h | 40 - include/asm-arm/arch-ebsa285/time.h | 287 - include/asm-arm/arch-epxa10db/serial.h | 48 - include/asm-arm/arch-epxa10db/time.h | 60 - include/asm-arm/arch-h720x/serial.h | 101 - include/asm-arm/arch-imx/serial.h | 26 - include/asm-arm/arch-integrator/serial.h | 47 - include/asm-arm/arch-integrator/time.h | 156 - include/asm-arm/arch-iop3xx/ide.h | 49 - include/asm-arm/arch-iop3xx/iop310-irqs.h | 80 - include/asm-arm/arch-iop3xx/iop310.h | 255 - include/asm-arm/arch-iop3xx/iq80310.h | 30 - include/asm-arm/arch-iop3xx/pmon.h | 50 - include/asm-arm/arch-iop3xx/serial.h | 76 - include/asm-arm/arch-iop3xx/time.h | 12 - include/asm-arm/arch-ixp2000/serial.h | 27 - include/asm-arm/arch-ixp4xx/serial.h | 27 - include/asm-arm/arch-ixp4xx/time.h | 7 - include/asm-arm/arch-l7200/ide.h | 27 - include/asm-arm/arch-l7200/keyboard.h | 51 - include/asm-arm/arch-lh7a40x/ide.h | 69 - include/asm-arm/arch-lh7a40x/serial.h | 25 - include/asm-arm/arch-lh7a40x/time.h | 53 - include/asm-arm/arch-nexuspci/dma.h | 20 - include/asm-arm/arch-nexuspci/hardware.h | 76 - include/asm-arm/arch-nexuspci/ide.h | 37 - include/asm-arm/arch-nexuspci/io.h | 58 - include/asm-arm/arch-nexuspci/irqs.h | 34 - include/asm-arm/arch-nexuspci/memory.h | 23 - include/asm-arm/arch-nexuspci/param.h | 3 - include/asm-arm/arch-nexuspci/system.h | 24 - include/asm-arm/arch-nexuspci/time.h | 62 - include/asm-arm/arch-nexuspci/timex.h | 8 - include/asm-arm/arch-nexuspci/uncompress.h | 66 - include/asm-arm/arch-nexuspci/vmalloc.h | 15 - include/asm-arm/arch-omap/bus.h | 102 - include/asm-arm/arch-omap/clocks.h | 216 - include/asm-arm/arch-omap/omap-h2.h | 35 - include/asm-arm/arch-omap/omap-innovator.h | 214 - include/asm-arm/arch-omap/omap-perseus2.h | 152 - include/asm-arm/arch-omap/omap1610.h | 129 - include/asm-arm/arch-omap/omap5912.h | 112 - include/asm-arm/arch-omap/serial.h | 52 - include/asm-arm/arch-omap/time.h | 212 - include/asm-arm/arch-pxa/ide.h | 54 - include/asm-arm/arch-pxa/keyboard.h | 28 - include/asm-arm/arch-pxa/serial.h | 50 - include/asm-arm/arch-pxa/time.h | 105 - include/asm-arm/arch-rpc/ide.h | 48 - include/asm-arm/arch-rpc/serial.h | 46 - include/asm-arm/arch-rpc/time.h | 37 - include/asm-arm/arch-s3c2410/ide.h | 49 - include/asm-arm/arch-s3c2410/serial.h | 28 - include/asm-arm/arch-s3c2410/time.h | 173 - include/asm-arm/arch-sa1100/adsbitsy.h | 14 - include/asm-arm/arch-sa1100/flexanet.h | 100 - include/asm-arm/arch-sa1100/freebird.h | 69 - include/asm-arm/arch-sa1100/graphicsclient.h | 100 - include/asm-arm/arch-sa1100/graphicsmaster.h | 64 - include/asm-arm/arch-sa1100/huw_webpanel.h | 49 - include/asm-arm/arch-sa1100/itsy.h | 5 - include/asm-arm/arch-sa1100/keyboard.h | 23 - include/asm-arm/arch-sa1100/mftb2.h | 210 - include/asm-arm/arch-sa1100/omnimeter.h | 84 - include/asm-arm/arch-sa1100/pangolin.h | 62 - include/asm-arm/arch-sa1100/pfs168.h | 75 - include/asm-arm/arch-sa1100/pleb.h | 21 - include/asm-arm/arch-sa1100/serial.h | 47 - include/asm-arm/arch-sa1100/stork.h | 164 - include/asm-arm/arch-sa1100/system3.h | 113 - include/asm-arm/arch-sa1100/time.h | 111 - include/asm-arm/arch-sa1100/trizeps.h | 22 - include/asm-arm/arch-sa1100/yopy.h | 127 - include/asm-arm/arch-shark/ide.h | 47 - include/asm-arm/arch-shark/keyboard.h | 68 - include/asm-arm/arch-shark/serial.h | 31 - include/asm-arm/arch-shark/time.h | 39 - include/asm-arm/arch-tbox/dma.h | 37 - include/asm-arm/arch-tbox/hardware.h | 60 - include/asm-arm/arch-tbox/ide.h | 3 - include/asm-arm/arch-tbox/io.h | 40 - include/asm-arm/arch-tbox/irqs.h | 29 - include/asm-arm/arch-tbox/memory.h | 21 - include/asm-arm/arch-tbox/param.h | 4 - include/asm-arm/arch-tbox/serial.h | 32 - include/asm-arm/arch-tbox/system.h | 16 - include/asm-arm/arch-tbox/time.h | 39 - include/asm-arm/arch-tbox/timex.h | 8 - include/asm-arm/arch-tbox/uncompress.h | 42 - include/asm-arm/arch-tbox/vmalloc.h | 15 - include/asm-arm/arch-versatile/serial.h | 37 - include/asm-arm/arch-versatile/time.h | 158 - include/asm-arm/cpumask.h | 6 - include/asm-arm/module.h | 5 + include/asm-arm/page.h | 2 + include/asm-arm/rmap.h | 6 - include/asm-arm/tlb.h | 1 + include/asm-arm26/calls.h | 262 - include/asm-arm26/cpumask.h | 6 - include/asm-arm26/ian_char.h | 79 - include/asm-arm26/linux_logo.h | 19 - include/asm-arm26/page.h | 2 + include/asm-arm26/rmap.h | 66 - include/asm-arm26/tlb.h | 1 + include/asm-arm26/unistd.h | 2 + include/asm-cris/cpumask.h | 6 - include/asm-cris/module.h | 5 + include/asm-cris/page.h | 2 + include/asm-cris/rmap.h | 7 - include/asm-generic/bug.h | 8 +- include/asm-generic/cpumask.h | 40 - include/asm-generic/cpumask_arith.h | 49 - include/asm-generic/cpumask_array.h | 54 - include/asm-generic/cpumask_const_reference.h | 29 - include/asm-generic/cpumask_const_value.h | 21 - include/asm-generic/cpumask_up.h | 59 - include/asm-generic/crashdump.h | 47 + include/asm-generic/diskdump.h | 13 + include/asm-generic/pgtable.h | 11 + include/asm-generic/rmap.h | 91 - include/asm-generic/tlb.h | 1 + include/asm-generic/vmlinux.lds.h | 2 +- include/asm-h8300/aki3068net/machine-depend.h | 29 - include/asm-h8300/cpumask.h | 6 - include/asm-h8300/edosk2674/machine-depend.h | 70 - include/asm-h8300/generic/machine-depend.h | 17 - include/asm-h8300/generic/timer_rate.h | 15 - include/asm-h8300/h8300_ne.h | 20 - include/asm-h8300/h8300_smsc.h | 20 - include/asm-h8300/h8max/machine-depend.h | 100 - include/asm-h8300/init.h | 11 - include/asm-h8300/linux_logo.h | 11 - include/asm-h8300/module.h | 5 + include/asm-h8300/page.h | 2 + include/asm-h8300/softirq.h | 20 - include/asm-i386/.cvsignore | 1 + include/asm-i386/apicdef.h | 1 + include/asm-i386/cpumask.h | 6 - include/asm-i386/crash.h | 75 + include/asm-i386/crash_dump.h | 82 + include/asm-i386/crashdump.h | 123 + include/asm-i386/desc.h | 14 + include/asm-i386/diskdump.h | 55 + include/asm-i386/elf.h | 50 +- include/asm-i386/fcntl.h | 1 + include/asm-i386/highmem.h | 1 + include/asm-i386/ide.h | 14 +- include/asm-i386/init.h | 1 - include/asm-i386/irq.h | 8 +- include/asm-i386/kexec.h | 25 + include/asm-i386/kmap_types.h | 4 +- include/asm-i386/mach-default/irq_vectors.h | 1 + include/asm-i386/mach-pc9800/apm.h | 82 - include/asm-i386/mach-pc9800/bios_ebda.h | 14 - include/asm-i386/mach-pc9800/do_timer.h | 82 - include/asm-i386/mach-pc9800/io_ports.h | 30 - include/asm-i386/mach-pc9800/mach_reboot.h | 21 - include/asm-i386/mach-pc9800/mach_time.h | 100 - include/asm-i386/mach-pc9800/mach_timer.h | 31 - include/asm-i386/mach-pc9800/mach_traps.h | 27 - include/asm-i386/mach-pc9800/mach_wakecpu.h | 45 - include/asm-i386/mach-pc9800/pci-functions.h | 20 - .../asm-i386/mach-pc9800/setup_arch_post.h | 29 - include/asm-i386/mach-pc9800/setup_arch_pre.h | 36 - include/asm-i386/mmu.h | 6 + include/asm-i386/module.h | 15 +- include/asm-i386/page.h | 25 +- include/asm-i386/param.h | 8 +- include/asm-i386/pc9800.h | 27 - include/asm-i386/pc9800_sca.h | 25 - include/asm-i386/pgalloc.h | 1 + include/asm-i386/processor.h | 18 +- include/asm-i386/rmap.h | 21 - include/asm-i386/segment.h | 2 + include/asm-i386/smp.h | 1 + include/asm-i386/std_resources.h | 14 - include/asm-i386/thread_info.h | 10 +- include/asm-i386/unistd.h | 5 + include/asm-i386/upd4990a.h | 52 - include/asm-ia64/cpumask.h | 6 - include/asm-ia64/crash.h | 90 + include/asm-ia64/crashdump.h | 72 + include/asm-ia64/diskdump.h | 63 + include/asm-ia64/fcntl.h | 1 + include/asm-ia64/ioctl32.h | 1 - include/asm-ia64/module.h | 5 + include/asm-ia64/page.h | 2 + include/asm-ia64/pgalloc.h | 4 + include/asm-ia64/rmap.h | 7 - include/asm-ia64/sn/cdl.h | 42 - include/asm-ia64/sn/dmamap.h | 50 - include/asm-ia64/sn/driver.h | 91 - include/asm-ia64/sn/fetchop.h | 85 - include/asm-ia64/sn/hcl.h | 107 - include/asm-ia64/sn/hcl_util.h | 21 - include/asm-ia64/sn/hwgfs.h | 36 - include/asm-ia64/sn/ifconfig_net.h | 32 - include/asm-ia64/sn/ioc4.h | 20 - include/asm-ia64/sn/ioconfig_bus.h | 27 - include/asm-ia64/sn/ioerror.h | 193 - include/asm-ia64/sn/ioerror_handling.h | 159 - include/asm-ia64/sn/iograph.h | 137 - include/asm-ia64/sn/kldir.h | 363 - include/asm-ia64/sn/ksys/elsc.h | 39 - include/asm-ia64/sn/ksys/l1.h | 141 - include/asm-ia64/sn/labelcl.h | 76 - include/asm-ia64/sn/pci/bridge.h | 1895 - include/asm-ia64/sn/pci/pci_bus_cvlink.h | 70 - include/asm-ia64/sn/pci/pci_defs.h | 414 - include/asm-ia64/sn/pci/pcibr.h | 535 - include/asm-ia64/sn/pci/pcibr_private.h | 811 - include/asm-ia64/sn/pci/pciio.h | 746 - include/asm-ia64/sn/pci/pciio_private.h | 145 - include/asm-ia64/sn/pci/pic.h | 451 - include/asm-ia64/sn/pio.h | 99 - include/asm-ia64/sn/prio.h | 38 - include/asm-ia64/sn/router.h | 618 - include/asm-ia64/sn/sgi.h | 83 - include/asm-ia64/sn/slotnum.h | 16 - include/asm-ia64/sn/sn2/addrs.h | 169 - include/asm-ia64/sn/sn2/arch.h | 61 - include/asm-ia64/sn/sn2/geo.h | 108 - include/asm-ia64/sn/sn2/intr.h | 31 - include/asm-ia64/sn/sn2/io.h | 239 - include/asm-ia64/sn/sn2/shub.h | 36 - include/asm-ia64/sn/sn2/shub_md.h | 275 - include/asm-ia64/sn/sn2/shub_mmr.h | 31597 ---------------- include/asm-ia64/sn/sn2/shub_mmr_t.h | 14829 -------- include/asm-ia64/sn/sn2/shubio.h | 3609 -- include/asm-ia64/sn/sn2/slotnum.h | 41 - include/asm-ia64/sn/sn2/sn_private.h | 245 - include/asm-ia64/sn/sn_fru.h | 44 - include/asm-ia64/sn/sn_private.h | 13 - include/asm-ia64/sn/sndrv.h | 47 - include/asm-ia64/sn/vector.h | 75 - include/asm-ia64/sn/xtalk/xbow.h | 675 - include/asm-ia64/sn/xtalk/xbow_info.h | 21 - include/asm-ia64/sn/xtalk/xswitch.h | 56 - include/asm-ia64/sn/xtalk/xtalk.h | 360 - include/asm-ia64/sn/xtalk/xtalk_private.h | 79 - include/asm-ia64/sn/xtalk/xtalkaddrs.h | 106 - include/asm-ia64/sn/xtalk/xwidget.h | 240 - include/asm-ia64/tlb.h | 1 + include/asm-ia64/unistd.h | 2 +- include/asm-m32r/module.h | 5 + include/asm-m68k/adb_mouse.h | 23 - include/asm-m68k/atari_SCCserial.h | 67 - include/asm-m68k/cpumask.h | 6 - include/asm-m68k/init.h | 11 - include/asm-m68k/module.h | 5 + include/asm-m68k/page.h | 2 + include/asm-m68k/rmap.h | 7 - include/asm-m68knommu/cpumask.h | 6 - include/asm-m68knommu/init.h | 1 - include/asm-m68knommu/io_hw_swap.h | 113 - include/asm-m68knommu/keyboard.h | 1 - include/asm-m68knommu/m5282sim.h | 35 - include/asm-m68knommu/nap.h | 96 - include/asm-m68knommu/page.h | 2 + include/asm-m68knommu/rmap.h | 2 - include/asm-m68knommu/semp3.h | 60 - include/asm-m68knommu/shglcore.h | 65 - include/asm-m68knommu/shglports.h | 76 - include/asm-mips/baget/baget.h | 69 - include/asm-mips/baget/vac.h | 208 - include/asm-mips/baget/vic.h | 192 - include/asm-mips/cpumask.h | 6 - include/asm-mips/init.h | 1 - include/asm-mips/it8172/it8172_lpc.h | 29 - include/asm-mips/module.h | 10 + include/asm-mips/mv64340.h | 1039 - include/asm-mips/ng1.h | 55 - include/asm-mips/ng1hw.h | 219 - include/asm-mips/page.h | 2 + include/asm-mips/pci_channel.h | 46 - include/asm-mips/rmap.h | 7 - include/asm-mips/vr41xx/eagle.h | 265 - include/asm-mips/vr41xx/tb0229.h | 73 - include/asm-mips/vr41xx/vrc4171.h | 43 - include/asm-parisc/bootdata.h | 16 - include/asm-parisc/cpumask.h | 6 - include/asm-parisc/module.h | 8 + include/asm-parisc/page.h | 2 + include/asm-parisc/parport_gsc.h | 193 - include/asm-parisc/rmap.h | 7 - include/asm-parisc/som.h | 8 - include/asm-parisc/unistd.h | 4 +- include/asm-ppc/cpm_8260.h | 702 - include/asm-ppc/cpumask.h | 6 - include/asm-ppc/diskdump.h | 6 + include/asm-ppc/fcntl.h | 1 + include/asm-ppc/immap_8260.h | 433 - include/asm-ppc/kexec.h | 36 + include/asm-ppc/machdep.h | 25 + include/asm-ppc/module.h | 5 + include/asm-ppc/page.h | 2 + include/asm-ppc/pgalloc.h | 5 + include/asm-ppc/ppc405_dma.h | 1271 - include/asm-ppc/ppc_asm.h | 2 +- include/asm-ppc/rmap.h | 9 - include/asm-ppc/seccomp.h | 10 + include/asm-ppc/setup.h | 5 + include/asm-ppc/thread_info.h | 7 + include/asm-ppc/unistd.h | 2 +- include/asm-ppc64/bootx.h | 135 - include/asm-ppc64/cpumask.h | 6 - include/asm-ppc64/crashdump.h | 61 + include/asm-ppc64/diskdump.h | 55 + include/asm-ppc64/fcntl.h | 1 + include/asm-ppc64/iSeries/ItLpPaca.h | 134 - include/asm-ppc64/iSeries/iSeries_VpdInfo.h | 56 - include/asm-ppc64/iSeries/iSeries_fixup.h | 25 - include/asm-ppc64/init.h | 1 - include/asm-ppc64/module.h | 5 + include/asm-ppc64/page.h | 2 + include/asm-ppc64/pgalloc.h | 5 + include/asm-ppc64/rmap.h | 9 - include/asm-ppc64/unistd.h | 2 +- include/asm-s390/cpumask.h | 6 - include/asm-s390/diskdump.h | 6 + include/asm-s390/fcntl.h | 1 + include/asm-s390/init.h | 7 - include/asm-s390/module.h | 3 + include/asm-s390/page.h | 2 + include/asm-s390/pgalloc.h | 4 + include/asm-s390/rmap.h | 7 - include/asm-s390/unistd.h | 2 +- include/asm-sh/cpumask.h | 6 - include/asm-sh/init.h | 1 - include/asm-sh/module.h | 5 + include/asm-sh/page.h | 2 + include/asm-sh/rmap.h | 7 - include/asm-sh64/page.h | 2 + include/asm-sh64/smplock.h | 77 - include/asm-sh64/softirq.h | 30 - include/asm-sparc/cpumask.h | 6 - include/asm-sparc/fcntl.h | 1 + include/asm-sparc/init.h | 1 - include/asm-sparc/module.h | 5 + include/asm-sparc/page.h | 2 + include/asm-sparc/pgalloc.h | 4 + include/asm-sparc/rmap.h | 7 - include/asm-sparc/unistd.h | 2 +- include/asm-sparc64/cpumask.h | 6 - include/asm-sparc64/fcntl.h | 1 + include/asm-sparc64/init.h | 1 - include/asm-sparc64/module.h | 5 + include/asm-sparc64/page.h | 2 + include/asm-sparc64/pgalloc.h | 4 + include/asm-sparc64/rmap.h | 7 - include/asm-sparc64/tlb.h | 1 + include/asm-sparc64/unistd.h | 2 +- include/asm-um/arch-signal-i386.h | 24 - include/asm-um/cpumask.h | 6 - include/asm-um/diskdump.h | 6 + include/asm-um/elf.h | 37 - include/asm-um/init.h | 11 - include/asm-um/module-i386.h | 4 + include/asm-um/module.h | 13 - include/asm-um/page.h | 3 +- include/asm-um/pgalloc.h | 4 + include/asm-um/rmap.h | 6 - include/asm-um/smplock.h | 6 - include/asm-v850/cpumask.h | 6 - include/asm-v850/module.h | 5 + include/asm-v850/page.h | 2 + include/asm-v850/rmap.h | 1 - include/asm-x86_64/cpumask.h | 6 - include/asm-x86_64/crash.h | 75 + include/asm-x86_64/crashdump.h | 86 + include/asm-x86_64/diskdump.h | 44 + include/asm-x86_64/fcntl.h | 1 + include/asm-x86_64/init.h | 1 - include/asm-x86_64/ioctl32.h | 1 - include/asm-x86_64/ipc.h | 6 - include/asm-x86_64/kexec.h | 25 + include/asm-x86_64/module.h | 5 + include/asm-x86_64/page.h | 4 + include/asm-x86_64/pgalloc.h | 7 + include/asm-x86_64/pgtable.h | 2 +- include/asm-x86_64/processor.h | 8 +- include/asm-x86_64/rmap.h | 7 - include/asm-x86_64/unistd.h | 15 +- include/asm-xen/asm-i386/agp.h | 37 + include/asm-xen/asm-i386/desc.h | 152 + include/asm-xen/asm-i386/dma-mapping.h | 177 + include/asm-xen/asm-i386/fixmap.h | 173 + include/asm-xen/asm-i386/floppy.h | 147 + include/asm-xen/asm-i386/highmem.h | 82 + include/asm-xen/asm-i386/hypercall.h | 536 + include/asm-xen/asm-i386/io.h | 436 + .../asm-i386/mach-xen}/irq_vectors.h | 68 +- .../asm-i386/mach-xen/setup_arch_post.h | 46 + .../asm-i386/mach-xen/setup_arch_pre.h | 5 + .../asm-i386/mach-xen}/smpboot_hooks.h | 29 +- include/asm-xen/asm-i386/mmu_context.h | 102 + include/asm-xen/asm-i386/page.h | 207 + include/asm-xen/asm-i386/param.h | 23 + include/asm-xen/asm-i386/pci.h | 117 + include/asm-xen/asm-i386/pgalloc.h | 54 + .../asm-xen/asm-i386/pgtable-2level-defs.h | 19 + include/asm-xen/asm-i386/pgtable-2level.h | 105 + include/asm-xen/asm-i386/pgtable.h | 503 + include/asm-xen/asm-i386/processor.h | 707 + include/asm-xen/asm-i386/ptrace.h | 69 + include/asm-xen/asm-i386/segment.h | 98 + include/asm-xen/asm-i386/setup.h | 66 + include/asm-xen/asm-i386/spinlock.h | 250 + include/asm-xen/asm-i386/synch_bitops.h | 83 + include/asm-xen/asm-i386/system.h | 521 + include/asm-xen/asm-i386/tlbflush.h | 102 + include/asm-xen/asm-i386/vga.h | 20 + include/asm-xen/asm-x86_64/arch_hooks.h | 27 + include/asm-xen/asm-x86_64/bootsetup.h | 41 + include/asm-xen/asm-x86_64/desc.h | 240 + include/asm-xen/asm-x86_64/dma-mapping.h | 136 + include/asm-xen/asm-x86_64/fixmap.h | 117 + include/asm-xen/asm-x86_64/floppy.h | 204 + include/asm-xen/asm-x86_64/hypercall.h | 520 + include/asm-xen/asm-x86_64/io.h | 365 + include/asm-xen/asm-x86_64/irq.h | 36 + .../asm-xen/asm-x86_64/mach-xen/io_ports.h | 30 + .../asm-xen/asm-x86_64/mach-xen/irq_vectors.h | 137 + .../asm-xen/asm-x86_64/mach-xen/mach_time.h | 122 + .../asm-xen/asm-x86_64/mach-xen/mach_timer.h | 48 + .../asm-x86_64/mach-xen/setup_arch_post.h | 47 + .../asm-x86_64/mach-xen/setup_arch_pre.h | 5 + .../asm-x86_64/mach-xen/smpboot_hooks.h | 59 + include/asm-xen/asm-x86_64/mmu_context.h | 76 + include/asm-xen/asm-x86_64/page.h | 228 + include/asm-xen/asm-x86_64/param.h | 22 + include/asm-xen/asm-x86_64/pci.h | 148 + include/asm-xen/asm-x86_64/pda.h | 85 + include/asm-xen/asm-x86_64/pgalloc.h | 171 + include/asm-xen/asm-x86_64/pgtable.h | 527 + include/asm-xen/asm-x86_64/processor.h | 474 + include/asm-xen/asm-x86_64/ptrace.h | 119 + include/asm-xen/asm-x86_64/segment.h | 47 + include/asm-xen/asm-x86_64/smp.h | 154 + include/asm-xen/asm-x86_64/synch_bitops.h | 85 + include/asm-xen/asm-x86_64/system.h | 395 + include/asm-xen/asm-x86_64/timer.h | 64 + include/asm-xen/asm-x86_64/tlbflush.h | 97 + include/asm-xen/asm-x86_64/vga.h | 20 + include/asm-xen/asm-x86_64/xor.h | 328 + include/asm-xen/balloon.h | 51 + include/asm-xen/ctrl_if.h | 160 + include/asm-xen/evtchn.h | 106 + include/asm-xen/foreign_page.h | 30 + include/asm-xen/gnttab.h | 72 + include/asm-xen/hypervisor.h | 140 + include/asm-xen/linux-public/privcmd.h | 88 + include/asm-xen/linux-public/suspend.h | 43 + include/asm-xen/queues.h | 81 + include/asm-xen/xen-public/COPYING | 28 + include/asm-xen/xen-public/arch-ia64.h | 100 + include/asm-xen/xen-public/arch-x86_32.h | 161 + include/asm-xen/xen-public/arch-x86_64.h | 213 + include/asm-xen/xen-public/dom0_ops.h | 393 + include/asm-xen/xen-public/event_channel.h | 176 + include/asm-xen/xen-public/grant_table.h | 280 + include/asm-xen/xen-public/io/blkif.h | 108 + .../asm-xen/xen-public/io/domain_controller.h | 777 + include/asm-xen/xen-public/io/ioreq.h | 61 + include/asm-xen/xen-public/io/netif.h | 92 + include/asm-xen/xen-public/io/ring.h | 199 + include/asm-xen/xen-public/io/usbif.h | 66 + include/asm-xen/xen-public/physdev.h | 106 + include/asm-xen/xen-public/sched_ctl.h | 48 + include/asm-xen/xen-public/trace.h | 59 + include/asm-xen/xen-public/vmx_assist.h | 101 + include/asm-xen/xen-public/xen.h | 478 + include/asm-xen/xen_proc.h | 13 + include/linux/.cvsignore | 3 + include/linux/802_11.h | 191 - include/linux/acpi_serial.h | 107 - include/linux/adb_mouse.h | 23 - include/linux/affs_fs_i.h | 59 - include/linux/affs_fs_sb.h | 57 - include/linux/atapi.h | 370 - include/linux/audit.h | 118 +- include/linux/blk.h | 2 - include/linux/bootmem.h | 1 + include/linux/buffer_head.h | 1 + include/linux/capability.h | 6 + include/linux/compiler-gcc+.h | 16 - include/linux/config.h | 4 +- include/linux/crash_dump.h | 34 + include/linux/crypto.h | 14 + include/linux/crypto/ksign.h | 22 + include/linux/crypto/mpi.h | 147 + include/linux/cyclades.h | 2 +- include/linux/dcache.h | 16 +- include/linux/delay.h | 17 +- include/linux/devpts_fs.h | 2 + include/linux/diskdump.h | 186 + include/linux/dp83840.h | 41 - include/linux/dtlk.h | 2 +- include/linux/errno.h | 3 + include/linux/ext2_fs.h | 12 +- include/linux/ext3_fs.h | 15 +- include/linux/file.h | 2 + include/linux/fs.h | 55 +- include/linux/fsfilter.h | 134 - include/linux/generic_serial.h | 2 +- include/linux/gfp.h | 8 +- include/linux/hayesesp.h | 4 +- include/linux/highmem.h | 3 + include/linux/ide.h | 4 +- include/linux/if_shaper.h | 2 +- include/linux/in_systm.h | 32 - include/linux/init_task.h | 4 + include/linux/interrupt.h | 4 + include/linux/ip.h | 1 + include/linux/ipc.h | 1 + include/linux/irq.h | 1 + include/linux/isdn_lzscomp.h | 28 - include/linux/iso_fs_i.h | 27 - include/linux/iso_fs_sb.h | 34 - include/linux/jiffies.h | 8 + include/linux/kernel.h | 20 + include/linux/kexec.h | 57 + include/linux/kmod.h | 1 + include/linux/libata.h | 1 + include/linux/major.h | 1 + include/linux/mm.h | 14 +- include/linux/module.h | 3 + include/linux/mount.h | 9 + include/linux/mpp.h | 18 - include/linux/msdos_fs_i.h | 29 - include/linux/msdos_fs_sb.h | 60 - include/linux/namei.h | 4 +- include/linux/namespace.h | 1 + include/linux/net.h | 2 + include/linux/netbeui.h | 16 - include/linux/netfilter_ddp.h | 14 - .../linux/netfilter_ipv4/compat_firewall.h | 45 - include/linux/netfilter_ipv4/ip_conntrack.h | 17 + .../linux/netfilter_ipv4/ip_conntrack_core.h | 7 + .../linux/netfilter_ipv4/ip_conntrack_pptp.h | 338 + .../netfilter_ipv4/ip_conntrack_proto_gre.h | 114 + .../linux/netfilter_ipv4/ip_conntrack_tuple.h | 6 + include/linux/netfilter_ipv4/ip_nat_pptp.h | 11 + include/linux/netfilter_ipv4/ipchains_core.h | 189 - include/linux/netfilter_ipv4/ipfwadm_core.h | 256 - include/linux/netfilter_ipx.h | 14 - include/linux/netfilter_x25.h | 15 - include/linux/nfs_mount.h | 1 + include/linux/nfsd/syscall.h | 19 + include/linux/pci.h | 20 +- include/linux/pci_ids.h | 2 + include/linux/percpu.h | 2 +- include/linux/proc_fs.h | 3 + include/linux/ptrace.h | 2 + include/linux/reboot.h | 2 + include/linux/reiserfs_fs.h | 12 + include/linux/reiserfs_fs_sb.h | 1 + include/linux/resource.h | 5 +- include/linux/sched.h | 62 +- include/linux/serial.h | 6 +- include/linux/serialP.h | 8 +- include/linux/shmem_fs.h | 3 + include/linux/skbuff.h | 6 +- include/linux/socket.h | 10 + include/linux/spinlock.h | 24 +- include/linux/stat.h | 1 + include/linux/sunrpc/auth.h | 1 + include/linux/sunrpc/clnt.h | 3 +- include/linux/sysctl.h | 65 + include/linux/sysfs.h | 2 + include/linux/timer.h | 3 + include/linux/tpqic02.h | 738 - include/linux/types.h | 2 + include/linux/umsdos_fs.h | 182 - include/linux/umsdos_fs.p | 100 - include/linux/umsdos_fs_i.h | 58 - include/linux/upd4990a.h | 140 - include/linux/vroot.h | 45 + include/linux/vs_base.h | 104 + include/linux/vs_context.h | 171 + include/linux/vs_cvirt.h | 109 + include/linux/vs_dlimit.h | 206 + include/linux/vs_limit.h | 167 + include/linux/vs_memory.h | 140 + include/linux/vs_network.h | 210 + include/linux/vs_sched.h | 110 + include/linux/vs_socket.h | 58 + include/linux/vserver/context.h | 162 + include/linux/vserver/context_cmd.h | 79 + include/linux/vserver/cvirt.h | 25 + include/linux/vserver/cvirt_cmd.h | 34 + include/linux/vserver/cvirt_def.h | 77 + include/linux/vserver/debug.h | 269 + include/linux/vserver/debug_cmd.h | 14 + include/linux/vserver/dlimit.h | 53 + include/linux/vserver/dlimit_cmd.h | 68 + include/linux/vserver/inode.h | 48 + include/linux/vserver/inode_cmd.h | 57 + include/linux/vserver/legacy.h | 48 + include/linux/vserver/limit.h | 23 + include/linux/vserver/limit_cmd.h | 36 + include/linux/vserver/limit_def.h | 21 + include/linux/vserver/namespace.h | 14 + include/linux/vserver/namespace_cmd.h | 16 + include/linux/vserver/network.h | 96 + include/linux/vserver/network_cmd.h | 89 + include/linux/vserver/sched.h | 25 + include/linux/vserver/sched_cmd.h | 47 + include/linux/vserver/sched_def.h | 55 + include/linux/vserver/signal_cmd.h | 25 + include/linux/vserver/switch.h | 97 + include/linux/vserver/xid.h | 145 + include/linux/wait.h | 6 +- include/linux/workqueue.h | 3 + include/net/af_unix.h | 27 +- include/net/ieee80211.h | 882 + include/net/irda/ircomm_tty.h | 4 +- include/net/route.h | 72 +- include/net/sock.h | 28 +- include/net/tcp.h | 24 +- include/net/tux.h | 802 + include/net/tux_u.h | 163 + include/pcmcia/ftl.h | 73 - include/pcmcia/memory.h | 41 - include/sound/sndmagic.h | 218 - include/sound/soundmem.h | 8 - include/sound/yss225.h | 23 - init/Kconfig | 38 +- init/calibrate.c | 8 +- init/main.c | 3 +- init/version.c | 5 + ipc/mqueue.c | 13 +- ipc/msg.c | 7 +- ipc/sem.c | 7 +- ipc/shm.c | 19 +- ipc/util.c | 6 +- kernel/.cvsignore | 2 + kernel/Makefile | 10 +- kernel/audit.c | 647 +- kernel/auditsc.c | 460 +- kernel/capability.c | 1 + kernel/cpuset.c | 1 + kernel/crash.c | 117 + kernel/dump.c | 246 + kernel/exit.c | 24 +- kernel/fork.c | 53 +- kernel/irq/manage.c | 81 +- kernel/kexec.c | 637 + kernel/kmod.c | 25 +- kernel/kthread.c | 2 +- kernel/module-verify-sig.c | 442 + kernel/module-verify.c | 340 + kernel/module-verify.h | 37 + kernel/module.c | 21 +- kernel/panic.c | 22 +- kernel/pid.c | 2 +- kernel/posix-cpu-timers.c | 1 + kernel/posix-timers.c | 3 +- kernel/power/pmdisk.c | 1166 - kernel/printk.c | 55 +- kernel/profile.c | 1 + kernel/sched.c | 237 +- kernel/signal.c | 65 +- kernel/softirq.c | 32 + kernel/sys.c | 88 +- kernel/sysctl.c | 89 +- kernel/timer.c | 79 +- kernel/user.c | 23 +- kernel/vserver/Kconfig | 195 + kernel/vserver/Makefile | 16 + kernel/vserver/context.c | 803 + kernel/vserver/cvirt.c | 260 + kernel/vserver/cvirt_init.h | 77 + kernel/vserver/cvirt_proc.h | 92 + kernel/vserver/dlimit.c | 544 + kernel/vserver/helper.c | 174 + kernel/vserver/history.c | 184 + kernel/vserver/init.c | 44 + kernel/vserver/inode.c | 401 + kernel/vserver/legacy.c | 109 + kernel/vserver/legacynet.c | 86 + kernel/vserver/limit.c | 178 + kernel/vserver/limit_init.h | 28 + kernel/vserver/limit_proc.h | 58 + kernel/vserver/namespace.c | 124 + kernel/vserver/network.c | 757 + kernel/vserver/proc.c | 863 + kernel/vserver/sched.c | 342 + kernel/vserver/sched_init.h | 38 + kernel/vserver/sched_proc.h | 40 + kernel/vserver/signal.c | 119 + kernel/vserver/switch.c | 260 + kernel/vserver/sysctl.c | 204 + kernel/vserver/vci_config.h | 70 + kernel/workqueue.c | 34 + lib/.cvsignore | 2 + lib/kobject_uevent.c | 1 + lib/zlib_inflate/inffixed.h | 151 - mm/Makefile | 2 +- mm/bootmem.c | 5 + mm/filemap.c | 21 +- mm/fremap.c | 14 +- mm/highmem.c | 9 + mm/memory.c | 13 +- mm/mlock.c | 14 +- mm/mmap.c | 169 +- mm/mprotect.c | 5 +- mm/mremap.c | 16 +- mm/nommu.c | 6 +- mm/oom_kill.c | 46 +- mm/oom_panic.c | 51 + mm/page_alloc.c | 13 +- mm/rmap.c | 1 + mm/shmem.c | 5 +- mm/slab.c | 143 +- mm/swapfile.c | 3 + mm/truncate.c | 2 + mm/vmscan.c | 2 +- net/802/tr.c | 22 +- net/Kconfig | 17 + net/Makefile | 1 + net/bluetooth/syms.c | 84 - net/bridge/br_netfilter.c | 2 +- net/core/dev.c | 11 + net/core/netfilter.c | 6 + net/core/rtnetlink.c | 6 + net/core/skbuff.c | 6 + net/core/sock.c | 29 + net/ipv4/Kconfig | 11 + net/ipv4/af_inet.c | 66 +- net/ipv4/devinet.c | 37 + net/ipv4/fib_hash.c | 5 +- net/ipv4/icmp.c | 87 + net/ipv4/ip_nat_dumb.c | 166 - net/ipv4/ip_output.c | 3 - net/ipv4/ipvs/ip_vs_proto_icmp.c | 182 - net/ipv4/netfilter/Kconfig | 43 + net/ipv4/netfilter/Makefile | 7 + net/ipv4/netfilter/ip_conntrack_core.c | 12 +- net/ipv4/netfilter/ip_conntrack_pptp.c | 790 + net/ipv4/netfilter/ip_conntrack_pptp_priv.h | 24 + net/ipv4/netfilter/ip_conntrack_proto_gre.c | 369 + net/ipv4/netfilter/ip_conntrack_proto_sctp.c | 2 +- net/ipv4/netfilter/ip_conntrack_proto_tcp.c | 2 +- net/ipv4/netfilter/ip_conntrack_standalone.c | 19 + net/ipv4/netfilter/ip_fw_compat.c | 303 - net/ipv4/netfilter/ip_fw_compat.h | 28 - net/ipv4/netfilter/ip_fw_compat_masq.c | 342 - net/ipv4/netfilter/ip_fw_compat_redir.c | 318 - net/ipv4/netfilter/ip_nat_pptp.c | 388 + net/ipv4/netfilter/ip_nat_proto_gre.c | 214 + net/ipv4/netfilter/ipchains_core.c | 1854 - net/ipv4/netfilter/ipfwadm_core.c | 1464 - net/ipv4/netfilter/ipt_owner.c | 2 +- net/ipv4/raw.c | 40 +- net/ipv4/sysctl_net_ipv4.c | 50 + net/ipv4/tcp.c | 3 +- net/ipv4/tcp_diag.c | 7 + net/ipv4/tcp_input.c | 1 + net/ipv4/tcp_ipv4.c | 97 +- net/ipv4/tcp_minisocks.c | 20 + net/ipv4/tcp_output.c | 5 + net/ipv4/udp.c | 124 +- net/ipv6/README | 8 - net/ipv6/addrconf.c | 13 +- net/ipv6/netfilter/ip6t_owner.c | 2 +- net/irda/crc.c | 68 - net/netlink/af_netlink.c | 3 + net/netlink/netlink_dev.c | 278 - net/packet/af_packet.c | 21 +- net/sched/sch_csz.c | 1057 - net/sched/sch_delay.c | 270 - net/socket.c | 186 +- net/sunrpc/auth.c | 3 + net/sunrpc/auth_gss/gss_pseudoflavors.c | 237 - net/sunrpc/auth_gss/sunrpcgss_syms.c | 37 - net/sunrpc/auth_unix.c | 16 +- net/sunrpc/clnt.c | 9 +- net/sunrpc/svcauth_des.c | 215 - net/tux/Kconfig | 25 + net/tux/Makefile | 12 + net/tux/abuf.c | 190 + net/tux/accept.c | 859 + net/tux/cachemiss.c | 265 + net/tux/cgi.c | 160 + net/tux/directory.c | 302 + net/tux/extcgi.c | 329 + net/tux/gzip.c | 40 + net/tux/input.c | 640 + net/tux/logger.c | 836 + net/tux/main.c | 1413 + net/tux/mod.c | 262 + net/tux/output.c | 352 + net/tux/parser.h | 102 + net/tux/postpone.c | 77 + net/tux/proc.c | 1149 + net/tux/proto_ftp.c | 1549 + net/tux/proto_http.c | 2197 ++ net/tux/redirect.c | 162 + net/tux/times.c | 392 + net/tux/times.h | 26 + net/tux/userspace.c | 27 + net/unix/af_unix.c | 5 +- net/x25/af_x25.c | 5 +- net/xfrm/xfrm_export.c | 63 - net/xfrm/xfrm_output.c | 46 - scripts/.cvsignore | 4 + scripts/README.Menuconfig | 201 - scripts/basic/.cvsignore | 3 + scripts/empty.c | 1 - scripts/file2alias.c | 282 - scripts/kconfig/.cvsignore | 5 + scripts/kconfig/Makefile | 6 +- scripts/kconfig/conf.c | 26 +- scripts/kconfig/confdata.c | 4 +- scripts/kernel-2.6-planetlab.spec | 1912 + scripts/lxdialog/.cvsignore | 1 + scripts/makeman | 185 - scripts/mk_elfconfig.c | 65 - scripts/mkcompile_h | 4 +- scripts/mkconfigs | 67 - scripts/mkspec | 72 - scripts/mod/.cvsignore | 3 + scripts/modpost.c | 739 - scripts/modpost.h | 103 - scripts/modsign/Makefile | 27 + scripts/modsign/mod-extract.c | 900 + scripts/modsign/mod-extract.sh | 22 + scripts/modsign/modsign.sh | 57 + scripts/reference_discarded.pl | 4 +- scripts/reference_init.pl | 1 + scripts/split-man | 112 - scripts/sumversion.c | 544 - security/commoncap.c | 5 +- security/security.c | 17 + security/selinux/avc.c | 40 +- security/selinux/hooks.c | 2 +- security/selinux/nlmsgtab.c | 10 +- security/selinux/ss/services.c | 4 +- sound/core/ioctl32/Makefile | 11 - sound/core/ioctl32/hwdep32.c | 73 - sound/core/ioctl32/ioctl32.c | 433 - sound/core/ioctl32/ioctl32.h | 102 - sound/core/ioctl32/pcm32.c | 464 - sound/core/ioctl32/rawmidi32.c | 91 - sound/core/ioctl32/seq32.c | 116 - sound/core/ioctl32/timer32.c | 105 - sound/core/oss/Makefile | 1 + sound/core/oss/pcm_oss.c | 7 + sound/core/seq/oss/seq_oss_misc.c | 110 - sound/isa/cs423x/pc98.c | 438 - sound/isa/cs423x/pc9801_118_magic.h | 411 - sound/isa/cs423x/sound_pc9800.h | 23 - sound/isa/gus/gus_lfo.c | 429 - sound/oss/cs4232.h | 3 - sound/oss/maestro_tables.h | 333 - sound/pci/ice1712/prodigy.c | 663 - sound/pci/ice1712/prodigy.h | 67 - sound/pci/intel8x0.c | 18 + usr/.cvsignore | 3 + 2364 files changed, 184605 insertions(+), 388606 deletions(-) create mode 100644 .cvsignore delete mode 100644 Documentation/BK-usage/00-INDEX delete mode 100644 Documentation/BK-usage/bk-kernel-howto.txt delete mode 100755 Documentation/BK-usage/bk-make-sum delete mode 100755 Documentation/BK-usage/bksend delete mode 100755 Documentation/BK-usage/bz64wrap delete mode 100755 Documentation/BK-usage/cpcset delete mode 100755 Documentation/BK-usage/cset-to-linus delete mode 100755 Documentation/BK-usage/csets-to-patches delete mode 100755 Documentation/BK-usage/gcapatch delete mode 100755 Documentation/BK-usage/unbz64wrap create mode 100644 Documentation/COPYING.modules delete mode 100644 Documentation/DocBook/mousedrivers.tmpl delete mode 100644 Documentation/DocBook/tulip-user.tmpl delete mode 100644 Documentation/DocBook/via-audio.tmpl delete mode 100644 Documentation/README.moxa delete mode 100644 Documentation/arm/SA1100/PCMCIA delete mode 100644 Documentation/arm/XScale/ADIFCC/80200EVB delete mode 100644 Documentation/arm/XScale/IOP3XX/IQ80310 delete mode 100644 Documentation/arm/XScale/IOP3XX/IQ80321 delete mode 100644 Documentation/arm/XScale/IOP3XX/aau.txt delete mode 100644 Documentation/arm/XScale/IOP3XX/dma.txt delete mode 100644 Documentation/arm/XScale/IOP3XX/message.txt delete mode 100644 Documentation/arm/XScale/IOP3XX/pmon.txt delete mode 100644 Documentation/arm/XScale/cache-lock.txt delete mode 100644 Documentation/arm/XScale/pmu.txt delete mode 100644 Documentation/arm/XScale/tlb-lock.txt delete mode 100644 Documentation/as-iosched.txt delete mode 100644 Documentation/cdrom/mcd delete mode 100644 Documentation/digiboard.txt delete mode 100644 Documentation/dvb/firmware.txt delete mode 100644 Documentation/filesystems/umsdos.txt delete mode 100644 Documentation/i2c/i2c-old-porting delete mode 100644 Documentation/i2c/i2c-parport delete mode 100644 Documentation/i2c/i2c-pport delete mode 100644 Documentation/i2c/i2c-velleman create mode 100644 Documentation/input/appletouch.txt delete mode 100644 Documentation/isdn/README.eicon create mode 100644 Documentation/kdump.txt delete mode 100644 Documentation/mkdev.cciss delete mode 100644 Documentation/mkdev.ida create mode 100644 Documentation/networking/README.ipw2100 create mode 100644 Documentation/networking/README.ipw2200 delete mode 100644 Documentation/networking/ethertap.txt delete mode 100644 Documentation/scsi/ChangeLog delete mode 100644 Documentation/scsi/qla2xxx.revision.notes delete mode 100644 Documentation/sound/oss/ChangeLog.awe delete mode 100644 Documentation/sound/oss/ChangeLog.multisound delete mode 100644 Documentation/usb/philips.txt delete mode 100644 Documentation/usb/silverlink.txt create mode 100644 Documentation/vserver/debug.txt delete mode 100644 arch/alpha/lib/io.c delete mode 100644 arch/arm/boot/compressed/head-ftvpci.S delete mode 100644 arch/arm/boot/compressed/hw-bse.c delete mode 100644 arch/arm/common/platform.c delete mode 100644 arch/arm/common/plx90x0.c delete mode 100644 arch/arm/configs/a5k_defconfig delete mode 100644 arch/arm/configs/adi_evb_defconfig delete mode 100644 arch/arm/configs/adsbitsy_defconfig delete mode 100644 arch/arm/configs/brutus_defconfig delete mode 100644 arch/arm/configs/empeg_defconfig delete mode 100644 arch/arm/configs/flexanet_defconfig delete mode 100644 arch/arm/configs/freebird_defconfig delete mode 100644 arch/arm/configs/freebird_new_defconfig delete mode 100644 arch/arm/configs/graphicsclient_defconfig delete mode 100644 arch/arm/configs/graphicsmaster_defconfig delete mode 100644 arch/arm/configs/huw_webpanel_defconfig delete mode 100644 arch/arm/configs/iq80310_defconfig delete mode 100644 arch/arm/configs/pangolin_defconfig delete mode 100644 arch/arm/configs/pfs168_mqtft_defconfig delete mode 100644 arch/arm/configs/pfs168_mqvga_defconfig delete mode 100644 arch/arm/configs/pfs168_sastn_defconfig delete mode 100644 arch/arm/configs/pfs168_satft_defconfig delete mode 100644 arch/arm/configs/sherman_defconfig delete mode 100644 arch/arm/configs/stork_defconfig delete mode 100644 arch/arm/configs/system3_defconfig delete mode 100644 arch/arm/configs/trizeps_defconfig delete mode 100644 arch/arm/defconfig delete mode 100644 arch/arm/kernel/time-acorn.c delete mode 100644 arch/arm/lib/io-readsl-armv3.S delete mode 100644 arch/arm/lib/io-readsl-armv4.S delete mode 100644 arch/arm/mach-adifcc/Makefile delete mode 100644 arch/arm/mach-adifcc/arch.c delete mode 100644 arch/arm/mach-adifcc/irq.c delete mode 100644 arch/arm/mach-adifcc/mm.c delete mode 100644 arch/arm/mach-footbridge/arch.c delete mode 100644 arch/arm/mach-footbridge/irq.c delete mode 100644 arch/arm/mach-footbridge/mm.c delete mode 100644 arch/arm/mach-ftvpci/Makefile delete mode 100644 arch/arm/mach-ftvpci/core.c delete mode 100644 arch/arm/mach-ftvpci/leds.c delete mode 100644 arch/arm/mach-ftvpci/pci.c delete mode 100644 arch/arm/mach-iop3xx/arch.c delete mode 100644 arch/arm/mach-iop3xx/iop310-irq.c delete mode 100644 arch/arm/mach-iop3xx/iop310-pci.c delete mode 100644 arch/arm/mach-iop3xx/iop321-mm.c delete mode 100644 arch/arm/mach-iop3xx/iop331-mm.c delete mode 100644 arch/arm/mach-iop3xx/iq80310-irq.c delete mode 100644 arch/arm/mach-iop3xx/iq80310-pci.c delete mode 100644 arch/arm/mach-iop3xx/iq80310-time.c delete mode 100644 arch/arm/mach-iop3xx/mm-321.c delete mode 100644 arch/arm/mach-iop3xx/mm.c delete mode 100644 arch/arm/mach-iop3xx/xs80200-irq.c delete mode 100644 arch/arm/mach-ixp4xx/prpmc1100-pci.c delete mode 100644 arch/arm/mach-ixp4xx/prpmc1100-setup.c delete mode 100644 arch/arm/mach-lh7a40x/fiq.S delete mode 100644 arch/arm/mach-lh7a40x/ide-lpd7a40x.c delete mode 100644 arch/arm/mach-omap/bus.c delete mode 100644 arch/arm/mach-omap/clocks.c delete mode 100644 arch/arm/mach-omap/innovator1510.c delete mode 100644 arch/arm/mach-omap/innovator1610.c delete mode 100644 arch/arm/mach-omap/irq.h delete mode 100644 arch/arm/mach-omap/leds-perseus2.c delete mode 100644 arch/arm/mach-omap/omap-generic.c delete mode 100644 arch/arm/mach-omap/omap-perseus2.c delete mode 100644 arch/arm/mach-sa1100/adsbitsy.c delete mode 100644 arch/arm/mach-sa1100/brutus.c delete mode 100644 arch/arm/mach-sa1100/empeg.c delete mode 100644 arch/arm/mach-sa1100/flexanet.c delete mode 100644 arch/arm/mach-sa1100/freebird.c delete mode 100644 arch/arm/mach-sa1100/graphicsclient.c delete mode 100644 arch/arm/mach-sa1100/graphicsmaster.c delete mode 100644 arch/arm/mach-sa1100/huw_webpanel.c delete mode 100644 arch/arm/mach-sa1100/itsy.c delete mode 100644 arch/arm/mach-sa1100/leds-adsbitsy.c delete mode 100644 arch/arm/mach-sa1100/leds-brutus.c delete mode 100644 arch/arm/mach-sa1100/leds-flexanet.c delete mode 100644 arch/arm/mach-sa1100/leds-graphicsclient.c delete mode 100644 arch/arm/mach-sa1100/leds-graphicsmaster.c delete mode 100644 arch/arm/mach-sa1100/leds-pfs168.c delete mode 100644 arch/arm/mach-sa1100/leds-system3.c delete mode 100644 arch/arm/mach-sa1100/nanoengine.c delete mode 100644 arch/arm/mach-sa1100/omnimeter.c delete mode 100644 arch/arm/mach-sa1100/pangolin.c delete mode 100644 arch/arm/mach-sa1100/pfs168.c delete mode 100644 arch/arm/mach-sa1100/sherman.c delete mode 100644 arch/arm/mach-sa1100/stork.c delete mode 100644 arch/arm/mach-sa1100/system3.c delete mode 100644 arch/arm/mach-sa1100/trizeps.c delete mode 100644 arch/arm/mach-sa1100/xp860.c delete mode 100644 arch/arm/mach-sa1100/yopy.c delete mode 100644 arch/arm/mach-tbox/Makefile delete mode 100644 arch/arm/mach-tbox/core.c delete mode 100644 arch/arm/mm/copypage-v4mc.S delete mode 100644 arch/arm/mm/copypage-xscale.S delete mode 100644 arch/arm/mm/minicache.c delete mode 100644 arch/arm26/boot/compressed/ofw-shark.c delete mode 100644 arch/arm26/kernel/time-acorn.c delete mode 100644 arch/arm26/lib/io-readsl-armv3.S delete mode 100644 arch/arm26/lib/io-readsw-armv3.S delete mode 100644 arch/arm26/lib/io-writesw-armv3.S delete mode 100644 arch/arm26/machine/head.S delete mode 100644 arch/arm26/machine/oldlatches.c delete mode 100644 arch/arm26/machine/small_page.c delete mode 100644 arch/arm26/mm/mm-memc.c delete mode 100644 arch/cris/arch-v10/drivers/ethernet.c delete mode 100644 arch/cris/arch-v10/drivers/ide.c delete mode 100644 arch/cris/arch-v10/drivers/serial.c delete mode 100644 arch/cris/arch-v10/drivers/serial.h delete mode 100644 arch/cris/kernel/hexify.c delete mode 100644 arch/cris/kernel/ksyms.c delete mode 100644 arch/h8300/platform/h8300h/aki3068net/ram.ld delete mode 100644 arch/h8300/platform/h8300h/generic/ram.ld delete mode 100644 arch/h8300/platform/h8300h/generic/rom.ld delete mode 100644 arch/h8300/platform/h8300h/h8max/ram.ld delete mode 100644 arch/h8300/platform/h8s/edosk2674/ram.ld delete mode 100644 arch/h8300/platform/h8s/edosk2674/rom.ld delete mode 100644 arch/h8300/platform/h8s/generic/ram.ld delete mode 100644 arch/h8300/platform/h8s/generic/rom.ld create mode 100644 arch/i386/boot/.cvsignore create mode 100644 arch/i386/boot/compressed/.cvsignore create mode 100644 arch/i386/boot/tools/.cvsignore delete mode 100644 arch/i386/boot98/Makefile delete mode 100644 arch/i386/boot98/bootsect.S delete mode 100644 arch/i386/boot98/compressed/Makefile delete mode 100644 arch/i386/boot98/compressed/head.S delete mode 100644 arch/i386/boot98/compressed/misc.c delete mode 100644 arch/i386/boot98/compressed/vmlinux.scr delete mode 100644 arch/i386/boot98/install.sh delete mode 100644 arch/i386/boot98/mtools.conf.in delete mode 100644 arch/i386/boot98/setup.S delete mode 100644 arch/i386/boot98/tools/build.c delete mode 100644 arch/i386/boot98/video.S create mode 100644 arch/i386/kernel/.cvsignore delete mode 100644 arch/i386/kernel/cpu/cpufreq/acpi.c create mode 100644 arch/i386/kernel/crash_dump.c create mode 100644 arch/i386/kernel/dstack.S create mode 100644 arch/i386/kernel/dstackdump.c create mode 100644 arch/i386/kernel/machine_kexec.c create mode 100644 arch/i386/kernel/relocate_kernel.S create mode 100644 arch/i386/kernel/stackoverflow.c delete mode 100644 arch/i386/kernel/std_resources.c delete mode 100644 arch/i386/kernel/vsyscall.lds delete mode 100644 arch/i386/mach-es7000/es7000.c delete mode 100644 arch/i386/mach-es7000/setup.c delete mode 100644 arch/i386/mach-es7000/topology.c delete mode 100644 arch/i386/mach-pc9800/Makefile delete mode 100644 arch/i386/mach-pc9800/setup.c delete mode 100644 arch/i386/mach-pc9800/std_resources.c delete mode 100644 arch/i386/mach-pc9800/topology.c delete mode 100644 arch/i386/pci/changelog delete mode 100644 arch/i386/power/pmdisk.S delete mode 100644 arch/ia64/configs/generic_defconfig delete mode 100644 arch/ia64/dig/topology.c delete mode 100644 arch/ia64/kernel/perfmon_hpsim.h delete mode 100644 arch/ia64/sn/fakeprom/Makefile delete mode 100644 arch/ia64/sn/fakeprom/README delete mode 100644 arch/ia64/sn/fakeprom/fpmem.c delete mode 100644 arch/ia64/sn/fakeprom/fpmem.h delete mode 100644 arch/ia64/sn/fakeprom/fprom.lds delete mode 100644 arch/ia64/sn/fakeprom/fpromasm.S delete mode 100644 arch/ia64/sn/fakeprom/fw-emu.c delete mode 100644 arch/ia64/sn/fakeprom/klgraph_init.c delete mode 100644 arch/ia64/sn/fakeprom/main.c delete mode 100644 arch/ia64/sn/fakeprom/make_textsym delete mode 100644 arch/ia64/sn/fakeprom/runsim delete mode 100644 arch/ia64/sn/include/pci/pcibus_provider_defs.h delete mode 100644 arch/ia64/sn/include/pci/pcidev.h delete mode 100644 arch/ia64/sn/include/shub.h delete mode 100644 arch/ia64/sn/include/shubio.h delete mode 100644 arch/ia64/sn/io/Makefile delete mode 100644 arch/ia64/sn/io/cdl.c delete mode 100644 arch/ia64/sn/io/drivers/Makefile delete mode 100644 arch/ia64/sn/io/drivers/ioconfig_bus.c delete mode 100644 arch/ia64/sn/io/hwgfs/Makefile delete mode 100644 arch/ia64/sn/io/hwgfs/hcl.c delete mode 100644 arch/ia64/sn/io/hwgfs/hcl_util.c delete mode 100644 arch/ia64/sn/io/hwgfs/interface.c delete mode 100644 arch/ia64/sn/io/hwgfs/labelcl.c delete mode 100644 arch/ia64/sn/io/hwgfs/ramfs.c delete mode 100644 arch/ia64/sn/io/io.c delete mode 100644 arch/ia64/sn/io/machvec/Makefile delete mode 100644 arch/ia64/sn/io/machvec/iomv.c delete mode 100644 arch/ia64/sn/io/machvec/pci.c delete mode 100644 arch/ia64/sn/io/machvec/pci_bus_cvlink.c delete mode 100644 arch/ia64/sn/io/machvec/pci_dma.c delete mode 100644 arch/ia64/sn/io/platform_init/Makefile delete mode 100644 arch/ia64/sn/io/platform_init/sgi_io_init.c delete mode 100644 arch/ia64/sn/io/sn2/Makefile delete mode 100644 arch/ia64/sn/io/sn2/bte_error.c delete mode 100644 arch/ia64/sn/io/sn2/geo_op.c delete mode 100644 arch/ia64/sn/io/sn2/klconflib.c delete mode 100644 arch/ia64/sn/io/sn2/klgraph.c delete mode 100644 arch/ia64/sn/io/sn2/l1_command.c delete mode 100644 arch/ia64/sn/io/sn2/ml_SN_init.c delete mode 100644 arch/ia64/sn/io/sn2/ml_SN_intr.c delete mode 100644 arch/ia64/sn/io/sn2/ml_iograph.c delete mode 100644 arch/ia64/sn/io/sn2/module.c delete mode 100644 arch/ia64/sn/io/sn2/pcibr/Makefile delete mode 100644 arch/ia64/sn/io/sn2/pcibr/pcibr_ate.c delete mode 100644 arch/ia64/sn/io/sn2/pcibr/pcibr_config.c delete mode 100644 arch/ia64/sn/io/sn2/pcibr/pcibr_dvr.c delete mode 100644 arch/ia64/sn/io/sn2/pcibr/pcibr_error.c delete mode 100644 arch/ia64/sn/io/sn2/pcibr/pcibr_hints.c delete mode 100644 arch/ia64/sn/io/sn2/pcibr/pcibr_intr.c delete mode 100644 arch/ia64/sn/io/sn2/pcibr/pcibr_reg.c delete mode 100644 arch/ia64/sn/io/sn2/pcibr/pcibr_rrb.c delete mode 100644 arch/ia64/sn/io/sn2/pcibr/pcibr_slot.c delete mode 100644 arch/ia64/sn/io/sn2/pciio.c delete mode 100644 arch/ia64/sn/io/sn2/pic.c delete mode 100644 arch/ia64/sn/io/sn2/shub.c delete mode 100644 arch/ia64/sn/io/sn2/shub_intr.c delete mode 100644 arch/ia64/sn/io/sn2/shuberror.c delete mode 100644 arch/ia64/sn/io/sn2/shubio.c delete mode 100644 arch/ia64/sn/io/sn2/xbow.c delete mode 100644 arch/ia64/sn/io/sn2/xtalk.c delete mode 100644 arch/ia64/sn/io/snia_if.c delete mode 100644 arch/ia64/sn/io/xswitch.c delete mode 100644 arch/m68k/apollo/dn_debug.c delete mode 100644 arch/m68k/sun3x/sun3x_ksyms.c delete mode 100644 arch/m68knommu/platform/5206/ARNEWSH/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5206e/MOTOROLA/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5206e/eLITE/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5249/MOTOROLA/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5272/CANCam/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5272/MOTOROLA/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5272/NETtel/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5272/SCALES/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5272/senTec/crt0_ram.S delete mode 100644 arch/m68knommu/platform/527x/M5271EVB/crt0_ram.S delete mode 100644 arch/m68knommu/platform/527x/M5275EVB/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5282/MOTOROLA/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5282/Makefile delete mode 100644 arch/m68knommu/platform/5282/config.c delete mode 100644 arch/m68knommu/platform/5282/pit.c delete mode 100644 arch/m68knommu/platform/5282/senTec/crt0_ram.S delete mode 100644 arch/m68knommu/platform/528x/M5282EVB/crt0_ram.S delete mode 100644 arch/m68knommu/platform/528x/senTec/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5307/ARNEWSH/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5307/CLEOPATRA/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5307/MOTOROLA/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5307/MP3/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5307/NETtel/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5407/CLEOPATRA/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5407/MOTOROLA/crt0_ram.S delete mode 100644 arch/m68knommu/platform/68328/pilot/crt0_rom.S delete mode 100644 arch/m68knommu/platform/68360/uCquicc/crt0_ram.S delete mode 100644 arch/m68knommu/platform/68360/uCquicc/crt0_rom.S delete mode 100644 arch/m68knommu/platform/68EZ328/ucsimm/crt0_fixed.S delete mode 100644 arch/m68knommu/platform/68EZ328/ucsimm/crt0_himem.S delete mode 100644 arch/m68knommu/platform/68EZ328/ucsimm/crt0_ram.S delete mode 100644 arch/m68knommu/platform/68EZ328/ucsimm/crt0_rom.S delete mode 100644 arch/m68knommu/platform/68VZ328/de2/Makefile delete mode 100644 arch/m68knommu/platform/68VZ328/de2/crt0_ram.S delete mode 100644 arch/m68knommu/platform/68VZ328/ucdimm/Makefile delete mode 100644 arch/m68knommu/platform/68VZ328/ucdimm/crt0_fixed.S delete mode 100644 arch/m68knommu/platform/68VZ328/ucdimm/crt0_himem.S delete mode 100644 arch/m68knommu/platform/68VZ328/ucdimm/crt0_ram.S delete mode 100644 arch/m68knommu/platform/68VZ328/ucdimm/crt0_rom.S delete mode 100644 arch/mips/baget/Makefile delete mode 100644 arch/mips/baget/baget.c delete mode 100644 arch/mips/baget/bagetIRQ.S delete mode 100644 arch/mips/baget/balo.c delete mode 100644 arch/mips/baget/balo_supp.S delete mode 100644 arch/mips/baget/irq.c delete mode 100644 arch/mips/baget/ld.script.balo delete mode 100644 arch/mips/baget/print.c delete mode 100644 arch/mips/baget/prom/Makefile delete mode 100644 arch/mips/baget/prom/init.c delete mode 100644 arch/mips/baget/reset.c delete mode 100644 arch/mips/baget/setup.c delete mode 100644 arch/mips/baget/time.c delete mode 100644 arch/mips/configs/bosporus_defconfig delete mode 100644 arch/mips/configs/eagle_defconfig delete mode 100644 arch/mips/configs/mirage_defconfig delete mode 100644 arch/mips/configs/mtx1_defconfig delete mode 100644 arch/mips/configs/pb1000_defconfig delete mode 100644 arch/mips/configs/xxs1500_defconfig delete mode 100644 arch/mips/ddb5xxx/common/irq.c delete mode 100644 arch/mips/hp-lj/Makefile delete mode 100644 arch/mips/hp-lj/asic.c delete mode 100644 arch/mips/hp-lj/gdb_hook.c delete mode 100644 arch/mips/hp-lj/init.c delete mode 100644 arch/mips/hp-lj/int-handler.S delete mode 100644 arch/mips/hp-lj/irq.c delete mode 100644 arch/mips/hp-lj/setup.c delete mode 100644 arch/mips/hp-lj/utils.c delete mode 100644 arch/mips/hp-lj/utils.h delete mode 100644 arch/mips/kernel/irix5sys.h delete mode 100644 arch/mips/kernel/reg.c delete mode 100644 arch/mips/mm-32/Makefile delete mode 100644 arch/mips/mm-32/tlbex-r4k.S delete mode 100644 arch/mips/mm-64/Makefile delete mode 100644 arch/mips/mm-64/tlb-dbg-r4k.c delete mode 100644 arch/mips/mm-64/tlb-glue-r4k.S delete mode 100644 arch/mips/mm-64/tlb-glue-sb1.S delete mode 100644 arch/mips/mm-64/tlbex-r4k.S delete mode 100644 arch/mips/mm/tlb64-glue-r4k.S delete mode 100644 arch/mips/mm/tlb64-glue-sb1.S delete mode 100644 arch/mips/mm/tlbex-r3k.S delete mode 100644 arch/mips/mm/tlbex32-mips32.S delete mode 100644 arch/mips/mm/tlbex32-r3k.S delete mode 100644 arch/mips/mm/tlbex32-r4k.S delete mode 100644 arch/mips/mm/tlbex64-r4k.S delete mode 100644 arch/mips/momentum/ocelot_c/pci-irq.c delete mode 100644 arch/mips/momentum/ocelot_g/gt64240.h delete mode 100644 arch/mips/momentum/ocelot_g/gt64240_dep.h delete mode 100644 arch/mips/momentum/ocelot_g/pci-irq.c delete mode 100644 arch/mips/pci/fixup-eagle.c delete mode 100644 arch/mips/pci/fixup-lasat.c delete mode 100644 arch/mips/pci/fixup-mv64340.c delete mode 100644 arch/mips/pci/fixup-tb0229.c delete mode 100644 arch/mips/pci/fixup-victor-mpc30x.c delete mode 100644 arch/mips/pci/ops-mv64340.c delete mode 100644 arch/mips/pci/ops-vrc4173.c delete mode 100644 arch/mips/pci/pci-hplj.c delete mode 100644 arch/mips/ramdisk/Makefile delete mode 100644 arch/mips/ramdisk/ld.script delete mode 100644 arch/mips/vr41xx/common/ksyms.c delete mode 100644 arch/mips/vr41xx/common/rtc.c delete mode 100644 arch/mips/vr41xx/common/serial.c delete mode 100644 arch/mips/vr41xx/common/vrc4171.c delete mode 100644 arch/mips/vr41xx/nec-eagle/Makefile delete mode 100644 arch/mips/vr41xx/nec-eagle/irq.c delete mode 100644 arch/mips/vr41xx/nec-eagle/setup.c delete mode 100644 arch/mips/vr41xx/tanbac-tb0229/reboot.c delete mode 100644 arch/mips/vr41xx/tanbac-tb0229/tb0219.c delete mode 100644 arch/parisc/configs/n4000_defconfig delete mode 100644 arch/parisc/kernel/head64.S delete mode 100644 arch/ppc/8260_io/commproc.c delete mode 100644 arch/ppc/8260_io/uart.c delete mode 100644 arch/ppc/8xx_io/uart.c delete mode 100644 arch/ppc/boot/include/zlib.h delete mode 100644 arch/ppc/boot/lib/zlib.c delete mode 100644 arch/ppc/boot/simple/chrpmap.S delete mode 100644 arch/ppc/boot/simple/gt64260_tty.c delete mode 100644 arch/ppc/boot/simple/legacy.S delete mode 100644 arch/ppc/boot/simple/misc-chestnut.S delete mode 100644 arch/ppc/boot/simple/misc-ev64260.S delete mode 100644 arch/ppc/boot/simple/misc-mv64x60.S delete mode 100644 arch/ppc/boot/simple/mv64x60_stub.c delete mode 100644 arch/ppc/defconfig delete mode 100644 arch/ppc/kernel/head_e500.S create mode 100644 arch/ppc/kernel/machine_kexec.c delete mode 100644 arch/ppc/kernel/pci-dma.c create mode 100644 arch/ppc/kernel/relocate_kernel.S delete mode 100644 arch/ppc/mm/cachemap.c delete mode 100644 arch/ppc/ocp/Makefile delete mode 100644 arch/ppc/ocp/ocp-driver.c delete mode 100644 arch/ppc/ocp/ocp-probe.c delete mode 100644 arch/ppc/ocp/ocp.c delete mode 100644 arch/ppc/oprofile/init.c delete mode 100644 arch/ppc/platforms/85xx/mpc8540.c delete mode 100644 arch/ppc/platforms/85xx/mpc8555.c delete mode 100644 arch/ppc/platforms/85xx/mpc8560.c delete mode 100644 arch/ppc/platforms/85xx/mpc85xx_devices.c delete mode 100644 arch/ppc/platforms/85xx/mpc85xx_sys.c delete mode 100644 arch/ppc/platforms/error_log.c delete mode 100644 arch/ppc/platforms/error_log.h delete mode 100644 arch/ppc/platforms/est8260_setup.c delete mode 100644 arch/ppc/platforms/ev64260_setup.c delete mode 100644 arch/ppc/platforms/lopec_pci.c delete mode 100644 arch/ppc/platforms/lopec_serial.h delete mode 100644 arch/ppc/platforms/lopec_setup.c delete mode 100644 arch/ppc/platforms/mcpn765_serial.h delete mode 100644 arch/ppc/platforms/mvme5100_pci.c delete mode 100644 arch/ppc/platforms/mvme5100_serial.h delete mode 100644 arch/ppc/platforms/mvme5100_setup.c delete mode 100644 arch/ppc/platforms/powerpmc250_serial.h delete mode 100644 arch/ppc/platforms/pq2ads_setup.c delete mode 100644 arch/ppc/platforms/proc_rtas.c delete mode 100644 arch/ppc/platforms/prpmc750_serial.h delete mode 100644 arch/ppc/platforms/prpmc800_serial.h delete mode 100644 arch/ppc/platforms/rpx8260.c delete mode 100644 arch/ppc/platforms/rpxsuper.h delete mode 100644 arch/ppc/syslib/gt64260_common.c delete mode 100644 arch/ppc/syslib/m8260_pci.c delete mode 100644 arch/ppc/syslib/m8260_pci.h delete mode 100644 arch/ppc/syslib/ppc4xx_serial.c delete mode 100644 arch/ppc/syslib/ppc8260_pic.c delete mode 100644 arch/ppc/syslib/ppc8260_pic.h delete mode 100644 arch/ppc64/boot/addSystemMap.c delete mode 100644 arch/ppc64/boot/no_initrd.c delete mode 100644 arch/ppc64/boot/start.c delete mode 100644 arch/ppc64/kernel/chrp_setup.c delete mode 100644 arch/ppc64/kernel/iSeries_IoMmTable.c delete mode 100644 arch/ppc64/kernel/iSeries_IoMmTable.h delete mode 100644 arch/ppc64/kernel/mf_proc.c delete mode 100644 arch/ppc64/kernel/open_pic.c delete mode 100644 arch/ppc64/kernel/open_pic.h delete mode 100644 arch/ppc64/kernel/open_pic_defs.h delete mode 100644 arch/ppc64/kernel/open_pic_u3.c delete mode 100644 arch/ppc64/kernel/pSeries_htab.c delete mode 100644 arch/ppc64/kernel/pci_dma_direct.c delete mode 100644 arch/ppc64/kernel/pmac_iommu.c delete mode 100644 arch/ppc64/kernel/stab.c delete mode 100644 arch/ppc64/xmon/setjmp.c delete mode 100644 arch/s390/kernel/compat_exec.c delete mode 100644 arch/s390/lib/memset.S delete mode 100644 arch/s390/lib/memset64.S delete mode 100644 arch/s390/lib/strcmp.S delete mode 100644 arch/s390/lib/strcmp64.S delete mode 100644 arch/s390/lib/strcpy.S delete mode 100644 arch/s390/lib/strcpy64.S delete mode 100644 arch/s390/lib/strncpy.S delete mode 100644 arch/s390/lib/strncpy64.S delete mode 100644 arch/sh/boards/systemh/Makefile delete mode 100644 arch/sh/boards/systemh/io.c delete mode 100644 arch/sh/boards/systemh/irq.c delete mode 100644 arch/sh/boards/systemh/setup.c delete mode 100644 arch/sh/defconfig delete mode 100644 arch/sh/tools/machgen.sh delete mode 100644 arch/sh64/defconfig delete mode 100644 arch/sh64/lib/old-checksum.c delete mode 100644 arch/sparc64/lib/U3copy_in_user.S delete mode 100644 arch/sparc64/lib/VIS.h delete mode 100644 arch/sparc64/lib/VISbzero.S delete mode 100644 arch/sparc64/lib/VIScopy.S delete mode 100644 arch/sparc64/lib/VIScsum.S delete mode 100644 arch/sparc64/lib/VIScsumcopy.S delete mode 100644 arch/sparc64/lib/VIScsumcopyusr.S delete mode 100644 arch/sparc64/lib/VISmemset.S delete mode 100644 arch/sparc64/lib/blockops.S delete mode 100644 arch/sparc64/lib/rwlock.S delete mode 100644 arch/sparc64/lib/rwsem.c delete mode 100644 arch/sparc64/lib/splock.S delete mode 100644 arch/um/Kconfig_block delete mode 100644 arch/um/drivers/hostaudio_user.c delete mode 100644 arch/um/drivers/slip_proto.h delete mode 100644 arch/um/dyn.lds.S create mode 100644 arch/um/include/.cvsignore delete mode 100644 arch/um/include/2_5compat.h delete mode 100644 arch/um/include/Makefile delete mode 100644 arch/um/include/frame.h delete mode 100644 arch/um/include/frame_user.h delete mode 100644 arch/um/include/hostaudio.h create mode 100644 arch/um/include/sysdep-i386/.cvsignore delete mode 100644 arch/um/include/sysdep-i386/frame.h delete mode 100644 arch/um/include/sysdep-i386/frame_kern.h delete mode 100644 arch/um/include/sysdep-i386/frame_user.h delete mode 100644 arch/um/include/umn.h create mode 100644 arch/um/kernel/.cvsignore delete mode 100644 arch/um/kernel/checksum.c delete mode 100644 arch/um/kernel/frame.c delete mode 100644 arch/um/kernel/frame_kern.c delete mode 100644 arch/um/kernel/initrd_kern.c delete mode 100644 arch/um/kernel/initrd_user.c delete mode 100644 arch/um/kernel/mprot.h delete mode 100644 arch/um/kernel/skas/exec_user.c delete mode 100644 arch/um/kernel/skas/include/mmu.h delete mode 100644 arch/um/kernel/skas/include/mode.h delete mode 100644 arch/um/kernel/skas/include/mode_kern.h delete mode 100644 arch/um/kernel/skas/include/ptrace-skas.h delete mode 100644 arch/um/kernel/skas/include/uaccess.h delete mode 100644 arch/um/kernel/skas/sys-i386/Makefile delete mode 100644 arch/um/kernel/skas/sys-i386/sigcontext.c create mode 100644 arch/um/kernel/skas/util/.cvsignore delete mode 100644 arch/um/kernel/skas/util/mk_ptregs.c delete mode 100644 arch/um/kernel/sys_call_table.c delete mode 100644 arch/um/kernel/tt/include/mmu.h delete mode 100644 arch/um/kernel/tt/include/mode.h delete mode 100644 arch/um/kernel/tt/include/mode_kern.h delete mode 100644 arch/um/kernel/tt/include/ptrace-tt.h delete mode 100644 arch/um/kernel/tt/include/uaccess.h delete mode 100644 arch/um/kernel/tt/sys-i386/Makefile delete mode 100644 arch/um/kernel/tt/sys-i386/sigcontext.c delete mode 100644 arch/um/kernel/user_syms.c delete mode 100644 arch/um/main.c delete mode 100644 arch/um/sys-i386/extable.c create mode 100644 arch/um/sys-i386/util/.cvsignore delete mode 100644 arch/um/sys-i386/util/mk_thread_kern.c delete mode 100644 arch/um/sys-i386/util/mk_thread_user.c delete mode 100644 arch/um/sys-x86_64/util/mk_thread_kern.c delete mode 100644 arch/um/sys-x86_64/util/mk_thread_user.c delete mode 100644 arch/um/uml.lds.S create mode 100644 arch/um/util/.cvsignore delete mode 100644 arch/um/util/mk_constants_kern.c delete mode 100644 arch/um/util/mk_constants_user.c delete mode 100644 arch/um/util/mk_task_kern.c delete mode 100644 arch/um/util/mk_task_user.c delete mode 100644 arch/x86_64/kernel/Makefile-HEAD delete mode 100644 arch/x86_64/kernel/domain.c create mode 100644 arch/x86_64/kernel/machine_kexec.c create mode 100644 arch/x86_64/kernel/relocate_kernel.S delete mode 100644 arch/x86_64/kernel/vsyscall.S delete mode 100644 arch/x86_64/kernel/warmreboot.S delete mode 100644 arch/x86_64/lib/old-checksum.c create mode 100644 arch/x86_64/mm/mmap.c create mode 100644 arch/xen/Kconfig create mode 100644 arch/xen/Kconfig.drivers create mode 100644 arch/xen/Makefile create mode 100644 arch/xen/boot/Makefile create mode 100644 arch/xen/configs/xen0_defconfig_x86_32 create mode 100644 arch/xen/configs/xen0_defconfig_x86_64 create mode 100644 arch/xen/configs/xenU_defconfig_x86_32 create mode 100644 arch/xen/configs/xenU_defconfig_x86_64 create mode 100644 arch/xen/i386/Kconfig create mode 100644 arch/xen/i386/Makefile create mode 100644 arch/xen/i386/kernel/Makefile create mode 100644 arch/xen/i386/kernel/cpu/Makefile create mode 100644 arch/xen/i386/kernel/cpu/common.c create mode 100644 arch/xen/i386/kernel/cpu/mtrr/Makefile create mode 100644 arch/xen/i386/kernel/cpu/mtrr/main.c create mode 100644 arch/xen/i386/kernel/entry.S create mode 100644 arch/xen/i386/kernel/head.S create mode 100644 arch/xen/i386/kernel/i386_ksyms.c create mode 100644 arch/xen/i386/kernel/ioport.c create mode 100644 arch/xen/i386/kernel/irq.c create mode 100644 arch/xen/i386/kernel/ldt.c create mode 100644 arch/xen/i386/kernel/microcode.c create mode 100644 arch/xen/i386/kernel/pci-dma.c create mode 100644 arch/xen/i386/kernel/process.c create mode 100644 arch/xen/i386/kernel/putuser.S create mode 100644 arch/xen/i386/kernel/setup.c create mode 100644 arch/xen/i386/kernel/smp.c create mode 100644 arch/xen/i386/kernel/smpboot.c create mode 100644 arch/xen/i386/kernel/time.c create mode 100644 arch/xen/i386/kernel/timers/Makefile create mode 100644 arch/xen/i386/kernel/timers/timer_tsc.c create mode 100644 arch/xen/i386/kernel/traps.c create mode 100644 arch/xen/i386/kernel/vsyscall-note.S create mode 100644 arch/xen/i386/kernel/vsyscall.S create mode 100644 arch/xen/i386/mm/Makefile create mode 100644 arch/xen/i386/mm/fault.c create mode 100644 arch/xen/i386/mm/highmem.c create mode 100644 arch/xen/i386/mm/hypervisor.c create mode 100644 arch/xen/i386/mm/init.c create mode 100644 arch/xen/i386/mm/ioremap.c create mode 100644 arch/xen/i386/mm/pgtable.c create mode 100644 arch/xen/i386/pci/Makefile create mode 100644 arch/xen/i386/pci/direct.c create mode 100644 arch/xen/i386/pci/irq.c create mode 100644 arch/xen/kernel/Makefile create mode 100644 arch/xen/kernel/ctrl_if.c create mode 100644 arch/xen/kernel/devmem.c create mode 100644 arch/xen/kernel/evtchn.c create mode 100644 arch/xen/kernel/fixup.c create mode 100644 arch/xen/kernel/gnttab.c create mode 100644 arch/xen/kernel/reboot.c create mode 100644 arch/xen/kernel/skbuff.c create mode 100644 arch/xen/kernel/smp.c create mode 100644 arch/xen/kernel/vmlinux.lds.S create mode 100644 arch/xen/kernel/xen_proc.c create mode 100644 arch/xen/x86_64/Kconfig create mode 100644 arch/xen/x86_64/Makefile create mode 100644 arch/xen/x86_64/kernel/Makefile create mode 100644 arch/xen/x86_64/kernel/asm-offsets.c create mode 100644 arch/xen/x86_64/kernel/e820.c create mode 100644 arch/xen/x86_64/kernel/early_printk.c create mode 100644 arch/xen/x86_64/kernel/entry.S create mode 100644 arch/xen/x86_64/kernel/head.S create mode 100644 arch/xen/x86_64/kernel/head64.c create mode 100644 arch/xen/x86_64/kernel/init_task.c create mode 100644 arch/xen/x86_64/kernel/ioport.c create mode 100644 arch/xen/x86_64/kernel/irq.c create mode 100644 arch/xen/x86_64/kernel/ldt.c create mode 100644 arch/xen/x86_64/kernel/pci-dma.c create mode 100644 arch/xen/x86_64/kernel/pci-nommu.c create mode 100644 arch/xen/x86_64/kernel/process.c create mode 100644 arch/xen/x86_64/kernel/setup.c create mode 100644 arch/xen/x86_64/kernel/setup64.c create mode 100644 arch/xen/x86_64/kernel/signal.c create mode 100644 arch/xen/x86_64/kernel/smp.c create mode 100644 arch/xen/x86_64/kernel/smpboot.c create mode 100644 arch/xen/x86_64/kernel/traps.c create mode 100644 arch/xen/x86_64/kernel/vsyscall.c create mode 100644 arch/xen/x86_64/kernel/x8664_ksyms.c create mode 100644 arch/xen/x86_64/mm/Makefile create mode 100644 arch/xen/x86_64/mm/fault.c create mode 100644 arch/xen/x86_64/mm/hypervisor.c create mode 100644 arch/xen/x86_64/mm/init.c create mode 100644 arch/xen/x86_64/mm/ioremap.c create mode 100644 arch/xen/x86_64/mm/pageattr.c create mode 100644 arch/xen/x86_64/pci/Makefile create mode 100644 arch/xen/x86_64/pci/Makefile-BUS create mode 100644 configs/kernel-2.6.10-i686-planetlab.config create mode 100644 configs/kernel-2.6.10-i686-uml-planetlab.config create mode 100644 configs/kernel-2.6.11-i586-smp.config create mode 100644 configs/kernel-2.6.11-i586.config create mode 100644 configs/kernel-2.6.11-i686-smp.config create mode 100644 configs/kernel-2.6.11-i686.config create mode 100644 configs/kernel-2.6.12-i586.config create mode 100644 configs/kernel-2.6.12-i686-planetlab.config create mode 100644 configs/kernel-2.6.12-i686-smp-planetlab.config create mode 100644 configs/kernel-2.6.12-i686-smp.config create mode 100644 configs/kernel-2.6.12-i686-uml-planetlab.config create mode 100644 configs/kernel-2.6.12-i686-xen0.config create mode 100644 configs/kernel-2.6.12-i686-xenU-planetlab.config create mode 100644 configs/kernel-2.6.12-i686-xenU.config create mode 100644 configs/kernel-2.6.12-i686.config create mode 100644 configs/kernel-2.6.8-i586-smp.config create mode 100644 configs/kernel-2.6.8-i586.config create mode 100644 configs/kernel-2.6.8-i686-planetlab-desktop.config create mode 100644 configs/kernel-2.6.8-i686-planetlab.config create mode 100644 configs/kernel-2.6.8-i686-smp.config create mode 100644 configs/kernel-2.6.8-i686-uml-planetlab.config create mode 100644 configs/kernel-2.6.8-i686.config create mode 100644 configs/kernel-2.6.9-i686-planetlab.config create mode 100644 crypto/mpi/Makefile create mode 100644 crypto/mpi/generic_mpi-asm-defs.h create mode 100644 crypto/mpi/generic_mpih-add1.c create mode 100644 crypto/mpi/generic_mpih-lshift.c create mode 100644 crypto/mpi/generic_mpih-mul1.c create mode 100644 crypto/mpi/generic_mpih-mul2.c create mode 100644 crypto/mpi/generic_mpih-mul3.c create mode 100644 crypto/mpi/generic_mpih-rshift.c create mode 100644 crypto/mpi/generic_mpih-sub1.c create mode 100644 crypto/mpi/generic_udiv-w-sdiv.c create mode 100644 crypto/mpi/longlong.h create mode 100644 crypto/mpi/mpi-add.c create mode 100644 crypto/mpi/mpi-bit.c create mode 100644 crypto/mpi/mpi-cmp.c create mode 100644 crypto/mpi/mpi-div.c create mode 100644 crypto/mpi/mpi-gcd.c create mode 100644 crypto/mpi/mpi-inline.c create mode 100644 crypto/mpi/mpi-inline.h create mode 100644 crypto/mpi/mpi-internal.h create mode 100644 crypto/mpi/mpi-inv.c create mode 100644 crypto/mpi/mpi-mpow.c create mode 100644 crypto/mpi/mpi-mul.c create mode 100644 crypto/mpi/mpi-pow.c create mode 100644 crypto/mpi/mpi-scan.c create mode 100644 crypto/mpi/mpicoder.c create mode 100644 crypto/mpi/mpih-cmp.c create mode 100644 crypto/mpi/mpih-div.c create mode 100644 crypto/mpi/mpih-mul.c create mode 100644 crypto/mpi/mpiutil.c create mode 100644 crypto/signature/Makefile create mode 100644 crypto/signature/dsa.c create mode 100644 crypto/signature/key.h create mode 100644 crypto/signature/ksign-keyring.c create mode 100644 crypto/signature/ksign-parse.c create mode 100644 crypto/signature/ksign-publickey.c create mode 100644 crypto/signature/ksign.c create mode 100644 crypto/signature/local.h delete mode 100644 drivers/acpi/acpi_ksyms.c delete mode 100644 drivers/acpi/processor.c delete mode 100644 drivers/atm/nicstarmac.h delete mode 100644 drivers/base/interface.c delete mode 100644 drivers/block/carmel.c create mode 100644 drivers/block/diskdump.c delete mode 100644 drivers/block/floppy98.c delete mode 100644 drivers/block/paride/setup.h create mode 100644 drivers/block/vroot.c delete mode 100644 drivers/cdrom/mcd.c delete mode 100644 drivers/cdrom/mcd.h create mode 100644 drivers/char/.cvsignore delete mode 100644 drivers/char/README.computone delete mode 100644 drivers/char/README.cycladesZ delete mode 100644 drivers/char/README.cyclomY delete mode 100644 drivers/char/README.epca delete mode 100644 drivers/char/README.scc delete mode 100644 drivers/char/agp/intel-mch-agp.c delete mode 100644 drivers/char/busmouse.c delete mode 100644 drivers/char/busmouse.h delete mode 100644 drivers/char/console_macros.h create mode 100644 drivers/char/crash.c delete mode 100644 drivers/char/digi_bios.h delete mode 100644 drivers/char/digi_fep.h delete mode 100644 drivers/char/drm/ati_pcigart.h delete mode 100644 drivers/char/drm/drm_agpsupport.h delete mode 100644 drivers/char/drm/drm_auth.h delete mode 100644 drivers/char/drm/drm_bufs.h delete mode 100644 drivers/char/drm/drm_context.h delete mode 100644 drivers/char/drm/drm_dma.h delete mode 100644 drivers/char/drm/drm_drawable.h delete mode 100644 drivers/char/drm/drm_drv.h delete mode 100644 drivers/char/drm/drm_fops.h delete mode 100644 drivers/char/drm/drm_init.h delete mode 100644 drivers/char/drm/drm_ioctl.h delete mode 100644 drivers/char/drm/drm_irq.h delete mode 100644 drivers/char/drm/drm_lock.h delete mode 100644 drivers/char/drm/drm_proc.h delete mode 100644 drivers/char/drm/drm_scatter.h delete mode 100644 drivers/char/drm/drm_stub.h delete mode 100644 drivers/char/drm/drm_vm.h delete mode 100644 drivers/char/drm/ffb.h delete mode 100644 drivers/char/drm/gamma.h delete mode 100644 drivers/char/drm/i810.h delete mode 100644 drivers/char/drm/i830.h delete mode 100644 drivers/char/drm/i915.h delete mode 100644 drivers/char/drm/mga.h delete mode 100644 drivers/char/drm/r128.h delete mode 100644 drivers/char/drm/radeon.h delete mode 100644 drivers/char/drm/sis.h delete mode 100644 drivers/char/drm/tdfx.h delete mode 100644 drivers/char/dz.c delete mode 100644 drivers/char/dz.h delete mode 100644 drivers/char/fep.h delete mode 100644 drivers/char/h8.c delete mode 100644 drivers/char/h8.h delete mode 100644 drivers/char/hp600_keyb.c delete mode 100644 drivers/char/ip2/Makefile delete mode 100644 drivers/char/ip2/ip2mkdev.c delete mode 100644 drivers/char/ip2/ip2stat.c delete mode 100644 drivers/char/ip2/ip2trace.c delete mode 100644 drivers/char/lp_old98.c delete mode 100644 drivers/char/pcxx.c delete mode 100644 drivers/char/pcxx.h delete mode 100644 drivers/char/rio/cdproto.h delete mode 100644 drivers/char/rsf16fmi.h delete mode 100644 drivers/char/serial_tx3912.c delete mode 100644 drivers/char/serial_tx3912.h delete mode 100644 drivers/char/sh-sci.c delete mode 100644 drivers/char/sh-sci.h delete mode 100644 drivers/char/sn_serial.c delete mode 100644 drivers/char/sonypi.h delete mode 100644 drivers/char/tpqic02.c delete mode 100644 drivers/char/upd4990a.c delete mode 100644 drivers/cpufreq/proc_intf.c delete mode 100644 drivers/i2c/busses/i2c-ixp42x.c delete mode 100644 drivers/i2c/i2c-sensor.c delete mode 100644 drivers/ide/ide-default.c delete mode 100644 drivers/ide/ide-tcq.c delete mode 100644 drivers/ide/legacy/hd98.c delete mode 100644 drivers/ide/legacy/pc9800.c delete mode 100644 drivers/ide/legacy/pdc4030.c delete mode 100644 drivers/ide/legacy/pdc4030.h delete mode 100644 drivers/ide/pci/adma100.c delete mode 100644 drivers/ide/pci/adma100.h delete mode 100644 drivers/ide/pci/aec62xx.h delete mode 100644 drivers/ide/pci/alim15x3.h delete mode 100644 drivers/ide/pci/amd74xx.h delete mode 100644 drivers/ide/pci/cmd640.h delete mode 100644 drivers/ide/pci/cmd64x.h delete mode 100644 drivers/ide/pci/cs5520.h delete mode 100644 drivers/ide/pci/cs5530.h delete mode 100644 drivers/ide/pci/cy82c693.h delete mode 100644 drivers/ide/pci/generic.h delete mode 100644 drivers/ide/pci/hpt34x.h delete mode 100644 drivers/ide/pci/hpt366.h delete mode 100644 drivers/ide/pci/it8172.h create mode 100644 drivers/ide/pci/it821x.c delete mode 100644 drivers/ide/pci/ns87415.h delete mode 100644 drivers/ide/pci/opti621.h delete mode 100644 drivers/ide/pci/pdc202xx_new.h delete mode 100644 drivers/ide/pci/pdc202xx_old.h delete mode 100644 drivers/ide/pci/piix.h delete mode 100644 drivers/ide/pci/rz1000.h delete mode 100644 drivers/ide/pci/sc1200.h delete mode 100644 drivers/ide/pci/serverworks.h delete mode 100644 drivers/ide/pci/siimage.h delete mode 100644 drivers/ide/pci/sis5513.h delete mode 100644 drivers/ide/pci/sl82c105.h delete mode 100644 drivers/ide/pci/slc90e66.h delete mode 100644 drivers/ide/pci/triflex.h delete mode 100644 drivers/ide/pci/trm290.h delete mode 100644 drivers/ide/pci/via82cxxx.h delete mode 100644 drivers/ide/ppc/swarm.c create mode 100644 drivers/ieee1394/.cvsignore delete mode 100644 drivers/input/keyboard/98kbd.c delete mode 100644 drivers/input/misc/98spkr.c delete mode 100644 drivers/input/mouse/98busmouse.c delete mode 100644 drivers/input/serio/98kbd-io.c delete mode 100644 drivers/isdn/tpam/Kconfig delete mode 100644 drivers/isdn/tpam/Makefile delete mode 100644 drivers/isdn/tpam/tpam.h delete mode 100644 drivers/isdn/tpam/tpam_commands.c delete mode 100644 drivers/isdn/tpam/tpam_crcpc.c delete mode 100644 drivers/isdn/tpam/tpam_hdlc.c delete mode 100644 drivers/isdn/tpam/tpam_main.c delete mode 100644 drivers/isdn/tpam/tpam_memory.c delete mode 100644 drivers/isdn/tpam/tpam_nco.c delete mode 100644 drivers/isdn/tpam/tpam_queues.c create mode 100644 drivers/md/.cvsignore delete mode 100644 drivers/media/dvb/b2c2/b2c2-common.c delete mode 100644 drivers/media/dvb/b2c2/b2c2-usb-core.c delete mode 100644 drivers/media/dvb/bt8xx/dst.h delete mode 100644 drivers/media/dvb/dibusb/dvb-dibusb-pid.c delete mode 100644 drivers/media/dvb/dibusb/dvb-dibusb.c delete mode 100644 drivers/media/dvb/dvb-core/Makefile.lib delete mode 100644 drivers/media/dvb/dvb-core/dvb_functions.c delete mode 100644 drivers/media/dvb/dvb-core/dvb_functions.h delete mode 100644 drivers/media/dvb/dvb-core/dvb_i2c.c delete mode 100644 drivers/media/dvb/dvb-core/dvb_i2c.h delete mode 100644 drivers/media/dvb/dvb-core/dvb_ksyms.c delete mode 100644 drivers/media/dvb/frontends/alps_tdlb7.c delete mode 100644 drivers/media/dvb/frontends/alps_tdmb7.c delete mode 100644 drivers/media/dvb/frontends/dst-bt878.h delete mode 100644 drivers/media/dvb/frontends/dst.c delete mode 100644 drivers/media/dvb/frontends/grundig_29504-401.c delete mode 100644 drivers/media/dvb/frontends/grundig_29504-491.c delete mode 100644 drivers/media/dvb/frontends/sp887x_firm.h delete mode 100644 drivers/media/video/tuner.c delete mode 100644 drivers/message/fusion/ascq_tbl.c delete mode 100644 drivers/message/fusion/ascq_tbl.sh delete mode 100644 drivers/message/fusion/isense.c delete mode 100644 drivers/message/fusion/isense.h delete mode 100644 drivers/message/fusion/scsi3.h delete mode 100644 drivers/message/fusion/scsiops.c delete mode 100644 drivers/message/i2o/i2o_core.c delete mode 100644 drivers/mtd/devices/doc1000.c delete mode 100644 drivers/mtd/maps/chestnut.c delete mode 100644 drivers/mtd/maps/ich2rom.c delete mode 100644 drivers/mtd/maps/integrator-flash-v24.c delete mode 100644 drivers/mtd/mtdblock.h delete mode 100644 drivers/mtd/nand/nand.c delete mode 100644 drivers/net/auto_irq.c delete mode 100644 drivers/net/bagetlance.c delete mode 100644 drivers/net/ethertap.c delete mode 100644 drivers/net/fc/Makefile delete mode 100644 drivers/net/fc/iph5526.c delete mode 100644 drivers/net/fc/iph5526_ip.h delete mode 100644 drivers/net/fc/iph5526_novram.c delete mode 100644 drivers/net/fc/iph5526_scsi.h delete mode 100644 drivers/net/fc/tach.h delete mode 100644 drivers/net/fc/tach_structs.h delete mode 100644 drivers/net/ne2k_cbus.c delete mode 100644 drivers/net/ne2k_cbus.h delete mode 100644 drivers/net/net_init.c delete mode 100644 drivers/net/rcif.h delete mode 100644 drivers/net/rclanmtl.c delete mode 100644 drivers/net/rclanmtl.h delete mode 100644 drivers/net/rcpci45.c delete mode 100644 drivers/net/wan/comx-hw-comx.c delete mode 100644 drivers/net/wan/comx-hw-locomx.c delete mode 100644 drivers/net/wan/comx-hw-mixcom.c delete mode 100644 drivers/net/wan/comx-hw-munich.c delete mode 100644 drivers/net/wan/comx-proto-fr.c delete mode 100644 drivers/net/wan/comx-proto-lapb.c delete mode 100644 drivers/net/wan/comx-proto-ppp.c delete mode 100644 drivers/net/wan/comx.c delete mode 100644 drivers/net/wan/comx.h delete mode 100644 drivers/net/wan/comxhw.h delete mode 100644 drivers/net/wan/falc-lh.h delete mode 100644 drivers/net/wan/hscx.h delete mode 100644 drivers/net/wan/mixcom.h delete mode 100644 drivers/net/wan/munich32x.h delete mode 100644 drivers/net/wan/wanxlfw.inc create mode 100644 drivers/net/wireless/ieee80211/LICENSE create mode 100644 drivers/net/wireless/ieee80211/Makefile create mode 100644 drivers/net/wireless/ieee80211/ieee80211.h create mode 100644 drivers/net/wireless/ieee80211/ieee80211_crypt.c create mode 100644 drivers/net/wireless/ieee80211/ieee80211_crypt.h create mode 100644 drivers/net/wireless/ieee80211/ieee80211_crypt_ccmp.c create mode 100644 drivers/net/wireless/ieee80211/ieee80211_crypt_tkip.c create mode 100644 drivers/net/wireless/ieee80211/ieee80211_crypt_wep.c create mode 100644 drivers/net/wireless/ieee80211/ieee80211_module.c create mode 100644 drivers/net/wireless/ieee80211/ieee80211_rx.c create mode 100644 drivers/net/wireless/ieee80211/ieee80211_tx.c create mode 100644 drivers/net/wireless/ieee80211/ieee80211_wx.c create mode 100644 drivers/net/wireless/ipw2100/LICENSE create mode 100644 drivers/net/wireless/ipw2100/Makefile create mode 100644 drivers/net/wireless/ipw2100/ipw2100.c create mode 100644 drivers/net/wireless/ipw2100/ipw2100.h create mode 100644 drivers/net/wireless/ipw2200/LICENSE create mode 100644 drivers/net/wireless/ipw2200/Makefile create mode 100644 drivers/net/wireless/ipw2200/ipw2200.c create mode 100644 drivers/net/wireless/ipw2200/ipw2200.h create mode 100644 drivers/pci/.cvsignore delete mode 100644 drivers/pci/hotplug/pciehp_sysfs.c delete mode 100644 drivers/pcmcia/bulkmem.c delete mode 100644 drivers/pcmcia/sa1100.h delete mode 100644 drivers/pcmcia/sa1100_adsbitsy.c delete mode 100644 drivers/pcmcia/sa1100_flexanet.c delete mode 100644 drivers/pcmcia/sa1100_freebird.c delete mode 100644 drivers/pcmcia/sa1100_graphicsclient.c delete mode 100644 drivers/pcmcia/sa1100_graphicsmaster.c delete mode 100644 drivers/pcmcia/sa1100_pangolin.c delete mode 100644 drivers/pcmcia/sa1100_pfs168.c delete mode 100644 drivers/pcmcia/sa1100_stork.c delete mode 100644 drivers/pcmcia/sa1100_system3.c delete mode 100644 drivers/pcmcia/sa1100_trizeps.c delete mode 100644 drivers/pcmcia/sa1100_xp860.c delete mode 100644 drivers/pcmcia/sa1100_yopy.c delete mode 100644 drivers/pcmcia/sa11xx_core.c delete mode 100644 drivers/pcmcia/sa11xx_core.h delete mode 100644 drivers/s390/cio/requestirq.c create mode 100644 drivers/scsi/aic7xxx/.cvsignore delete mode 100644 drivers/scsi/dc390.h delete mode 100644 drivers/scsi/dmx3191d.h delete mode 100644 drivers/scsi/dpt/dpt_osdutil.h delete mode 100644 drivers/scsi/fd_mcs.h delete mode 100644 drivers/scsi/i60uscsi.c delete mode 100644 drivers/scsi/i91uscsi.c delete mode 100644 drivers/scsi/i91uscsi.h delete mode 100644 drivers/scsi/ini9100u.c delete mode 100644 drivers/scsi/ini9100u.h delete mode 100644 drivers/scsi/inia100.c delete mode 100644 drivers/scsi/inia100.h delete mode 100644 drivers/scsi/lasi700.h delete mode 100644 drivers/scsi/pc980155.c delete mode 100644 drivers/scsi/pc980155.h delete mode 100644 drivers/scsi/pcmcia/qlogic_core.c delete mode 100644 drivers/scsi/qla2xxx/ql6322.c delete mode 100644 drivers/scsi/qla2xxx/ql6322_fw.c delete mode 100644 drivers/scsi/qla2xxx/qla_listops.h delete mode 100644 drivers/scsi/qla2xxx/qla_os.h delete mode 100644 drivers/scsi/qlogicfas.h delete mode 100644 drivers/scsi/qlogicfc.h delete mode 100644 drivers/scsi/qlogicisp.h delete mode 100644 drivers/scsi/scsi_obsolete.h delete mode 100644 drivers/scsi/scsi_pc98.c delete mode 100644 drivers/scsi/scsi_syms.c delete mode 100644 drivers/scsi/scsiiom.c delete mode 100644 drivers/scsi/sym53c8xx_2/sym_conf.h delete mode 100644 drivers/scsi/sym53c8xx_2/sym_misc.c delete mode 100644 drivers/serial/8250_hcdp.c delete mode 100644 drivers/serial/8250_hcdp.h delete mode 100644 drivers/serial/serial98.c delete mode 100644 drivers/usb/core/driverfs.c delete mode 100644 drivers/usb/host/hc_simple.c delete mode 100644 drivers/usb/host/hc_simple.h delete mode 100644 drivers/usb/host/hc_sl811.c delete mode 100644 drivers/usb/host/hc_sl811.h delete mode 100644 drivers/usb/host/hc_sl811_rh.c delete mode 100644 drivers/usb/host/ohci-omap.h delete mode 100644 drivers/usb/image/hpusbscsi.c delete mode 100644 drivers/usb/image/hpusbscsi.h create mode 100644 drivers/usb/input/appletouch.c delete mode 100644 drivers/usb/media/pwc-ctrl.c delete mode 100644 drivers/usb/media/pwc-if.c delete mode 100644 drivers/usb/media/pwc-ioctl.h delete mode 100644 drivers/usb/media/pwc-misc.c delete mode 100644 drivers/usb/media/pwc-uncompress.c delete mode 100644 drivers/usb/media/pwc-uncompress.h delete mode 100644 drivers/usb/media/pwc.h delete mode 100644 drivers/usb/media/pwc_kiara.h delete mode 100644 drivers/usb/media/pwc_nala.h delete mode 100644 drivers/usb/media/pwc_timon.h delete mode 100644 drivers/usb/media/w9968cf_externaldef.h delete mode 100644 drivers/usb/misc/speedtch.c delete mode 100644 drivers/usb/misc/tiglusb.c delete mode 100644 drivers/usb/misc/tiglusb.h delete mode 100644 drivers/video/intelfb/intelfbdrv.h create mode 100644 drivers/video/logo/.cvsignore delete mode 100644 drivers/video/savage/savagefb.c create mode 100644 drivers/xen/Makefile create mode 100644 drivers/xen/balloon/Makefile create mode 100644 drivers/xen/balloon/balloon.c create mode 100644 drivers/xen/blkback/Makefile create mode 100644 drivers/xen/blkback/blkback.c create mode 100644 drivers/xen/blkback/common.h create mode 100644 drivers/xen/blkback/control.c create mode 100644 drivers/xen/blkback/interface.c create mode 100644 drivers/xen/blkback/vbd.c create mode 100644 drivers/xen/blkfront/Kconfig create mode 100644 drivers/xen/blkfront/Makefile create mode 100644 drivers/xen/blkfront/blkfront.c create mode 100644 drivers/xen/blkfront/block.h create mode 100644 drivers/xen/blkfront/vbd.c create mode 100644 drivers/xen/blktap/Makefile create mode 100644 drivers/xen/blktap/blktap.c create mode 100644 drivers/xen/blktap/blktap.h create mode 100644 drivers/xen/blktap/blktap_controlmsg.c create mode 100644 drivers/xen/blktap/blktap_datapath.c create mode 100644 drivers/xen/blktap/blktap_userdev.c create mode 100644 drivers/xen/console/Makefile create mode 100644 drivers/xen/console/console.c create mode 100644 drivers/xen/evtchn/Makefile create mode 100644 drivers/xen/evtchn/evtchn.c create mode 100644 drivers/xen/netback/Makefile create mode 100644 drivers/xen/netback/common.h create mode 100644 drivers/xen/netback/control.c create mode 100644 drivers/xen/netback/interface.c create mode 100644 drivers/xen/netback/netback.c create mode 100644 drivers/xen/netfront/Kconfig create mode 100644 drivers/xen/netfront/Makefile create mode 100644 drivers/xen/netfront/netfront.c create mode 100644 drivers/xen/privcmd/Makefile create mode 100644 drivers/xen/privcmd/privcmd.c create mode 100644 drivers/xen/usbback/common.h create mode 100644 drivers/xen/usbback/control.c create mode 100644 drivers/xen/usbback/interface.c create mode 100644 drivers/xen/usbback/usbback.c create mode 100644 drivers/xen/usbfront/usbfront.c create mode 100644 drivers/xen/usbfront/xhci.h delete mode 100644 fs/fat/fatfs_syms.c delete mode 100644 fs/intermezzo/Makefile delete mode 100644 fs/intermezzo/cache.c delete mode 100644 fs/intermezzo/dcache.c delete mode 100644 fs/intermezzo/dir.c delete mode 100644 fs/intermezzo/ext_attr.c delete mode 100644 fs/intermezzo/file.c delete mode 100644 fs/intermezzo/fileset.c delete mode 100644 fs/intermezzo/inode.c delete mode 100644 fs/intermezzo/intermezzo_fs.h delete mode 100644 fs/intermezzo/intermezzo_idl.h delete mode 100644 fs/intermezzo/intermezzo_journal.h delete mode 100644 fs/intermezzo/intermezzo_kml.h delete mode 100644 fs/intermezzo/intermezzo_lib.h delete mode 100644 fs/intermezzo/intermezzo_psdev.h delete mode 100644 fs/intermezzo/intermezzo_upcall.h delete mode 100644 fs/intermezzo/journal.c delete mode 100644 fs/intermezzo/journal_ext2.c delete mode 100644 fs/intermezzo/journal_ext3.c delete mode 100644 fs/intermezzo/journal_obdfs.c delete mode 100644 fs/intermezzo/journal_reiserfs.c delete mode 100644 fs/intermezzo/journal_tmpfs.c delete mode 100644 fs/intermezzo/journal_xfs.c delete mode 100644 fs/intermezzo/kml.c delete mode 100644 fs/intermezzo/kml_decode.c delete mode 100644 fs/intermezzo/kml_reint.c delete mode 100644 fs/intermezzo/kml_setup.c delete mode 100644 fs/intermezzo/kml_unpack.c delete mode 100644 fs/intermezzo/kml_utils.c delete mode 100644 fs/intermezzo/methods.c delete mode 100644 fs/intermezzo/presto.c delete mode 100644 fs/intermezzo/psdev.c delete mode 100644 fs/intermezzo/replicator.c delete mode 100644 fs/intermezzo/super.c delete mode 100644 fs/intermezzo/sysctl.c delete mode 100644 fs/intermezzo/upcall.c delete mode 100644 fs/intermezzo/vfs.c delete mode 100644 fs/jfs/jfs_defragfs.h delete mode 100644 fs/lockd/lockd_syms.c delete mode 100644 fs/partitions/nec98.c delete mode 100644 fs/partitions/nec98.h create mode 100644 fs/proc/vmcore.c delete mode 100644 fs/smbfs/ChangeLog delete mode 100644 fs/umsdos/Makefile delete mode 100644 fs/umsdos/README-WIP.txt delete mode 100644 fs/umsdos/dir.c delete mode 100644 fs/umsdos/emd.c delete mode 100644 fs/umsdos/inode.c delete mode 100644 fs/umsdos/ioctl.c delete mode 100644 fs/umsdos/mangle.c delete mode 100644 fs/umsdos/namei.c delete mode 100644 fs/umsdos/rdir.c delete mode 100644 fs/umsdos/specs delete mode 100644 fs/xfs/linux/kmem.h delete mode 100644 fs/xfs/linux/mrlock.h delete mode 100644 fs/xfs/linux/mutex.h delete mode 100644 fs/xfs/linux/sema.h delete mode 100644 fs/xfs/linux/spin.h delete mode 100644 fs/xfs/linux/sv.h delete mode 100644 fs/xfs/linux/time.h delete mode 100644 fs/xfs/linux/xfs_aops.c delete mode 100644 fs/xfs/linux/xfs_buf.c delete mode 100644 fs/xfs/linux/xfs_buf.h delete mode 100644 fs/xfs/linux/xfs_cred.h delete mode 100644 fs/xfs/linux/xfs_file.c delete mode 100644 fs/xfs/linux/xfs_fs_subr.c delete mode 100644 fs/xfs/linux/xfs_fs_subr.h delete mode 100644 fs/xfs/linux/xfs_globals.c delete mode 100644 fs/xfs/linux/xfs_globals.h delete mode 100644 fs/xfs/linux/xfs_ioctl.c delete mode 100644 fs/xfs/linux/xfs_iops.c delete mode 100644 fs/xfs/linux/xfs_iops.h delete mode 100644 fs/xfs/linux/xfs_linux.h delete mode 100644 fs/xfs/linux/xfs_lrw.c delete mode 100644 fs/xfs/linux/xfs_lrw.h delete mode 100644 fs/xfs/linux/xfs_stats.c delete mode 100644 fs/xfs/linux/xfs_stats.h delete mode 100644 fs/xfs/linux/xfs_super.c delete mode 100644 fs/xfs/linux/xfs_super.h delete mode 100644 fs/xfs/linux/xfs_sysctl.c delete mode 100644 fs/xfs/linux/xfs_sysctl.h delete mode 100644 fs/xfs/linux/xfs_version.h delete mode 100644 fs/xfs/linux/xfs_vfs.c delete mode 100644 fs/xfs/linux/xfs_vfs.h delete mode 100644 fs/xfs/linux/xfs_vnode.c delete mode 100644 fs/xfs/linux/xfs_vnode.h delete mode 100644 fs/xfs/xfs_cap.c delete mode 100644 fs/xfs/xfs_mac.c create mode 100644 include/.cvsignore delete mode 100644 include/asm-alpha/cpumask.h delete mode 100644 include/asm-alpha/init.h delete mode 100644 include/asm-alpha/rmap.h delete mode 100644 include/asm-arm/arch-adifcc/adi_evb.h delete mode 100644 include/asm-arm/arch-adifcc/dma.h delete mode 100644 include/asm-arm/arch-adifcc/hardware.h delete mode 100644 include/asm-arm/arch-adifcc/io.h delete mode 100644 include/asm-arm/arch-adifcc/irqs.h delete mode 100644 include/asm-arm/arch-adifcc/memory.h delete mode 100644 include/asm-arm/arch-adifcc/param.h delete mode 100644 include/asm-arm/arch-adifcc/serial.h delete mode 100644 include/asm-arm/arch-adifcc/system.h delete mode 100644 include/asm-arm/arch-adifcc/time.h delete mode 100644 include/asm-arm/arch-adifcc/timex.h delete mode 100644 include/asm-arm/arch-adifcc/uncompress.h delete mode 100644 include/asm-arm/arch-adifcc/vmalloc.h delete mode 100644 include/asm-arm/arch-cl7500/ide.h delete mode 100644 include/asm-arm/arch-cl7500/keyboard.h delete mode 100644 include/asm-arm/arch-cl7500/serial.h delete mode 100644 include/asm-arm/arch-cl7500/time.h delete mode 100644 include/asm-arm/arch-clps711x/keyboard.h delete mode 100644 include/asm-arm/arch-ebsa110/ide.h delete mode 100644 include/asm-arm/arch-ebsa110/serial.h delete mode 100644 include/asm-arm/arch-ebsa110/time.h delete mode 100644 include/asm-arm/arch-ebsa285/ide.h delete mode 100644 include/asm-arm/arch-ebsa285/serial.h delete mode 100644 include/asm-arm/arch-ebsa285/time.h delete mode 100644 include/asm-arm/arch-epxa10db/serial.h delete mode 100644 include/asm-arm/arch-epxa10db/time.h delete mode 100644 include/asm-arm/arch-h720x/serial.h delete mode 100644 include/asm-arm/arch-imx/serial.h delete mode 100644 include/asm-arm/arch-integrator/serial.h delete mode 100644 include/asm-arm/arch-integrator/time.h delete mode 100644 include/asm-arm/arch-iop3xx/ide.h delete mode 100644 include/asm-arm/arch-iop3xx/iop310-irqs.h delete mode 100644 include/asm-arm/arch-iop3xx/iop310.h delete mode 100644 include/asm-arm/arch-iop3xx/iq80310.h delete mode 100644 include/asm-arm/arch-iop3xx/pmon.h delete mode 100644 include/asm-arm/arch-iop3xx/serial.h delete mode 100644 include/asm-arm/arch-iop3xx/time.h delete mode 100644 include/asm-arm/arch-ixp2000/serial.h delete mode 100644 include/asm-arm/arch-ixp4xx/serial.h delete mode 100644 include/asm-arm/arch-ixp4xx/time.h delete mode 100644 include/asm-arm/arch-l7200/ide.h delete mode 100644 include/asm-arm/arch-l7200/keyboard.h delete mode 100644 include/asm-arm/arch-lh7a40x/ide.h delete mode 100644 include/asm-arm/arch-lh7a40x/serial.h delete mode 100644 include/asm-arm/arch-lh7a40x/time.h delete mode 100644 include/asm-arm/arch-nexuspci/dma.h delete mode 100644 include/asm-arm/arch-nexuspci/hardware.h delete mode 100644 include/asm-arm/arch-nexuspci/ide.h delete mode 100644 include/asm-arm/arch-nexuspci/io.h delete mode 100644 include/asm-arm/arch-nexuspci/irqs.h delete mode 100644 include/asm-arm/arch-nexuspci/memory.h delete mode 100644 include/asm-arm/arch-nexuspci/param.h delete mode 100644 include/asm-arm/arch-nexuspci/system.h delete mode 100644 include/asm-arm/arch-nexuspci/time.h delete mode 100644 include/asm-arm/arch-nexuspci/timex.h delete mode 100644 include/asm-arm/arch-nexuspci/uncompress.h delete mode 100644 include/asm-arm/arch-nexuspci/vmalloc.h delete mode 100644 include/asm-arm/arch-omap/bus.h delete mode 100644 include/asm-arm/arch-omap/clocks.h delete mode 100644 include/asm-arm/arch-omap/omap-h2.h delete mode 100644 include/asm-arm/arch-omap/omap-innovator.h delete mode 100644 include/asm-arm/arch-omap/omap-perseus2.h delete mode 100644 include/asm-arm/arch-omap/omap1610.h delete mode 100644 include/asm-arm/arch-omap/omap5912.h delete mode 100644 include/asm-arm/arch-omap/serial.h delete mode 100644 include/asm-arm/arch-omap/time.h delete mode 100644 include/asm-arm/arch-pxa/ide.h delete mode 100644 include/asm-arm/arch-pxa/keyboard.h delete mode 100644 include/asm-arm/arch-pxa/serial.h delete mode 100644 include/asm-arm/arch-pxa/time.h delete mode 100644 include/asm-arm/arch-rpc/ide.h delete mode 100644 include/asm-arm/arch-rpc/serial.h delete mode 100644 include/asm-arm/arch-rpc/time.h delete mode 100644 include/asm-arm/arch-s3c2410/ide.h delete mode 100644 include/asm-arm/arch-s3c2410/serial.h delete mode 100644 include/asm-arm/arch-s3c2410/time.h delete mode 100644 include/asm-arm/arch-sa1100/adsbitsy.h delete mode 100644 include/asm-arm/arch-sa1100/flexanet.h delete mode 100644 include/asm-arm/arch-sa1100/freebird.h delete mode 100644 include/asm-arm/arch-sa1100/graphicsclient.h delete mode 100644 include/asm-arm/arch-sa1100/graphicsmaster.h delete mode 100644 include/asm-arm/arch-sa1100/huw_webpanel.h delete mode 100644 include/asm-arm/arch-sa1100/itsy.h delete mode 100644 include/asm-arm/arch-sa1100/keyboard.h delete mode 100644 include/asm-arm/arch-sa1100/mftb2.h delete mode 100644 include/asm-arm/arch-sa1100/omnimeter.h delete mode 100644 include/asm-arm/arch-sa1100/pangolin.h delete mode 100644 include/asm-arm/arch-sa1100/pfs168.h delete mode 100644 include/asm-arm/arch-sa1100/pleb.h delete mode 100644 include/asm-arm/arch-sa1100/serial.h delete mode 100644 include/asm-arm/arch-sa1100/stork.h delete mode 100644 include/asm-arm/arch-sa1100/system3.h delete mode 100644 include/asm-arm/arch-sa1100/time.h delete mode 100644 include/asm-arm/arch-sa1100/trizeps.h delete mode 100644 include/asm-arm/arch-sa1100/yopy.h delete mode 100644 include/asm-arm/arch-shark/ide.h delete mode 100644 include/asm-arm/arch-shark/keyboard.h delete mode 100644 include/asm-arm/arch-shark/serial.h delete mode 100644 include/asm-arm/arch-shark/time.h delete mode 100644 include/asm-arm/arch-tbox/dma.h delete mode 100644 include/asm-arm/arch-tbox/hardware.h delete mode 100644 include/asm-arm/arch-tbox/ide.h delete mode 100644 include/asm-arm/arch-tbox/io.h delete mode 100644 include/asm-arm/arch-tbox/irqs.h delete mode 100644 include/asm-arm/arch-tbox/memory.h delete mode 100644 include/asm-arm/arch-tbox/param.h delete mode 100644 include/asm-arm/arch-tbox/serial.h delete mode 100644 include/asm-arm/arch-tbox/system.h delete mode 100644 include/asm-arm/arch-tbox/time.h delete mode 100644 include/asm-arm/arch-tbox/timex.h delete mode 100644 include/asm-arm/arch-tbox/uncompress.h delete mode 100644 include/asm-arm/arch-tbox/vmalloc.h delete mode 100644 include/asm-arm/arch-versatile/serial.h delete mode 100644 include/asm-arm/arch-versatile/time.h delete mode 100644 include/asm-arm/cpumask.h delete mode 100644 include/asm-arm/rmap.h delete mode 100644 include/asm-arm26/calls.h delete mode 100644 include/asm-arm26/cpumask.h delete mode 100644 include/asm-arm26/ian_char.h delete mode 100644 include/asm-arm26/linux_logo.h delete mode 100644 include/asm-arm26/rmap.h delete mode 100644 include/asm-cris/cpumask.h delete mode 100644 include/asm-cris/rmap.h delete mode 100644 include/asm-generic/cpumask.h delete mode 100644 include/asm-generic/cpumask_arith.h delete mode 100644 include/asm-generic/cpumask_array.h delete mode 100644 include/asm-generic/cpumask_const_reference.h delete mode 100644 include/asm-generic/cpumask_const_value.h delete mode 100644 include/asm-generic/cpumask_up.h create mode 100644 include/asm-generic/crashdump.h create mode 100644 include/asm-generic/diskdump.h delete mode 100644 include/asm-generic/rmap.h delete mode 100644 include/asm-h8300/aki3068net/machine-depend.h delete mode 100644 include/asm-h8300/cpumask.h delete mode 100644 include/asm-h8300/edosk2674/machine-depend.h delete mode 100644 include/asm-h8300/generic/machine-depend.h delete mode 100644 include/asm-h8300/generic/timer_rate.h delete mode 100644 include/asm-h8300/h8300_ne.h delete mode 100644 include/asm-h8300/h8300_smsc.h delete mode 100644 include/asm-h8300/h8max/machine-depend.h delete mode 100644 include/asm-h8300/init.h delete mode 100644 include/asm-h8300/linux_logo.h delete mode 100644 include/asm-h8300/softirq.h create mode 100644 include/asm-i386/.cvsignore delete mode 100644 include/asm-i386/cpumask.h create mode 100644 include/asm-i386/crash.h create mode 100644 include/asm-i386/crash_dump.h create mode 100644 include/asm-i386/crashdump.h create mode 100644 include/asm-i386/diskdump.h delete mode 100644 include/asm-i386/init.h create mode 100644 include/asm-i386/kexec.h delete mode 100644 include/asm-i386/mach-pc9800/apm.h delete mode 100644 include/asm-i386/mach-pc9800/bios_ebda.h delete mode 100644 include/asm-i386/mach-pc9800/do_timer.h delete mode 100644 include/asm-i386/mach-pc9800/io_ports.h delete mode 100644 include/asm-i386/mach-pc9800/mach_reboot.h delete mode 100644 include/asm-i386/mach-pc9800/mach_time.h delete mode 100644 include/asm-i386/mach-pc9800/mach_timer.h delete mode 100644 include/asm-i386/mach-pc9800/mach_traps.h delete mode 100644 include/asm-i386/mach-pc9800/mach_wakecpu.h delete mode 100644 include/asm-i386/mach-pc9800/pci-functions.h delete mode 100644 include/asm-i386/mach-pc9800/setup_arch_post.h delete mode 100644 include/asm-i386/mach-pc9800/setup_arch_pre.h delete mode 100644 include/asm-i386/pc9800.h delete mode 100644 include/asm-i386/pc9800_sca.h delete mode 100644 include/asm-i386/rmap.h delete mode 100644 include/asm-i386/std_resources.h delete mode 100644 include/asm-i386/upd4990a.h delete mode 100644 include/asm-ia64/cpumask.h create mode 100644 include/asm-ia64/crash.h create mode 100644 include/asm-ia64/crashdump.h create mode 100644 include/asm-ia64/diskdump.h delete mode 100644 include/asm-ia64/ioctl32.h delete mode 100644 include/asm-ia64/rmap.h delete mode 100644 include/asm-ia64/sn/cdl.h delete mode 100644 include/asm-ia64/sn/dmamap.h delete mode 100644 include/asm-ia64/sn/driver.h delete mode 100644 include/asm-ia64/sn/fetchop.h delete mode 100644 include/asm-ia64/sn/hcl.h delete mode 100644 include/asm-ia64/sn/hcl_util.h delete mode 100644 include/asm-ia64/sn/hwgfs.h delete mode 100644 include/asm-ia64/sn/ifconfig_net.h delete mode 100644 include/asm-ia64/sn/ioc4.h delete mode 100644 include/asm-ia64/sn/ioconfig_bus.h delete mode 100644 include/asm-ia64/sn/ioerror.h delete mode 100644 include/asm-ia64/sn/ioerror_handling.h delete mode 100644 include/asm-ia64/sn/iograph.h delete mode 100644 include/asm-ia64/sn/kldir.h delete mode 100644 include/asm-ia64/sn/ksys/elsc.h delete mode 100644 include/asm-ia64/sn/ksys/l1.h delete mode 100644 include/asm-ia64/sn/labelcl.h delete mode 100644 include/asm-ia64/sn/pci/bridge.h delete mode 100644 include/asm-ia64/sn/pci/pci_bus_cvlink.h delete mode 100644 include/asm-ia64/sn/pci/pci_defs.h delete mode 100644 include/asm-ia64/sn/pci/pcibr.h delete mode 100644 include/asm-ia64/sn/pci/pcibr_private.h delete mode 100644 include/asm-ia64/sn/pci/pciio.h delete mode 100644 include/asm-ia64/sn/pci/pciio_private.h delete mode 100644 include/asm-ia64/sn/pci/pic.h delete mode 100644 include/asm-ia64/sn/pio.h delete mode 100644 include/asm-ia64/sn/prio.h delete mode 100644 include/asm-ia64/sn/router.h delete mode 100644 include/asm-ia64/sn/sgi.h delete mode 100644 include/asm-ia64/sn/slotnum.h delete mode 100644 include/asm-ia64/sn/sn2/addrs.h delete mode 100644 include/asm-ia64/sn/sn2/arch.h delete mode 100644 include/asm-ia64/sn/sn2/geo.h delete mode 100644 include/asm-ia64/sn/sn2/intr.h delete mode 100644 include/asm-ia64/sn/sn2/io.h delete mode 100644 include/asm-ia64/sn/sn2/shub.h delete mode 100644 include/asm-ia64/sn/sn2/shub_md.h delete mode 100644 include/asm-ia64/sn/sn2/shub_mmr.h delete mode 100644 include/asm-ia64/sn/sn2/shub_mmr_t.h delete mode 100644 include/asm-ia64/sn/sn2/shubio.h delete mode 100644 include/asm-ia64/sn/sn2/slotnum.h delete mode 100644 include/asm-ia64/sn/sn2/sn_private.h delete mode 100644 include/asm-ia64/sn/sn_fru.h delete mode 100644 include/asm-ia64/sn/sn_private.h delete mode 100644 include/asm-ia64/sn/sndrv.h delete mode 100644 include/asm-ia64/sn/vector.h delete mode 100644 include/asm-ia64/sn/xtalk/xbow.h delete mode 100644 include/asm-ia64/sn/xtalk/xbow_info.h delete mode 100644 include/asm-ia64/sn/xtalk/xswitch.h delete mode 100644 include/asm-ia64/sn/xtalk/xtalk.h delete mode 100644 include/asm-ia64/sn/xtalk/xtalk_private.h delete mode 100644 include/asm-ia64/sn/xtalk/xtalkaddrs.h delete mode 100644 include/asm-ia64/sn/xtalk/xwidget.h delete mode 100644 include/asm-m68k/adb_mouse.h delete mode 100644 include/asm-m68k/atari_SCCserial.h delete mode 100644 include/asm-m68k/cpumask.h delete mode 100644 include/asm-m68k/init.h delete mode 100644 include/asm-m68k/rmap.h delete mode 100644 include/asm-m68knommu/cpumask.h delete mode 100644 include/asm-m68knommu/init.h delete mode 100644 include/asm-m68knommu/io_hw_swap.h delete mode 100644 include/asm-m68knommu/keyboard.h delete mode 100644 include/asm-m68knommu/m5282sim.h delete mode 100644 include/asm-m68knommu/nap.h delete mode 100644 include/asm-m68knommu/rmap.h delete mode 100644 include/asm-m68knommu/semp3.h delete mode 100644 include/asm-m68knommu/shglcore.h delete mode 100644 include/asm-m68knommu/shglports.h delete mode 100644 include/asm-mips/baget/baget.h delete mode 100644 include/asm-mips/baget/vac.h delete mode 100644 include/asm-mips/baget/vic.h delete mode 100644 include/asm-mips/cpumask.h delete mode 100644 include/asm-mips/init.h delete mode 100644 include/asm-mips/it8172/it8172_lpc.h delete mode 100644 include/asm-mips/mv64340.h delete mode 100644 include/asm-mips/ng1.h delete mode 100644 include/asm-mips/ng1hw.h delete mode 100644 include/asm-mips/pci_channel.h delete mode 100644 include/asm-mips/rmap.h delete mode 100644 include/asm-mips/vr41xx/eagle.h delete mode 100644 include/asm-mips/vr41xx/tb0229.h delete mode 100644 include/asm-mips/vr41xx/vrc4171.h delete mode 100644 include/asm-parisc/bootdata.h delete mode 100644 include/asm-parisc/cpumask.h delete mode 100644 include/asm-parisc/parport_gsc.h delete mode 100644 include/asm-parisc/rmap.h delete mode 100644 include/asm-parisc/som.h delete mode 100644 include/asm-ppc/cpm_8260.h delete mode 100644 include/asm-ppc/cpumask.h create mode 100644 include/asm-ppc/diskdump.h delete mode 100644 include/asm-ppc/immap_8260.h create mode 100644 include/asm-ppc/kexec.h delete mode 100644 include/asm-ppc/ppc405_dma.h delete mode 100644 include/asm-ppc/rmap.h create mode 100644 include/asm-ppc/seccomp.h delete mode 100644 include/asm-ppc64/bootx.h delete mode 100644 include/asm-ppc64/cpumask.h create mode 100644 include/asm-ppc64/crashdump.h create mode 100644 include/asm-ppc64/diskdump.h delete mode 100644 include/asm-ppc64/iSeries/ItLpPaca.h delete mode 100644 include/asm-ppc64/iSeries/iSeries_VpdInfo.h delete mode 100644 include/asm-ppc64/iSeries/iSeries_fixup.h delete mode 100644 include/asm-ppc64/init.h delete mode 100644 include/asm-ppc64/rmap.h delete mode 100644 include/asm-s390/cpumask.h create mode 100644 include/asm-s390/diskdump.h delete mode 100644 include/asm-s390/init.h delete mode 100644 include/asm-s390/rmap.h delete mode 100644 include/asm-sh/cpumask.h delete mode 100644 include/asm-sh/init.h delete mode 100644 include/asm-sh/rmap.h delete mode 100644 include/asm-sh64/smplock.h delete mode 100644 include/asm-sh64/softirq.h delete mode 100644 include/asm-sparc/cpumask.h delete mode 100644 include/asm-sparc/init.h delete mode 100644 include/asm-sparc/rmap.h delete mode 100644 include/asm-sparc64/cpumask.h delete mode 100644 include/asm-sparc64/init.h delete mode 100644 include/asm-sparc64/rmap.h delete mode 100644 include/asm-um/arch-signal-i386.h delete mode 100644 include/asm-um/cpumask.h create mode 100644 include/asm-um/diskdump.h delete mode 100644 include/asm-um/elf.h delete mode 100644 include/asm-um/init.h delete mode 100644 include/asm-um/module.h delete mode 100644 include/asm-um/rmap.h delete mode 100644 include/asm-um/smplock.h delete mode 100644 include/asm-v850/cpumask.h delete mode 100644 include/asm-v850/rmap.h delete mode 100644 include/asm-x86_64/cpumask.h create mode 100644 include/asm-x86_64/crash.h create mode 100644 include/asm-x86_64/crashdump.h create mode 100644 include/asm-x86_64/diskdump.h delete mode 100644 include/asm-x86_64/init.h delete mode 100644 include/asm-x86_64/ioctl32.h delete mode 100644 include/asm-x86_64/ipc.h create mode 100644 include/asm-x86_64/kexec.h delete mode 100644 include/asm-x86_64/rmap.h create mode 100644 include/asm-xen/asm-i386/agp.h create mode 100644 include/asm-xen/asm-i386/desc.h create mode 100644 include/asm-xen/asm-i386/dma-mapping.h create mode 100644 include/asm-xen/asm-i386/fixmap.h create mode 100644 include/asm-xen/asm-i386/floppy.h create mode 100644 include/asm-xen/asm-i386/highmem.h create mode 100644 include/asm-xen/asm-i386/hypercall.h create mode 100644 include/asm-xen/asm-i386/io.h rename include/{asm-i386/mach-pc9800 => asm-xen/asm-i386/mach-xen}/irq_vectors.h (56%) create mode 100644 include/asm-xen/asm-i386/mach-xen/setup_arch_post.h create mode 100644 include/asm-xen/asm-i386/mach-xen/setup_arch_pre.h rename include/{asm-i386/mach-pc9800 => asm-xen/asm-i386/mach-xen}/smpboot_hooks.h (67%) create mode 100644 include/asm-xen/asm-i386/mmu_context.h create mode 100644 include/asm-xen/asm-i386/page.h create mode 100644 include/asm-xen/asm-i386/param.h create mode 100644 include/asm-xen/asm-i386/pci.h create mode 100644 include/asm-xen/asm-i386/pgalloc.h create mode 100644 include/asm-xen/asm-i386/pgtable-2level-defs.h create mode 100644 include/asm-xen/asm-i386/pgtable-2level.h create mode 100644 include/asm-xen/asm-i386/pgtable.h create mode 100644 include/asm-xen/asm-i386/processor.h create mode 100644 include/asm-xen/asm-i386/ptrace.h create mode 100644 include/asm-xen/asm-i386/segment.h create mode 100644 include/asm-xen/asm-i386/setup.h create mode 100644 include/asm-xen/asm-i386/spinlock.h create mode 100644 include/asm-xen/asm-i386/synch_bitops.h create mode 100644 include/asm-xen/asm-i386/system.h create mode 100644 include/asm-xen/asm-i386/tlbflush.h create mode 100644 include/asm-xen/asm-i386/vga.h create mode 100644 include/asm-xen/asm-x86_64/arch_hooks.h create mode 100644 include/asm-xen/asm-x86_64/bootsetup.h create mode 100644 include/asm-xen/asm-x86_64/desc.h create mode 100644 include/asm-xen/asm-x86_64/dma-mapping.h create mode 100644 include/asm-xen/asm-x86_64/fixmap.h create mode 100644 include/asm-xen/asm-x86_64/floppy.h create mode 100644 include/asm-xen/asm-x86_64/hypercall.h create mode 100644 include/asm-xen/asm-x86_64/io.h create mode 100644 include/asm-xen/asm-x86_64/irq.h create mode 100644 include/asm-xen/asm-x86_64/mach-xen/io_ports.h create mode 100644 include/asm-xen/asm-x86_64/mach-xen/irq_vectors.h create mode 100644 include/asm-xen/asm-x86_64/mach-xen/mach_time.h create mode 100644 include/asm-xen/asm-x86_64/mach-xen/mach_timer.h create mode 100644 include/asm-xen/asm-x86_64/mach-xen/setup_arch_post.h create mode 100644 include/asm-xen/asm-x86_64/mach-xen/setup_arch_pre.h create mode 100644 include/asm-xen/asm-x86_64/mach-xen/smpboot_hooks.h create mode 100644 include/asm-xen/asm-x86_64/mmu_context.h create mode 100644 include/asm-xen/asm-x86_64/page.h create mode 100644 include/asm-xen/asm-x86_64/param.h create mode 100644 include/asm-xen/asm-x86_64/pci.h create mode 100644 include/asm-xen/asm-x86_64/pda.h create mode 100644 include/asm-xen/asm-x86_64/pgalloc.h create mode 100644 include/asm-xen/asm-x86_64/pgtable.h create mode 100644 include/asm-xen/asm-x86_64/processor.h create mode 100644 include/asm-xen/asm-x86_64/ptrace.h create mode 100644 include/asm-xen/asm-x86_64/segment.h create mode 100644 include/asm-xen/asm-x86_64/smp.h create mode 100644 include/asm-xen/asm-x86_64/synch_bitops.h create mode 100644 include/asm-xen/asm-x86_64/system.h create mode 100644 include/asm-xen/asm-x86_64/timer.h create mode 100644 include/asm-xen/asm-x86_64/tlbflush.h create mode 100644 include/asm-xen/asm-x86_64/vga.h create mode 100644 include/asm-xen/asm-x86_64/xor.h create mode 100644 include/asm-xen/balloon.h create mode 100644 include/asm-xen/ctrl_if.h create mode 100644 include/asm-xen/evtchn.h create mode 100644 include/asm-xen/foreign_page.h create mode 100644 include/asm-xen/gnttab.h create mode 100644 include/asm-xen/hypervisor.h create mode 100644 include/asm-xen/linux-public/privcmd.h create mode 100644 include/asm-xen/linux-public/suspend.h create mode 100644 include/asm-xen/queues.h create mode 100644 include/asm-xen/xen-public/COPYING create mode 100644 include/asm-xen/xen-public/arch-ia64.h create mode 100644 include/asm-xen/xen-public/arch-x86_32.h create mode 100644 include/asm-xen/xen-public/arch-x86_64.h create mode 100644 include/asm-xen/xen-public/dom0_ops.h create mode 100644 include/asm-xen/xen-public/event_channel.h create mode 100644 include/asm-xen/xen-public/grant_table.h create mode 100644 include/asm-xen/xen-public/io/blkif.h create mode 100644 include/asm-xen/xen-public/io/domain_controller.h create mode 100644 include/asm-xen/xen-public/io/ioreq.h create mode 100644 include/asm-xen/xen-public/io/netif.h create mode 100644 include/asm-xen/xen-public/io/ring.h create mode 100644 include/asm-xen/xen-public/io/usbif.h create mode 100644 include/asm-xen/xen-public/physdev.h create mode 100644 include/asm-xen/xen-public/sched_ctl.h create mode 100644 include/asm-xen/xen-public/trace.h create mode 100644 include/asm-xen/xen-public/vmx_assist.h create mode 100644 include/asm-xen/xen-public/xen.h create mode 100644 include/asm-xen/xen_proc.h create mode 100644 include/linux/.cvsignore delete mode 100644 include/linux/802_11.h delete mode 100644 include/linux/acpi_serial.h delete mode 100644 include/linux/adb_mouse.h delete mode 100644 include/linux/affs_fs_i.h delete mode 100644 include/linux/affs_fs_sb.h delete mode 100644 include/linux/atapi.h delete mode 100644 include/linux/blk.h delete mode 100644 include/linux/compiler-gcc+.h create mode 100644 include/linux/crash_dump.h create mode 100644 include/linux/crypto/ksign.h create mode 100644 include/linux/crypto/mpi.h create mode 100644 include/linux/diskdump.h delete mode 100644 include/linux/dp83840.h delete mode 100644 include/linux/fsfilter.h delete mode 100644 include/linux/in_systm.h delete mode 100644 include/linux/isdn_lzscomp.h delete mode 100644 include/linux/iso_fs_i.h delete mode 100644 include/linux/iso_fs_sb.h create mode 100644 include/linux/kexec.h delete mode 100644 include/linux/mpp.h delete mode 100644 include/linux/msdos_fs_i.h delete mode 100644 include/linux/msdos_fs_sb.h delete mode 100644 include/linux/netbeui.h delete mode 100644 include/linux/netfilter_ddp.h delete mode 100644 include/linux/netfilter_ipv4/compat_firewall.h create mode 100644 include/linux/netfilter_ipv4/ip_conntrack_pptp.h create mode 100644 include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h create mode 100644 include/linux/netfilter_ipv4/ip_nat_pptp.h delete mode 100644 include/linux/netfilter_ipv4/ipchains_core.h delete mode 100644 include/linux/netfilter_ipv4/ipfwadm_core.h delete mode 100644 include/linux/netfilter_ipx.h delete mode 100644 include/linux/netfilter_x25.h delete mode 100644 include/linux/tpqic02.h delete mode 100644 include/linux/umsdos_fs.h delete mode 100644 include/linux/umsdos_fs.p delete mode 100644 include/linux/umsdos_fs_i.h delete mode 100644 include/linux/upd4990a.h create mode 100644 include/linux/vroot.h create mode 100644 include/linux/vs_base.h create mode 100644 include/linux/vs_context.h create mode 100644 include/linux/vs_cvirt.h create mode 100644 include/linux/vs_dlimit.h create mode 100644 include/linux/vs_limit.h create mode 100644 include/linux/vs_memory.h create mode 100644 include/linux/vs_network.h create mode 100644 include/linux/vs_sched.h create mode 100644 include/linux/vs_socket.h create mode 100644 include/linux/vserver/context.h create mode 100644 include/linux/vserver/context_cmd.h create mode 100644 include/linux/vserver/cvirt.h create mode 100644 include/linux/vserver/cvirt_cmd.h create mode 100644 include/linux/vserver/cvirt_def.h create mode 100644 include/linux/vserver/debug.h create mode 100644 include/linux/vserver/debug_cmd.h create mode 100644 include/linux/vserver/dlimit.h create mode 100644 include/linux/vserver/dlimit_cmd.h create mode 100644 include/linux/vserver/inode.h create mode 100644 include/linux/vserver/inode_cmd.h create mode 100644 include/linux/vserver/legacy.h create mode 100644 include/linux/vserver/limit.h create mode 100644 include/linux/vserver/limit_cmd.h create mode 100644 include/linux/vserver/limit_def.h create mode 100644 include/linux/vserver/namespace.h create mode 100644 include/linux/vserver/namespace_cmd.h create mode 100644 include/linux/vserver/network.h create mode 100644 include/linux/vserver/network_cmd.h create mode 100644 include/linux/vserver/sched.h create mode 100644 include/linux/vserver/sched_cmd.h create mode 100644 include/linux/vserver/sched_def.h create mode 100644 include/linux/vserver/signal_cmd.h create mode 100644 include/linux/vserver/switch.h create mode 100644 include/linux/vserver/xid.h create mode 100644 include/net/ieee80211.h create mode 100644 include/net/tux.h create mode 100644 include/net/tux_u.h delete mode 100644 include/pcmcia/ftl.h delete mode 100644 include/pcmcia/memory.h delete mode 100644 include/sound/sndmagic.h delete mode 100644 include/sound/soundmem.h delete mode 100644 include/sound/yss225.h create mode 100644 kernel/.cvsignore create mode 100644 kernel/crash.c create mode 100644 kernel/dump.c create mode 100644 kernel/kexec.c create mode 100644 kernel/module-verify-sig.c create mode 100644 kernel/module-verify.c create mode 100644 kernel/module-verify.h delete mode 100644 kernel/power/pmdisk.c create mode 100644 kernel/vserver/Kconfig create mode 100644 kernel/vserver/Makefile create mode 100644 kernel/vserver/context.c create mode 100644 kernel/vserver/cvirt.c create mode 100644 kernel/vserver/cvirt_init.h create mode 100644 kernel/vserver/cvirt_proc.h create mode 100644 kernel/vserver/dlimit.c create mode 100644 kernel/vserver/helper.c create mode 100644 kernel/vserver/history.c create mode 100644 kernel/vserver/init.c create mode 100644 kernel/vserver/inode.c create mode 100644 kernel/vserver/legacy.c create mode 100644 kernel/vserver/legacynet.c create mode 100644 kernel/vserver/limit.c create mode 100644 kernel/vserver/limit_init.h create mode 100644 kernel/vserver/limit_proc.h create mode 100644 kernel/vserver/namespace.c create mode 100644 kernel/vserver/network.c create mode 100644 kernel/vserver/proc.c create mode 100644 kernel/vserver/sched.c create mode 100644 kernel/vserver/sched_init.h create mode 100644 kernel/vserver/sched_proc.h create mode 100644 kernel/vserver/signal.c create mode 100644 kernel/vserver/switch.c create mode 100644 kernel/vserver/sysctl.c create mode 100644 kernel/vserver/vci_config.h create mode 100644 lib/.cvsignore delete mode 100644 lib/zlib_inflate/inffixed.h create mode 100644 mm/oom_panic.c delete mode 100644 net/bluetooth/syms.c delete mode 100644 net/ipv4/ip_nat_dumb.c delete mode 100644 net/ipv4/ipvs/ip_vs_proto_icmp.c create mode 100644 net/ipv4/netfilter/ip_conntrack_pptp.c create mode 100644 net/ipv4/netfilter/ip_conntrack_pptp_priv.h create mode 100644 net/ipv4/netfilter/ip_conntrack_proto_gre.c delete mode 100644 net/ipv4/netfilter/ip_fw_compat.c delete mode 100644 net/ipv4/netfilter/ip_fw_compat.h delete mode 100644 net/ipv4/netfilter/ip_fw_compat_masq.c delete mode 100644 net/ipv4/netfilter/ip_fw_compat_redir.c create mode 100644 net/ipv4/netfilter/ip_nat_pptp.c create mode 100644 net/ipv4/netfilter/ip_nat_proto_gre.c delete mode 100644 net/ipv4/netfilter/ipchains_core.c delete mode 100644 net/ipv4/netfilter/ipfwadm_core.c delete mode 100644 net/ipv6/README delete mode 100644 net/irda/crc.c delete mode 100644 net/netlink/netlink_dev.c delete mode 100644 net/sched/sch_csz.c delete mode 100644 net/sched/sch_delay.c delete mode 100644 net/sunrpc/auth_gss/gss_pseudoflavors.c delete mode 100644 net/sunrpc/auth_gss/sunrpcgss_syms.c delete mode 100644 net/sunrpc/svcauth_des.c create mode 100644 net/tux/Kconfig create mode 100644 net/tux/Makefile create mode 100644 net/tux/abuf.c create mode 100644 net/tux/accept.c create mode 100644 net/tux/cachemiss.c create mode 100644 net/tux/cgi.c create mode 100644 net/tux/directory.c create mode 100644 net/tux/extcgi.c create mode 100644 net/tux/gzip.c create mode 100644 net/tux/input.c create mode 100644 net/tux/logger.c create mode 100644 net/tux/main.c create mode 100644 net/tux/mod.c create mode 100644 net/tux/output.c create mode 100644 net/tux/parser.h create mode 100644 net/tux/postpone.c create mode 100644 net/tux/proc.c create mode 100644 net/tux/proto_ftp.c create mode 100644 net/tux/proto_http.c create mode 100644 net/tux/redirect.c create mode 100644 net/tux/times.c create mode 100644 net/tux/times.h create mode 100644 net/tux/userspace.c delete mode 100644 net/xfrm/xfrm_export.c delete mode 100644 net/xfrm/xfrm_output.c create mode 100644 scripts/.cvsignore delete mode 100644 scripts/README.Menuconfig create mode 100644 scripts/basic/.cvsignore delete mode 100644 scripts/empty.c delete mode 100644 scripts/file2alias.c create mode 100644 scripts/kconfig/.cvsignore create mode 100644 scripts/kernel-2.6-planetlab.spec create mode 100644 scripts/lxdialog/.cvsignore delete mode 100755 scripts/makeman delete mode 100644 scripts/mk_elfconfig.c delete mode 100755 scripts/mkconfigs delete mode 100755 scripts/mkspec create mode 100644 scripts/mod/.cvsignore delete mode 100644 scripts/modpost.c delete mode 100644 scripts/modpost.h create mode 100644 scripts/modsign/Makefile create mode 100644 scripts/modsign/mod-extract.c create mode 100644 scripts/modsign/mod-extract.sh create mode 100644 scripts/modsign/modsign.sh delete mode 100755 scripts/split-man delete mode 100644 scripts/sumversion.c delete mode 100644 sound/core/ioctl32/Makefile delete mode 100644 sound/core/ioctl32/hwdep32.c delete mode 100644 sound/core/ioctl32/ioctl32.c delete mode 100644 sound/core/ioctl32/ioctl32.h delete mode 100644 sound/core/ioctl32/pcm32.c delete mode 100644 sound/core/ioctl32/rawmidi32.c delete mode 100644 sound/core/ioctl32/seq32.c delete mode 100644 sound/core/ioctl32/timer32.c delete mode 100644 sound/core/seq/oss/seq_oss_misc.c delete mode 100644 sound/isa/cs423x/pc98.c delete mode 100644 sound/isa/cs423x/pc9801_118_magic.h delete mode 100644 sound/isa/cs423x/sound_pc9800.h delete mode 100644 sound/isa/gus/gus_lfo.c delete mode 100644 sound/oss/cs4232.h delete mode 100644 sound/oss/maestro_tables.h delete mode 100644 sound/pci/ice1712/prodigy.c delete mode 100644 sound/pci/ice1712/prodigy.h create mode 100644 usr/.cvsignore diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 000000000..c150355e6 --- /dev/null +++ b/.cvsignore @@ -0,0 +1,14 @@ +.config +.tmp_System.map +.tmp_kallsyms1.S +.tmp_kallsyms2.S +.tmp_kallsyms3.S +.tmp_versions +.tmp_vmlinux1 +.tmp_vmlinux2 +.tmp_vmlinux3 +.version +Module.symvers +System.map +vmlinux +linux diff --git a/Documentation/BK-usage/00-INDEX b/Documentation/BK-usage/00-INDEX deleted file mode 100644 index 82768784e..000000000 --- a/Documentation/BK-usage/00-INDEX +++ /dev/null @@ -1,51 +0,0 @@ -bk-kernel-howto.txt: Description of kernel workflow under BitKeeper - -bk-make-sum: Create summary of changesets in one repository and not -another, typically in preparation to be sent to an upstream maintainer. -Typical usage: - cd my-updated-repo - bk-make-sum ~/repo/original-repo - mv /tmp/linus.txt ../original-repo.txt - -bksend: Create readable text output containing summary of changes, GNU -patch of the changes, and BK metadata of changes (as needed for proper -importing into BitKeeper by an upstream maintainer). This output is -suitable for emailing BitKeeper changes. The recipient of this output -may pipe it directly to 'bk receive'. - -bz64wrap: helper script. Uncompressed input is piped to this script, -which compresses its input, and then outputs the uu-/base64-encoded -version of the compressed input. - -cpcset: Copy changeset between unrelated repositories. -Attempts to preserve changeset user, user address, description, in -addition to the changeset (the patch) itself. -Typical usage: - cd my-updated-repo - bk changes # looking for a changeset... - cpcset 1.1511 . ../another-repo - -csets-to-patches: Produces a delta of two BK repositories, in the form -of individual files, each containing a single cset as a GNU patch. -Output is several files, each with the filename "/tmp/rev-$REV.patch" -Typical usage: - cd my-updated-repo - bk changes -L ~/repo/original-repo 2>&1 | \ - perl csets-to-patches - -cset-to-linus: Produces a delta of two BK repositories, in the form of -changeset descriptions, with 'diffstat' output created for each -individual changset. -Typical usage: - cd my-updated-repo - bk changes -L ~/repo/original-repo 2>&1 | \ - perl cset-to-linus > summary.txt - -gcapatch: Generates patch containing changes in local repository. -Typical usage: - cd my-updated-repo - gcapatch > foo.patch - -unbz64wrap: Reverse an encoded, compressed data stream created by -bz64wrap into an uncompressed, typically text/plain output. - diff --git a/Documentation/BK-usage/bk-kernel-howto.txt b/Documentation/BK-usage/bk-kernel-howto.txt deleted file mode 100644 index b7b9075d2..000000000 --- a/Documentation/BK-usage/bk-kernel-howto.txt +++ /dev/null @@ -1,283 +0,0 @@ - - Doing the BK Thing, Penguin-Style - - - - -This set of notes is intended mainly for kernel developers, occasional -or full-time, but sysadmins and power users may find parts of it useful -as well. It assumes at least a basic familiarity with CVS, both at a -user level (use on the cmd line) and at a higher level (client-server model). -Due to the author's background, an operation may be described in terms -of CVS, or in terms of how that operation differs from CVS. - -This is -not- intended to be BitKeeper documentation. Always run -"bk help " or in X "bk helptool " for reference -documentation. - - -BitKeeper Concepts ------------------- - -In the true nature of the Internet itself, BitKeeper is a distributed -system. When applied to revision control, this means doing away with -client-server, and changing to a parent-child model... essentially -peer-to-peer. On the developer's end, this also represents a -fundamental disruption in the standard workflow of changes, commits, -and merges. You will need to take a few minutes to think about -how to best work under BitKeeper, and re-optimize things a bit. -In some sense it is a bit radical, because it might described as -tossing changes out into a maelstrom and having them magically -land at the right destination... but I'm getting ahead of myself. - -Let's start with this progression: -Each BitKeeper source tree on disk is a repository unto itself. -Each repository has a parent (except the root/original, of course). -Each repository contains a set of a changesets ("csets"). -Each cset is one or more changed files, bundled together. - -Each tree is a repository, so all changes are checked into the local -tree. When a change is checked in, all modified files are grouped -into a logical unit, the changeset. Internally, BK links these -changesets in a tree, representing various converging and diverging -lines of development. These changesets are the bread and butter of -the BK system. - -After the concept of changesets, the next thing you need to get used -to is having multiple copies of source trees lying around. This -really- -takes some getting used to, for some people. Separate source trees -are the means in BitKeeper by which you delineate parallel lines -of development, both minor and major. What would be branches in -CVS become separate source trees, or "clones" in BitKeeper [heh, -or Star Wars] terminology. - -Clones and changesets are the tools from which most of the power of -BitKeeper is derived. As mentioned earlier, each clone has a parent, -the tree used as the source when the new clone was created. In a -CVS-like setup, the parent would be a remote server on the Internet, -and the child is your local clone of that tree. - -Once you have established a common baseline between two source trees -- -a common parent -- then you can merge changesets between those two -trees with ease. Merging changes into a tree is called a "pull", and -is analagous to 'cvs update'. A pull downloads all the changesets in -the remote tree you do not have, and merges them. Sending changes in -one tree to another tree is called a "push". Push sends all changes -in the local tree the remote does not yet have, and merges them. - -From these concepts come some initial command examples: - -1) bk clone -q http://linux.bkbits.net/linux-2.5 linus-2.5 -Download a 2.5 stock kernel tree, naming it "linus-2.5" in the local dir. -The "-q" disables listing every single file as it is downloaded. - -2) bk clone -ql linus-2.5 alpha-2.5 -Create a separate source tree for the Alpha AXP architecture. -The "-l" uses hard links instead of copying data, since both trees are -on the local disk. You can also replace the above with "bk lclone -q ..." - -You only clone a tree -once-. After cloning the tree lives a long time -on disk, being updating by pushes and pulls. - -3) cd alpha-2.5 ; bk pull http://gkernel.bkbits.net/alpha-2.5 -Download changes in "alpha-2.5" repository which are not present -in the local repository, and merge them into the source tree. - -4) bk -r co -q -Because every tree is a repository, files must be checked out before -they will be in their standard places in the source tree. - -5) bk vi fs/inode.c # example change... - bk citool # checkin, using X tool - bk push bk://gkernel@bkbits.net/alpha-2.5 # upload change -Typical example of a BK sequence that would replace the analagous CVS -situation, - vi fs/inode.c - cvs commit - -As this is just supposed to be a quick BK intro, for more in-depth -tutorials, live working demos, and docs, see http://www.bitkeeper.com/ - - - -BK and Kernel Development Workflow ----------------------------------- -Currently the latest 2.5 tree is available via "bk clone $URL" -and "bk pull $URL" at http://linux.bkbits.net/linux-2.5 -This should change in a few weeks to a kernel.org URL. - - -A big part of using BitKeeper is organizing the various trees you have -on your local disk, and organizing the flow of changes among those -trees, and remote trees. If one were to graph the relationships between -a desired BK setup, you are likely to see a few-many-few graph, like -this: - - linux-2.5 - | - merge-to-linus-2.5 - / | | - / | | - vm-hacks bugfixes filesys personal-hacks - \ | | / - \ | | / - \ | | / - testing-and-validation - -Since a "bk push" sends all changes not in the target tree, and -since a "bk pull" receives all changes not in the source tree, you want -to make sure you are only pushing specific changes to the desired tree, -not all changes from "peer parent" trees. For example, pushing a change -from the testing-and-validation tree would probably be a bad idea, -because it will push all changes from vm-hacks, bugfixes, filesys, and -personal-hacks trees into the target tree. - -One would typically work on only one "theme" at a time, either -vm-hacks or bugfixes or filesys, keeping those changes isolated in -their own tree during development, and only merge the isolated with -other changes when going upstream (to Linus or other maintainers) or -downstream (to your "union" trees, like testing-and-validation above). - -It should be noted that some of this separation is not just recommended -practice, it's actually [for now] -enforced- by BitKeeper. BitKeeper -requires that changesets maintain a certain order, which is the reason -that "bk push" sends all local changesets the remote doesn't have. This -separation may look like a lot of wasted disk space at first, but it -helps when two unrelated changes may "pollute" the same area of code, or -don't follow the same pace of development, or any other of the standard -reasons why one creates a development branch. - -Small development branches (clones) will appear and disappear: - - -------- A --------- B --------- C --------- D ------- - \ / - -----short-term devel branch----- - -While long-term branches will parallel a tree (or trees), with period -merge points. In this first example, we pull from a tree (pulls, -"\") periodically, such as what occurs when tracking changes in a -vendor tree, never pushing changes back up the line: - - -------- A --------- B --------- C --------- D ------- - \ \ \ - ----long-term devel branch----------------- - -And then a more common case in Linux kernel development, a long term -branch with periodic merges back into the tree (pushes, "/"): - - -------- A --------- B --------- C --------- D ------- - \ \ / \ - ----long-term devel branch----------------- - - - - - -Submitting Changes to Linus ---------------------------- -There's a bit of an art, or style, of submitting changes to Linus. -Since Linus's tree is now (you might say) fully integrated into the -distributed BitKeeper system, there are several prerequisites to -properly submitting a BitKeeper change. All these prereq's are just -general cleanliness of BK usage, so as people become experts at BK, feel -free to optimize this process further (assuming Linus agrees, of -course). - - - -0) Make sure your tree was originally cloned from the linux-2.5 tree -created by Linus. If your tree does not have this as its ancestor, it -is impossible to reliably exchange changesets. - - - -1) Pay attention to your commit text. The commit message that -accompanies each changeset you submit will live on forever in history, -and is used by Linus to accurately summarize the changes in each -pre-patch. Remember that there is no context, so - "fix for new scheduler changes" -would be too vague, but - "fix mips64 arch for new scheduler switch_to(), TIF_xxx semantics" -would be much better. - -You can and should use the command "bk comment -C" to update the -commit text, and improve it after the fact. This is very useful for -development: poor, quick descriptions during development, which get -cleaned up using "bk comment" before issuing the "bk push" to submit the -changes. - - - -2) Include an Internet-available URL for Linus to pull from, such as - - Pull from: http://gkernel.bkbits.net/net-drivers-2.5 - - - -3) Include a summary and "diffstat -p1" of each changeset that will be -downloaded, when Linus issues a "bk pull". The author auto-generates -these summaries using "bk changes -L ", to obtain a listing -of all the pending-to-send changesets, and their commit messages. - -It is important to show Linus what he will be downloading when he issues -a "bk pull", to reduce the time required to sift the changes once they -are downloaded to Linus's local machine. - -IMPORTANT NOTE: One of the features of BK is that your repository does -not have to be up to date, in order for Linus to receive your changes. -It is considered a courtesy to keep your repository fairly recent, to -lessen any potential merge work Linus may need to do. - - -4) Split up your changes. Each maintainer<->Linus situation is likely -to be slightly different here, so take this just as general advice. The -author splits up changes according to "themes" when merging with Linus. -Simultaneous pushes from local development go to special trees which -exist solely to house changes "queued" for Linus. Example of the trees: - - net-drivers-2.5 -- on-going net driver maintenance - vm-2.5 -- VM-related changes - fs-2.5 -- filesystem-related changes - -Linus then has much more freedom for pulling changes. He could (for -example) issue a "bk pull" on vm-2.5 and fs-2.5 trees, to merge their -changes, but hold off net-drivers-2.5 because of a change that needs -more discussion. - -Other maintainers may find that a single linus-pull-from tree is -adequate for passing BK changesets to him. - - - -Frequently Answered Questions ------------------------------ -1) How do I change the e-mail address shown in the changelog? -A. When you run "bk citool" or "bk commit", set environment - variables BK_USER and BK_HOST to the desired username - and host/domain name. - - -2) How do I use tags / get a diff between two kernel versions? -A. Pass the tags Linus uses to 'bk export'. - -ChangeSets are in a forward-progressing order, so it's pretty easy -to get a snapshot starting and ending at any two points in time. -Linus puts tags on each release and pre-release, so you could use -these two examples: - - bk export -tpatch -hdu -rv2.5.4,v2.5.5 | less - # creates patch-2.5.5 essentially - bk export -tpatch -du -rv2.5.5-pre1,v2.5.5 | less - # changes from pre1 to final - -A tag is just an alias for a specific changeset... and since changesets -are ordered, a tag is thus a marker for a specific point in time (or -specific state of the tree). - - -3) Is there an easy way to generate One Big Patch versus mainline, - for my long-lived kernel branch? -A. Yes. This requires BK 3.x, though. - - bk export -tpatch -r`bk repogca bk://linux.bkbits.net/linux-2.5`,+ - diff --git a/Documentation/BK-usage/bk-make-sum b/Documentation/BK-usage/bk-make-sum deleted file mode 100755 index 58ca46a0f..000000000 --- a/Documentation/BK-usage/bk-make-sum +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -e -# DIR=$HOME/BK/axp-2.5 -# cd $DIR - -LINUS_REPO=$1 -DIRBASE=`basename $PWD` - -{ -cat </dev/null - -cat < (:D: :I:)\n$each(:C:){ (:C:)\n}\n}' - - -} > /tmp/linus.txt - -cat < 13/02/2002 -# -# Add diffstat output after Changelog 21/02/2002 - -PROG=bksend - -usage() { - echo "usage: $PROG -r" - echo -e "\twhere is of the form '1.23', '1.23..', '1.23..1.27'," - echo -e "\tor '+' to indicate the most recent revision" - - exit 1 -} - -case $1 in --r) REV=$2; shift ;; --r*) REV=`echo $1 | sed 's/^-r//'` ;; -*) echo "$PROG: no revision given, you probably don't want that";; -esac - -[ -z "$REV" ] && usage - -echo "You can import this changeset into BK by piping this whole message to:" -echo "'| bk receive [path to repository]' or apply the patch as usual." - -SEP="\n===================================================================\n\n" -echo -e $SEP -bk changes -r$REV -echo -bk export -tpatch -du -h -r$REV | diffstat -echo; echo -bk export -tpatch -du -h -r$REV -echo -e $SEP -bk send -wgzip_uu -r$REV - diff --git a/Documentation/BK-usage/bz64wrap b/Documentation/BK-usage/bz64wrap deleted file mode 100755 index be7808768..000000000 --- a/Documentation/BK-usage/bz64wrap +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh - -# bz64wrap - the sending side of a bzip2 | base64 stream -# Andreas Dilger Jan 2002 - - -PATH=$PATH:/usr/bin:/usr/local/bin:/usr/freeware/bin - -# A program to generate base64 encoding on stdout -BASE64_ENCODE="uuencode -m /dev/stdout" -BASE64_BEGIN= -BASE64_END= - -BZIP=NO -BASE64=NO - -# Test if we have the bzip program installed -bzip2 -c /dev/null > /dev/null 2>&1 && BZIP=YES - -# Test if uuencode can handle the -m (MIME) encoding option -$BASE64_ENCODE < /dev/null > /dev/null 2>&1 && BASE64=YES - -if [ $BASE64 = NO ]; then - BASE64_ENCODE=mimencode - BASE64_BEGIN="begin-base64 644 -" - BASE64_END="====" - - $BASE64_ENCODE < /dev/null > /dev/null 2>&1 && BASE64=YES -fi - -if [ $BZIP = NO -o $BASE64 = NO ]; then - echo "$0: can't use bz64 encoding: bzip2=$BZIP, $BASE64_ENCODE=$BASE64" - exit 1 -fi - -# Sadly, mimencode does not appear to have good "begin" and "end" markers -# like uuencode does, and it is picky about getting the right start/end of -# the base64 stream, so we handle this internally. -echo "$BASE64_BEGIN" -bzip2 -9 | $BASE64_ENCODE -echo "$BASE64_END" diff --git a/Documentation/BK-usage/cpcset b/Documentation/BK-usage/cpcset deleted file mode 100755 index b8faca97d..000000000 --- a/Documentation/BK-usage/cpcset +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# -# Purpose: Copy changeset patch and description from one -# repository to another, unrelated one. -# -# usage: cpcset [revision] [from-repository] [to-repository] -# - -REV=$1 -FROM=$2 -TO=$3 -TMPF=/tmp/cpcset.$$ - -rm -f $TMPF* - -CWD_SAVE=`pwd` -cd $FROM -bk changes -r$REV | \ - grep -v '^ChangeSet' | \ - sed -e 's/^ //g' > $TMPF.log - -USERHOST=`bk changes -r$REV | grep '^ChangeSet' | awk '{print $4}'` -export BK_USER=`echo $USERHOST | awk '-F@' '{print $1}'` -export BK_HOST=`echo $USERHOST | awk '-F@' '{print $2}'` - -bk export -tpatch -hdu -r$REV > $TMPF.patch && \ -cd $CWD_SAVE && \ -cd $TO && \ -bk import -tpatch -CFR -y"`cat $TMPF.log`" $TMPF.patch . && \ -bk commit -y"`cat $TMPF.log`" - -rm -f $TMPF* - -echo changeset $REV copied. -echo "" - diff --git a/Documentation/BK-usage/cset-to-linus b/Documentation/BK-usage/cset-to-linus deleted file mode 100755 index d28a96f8c..000000000 --- a/Documentation/BK-usage/cset-to-linus +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/perl -w - -use strict; - -my ($lhs, $rev, $tmp, $rhs, $s); -my @cset_text = (); -my @pipe_text = (); -my $have_cset = 0; - -while (<>) { - next if /^---/; - - if (($lhs, $tmp, $rhs) = (/^(ChangeSet\@)([^,]+)(, .*)$/)) { - &cset_rev if ($have_cset); - - $rev = $tmp; - $have_cset = 1; - - push(@cset_text, $_); - } - - elsif ($have_cset) { - push(@cset_text, $_); - } -} -&cset_rev if ($have_cset); -exit(0); - - -sub cset_rev { - my $empty_cset = 0; - - open PIPE, "bk export -tpatch -hdu -r $rev | diffstat -p1 2>/dev/null |" or die; - while ($s = ) { - $empty_cset = 1 if ($s =~ /0 files changed/); - push(@pipe_text, $s); - } - close(PIPE); - - if (! $empty_cset) { - print @cset_text; - print @pipe_text; - print "\n\n"; - } - - @pipe_text = (); - @cset_text = (); -} - diff --git a/Documentation/BK-usage/csets-to-patches b/Documentation/BK-usage/csets-to-patches deleted file mode 100755 index e2b81c358..000000000 --- a/Documentation/BK-usage/csets-to-patches +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/perl -w - -use strict; - -my ($lhs, $rev, $tmp, $rhs, $s); -my @cset_text = (); -my @pipe_text = (); -my $have_cset = 0; - -while (<>) { - next if /^---/; - - if (($lhs, $tmp, $rhs) = (/^(ChangeSet\@)([^,]+)(, .*)$/)) { - &cset_rev if ($have_cset); - - $rev = $tmp; - $have_cset = 1; - - push(@cset_text, $_); - } - - elsif ($have_cset) { - push(@cset_text, $_); - } -} -&cset_rev if ($have_cset); -exit(0); - - -sub cset_rev { - my $empty_cset = 0; - - system("bk export -tpatch -du -r $rev > /tmp/rev-$rev.patch"); - - if (! $empty_cset) { - print @cset_text; - print @pipe_text; - print "\n\n"; - } - - @pipe_text = (); - @cset_text = (); -} - diff --git a/Documentation/BK-usage/gcapatch b/Documentation/BK-usage/gcapatch deleted file mode 100755 index aaeb17dc7..000000000 --- a/Documentation/BK-usage/gcapatch +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -# Purpose: Generate GNU diff of local changes versus canonical top-of-tree -# -# Usage: gcapatch > foo.patch -# - -bk export -tpatch -hdu -r`bk repogca bk://linux.bkbits.net/linux-2.5`,+ diff --git a/Documentation/BK-usage/unbz64wrap b/Documentation/BK-usage/unbz64wrap deleted file mode 100755 index 4fc3e73e9..000000000 --- a/Documentation/BK-usage/unbz64wrap +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# unbz64wrap - the receiving side of a bzip2 | base64 stream -# Andreas Dilger Jan 2002 - -# Sadly, mimencode does not appear to have good "begin" and "end" markers -# like uuencode does, and it is picky about getting the right start/end of -# the base64 stream, so we handle this explicitly here. - -PATH=$PATH:/usr/bin:/usr/local/bin:/usr/freeware/bin - -if mimencode -u < /dev/null > /dev/null 2>&1 ; then - SHOW= - while read LINE; do - case $LINE in - begin-base64*) SHOW=YES ;; - ====) SHOW= ;; - *) [ "$SHOW" ] && echo "$LINE" ;; - esac - done | mimencode -u | bunzip2 - exit $? -else - cat - | uudecode -o /dev/stdout | bunzip2 - exit $? -fi diff --git a/Documentation/COPYING.modules b/Documentation/COPYING.modules new file mode 100644 index 000000000..da0266e78 --- /dev/null +++ b/Documentation/COPYING.modules @@ -0,0 +1,708 @@ +Date: Thu, 29 Apr 2004 14:10:41 -0700 (PDT) +From: Linus Torvalds +To: Giuliano Colla +cc: Linux Kernel Mailing List +Subject: Re: [hsflinux] [PATCH] Blacklist binary-only modules lying about + their license +Message-ID: + +On Thu, 29 Apr 2004, Giuliano Colla wrote: +> +> Let's try not to be ridiculous, please. + +It's not abotu being ridiculous. It's about honoring peoples copyrights. + +> As an end user, if I buy a full fledged modem, I get some amount of +> proprietary, non GPL, code which executes within the board or the +> PCMCIA card of the modem. The GPL driver may even support the +> functionality of downloading a new version of *proprietary* code into +> the flash Eprom of the device. The GPL linux driver interfaces with it, +> and all is kosher. + +Indeed. Everything is kosher, because the other piece of hardware and +software has _nothing_ to do with the kernel. It's not linked into it, it +cannot reasonably corrupt internal kernel data structures with random +pointer bugs, and in general you can think of firmware as part of the +_hardware_, not the software of the machine. + +> On the other hand, I have the misfortune of being stuck with a +> soft-modem, roughly the *same* proprietary code is provided as a binary +> file, and a linux driver (source provided) interfaces with it. In that +> case the kernel is flagged as "tainted". + +It is flagged as tainted, because your argument that it is "the same code" +is totally BOGUS AND UNTRUE! + +In the binary kernel module case, a bug in the code corrupts random data +structures, or accesses kernel internals without holding the proper locks, +or does a million other things wrong, BECAUSE A KERNEL MODULE IS VERY +INTIMATELY LINKED WITH THE KERNEL. + +A kernel module is _not_ a separate work, and can in _no_ way be seen as +"part of the hardware". It's very much a part of the _kernel_. And the +kernel developers require that such code be GPL'd so that it can be fixed, +or if there's a valid argument that it's not a derived work and not GPL'd, +then the kernel developers who have to support the end result mess most +definitely do need to know about the taint. + +You are not the first (and sadly, you likely won't be the last) person to +equate binary kernel modules with binary firmware. And I tell you that +such a comparison is ABSOLUTE CRAPOLA. There's a damn big difference +between running firmware on another chip behind a PCI bus, and linking +into the kernel directly. + +And if you don't see that difference, then you are either terminally +stupid, or you have some ulterior reason to claim that they are the same +case even though they clearly are NOT. + +> Can you honestly tell apart the two cases, if you don't make a it a case +> of "religion war"? + +It has absolutely nothing to do with religion. + + Linus + +Date: Fri, 5 Dec 2003 09:19:52 -0800 (PST) +From: Linus Torvalds +To: Peter Chubb +cc: linux-kernel@vger.kernel.org +Subject: Re: Linux GPL and binary module exception clause? +Message-ID: + +On Fri, 5 Dec 2003, Peter Chubb wrote: +> +> As I understand it, SCO is/was claiming that JFS and XFS are derived +> works of the UNIX source base, because they were developed to match +> the internal interfaces of UNIX, and with knowledge of the internals +> of UNIX -- and they hold the copyrights of and are the licensor of UNIX. + +Yes, and I'm not claiming anything like that. + +I claim that a "binary linux kernel module" is a derived work of the +kernel, and thus has to come with sources. + +But if you use those same sources (and _you_ wrote them) they do not +contain any Linux code, they are _clearly_ not derived from Linux, and you +can license and use your own code any way you want. + +You just can't make a binary module for Linux, and claim that that module +isn't derived from the kernel. Because it generally is - the binary +module not only included header files, but more importantly it clearly is +_not_ a standalone work any more. So even if you made your own prototypes +and tried hard to avoid kernel headers, it would _still_ be connected and +dependent on the kernel. + +And note that I'm very much talking about just the _binary_. Your source +code is still very much yours, and you have the right to distribute it +separately any which way you want. You wrote it, you own the copyrights to +it, and it is an independent work. + +But when you distribute it in a way that is CLEARLY tied to the GPL'd +kernel (and a binary module is just one such clear tie - a "patch" to +build it or otherwise tie it to the kernel is also such a tie, even if you +distribute it as source under some other license), you're BY DEFINITION +not an independent work any more. + +(But exactly because I'm not a black-and-white person, I reserve the right +to make a balanced decision on any particular case. I have several times +felt that the module author had a perfectly valid argument for why the +"default assumption" of being derived wasn't the case. That's why things +like the AFS module were accepted - but not liked - in the first place). + +This is why SCO's arguments are specious. IBM wrote their code, retained +their copyrights to their code AND THEY SEVERED THE CONNECTION TO SCO'S +CODE (and, arguably the connections didn't even exist in the first place, +since apparently things like JFS were written for OS/2 as well, and the +Linux port was based on that one - but that's a separate argument and +independent of my point). + +See the definition of "derivative" in USC 17.1.101: + + A "derivative work" is a work based upon one or more preexisting + works, such as a translation, musical arrangement, dramatization, + fictionalization, motion picture version, sound recording, art + reproduction, abridgment, condensation, or any other form in which + a work may be recast, transformed, or adapted. A work consisting + of editorial revisions, annotations, elaborations, or other + modifications which, as a whole, represent an original work of + authorship, is a "derivative work". + +And a binary module is an "elaboration" on the kernel. Sorry, but that is +how it IS. + +In short: your code is yours. The code you write is automatically +copyrighted by YOU, and as such you have the right to license and use it +any way you want (well, modulo _other_ laws, of course - in the US your +license can't be racist, for example, but that has nothing to do with +copyright laws, and would fall under a totally different legal framework). + +But when you use that code to create an "elaboration" to the kernel, that +makes it a derived work, and you cannot distribute it except as laid out +by the GPL. A binary module is one such case, but even just a source patch +is _also_ one such case. The lines you added are yours, but when you +distribute it as an elaboration, you are bound by the restriction on +derivative works. + +Or you had better have some other strong argument why it isn't. Which has +been my point all along. + + Linus + + +Date: Wed, 10 Dec 2003 09:10:18 -0800 (PST) +From: Linus Torvalds +To: Larry McVoy +Subject: Re: Linux GPL and binary module exception clause? + +On Wed, 10 Dec 2003, Larry McVoy wrote: +> +> Which is? How is it that you can spend a page of text saying a judge doesn't +> care about technicalities and then base the rest of your argument on the +> distinction between a "plugin" and a "kernel module"? + +I'll stop arguing, since you obviously do not get it. + +I explained the technicalities to _you_, and you are a technical person. + +But if you want to explain something to a judge, you get a real lawyer, +and you make sure that the lawyer tries to explain the issue in _non_ +technical terms. Because, quite frankly, the judge is not going to buy a +technical discussion he or she doesn't understand. + +Just as an example, how do you explain to a judge how much code the Linux +kernel contains? Do you say "it's 6 million lines of C code and header +files and documentation, for a total of about 175MB of data"? + +Yeah, maybe you'd _mention_ that, but to actually _illustrate_ the point +you'd say that if you printed it out, it would be a solid stack of papers +100 feet high. And you'd compare it to the height of the court building +you're in, or something. Maybe you'd print out _one_ file, bind it as a +book, and wave it around as one out of 15,000 files. + +But when _you_ ask me about how big the kernel is, I'd say "5 million +lines". See the difference? It would be silly for me to tell you how many +feet of paper the kernel would print out to, because we don't have those +kinds of associations. + +Similarly, if you want to explain the notion of a kernel module, you'd +compare it to maybe an extra chapter in a book. You'd make an analogy to +something that never _ever_ mentions "linking". + +Just imagine: distributing a compiled binary-only kernel module that can +be loaded into the kernel is not like distributing a new book: it's more +like distributing a extra chapter to a book that somebody else wrote, that +uses all the same characters and the plot, but more importantly it +literally can only be read _together_ with the original work. It doesn't +stand alone. + +In short, your honour, this extra chapter without any meaning on its own +is a derived work of the book. + +In contrast, maybe you can re-write your code and distribute it as a +short-story, which can be run on its own, and maybe the author has been +influenced by another book, but the short-story could be bound AS IS, and +a recipient would find it useful even without that other book. In that +case, the short story is not a derived work - it's only inspired. + +Notice? This is actually _exactly_ what I've been arguing all along, +except I've been arguing with a technical audience, so I've been using +technical examples and terminology. But my argument is that just the fact +that somebody compiled the code for Linux into a binary module that is +useless without a particular version of the kernel DOES MAKE IT A DERIVED +WORK. + +But also note how it's only the BINARY MODULE that is a derived work. Your +source code is _not_ necessarily a derived work, and if you compile it for +another operating system, I'd clearly not complain. + +This is the "stand-alone short story" vs "extra chapter without meaning +outside the book" argument. See? One is a work in its own right, the other +isn't. + + Linus + + +Please read the FAQ at http://www.tux.org/lkml/ +Date: Thu, 4 Dec 2003 22:43:42 -0800 (PST) +From: Linus Torvalds +To: David Schwartz +cc: linux-kernel@vger.kernel.org +Subject: RE: Linux GPL and binary module exception clause? + +On Thu, 4 Dec 2003, David Schwartz wrote: +> +> Yes, but they will cite the prohibition against *creating* derived +> works. + +So? + +The same prohibition exists with the GPL. You are not allowed to create +and distribute a derived work unless it is GPL'd. + +I don't see what you are arguing against. It is very clear: a kernel +module is a derived work of the kernel by default. End of story. + +You can then try to prove (through development history etc) that there +would be major reasons why it's not really derived. But your argument +seems to be that _nothing_ is derived, which is clearly totally false, as +you yourself admit when you replace "kernel" with "Harry Potter". + + Linus + +Date: Wed, 3 Dec 2003 16:00:21 -0800 (PST) +From: Linus Torvalds +To: Kendall Bennet +cc: linux-kernel@vger.kernel.org +Subject: Re: Linux GPL and binary module exception clause? + +On Wed, 3 Dec 2003, Kendall Bennett wrote: +> +> I have heard many people reference the fact that the although the Linux +> Kernel is under the GNU GPL license, that the code is licensed with an +> exception clause that says binary loadable modules do not have to be +> under the GPL. + +Nope. No such exception exists. + +There's a clarification that user-space programs that use the standard +system call interfaces aren't considered derived works, but even that +isn't an "exception" - it's just a statement of a border of what is +clearly considered a "derived work". User programs are _clearly_ not +derived works of the kernel, and as such whatever the kernel license is +just doesn't matter. + +And in fact, when it comes to modules, the GPL issue is exactly the same. +The kernel _is_ GPL. No ifs, buts and maybe's about it. As a result, +anything that is a derived work has to be GPL'd. It's that simple. + +Now, the "derived work" issue in copyright law is the only thing that +leads to any gray areas. There are areas that are not gray at all: user +space is clearly not a derived work, while kernel patches clearly _are_ +derived works. + +But one gray area in particular is something like a driver that was +originally written for another operating system (ie clearly not a derived +work of Linux in origin). At exactly what point does it become a derived +work of the kernel (and thus fall under the GPL)? + +THAT is a gray area, and _that_ is the area where I personally believe +that some modules may be considered to not be derived works simply because +they weren't designed for Linux and don't depend on any special Linux +behaviour. + +Basically: + - anything that was written with Linux in mind (whether it then _also_ + works on other operating systems or not) is clearly partially a derived + work. + - anything that has knowledge of and plays with fundamental internal + Linux behaviour is clearly a derived work. If you need to muck around + with core code, you're derived, no question about it. + +Historically, there's been things like the original Andrew filesystem +module: a standard filesystem that really wasn't written for Linux in the +first place, and just implements a UNIX filesystem. Is that derived just +because it got ported to Linux that had a reasonably similar VFS interface +to what other UNIXes did? Personally, I didn't feel that I could make that +judgment call. Maybe it was, maybe it wasn't, but it clearly is a gray +area. + +Personally, I think that case wasn't a derived work, and I was willing to +tell the AFS guys so. + +Does that mean that any kernel module is automatically not a derived work? +HELL NO! It has nothing to do with modules per se, except that non-modules +clearly are derived works (if they are so central to the kenrel that you +can't load them as a module, they are clearly derived works just by virtue +of being very intimate - and because the GPL expressly mentions linking). + +So being a module is not a sign of not being a derived work. It's just +one sign that _maybe_ it might have other arguments for why it isn't +derived. + + Linus + + +Date: Wed, 3 Dec 2003 16:23:33 -0800 (PST) +From: Linus Torvalds +To: Kendall Bennett +cc: linux-kernel@vger.kernel.org +Subject: Re: Linux GPL and binary module exception clause? + + +On Wed, 3 Dec 2003, Linus Torvalds wrote: +> +> So being a module is not a sign of not being a derived work. It's just +> one sign that _maybe_ it might have other arguments for why it isn't +> derived. + +Side note: historically, the Linux kernel module interfaces were really +quite weak, and only exported a few tens of entry-points, and really +mostly effectively only allowed character and block device drivers with +standard interfaces, and loadable filesystems. + +So historically, the fact that you could load a module using nothing but +these standard interfaces tended to be a much stronger argument for not +being very tightly coupled with the kernel. + +That has changed, and the kernel module interfaces we have today are MUCH +more extensive than they were back in '95 or so. These days modules are +used for pretty much everything, including stuff that is very much +"internal kernel" stuff and as a result the kind of historic "implied +barrier" part of modules really has weakened, and as a result there is not +avery strong argument for being an independent work from just the fact +that you're a module. + +Similarly, historically there was a much stronger argument for things like +AFS and some of the binary drivers (long forgotten now) for having been +developed totally independently of Linux: they literally were developed +before Linux even existed, by people who had zero knowledge of Linux. That +tends to strengthen the argument that they clearly aren't derived. + +In contrast, these days it would be hard to argue that a new driver or +filesystem was developed without any thought of Linux. I think the NVidia +people can probably reasonably honestly say that the code they ported had +_no_ Linux origin. But quite frankly, I'd be less inclined to believe that +for some other projects out there.. + + Linus + + + + +Date: Thu, 17 Oct 2002 10:08:19 -0700 (PDT) +From: Linus Torvalds +To: Christoph Hellwig +Cc: +Subject: Re: [PATCH] make LSM register functions GPLonly exports +In-Reply-To: <20021017175403.A32516@infradead.org> +Message-ID: + +Note that if this fight ends up being a major issue, I'm just going to +remove LSM and let the security vendors do their own thing. So far + + - I have not seen a lot of actual usage of the hooks + - seen a number of people who still worry that the hooks degrade + performance in critical areas + - the worry that people use it for non-GPL'd modules is apparently real, + considering Crispin's reply. + +I will re-iterate my stance on the GPL and kernel modules: + + There is NOTHING in the kernel license that allows modules to be + non-GPL'd. + + The _only_ thing that allows for non-GPL modules is copyright law, and + in particular the "derived work" issue. A vendor who distributes non-GPL + modules is _not_ protected by the module interface per se, and should + feel very confident that they can show in a court of law that the code + is not derived. + + The module interface has NEVER been documented or meant to be a GPL + barrier. The COPYING clearly states that the system call layer is such a + barrier, so if you do your work in user land you're not in any way + beholden to the GPL. The module interfaces are not system calls: there + are system calls used to _install_ them, but the actual interfaces are + not. + + The original binary-only modules were for things that were pre-existing + works of code, ie drivers and filesystems ported from other operating + systems, which thus could clearly be argued to not be derived works, and + the original limited export table also acted somewhat as a barrier to + show a level of distance. + +In short, Crispin: I'm going to apply the patch, and if you as a copyright +holder of that file disagree, I will simply remove all of he LSM code from +the kernel. I think it's very clear that a LSM module is a derived work, +and thus copyright law and the GPL are not in any way unclear about it. + +If people think they can avoid the GPL by using function pointers, they +are WRONG. And they have always been wrong. + + Linus + +------------------------------------------------------------------------ +Date: Fri, 19 Oct 2001 13:16:45 -0700 (PDT) +From: Linus Torvalds +To: Barnes +Subject: Re: GPL, Richard Stallman, and the Linux kernel + +[ This is not, of course, a legal document, but if you want to forward it + to anybody else, feel free to do so. And if you want to argue legal + points with me or point somehting out, I'm always interested. To a + point ;-] + +On Fri, 19 Oct 2001, Barnes wrote: +> +> I've been exchanging e-mail with Richard Stallman for a couple of +> weeks about the finer points of the GPL. + +I feel your pain. + +> I've have spent time pouring through mailing list archives, usenet, +> and web search engines to find out what's already been covered about +> your statement of allowing dynamically loaded kernel modules with +> proprietary code to co-exist with the Linux kernel. So far I've +> been unable to find anything beyond vague statements attributed to +> you. If these issues are addressed somewhere already, please refer +> me. + +Well, it really boils down to the equivalent of "_all_ derived modules +have to be GPL'd". An external module doesn't really change the GPL in +that respect. + +There are (mainly historical) examples of UNIX device drivers and some +UNIX filesystems that were pre-existing pieces of work, and which had +fairly well-defined and clear interfaces and that I personally could not +really consider any kind of "derived work" at all, and that were thus +acceptable. The clearest example of this is probably the AFS (the Andrew +Filesystem), but there have been various device drivers ported from SCO +too. + +> Issue #1 +> ======== +> Currently the GPL version 2 license is the only license covering the +> Linux kernel. I cannot find any alternative license explaining the +> loadable kernel module exception which makes your position difficult +> to legally analyze. +> +> There is a note at the top of www.kernel.org/pub/linux/kernel/COPYING, +> but that states "user programs" which would clearly not apply to +> kernel modules. +> +> Could you clarify in writing what the exception precisely states? + +Well, there really is no exception. However, copyright law obviously +hinges on the definition of "derived work", and as such anything can +always be argued on that point. + +I personally consider anything a "derived work" that needs special hooks +in the kernel to function with Linux (ie it is _not_ acceptable to make a +small piece of GPL-code as a hook for the larger piece), as that obviously +implies that the bigger module needs "help" from the main kernel. + +Similarly, I consider anything that has intimate knowledge about kernel +internals to be a derived work. + +What is left in the gray area tends to be clearly separate modules: code +that had a life outside Linux from the beginning, and that do something +self-containted that doesn't really have any impact on the rest of the +kernel. A device driver that was originally written for something else, +and that doesn't need any but the standard UNIX read/write kind of +interfaces, for example. + +> Issue #2 +> ======== +> I've found statements attributed to you that you think only 10% of +> the code in the current kernel was written by you. By not being the +> sole copyright holder of the Linux kernel, a stated exception to +> the GPL seems invalid unless all kernel copyright holders agreed on +> this exception. How does the exception cover GPL'd kernel code not +> written by you? Has everyone contributing to the kernel forfeited +> their copyright to you or agreed with the exception? + +Well, see above about the lack of exception, and about the fundamental +gray area in _any_ copyright issue. The "derived work" issue is obviously +a gray area, and I know lawyers don't like them. Crazy people (even +judges) have, as we know, claimed that even obvious spoofs of a work that +contain nothing of the original work itself, can be ruled to be "derived". + +I don't hold views that extreme, but at the same time I do consider a +module written for Linux and using kernel infrastructures to get its work +done, even if not actually copying any existing Linux code, to be a +derived work by default. You'd have to have a strong case to _not_ +consider your code a derived work.. + +> Issue #3 +> ======== +> This issue is related to issue #1. Exactly what is covered by the +> exception? For example, all code shipped with the Linux kernel +> archive and typically installed under /usr/src/linux, all code under +> /usr/src/linux except /usr/src/linux/drivers, or just the code in +> the /usr/src/linux/kernel directory? + +See above, and I think you'll see my point. + +The "user program" exception is not an exception at all, for example, it's +just a more clearly stated limitation on the "derived work" issue. If you +use standard UNIX system calls (with accepted Linux extensions), your +program obviously doesn't "derive" from the kernel itself. + +Whenever you link into the kernel, either directly or through a module, +the case is just a _lot_ more muddy. But as stated, by default it's +obviously derived - the very fact that you _need_ to do something as +fundamental as linking against the kernel very much argues that your +module is not a stand-alone thing, regardless of where the module source +code itself has come from. + +> Issue #4 +> ======== +> This last issue is not so much a issue for the Linux kernel +> exception, but a request for comment. +> +> Richard and I both agree that a "plug-in" and a "dynamically +> loaded kernel module" are effectively the same under the GPL. + +Agreed. + +The Linux kernel modules had (a long time ago), a more limited interface, +and not very many functions were actually exported. So five or six years +ago, we could believably claim that "if you only use these N interfaces +that are exported from the standard kernel, you've kind of implicitly +proven that you do not need the kernel infrastructure". + +That was never really documented either (more of a guideline for me and +others when we looked at the "derived work" issue), and as modules were +more-and-more used not for external stuff, but just for dynamic loading of +standard linux modules that were distributed as part of the kernel anyway, +the "limited interfaces" argument is no longer a very good guideline for +"derived work". + +So these days, we export many internal interfaces, not because we don't +think that they would "taint" the linker, but simply because it's useful +to do dynamic run-time loading of modules even with standard kernel +modules that _are_ supposed to know a lot about kernel internals, and are +obviously "derived works".. + +> However we disagree that a plug-in for a GPL'd program falls +> under the GPL as asserted in the GPL FAQ found in the answer: +> http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins. + +I think you really just disagree on what is derived, and what is not. +Richard is very extreme: _anything_ that links is derived, regardless of +what the arguments against it are. I'm less extreme, and I bet you're even +less so (at least you would like to argue so for your company). + +> My assertion is that plug-ins are written to an interface, not a +> program. Since interfaces are not GPL'd, a plug-in cannot be GPL'd +> until the plug-in and program are placed together and run. That is +> done by the end user, not the plug-in creator. + +I agree, but also disrespectfully disagree ;) + +It's an issue of what a "plug-in" is - is it a way for the program to +internally load more modules as it needs them, or is it _meant_ to be a +public, published interface. + +For example, the "system call" interface could be considered a "plug-in +interface", and running a user mode program under Linux could easily be +construed as running a "plug-in" for the Linux kernel. No? + +And there, I obviously absolutely agree with you 100%: the interface is +published, and it's _meant_ for external and independent users. It's an +interface that we go to great lengths to preserve as well as we can, and +it's an interface that is designed to be independent of kernel versions. + +But maybe somebody wrote his program with the intention to dynamically +load "actors" as they were needed, as a way to maintain a good modularity, +and to try to keep the problem spaces well-defined. In that case, the +"plug-in" may technically follow all the same rules as the system call +interface, even though the author doesn't intend it that way. + +So I think it's to a large degree a matter of intent, but it could +arguably also be considered a matter of stability and documentation (ie +"require recompilation of the plug-in between version changes" would tend +to imply that it's an internal interface, while "documented binary +compatibility across many releases" implies a more stable external +interface, and less of a derived work) + +Does that make sense to you? + +> I asked Richard to comment on several scenarios involving plug-ins +> explain whether or not they were in violation of the GPL. So far he +> as only addressed one and has effectively admitted a hole. This is +> the one I asked that he's responded to: +> [A] non-GPL'd plug-in writer writes a plug-in for a non-GPL'd +> program. Another author writes a GPL'd program making the +> first author's plug-ins compatible with his program. Are now +> the plug-in author's plug-ins now retroactively required to be +> GPL'd? +> +> His response: +> No, because the plug-in was not written to extend this program. +> +> I find it suspicious that whether or not the GPL would apply to the +> plug-in depends on the mindset of the author. + +The above makes no sense if you think of it as a "plug in" issue, but it +makes sense if you think of it as a "derived work" issue, along with +taking "intent" into account. + +I know lawyers tend to not like the notion of "intent", because it brings +in another whole range of gray areas, but it's obviously a legal reality. + +Ok, enough blathering from me. I'd just like to finish off with a few +comments, just to clarify my personal stand: + + - I'm obviously not the only copyright holder of Linux, and I did so on + purpose for several reasons. One reason is just because I hate the + paperwork and other cr*p that goes along with copyright assignments. + + Another is that I don't much like copyright assignments at all: the + author is the author, and he may be bound by my requirement for GPL, + but that doesn't mean that he should give his copyright to me. + + A third reason, and the most relevant reason here, is that I want + people to _know_ that I cannot control the sources. I can write you a + note to say that "for use XXX, I do not consider module YYY to be a + derived work of my kernel", but that would not really matter that much. + Any other Linux copyright holder might still sue you. + + This third reason is what makes people who otherwise might not trust me + realize that I cannot screw people over. I am bound by the same + agreement that I require of everybody else, and the only special status + I really have is a totally non-legal issue: people trust me. + + (Yes, I realize that I probably would end up having more legal status + than most, even apart from the fact that I still am the largest single + copyright holder, if only because of appearances) + + - I don't really care about copyright law itself. What I care about is my + own morals. Whether I'd ever sue somebody or not (and quite frankly, + it's the last thing I ever want to do - if I never end up talking to + lawyers in a professional context, I'll be perfectly happy. No + disrespect intended) will be entirely up to whether I consider what + people do to me "moral" or not. Which is why intent matters to me a + lot - both the intent of the person/corporation doign the infringement, + _and_ the intent of me and others in issues like the module export + interface. + + Another way of putting this: I don't care about "legal loopholes" and + word-wrangling. + + - Finally: I don't trust the FSF. I like the GPL a lot - although not + necessarily as a legal piece of paper, but more as an intent. Which + explains why, if you've looked at the Linux COPYING file, you may have + noticed the explicit comment about "only _this_ particular version of + the GPL covers the kernel by default". + + That's because I agree with the GPL as-is, but I do not agree with the + FSF on many other matters. I don't like software patents much, for + example, but I do not want the code I write to be used as a weapon + against companies that have them. The FSF has long been discussing and + is drafting the "next generation" GPL, and they generally suggest that + people using the GPL should say "v2 or at your choice any later + version". + + Linux doesn't do that. The Linux kernel is v2 ONLY, apart from a few + files where the author put in the FSF extension (and see above about + copyright assignments why I would never remove such an extension). + +The "v2 only" issue might change some day, but only after all documented +copyright holders agree on it, and only after we've seen what the FSF +suggests. From what I've seen so far from the FSF drafts, we're not likely +to change our v2-only stance, but there might of course be legal reasons +why we'd have to do something like it (ie somebody challenging the GPLv2 +in court, and part of it to be found unenforceable or similar would +obviously mean that we'd have to reconsider the license). + + Linus + +PS. Historically, binary-only modules have not worked well under Linux, +quite regardless of any copyright issues. The kernel just develops too +quickly for binary modules to work well, and nobody really supports them. +Companies like Red Hat etc tend to refuse to have anything to do with +binary modules, because if something goes wrong there is nothing they can +do about it. So I just wanted to let you know that the _legal_ issue is +just the beginning. Even though you probably don't personally care ;) + + diff --git a/Documentation/DocBook/mousedrivers.tmpl b/Documentation/DocBook/mousedrivers.tmpl deleted file mode 100644 index 8491969e6..000000000 --- a/Documentation/DocBook/mousedrivers.tmpl +++ /dev/null @@ -1,1022 +0,0 @@ - - - - - Mouse Drivers - - - - Alan - Cox - -
- alan@redhat.com -
-
-
-
- - - 2000 - Alan Cox - - - - - This documentation 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 - - - - For more details see the file COPYING in the source - distribution of Linux. - - -
- - - - - Introduction - - Earlier publication - - Parts of this document first appeared in Linux Magazine under a - ninety day exclusivity. - - - - - Mice are conceptually one of the simplest device interfaces in the - Linux operating system. Not all mice are handled by the kernel. - Instead there is a two layer abstraction. - - - - The kernel mouse drivers and userspace drivers for the serial mice are - all managed by a system daemon called gpm - - the general purpose mouse driver. gpm - handles cutting and pasting on the text consoles. It provides a - general library for mouse-aware applications and it handles the - sharing of mouse services with the - X Window System user interface. - - - Sometimes a mouse speaks a sufficiently convoluted protocol that the - protocol is handled by Gpm itself. Most - of the mouse drivers follow a common interface called the bus mouse - protocol. - - - Each read from a bus mouse interface device returns a block of data. - The first three bytes of each read are defined as follows: - - - Mouse Data Encoding - - - - Byte 0 - 0x80 + the buttons currently down. - - - Byte 1 - A signed value for the shift in X position - - - Byte 2 - A signed value for the shift in Y position - - - -
- - An application can choose to read more than 3 bytes. The rest of the - bytes will be zero, or may optionally return some additional - device-specific information. -
- - The position values are truncated if they exceed the 8bit range (that - is -127 <= delta <= 127). While the value -128 does fit into a - byte is not allowed. - - - The buttons are numbered left to right as - 0, 1, 2, 3.. and each button sets the relevant bit. So a user pressing - the left and right button of a three button mouse will set bits 0 and 2. - - - All mice are required to support the poll - operation. Indeed pretty much every user of a mouse device uses - poll to wait for mouse events to occur. - - - Finally the mice support asynchronous I/O. This is a topic we have not - yet covered but which I will explain after looking at a simple mouse - driver. - -
- - - A simple mouse driver - - First we will need the set up functions for our mouse device. To keep - this simple our imaginary mouse device has three I/O ports fixed at I/O - address 0x300 and always lives on interrupt 5. The ports will be the X - position, the Y position and the buttons in that order. - - - -#define OURMOUSE_BASE 0x300 - -static struct miscdevice our_mouse = { - OURMOUSE_MINOR, "ourmouse", &our_mouse_fops -}; - -__init ourmouse_init(void) -{ - - if (request_region(OURMOUSE_BASE, 3, "ourmouse") < 0) { - printk(KERN_ERR "ourmouse: request_region failed.\n"); - return -ENODEV; - } - - if (misc_register(&our_mouse) < 0) { - printk(KERN_ERR "ourmouse: cannot register misc device.\n"); - release_region(OURMOUSE_BASE, 3); - return -EBUSY; - } - - return 0; -} - - - - The miscdevice is new here. Linux normally - parcels devices out by major number, and each device has 256 units. - For things like mice this is extremely wasteful so a device exists - which is used to accumulate all the odd individual devices that - computers tend to have. - - - Minor numbers in this space are allocated by a central source, although - you can look in the kernel Documentation/devices.txt - file and pick a free one for development use. This kernel file also - carries instructions for registering a device. This may change over time - so it is a good idea to obtain a current copy of this file first. - - - Our code then is fairly simple. We reserve our I/O address space with - request_region, checking to make sure that it succeeded (i.e. the - space wasn't reserved by anyone else). - - - Then we ask the misc driver to allocate our minor device number. We also - hand it our name (which is used in - /proc/misc) and a set of file - operations that are to be used. The file operations work exactly like the - file operations you would register for a normal character device. The misc - device itself is simply acting as a redirector for requests. - Since misc_register can fail, it is important to check for failure - and act accordingly (which in the case of a mouse driver is to abort, - since you can't use the mouse without a working device node). - - - Next, in order to be able to use and test our code we need to add some - module code to support it. This too is fairly simple: - - -#ifdef MODULE - -int init_module(void) -{ - if(ourmouse_init()<0) - return -ENODEV: - return 0; -} - -void cleanup_module(void) -{ - misc_deregister(&our_mouse); - free_region(OURMOUSE_BASE, 3); -} - - -#endif - - - - The module code provides the normal two functions. The - init_module function is called when the module is - loaded. In our case it simply calls the initialising function we wrote - and returns an error if this fails. This ensures the module will only - be loaded if it was successfully set up. - - - The cleanup_module function is called when the - module is unloaded. We give the miscellaneous device entry back, and - then free our I/O resources. If we didn't free the I/O resources then - the next time the module loaded it would think someone else had its I/O - space. - - - Once the misc_deregister has been called any - attempts to open the mouse device will fail with the error - ENODEV (No such device). - - - Next we need to fill in our file operations. A mouse doesn't need many - of these. We need to provide open, release, read and poll. That makes - for a nice simple structure: - - - -struct file_operations our_mouse_fops = { - owner: THIS_MODULE, /* Automatic usage management */ - read: read_mouse, /* You can read a mouse */ - write: write_mouse, /* This won't do a lot */ - poll: poll_mouse, /* Poll */ - open: open_mouse, /* Called on open */ - release: close_mouse, /* Called on close */ -}; - - - - There is nothing particularly special needed here. We provide functions - for all the relevant or required operations and little else. There is - nothing stopping us providing an ioctl function for this mouse. Indeed - if you have a configurable mouse it may be very appropriate to provide - configuration interfaces via ioctl calls. - - - The syntax we use is not standard C as such. GCC provides the ability - to initialise fields by name, and this generally makes the method table - much easier to read than counting through NULL pointers and remembering - the order by hand. - - - The owner field is used to manage the locking of module load an - unloading. It is obviously important that a module is not unloaded while - in use. When your device is opened the module specified by "owner" is - locked. When it is finally released the module is unlocked. - - - The open and close routines need to manage enabling and disabling the - interrupts for the mouse as well as stopping the mouse being unloaded - when it is no longer required. - - - -static int mouse_users = 0; /* User count */ -static int mouse_dx = 0; /* Position changes */ -static int mouse_dy = 0; -static int mouse_event = 0; /* Mouse has moved */ - -static int open_mouse(struct inode *inode, struct file *file) -{ - if(mouse_users++) - return 0; - - if(request_irq(mouse_intr, OURMOUSE_IRQ, 0, "ourmouse", NULL)) - { - mouse_users--; - return -EBUSY; - } - mouse_dx = 0; - mouse_dy = 0; - mouse_event = 0; - mouse_buttons = 0; - return 0; -} - - - The open function has to do a small amount of housework. We keep a count - of the number of times the mouse is open. This is because we do not want - to request the interrupt multiple times. If the mouse has at least one - user then it is set up and we simply add to the user count and return - 0 for success. - - - We grab the interrupt and thus start mouse interrupts. If the interrupt - has been borrowed by some other driver then request_irq - will fail and we will return an error. If we were capable of sharing an - interrupt line we would specify SA_SHIRQ instead of - zero. Provided that everyone claiming an interrupt - sets this flag, they get to share the line. PCI can - share interrupts, ISA normally however cannot. - - - We do the housekeeping. We make the current mouse position the starting - point for accumulated changes and declare that nothing has happened - since the mouse driver was opened. - - - The release function needs to unwind all these: - - -static int close_mouse(struct inode *inode, struct file *file) -{ - if(--mouse_users) - return 0; - free_irq(OURMOUSE_IRQ, NULL); - return 0; -} - - - We count off a user and provided that there are still other users need - take no further action. The last person closing the mouse causes us to - free up the interrupt. This stops interrupts from the mouse from using - our CPU time, and ensures that the mouse can now be unloaded. - - - We can fill in the write handler at this point as the write function for - our mouse simply declines to allow writes: - - - -static ssize_t write_mouse(struct file *file, const char *buffer, size_t - count, loff_t *ppos) -{ - return -EINVAL; -} - - - - This is pretty much self-explanatory. Whenever you write you get told - it was an invalid function. - - - To make the poll and read functions work we have to consider how we - handle the mouse interrupt. - - - -static struct wait_queue *mouse_wait; -static spinlock_t mouse_lock = SPIN_LOCK_UNLOCKED; - -static void ourmouse_interrupt(int irq, void *dev_id, struct pt_regs *regs) -{ - char delta_x; - char delta_y; - unsigned char new_buttons; - - delta_x = inb(OURMOUSE_BASE); - delta_y = inb(OURMOUSE_BASE+1); - new_buttons = inb(OURMOUSE_BASE+2); - - if(delta_x || delta_y || new_buttons != mouse_buttons) - { - /* Something happened */ - - spin_lock(&mouse_lock); - mouse_event = 1; - mouse_dx += delta_x; - mouse_dy += delta_y; - mouse_buttons = new_buttons; - spin_unlock(&mouse_lock); - - wake_up_interruptible(&mouse_wait); - } -} - - - - The interrupt handler reads the mouse status. The next thing we do is - to check whether something has changed. If the mouse was smart it would - only interrupt us if something had changed, but let's assume our mouse - is stupid as most mice actually tend to be. - - - If the mouse has changed we need to update the status variables. What we - don't want is the mouse functions reading these variables to read them - during a change. We add a spinlock that protects these variables while we - play with them. - - - If a change has occurred we also need to wake sleeping processes, so we - add a wakeup call and a wait_queue to use when - we wish to await a mouse event. - - - Now we have the wait queue we can implement the poll function for the - mouse relatively easily: - - - -static unsigned int mouse_poll(struct file *file, poll_table *wait) -{ - poll_wait(file, &mouse_wait, wait); - if(mouse_event) - return POLLIN | POLLRDNORM; - return 0; -} - - - - This is fairly standard poll code. First we add the wait queue to the - list of queues we want to monitor for an event. Secondly we check if an - event has occurred. We only have one kind of event - the - mouse_event flag tells us that something happened. - We know that this something can only be mouse data. We return the flags - indicating input and normal reading will succeed. - - - You may be wondering what happens if the function returns saying 'no - event yet'. In this case the wake up from the wait queue we added to - the poll table will cause the function to be called again. Eventually - we will be woken up and have an event ready. At this point the - poll call will exit back to the user. - - - After the poll completes the user will want to read the data. We now - need to think about how our mouse_read function - will work: - - -static ssize_t mouse_read(struct file *file, char *buffer, - size_t count, loff_t *pos) -{ - int dx, dy; - unsigned char button; - unsigned long flags; - int n; - - if(count<3) - return -EINVAL; - - /* - * Wait for an event - */ - - while(!mouse_event) - { - if(file->f_flags&O_NDELAY) - return -EAGAIN; - interruptible_sleep_on(&mouse_wait); - if(signal_pending(current)) - return -ERESTARTSYS; - } - - - - We start by validating that the user is reading enough data. We could - handle partial reads if we wanted but it isn't terribly useful and the - mouse drivers don't bother to try. - - - Next we wait for an event to occur. The loop is fairly standard event - waiting in Linux. Having checked that the event has not yet occurred, we - then check if an event is pending and if not we need to sleep. - - - A user process can set the O_NDELAY flag on a file - to indicate that it wishes to be told immediately if no event is - pending. We check this and give the appropriate error if so. - - - Next we sleep until the mouse or a signal awakens us. A signal will - awaken us as we have used wakeup_interruptible. - This is important as it means a user can kill processes waiting for - the mouse - clearly a desirable property. If we are interrupted we - exit the call and the kernel will then process signals and maybe - restart the call again - from the beginning. - - - This code contains a classic Linux bug. All will be revealed later in this - article as well as explanations for how to avoid it. - - - /* Grab the event */ - - spinlock_irqsave(&mouse_lock, flags); - - dx = mouse_dx; - dy = mouse_dy; - button = mouse_buttons; - - if(dx<=-127) - dx=-127; - if(dx>=127) - dx=127; - if(dy<=-127) - dy=-127; - if(dy>=127) - dy=127; - - mouse_dx -= dx; - mouse_dy -= dy; - - if(mouse_dx == 0 && mouse_dy == 0) - mouse_event = 0; - - spin_unlock_irqrestore(&mouse_lock, flags); - - - This is the next stage. Having established that there is an event - going, we capture it. To be sure that the event is not being updated - as we capture it we also take the spinlock and thus prevent parallel - updates. Note here we use spinlock_irqsave. We - need to disable interrupts on the local processor otherwise bad things - will happen. - - - What will occur is that we take the spinlock. While we hold the lock - an interrupt will occur. At this point our interrupt handler will try - and take the spinlock. It will sit in a loop waiting for the read - routine to release the lock. However because we are sitting in a loop - in the interrupt handler we will never release the lock. The machine - hangs and the user gets upset. - - - By blocking the interrupt on this processor we ensure that the lock - holder will always give the lock back without deadlocking. - - - There is a little cleverness in the reporting mechanism too. We can - only report a move of 127 per read. We don't however want to lose - information by throwing away further movement. Instead we keep - returning as much information as possible. Each time we return a - report we remove the amount from the pending movement in - mouse_dx and mouse_dy. Eventually - when these counts hit zero we clear the mouse_event - flag as there is nothing else left to report. - - - - if(put_user(button|0x80, buffer)) - return -EFAULT; - if(put_user((char)dx, buffer+1)) - return -EFAULT; - if(put_user((char)dy, buffer+2)) - return -EFAULT; - - for(n=3; n < count; n++) - if(put_user(0x00, buffer+n)) - return -EFAULT; - - return count; -} - - - - Finally we must put the results in the user supplied buffer. We cannot - do this while holding the lock as a write to user memory may sleep. - For example the user memory may be residing on disk at this instant. - Thus we did our computation beforehand and now copy the data. Each - put_user call is filling in one byte of the buffer. - If it returns an error we inform the program that it passed us an - invalid buffer and abort. - - - Having written the data we blank the rest of the buffer that was read - and report the read as being successful. - - - - - Debugging the mouse driver - - - We now have an almost perfectly usable mouse driver. If you were to - actually try and use it however you would eventually find a couple of - problems with it. A few programs will also not work with as it does not - yet support asynchronous I/O. - - - First let us look at the bugs. The most obvious one isn't really a driver - bug but a failure to consider the consequences. Imagine you bumped the - mouse hard by accident and sent it skittering across the desk. The mouse - interrupt routine will add up all that movement and report it in steps of - 127 until it has reported all of it. Clearly there is a point beyond - which mouse movement isn't worth reporting. We need to add this as a - limit to the interrupt handler: - - - -static void ourmouse_interrupt(int irq, void *dev_id, struct pt_regs *regs) -{ - char delta_x; - char delta_y; - unsigned char new_buttons; - - delta_x = inb(OURMOUSE_BASE); - delta_y = inb(OURMOUSE_BASE+1); - new_buttons = inb(OURMOUSE_BASE+2); - - if(delta_x || delta_y || new_buttons != mouse_buttons) - { - /* Something happened */ - - spin_lock(&mouse_lock); - mouse_event = 1; - mouse_dx += delta_x; - mouse_dy += delta_y; - - if(mouse_dx < -4096) - mouse_dx = -4096; - if(mouse_dx > 4096) - mouse_dx = 4096; - - if(mouse_dy < -4096) - mouse_dy = -4096; - if(mouse_dy > 4096) - mouse_dy = 4096; - - mouse_buttons = new_buttons; - spin_unlock(&mouse_lock); - - wake_up_interruptible(&mouse_wait); - } -} - - - - By adding these checks we limit the range of accumulated movement to - something sensible. - - - The second bug is a bit more subtle, and that is perhaps why this is - such a common mistake. Remember, I said the waiting loop for the read - handler had a bug in it. Think about what happens when we execute: - - - - while(!mouse_event) - { - - - - and an interrupt occurs at this point here. This causes a mouse movement - and wakes up the queue. - - - - interruptible_sleep_on(&mouse_wait); - - - - Now we sleep on the queue. We missed the wake up and the application - will not see an event until the next mouse event occurs. This will - lead to just the odd instance when a mouse button gets delayed. The - consequences to the user will probably be almost undetectable with a - mouse driver. With other drivers this bug could be a lot more severe. - - - There are two ways to solve this. The first is to disable interrupts - during the testing and the sleep. This works because when a task sleeps - it ceases to disable interrupts, and when it resumes it disables them - again. Our code thus becomes: - - - - save_flags(flags); - cli(); - - while(!mouse_event) - { - if(file->f_flags&O_NDELAY) - { - restore_flags(flags); - return -EAGAIN; - } - interruptible_sleep_on(&mouse_wait); - if(signal_pending(current)) - { - restore_flags(flags); - return -ERESTARTSYS; - } - } - restore_flags(flags); - - - - This is the sledgehammer approach. It works but it means we spend a - lot more time turning interrupts on and off. It also affects - interrupts globally and has bad properties on multiprocessor machines - where turning interrupts off globally is not a simple operation, but - instead involves kicking each processor, waiting for them to disable - interrupts and reply. - - - The real problem is the race between the event testing and the sleeping. - We can avoid that by using the scheduling functions more directly. - Indeed this is the way they generally should be used for an interrupt. - - - - struct wait_queue wait = { current, NULL }; - - add_wait_queue(&mouse_wait, &wait); - set_current_state(TASK_INTERRUPTIBLE); - - while(!mouse_event) - { - if(file->f_flags&O_NDELAY) - { - remove_wait_queue(&mouse_wait, &wait); - set_current_state(TASK_RUNNING); - return -EWOULDBLOCK; - } - if(signal_pending(current)) - { - remove_wait_queue(&mouse_wait, &wait); - current->state = TASK_RUNNING; - return -ERESTARTSYS; - } - schedule(); - set_current_state(TASK_INTERRUPTIBLE); - } - - remove_wait_wait(&mouse_wait, &wait); - set_current_state(TASK_RUNNING); - - - - At first sight this probably looks like deep magic. To understand how - this works you need to understand how scheduling and events work on - Linux. Having a good grasp of this is one of the keys to writing clean - efficient device drivers. - - - add_wait_queue does what its name suggests. It adds - an entry to the mouse_wait list. The entry in this - case is the entry for our current process (current - is the current task pointer). - - - So we start by adding an entry for ourself onto the - mouse_wait list. This does not put us to sleep - however. We are merely tagged onto the list. - - - Next we set our status to TASK_INTERRUPTIBLE. Again - this does not mean we are now asleep. This flag says what should happen - next time the process sleeps. TASK_INTERRUPTIBLE says - that the process should not be rescheduled. It will run from now until it - sleeps and then will need to be woken up. - - - The wakeup_interruptible call in the interrupt - handler can now be explained in more detail. This function is also very - simple. It goes along the list of processes on the queue it is given and - any that are marked as TASK_INTERRUPTIBLE it changes - to TASK_RUNNING and tells the kernel that new - processes are runnable. - - - Behind all the wrappers in the original code what is happening is this - - - - - - We add ourself to the mouse wait queue - - - - - We mark ourself as sleeping - - - - - We ask the kernel to schedule tasks again - - - - - The kernel sees we are asleep and schedules someone else. - - - - - The mouse interrupt sets our state to TASK_RUNNING - and makes a note that the kernel should reschedule tasks - - - - - The kernel sees we are running again and continues our execution - - - - - This is why the apparent magic works. Because we mark ourself as - TASK_INTERRUPTIBLE and as we add ourselves - to the queue before we check if there are events pending, the race - condition is removed. - - - Now if an interrupt occurs after we check the queue status and before - we call the schedule function in order to sleep, - things work out. Instead of missing an event, we are set back to - TASK_RUNNING by the mouse interrupt. We still call - schedule but it will continue running our task. - We go back around the loop and this time there may be an event. - - - There will not always be an event. Thus we set ourselves back to - TASK_INTERRUPTIBLE before resuming the loop. - Another process doing a read may already have cleared the event flag, - and if so we will need to go back to sleep again. Eventually we will - get our event and escape. - - - Finally when we exit the loop we remove ourselves from the - mouse_wait queue as we are no longer interested - in mouse events, and we set ourself back to - TASK_RUNNABLE as we do not wish to go to sleep - again just yet. - - - Note - - This isn't an easy topic. Don't be afraid to reread the description a - few times and also look at other device drivers to see how it works. - Finally if you can't grasp it just yet, you can use the code as - boilerplate to write other drivers and trust me instead. - - - - - - Asynchronous I/O - - This leaves the missing feature - Asynchronous I/O. Normally UNIX - programs use the poll call (or its variant form - select) to wait for an event to occur on one of - multiple input or output devices. This model works well for most tasks - but because poll and select - wait for an event isn't suitable for tasks that are also continually - doing computation work. Such programs really want the kernel to kick - them when something happens rather than watch for events. - - - Poll is akin to having a row of lights in front of you. You can see at a - glance which ones if any are lit. You cannot however get anything useful - done while watching them. Asynchronous I/O uses signals which work more - like a door bell. Instead of you watching, it tells you that something - is up. - - - Asynchronous I/O sends the signal SIGIO to a user process when the I/O - events occur. In this case that means when people move the mouse. The - SIGIO signal causes the user process to jump to its signal handler and - execute code in that handler before returning to whatever was going on - previously. It is the application equivalent of an interrupt handler. - - - Most of the code needed for this operation is common to all its users. - The kernel provides a simple set of functions for managing asynchronous - I/O. - - - Our first job is to allow users to set asynchronous I/O on file handles. - To do that we need to add a new function to the file operations table for - our mouse: - - - -struct file_operations our_mouse_fops = { - owner: THIS_MODULE - read: read_mouse, /* You can read a mouse */ - write: write_mouse, /* This won't do a lot */ - poll: poll_mouse, /* Poll */ - open: open_mouse, /* Called on open */ - release: close_mouse, /* Called on close */ - fasync: fasync_mouse, /* Asynchronous I/O */ -}; - - - - Once we have installed this entry the kernel knows we support - asynchronous I/O and will allow all the relevant operations on the - device. Whenever a user adds or removes asynchronous I/O notification - on a file handle it calls our fasync_mouse routine - we just added. This routine uses the helper functions to keep the queue - of handles up to date: - - - -static struct fasync_struct *mouse_fasync = NULL; - -static int fasync_mouse(int fd, struct file *filp, int on) -{ - int retval = fasync_helper(fd, filp, on, &mouse_fasync); - - if (retval < 0) - return retval; - return 0; -} - - - - The fasync helper adds and deletes entries by managing the supplied - list. We also need to remove entries from this list when the file is - closed. This requires we add one line to our close function: - - - -static int close_mouse(struct inode *inode, struct file *file) -{ - fasync_mouse(-1, file, 0) - if(--mouse_users) - return 0; - free_irq(OURMOUSE_IRQ, NULL); - return 0; -} - - - - When we close the file we now call our own fasync handler as if the - user had requested that this file cease to be used for asynchronous - I/O. This rather neatly cleans up any loose ends. We certainly don't - wait to deliver a signal for a file that no longer exists. - - - At this point the mouse driver supports all the asynchronous I/O - operations, and applications using them will not error. They won't - however work yet. We need to actually send the signals. Again the - kernel provides a function for handling this. - - - We update our interrupt handler a little: - - - -static void ourmouse_interrupt(int irq, void *dev_id, struct pt_regs *regs) -{ - char delta_x; - char delta_y; - unsigned char new_buttons; - - delta_x = inb(OURMOUSE_BASE); - delta_y = inb(OURMOUSE_BASE+1); - new_buttons = inb(OURMOUSE_BASE+2); - - if(delta_x || delta_y || new_buttons != mouse_buttons) - { - /* Something happened */ - - spin_lock(&mouse_lock); - mouse_event = 1; - mouse_dx += delta_x; - mouse_dy += delta_y; - - if(mouse_dx < -4096) - mouse_dx = -4096; - if(mouse_dx > 4096) - mouse_dx = 4096; - - if(mouse_dy < -4096) - mouse_dy = -4096; - if(mouse_dy > 4096) - mouse_dy = 4096; - - mouse_buttons = new_buttons; - spin_unlock(&mouse_lock); - - /* Now we do asynchronous I/O */ - kill_fasync(&mouse_fasync, SIGIO); - - wake_up_interruptible(&mouse_wait); - } -} - - - - The new code simply calls the kill_fasync routine - provided by the kernel if the queue is non-empty. This sends the - required signal (SIGIO in this case) to the process each file handle - says should be informed about the exciting new mouse movement that - just happened. - - - With this in place and the bugs in the original version fixed, you now - have a fully functional mouse driver using the bus mouse protocol. It - will work with the X window system, will work - with GPM and should work with every other - application you need. Doom is of course the - ideal way to test your new mouse driver is functioning properly. Be sure - to test it thoroughly. - - -
- diff --git a/Documentation/DocBook/tulip-user.tmpl b/Documentation/DocBook/tulip-user.tmpl deleted file mode 100644 index b74f8a363..000000000 --- a/Documentation/DocBook/tulip-user.tmpl +++ /dev/null @@ -1,325 +0,0 @@ - - - - - Tulip Driver User's Guide - - - - Jeff - Garzik - -
- jgarzik@pobox.com -
-
-
-
- - - 2001 - Jeff Garzik - - - - - This documentation 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 - - - - For more details see the file COPYING in the source - distribution of Linux. - - -
- - - - - Introduction - -The Tulip Ethernet Card Driver -is maintained by Jeff Garzik (jgarzik@pobox.com). - - - -The Tulip driver was developed by Donald Becker and changed by -Jeff Garzik, Takashi Manabe and a cast of thousands. - - - -For 2.4.x and later kernels, the Linux Tulip driver is available at -http://sourceforge.net/projects/tulip/ - - - - This driver is for the Digital "Tulip" Ethernet adapter interface. - It should work with most DEC 21*4*-based chips/ethercards, as well as - with work-alike chips from Lite-On (PNIC) and Macronix (MXIC) and ASIX. - - - - The original author may be reached as becker@scyld.com, or C/O - Scyld Computing Corporation, - 410 Severn Ave., Suite 210, - Annapolis MD 21403 - - - - Additional information on Donald Becker's tulip.c - is available at http://www.scyld.com/network/tulip.html - - - - - - Driver Compatibility - - -This device driver is designed for the DECchip "Tulip", Digital's -single-chip ethernet controllers for PCI (now owned by Intel). -Supported members of the family -are the 21040, 21041, 21140, 21140A, 21142, and 21143. Similar work-alike -chips from Lite-On, Macronics, ASIX, Compex and other listed below are also -supported. - - - -These chips are used on at least 140 unique PCI board designs. The great -number of chips and board designs supported is the reason for the -driver size and complexity. Almost of the increasing complexity is in the -board configuration and media selection code. There is very little -increasing in the operational critical path length. - - - - - Board-specific Settings - - -PCI bus devices are configured by the system at boot time, so no jumpers -need to be set on the board. The system BIOS preferably should assign the -PCI INTA signal to an otherwise unused system IRQ line. - - - -Some boards have EEPROMs tables with default media entry. The factory default -is usually "autoselect". This should only be overridden when using -transceiver connections without link beat e.g. 10base2 or AUI, or (rarely!) -for forcing full-duplex when used with old link partners that do not do -autonegotiation. - - - - - Driver Operation - -Ring buffers - - -The Tulip can use either ring buffers or lists of Tx and Rx descriptors. -This driver uses statically allocated rings of Rx and Tx descriptors, set at -compile time by RX/TX_RING_SIZE. This version of the driver allocates skbuffs -for the Rx ring buffers at open() time and passes the skb->data field to the -Tulip as receive data buffers. When an incoming frame is less than -RX_COPYBREAK bytes long, a fresh skbuff is allocated and the frame is -copied to the new skbuff. When the incoming frame is larger, the skbuff is -passed directly up the protocol stack and replaced by a newly allocated -skbuff. - - - -The RX_COPYBREAK value is chosen to trade-off the memory wasted by -using a full-sized skbuff for small frames vs. the copying costs of larger -frames. For small frames the copying cost is negligible (esp. considering -that we are pre-loading the cache with immediately useful header -information). For large frames the copying cost is non-trivial, and the -larger copy might flush the cache of useful data. A subtle aspect of this -choice is that the Tulip only receives into longword aligned buffers, thus -the IP header at offset 14 isn't longword aligned for further processing. -Copied frames are put into the new skbuff at an offset of "+2", thus copying -has the beneficial effect of aligning the IP header and preloading the -cache. - - - - -Synchronization - -The driver runs as two independent, single-threaded flows of control. One -is the send-packet routine, which enforces single-threaded use by the -dev->tbusy flag. The other thread is the interrupt handler, which is single -threaded by the hardware and other software. - - - -The send packet thread has partial control over the Tx ring and 'dev->tbusy' -flag. It sets the tbusy flag whenever it's queuing a Tx packet. If the next -queue slot is empty, it clears the tbusy flag when finished otherwise it sets -the 'tp->tx_full' flag. - - - -The interrupt handler has exclusive control over the Rx ring and records stats -from the Tx ring. (The Tx-done interrupt can't be selectively turned off, so -we can't avoid the interrupt overhead by having the Tx routine reap the Tx -stats.) After reaping the stats, it marks the queue entry as empty by setting -the 'base' to zero. Iff the 'tp->tx_full' flag is set, it clears both the -tx_full and tbusy flags. - - - - - - - - Errata - - -The old DEC databooks were light on details. -The 21040 databook claims that CSR13, CSR14, and CSR15 should each be the last -register of the set CSR12-15 written. Hmmm, now how is that possible? - - - -The DEC SROM format is very badly designed not precisely defined, leading to -part of the media selection junkheap below. Some boards do not have EEPROM -media tables and need to be patched up. Worse, other boards use the DEC -design kit media table when it isn't correct for their board. - - - -We cannot use MII interrupts because there is no defined GPIO pin to attach -them. The MII transceiver status is polled using an kernel timer. - - - - - Driver Change History - - Version 0.9.14 (February 20, 2001) - - Fix PNIC problems (Manfred Spraul) - Add new PCI id for Accton comet - Support Davicom tulips - Fix oops in eeprom parsing - Enable workarounds for early PCI chipsets - IA64, hppa csr0 support - Support media types 5, 6 - Interpret a bit more of the 21142 SROM extended media type 3 - Add missing delay in eeprom reading - - - - Version 0.9.11 (November 3, 2000) - - Eliminate extra bus accesses when sharing interrupts (prumpf) - Barrier following ownership descriptor bit flip (prumpf) - Endianness fixes for >14 addresses in setup frames (prumpf) - Report link beat to kernel/userspace via netif_carrier_*. (kuznet) - Better spinlocking in set_rx_mode. - Fix I/O resource request failure error messages (DaveM catch) - Handle DMA allocation failure. - - - - Version 0.9.10 (September 6, 2000) - - Simple interrupt mitigation (via jamal) - More PCI ids - - - - Version 0.9.9 (August 11, 2000) - - More PCI ids - - - - Version 0.9.8 (July 13, 2000) - - Correct signed/unsigned comparison for dummy frame index - Remove outdated references to struct enet_statistics - - - - Version 0.9.7 (June 17, 2000) - - Timer cleanups (Andrew Morton) - Alpha compile fix (somebody?) - - - - Version 0.9.6 (May 31, 2000) - - Revert 21143-related support flag patch - Add HPPA/media-table debugging printk - - - - Version 0.9.5 (May 30, 2000) - - HPPA support (willy@puffingroup) - CSR6 bits and tulip.h cleanup (Chris Smith) - Improve debugging messages a bit - Add delay after CSR13 write in t21142_start_nway - Remove unused ETHER_STATS code - Convert 'extern inline' to 'static inline' in tulip.h (Chris Smith) - Update DS21143 support flags in tulip_chip_info[] - Use spin_lock_irq, not _irqsave/restore, in tulip_start_xmit() - Add locking to set_rx_mode() - Fix race with chip setting DescOwned bit (Hal Murray) - Request 100% of PIO and MMIO resource space assigned to card - Remove error message from pci_enable_device failure - - - - Version 0.9.4.3 (April 14, 2000) - - mod_timer fix (Hal Murray) - PNIC2 resuscitation (Chris Smith) - - - - Version 0.9.4.2 (March 21, 2000) - - Fix 21041 CSR7, CSR13/14/15 handling - Merge some PCI ids from tulip 0.91x - Merge some HAS_xxx flags and flag settings from tulip 0.91x - asm/io.h fix (submitted by many) and cleanup - s/HAS_NWAY143/HAS_NWAY/ - Cleanup 21041 mode reporting - Small code cleanups - - - - Version 0.9.4.1 (March 18, 2000) - - Finish PCI DMA conversion (davem) - Do not netif_start_queue() at end of tulip_tx_timeout() (kuznet) - PCI DMA fix (kuznet) - eeprom.c code cleanup - Remove Xircom Tulip crud - - - - -
diff --git a/Documentation/DocBook/via-audio.tmpl b/Documentation/DocBook/via-audio.tmpl deleted file mode 100644 index f91903c2a..000000000 --- a/Documentation/DocBook/via-audio.tmpl +++ /dev/null @@ -1,595 +0,0 @@ - - - - - Via 686 Audio Driver for Linux - - - - Jeff - Garzik - - - - - 1999-2001 - Jeff Garzik - - - - - This documentation 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 - - - - For more details see the file COPYING in the source - distribution of Linux. - - - - - - - - Introduction - - The Via VT82C686A "super southbridge" chips contain - AC97-compatible audio logic which features dual 16-bit stereo - PCM sound channels (full duplex), plus a third PCM channel intended for use - in hardware-assisted FM synthesis. - - - The current Linux kernel audio driver for this family of chips - supports audio playback and recording, but hardware-assisted - FM features, and hardware buffer direct-access (mmap) - support are not yet available. - - - This driver supports any Linux kernel version after 2.4.10. - - - Please send bug reports to the mailing list linux-via@gtf.org. - To subscribe, e-mail majordomo@gtf.org with - - - subscribe linux-via - - - in the body of the message. - - - - - Driver Installation - - To use this audio driver, select the - CONFIG_SOUND_VIA82CXXX option in the section Sound during kernel configuration. - Follow the usual kernel procedures for rebuilding the kernel, - or building and installing driver modules. - - - To make this driver the default audio driver, you can add the - following to your /etc/conf.modules file: - - - alias sound via82cxxx_audio - - - Note that soundcore and ac97_codec support modules - are also required for working audio, in addition to - the via82cxxx_audio module itself. - - - - - Submitting a bug report - Description of problem - - Describe the application you were using to play/record sound, and how - to reproduce the problem. - - - Diagnostic output - - Obtain the via-audio-diag diagnostics program from - http://sf.net/projects/gkernel/ and provide a dump of the - audio chip's registers while the problem is occurring. Sample command line: - - - ./via-audio-diag -aps > diag-output.txt - - - Driver debug output - - Define VIA_DEBUG at the beginning of the driver, then capture and email - the kernel log output. This can be viewed in the system kernel log (if - enabled), or via the dmesg program. Sample command line: - - - dmesg > /tmp/dmesg-output.txt - - - Bigger kernel message buffer - - If you wish to increase the size of the buffer displayed by dmesg, then - change the LOG_BUF_LEN macro at the top of linux/kernel/printk.c, recompile - your kernel, and pass the LOG_BUF_LEN value to dmesg. Sample command line with - LOG_BUF_LEN == 32768: - - - dmesg -s 32768 > /tmp/dmesg-output.txt - - - - - - Known Bugs And Assumptions - - - Low volume - - - Volume too low on many systems. Workaround: use mixer program - such as xmixer to increase volume. - - - - - - - - - - Thanks - - Via for providing e-mail support, specs, and NDA'd source code. - - - MandrakeSoft for providing hacking time. - - - AC97 mixer interface fixes and debugging by Ron Cemer roncemer@gte.net. - - - Rui Sousa rui.sousa@conexant.com, for bugfixing - MMAP support, and several other notable fixes that resulted from - his hard work and testing. - - - Adrian Cox adrian@humboldt.co.uk, for bugfixing - MMAP support, and several other notable fixes that resulted from - his hard work and testing. - - - Thomas Sailer for further bugfixes. - - - - - Random Notes - - Two /proc pseudo-files provide diagnostic information. This is generally - not useful to most users. Power users can disable CONFIG_SOUND_VIA82CXXX_PROCFS, - and remove the /proc support code. Once - version 2.0.0 is released, the /proc support code will be disabled by - default. Available /proc pseudo-files: - - - /proc/driver/via/0/info - /proc/driver/via/0/ac97 - - - This driver by default supports all PCI audio devices which report - a vendor id of 0x1106, and a device id of 0x3058. Subsystem vendor - and device ids are not examined. - - - GNU indent formatting options: - --kr -i8 -ts8 -br -ce -bap -sob -l80 -pcs -cs -ss -bs -di1 -nbc -lp -psl - - - - Via has graciously donated e-mail support and source code to help further - the development of this driver. Their assistance has been invaluable - in the design and coding of the next major version of this driver. - - - The Via audio chip apparently provides a second PCM scatter-gather - DMA channel just for FM data, but does not have a full hardware MIDI - processor. I haven't put much thought towards a solution here, but it - might involve using SoftOSS midi wave table, or simply disabling MIDI - support altogether and using the FM PCM channel as a second (input? output?) - - - - - Driver ChangeLog - - -Version 1.9.1 - - - - - DSP read/write bugfixes from Thomas Sailer. - - - - - - Add new PCI id for single-channel use of Via 8233. - - - - - - Other bug fixes, tweaks, new ioctls. - - - - - - - -Version 1.1.15 - - - - - Support for variable fragment size and variable fragment number (Rui - Sousa) - - - - - - Fixes for the SPEED, STEREO, CHANNELS, FMT ioctls when in read & - write mode (Rui Sousa) - - - - - - Mmaped sound is now fully functional. (Rui Sousa) - - - - - - Make sure to enable PCI device before reading any of its PCI - config information. (fixes potential hotplug problems) - - - - - - Clean up code a bit and add more internal function documentation. - - - - - - AC97 codec access fixes (Adrian Cox) - - - - - - Big endian fixes (Adrian Cox) - - - - - - MIDI support (Adrian Cox) - - - - - - Detect and report locked-rate AC97 codecs. If your hardware only - supports 48Khz (locked rate), then your recording/playback software - must upsample or downsample accordingly. The hardware cannot do it. - - - - - - Use new pci_request_regions and pci_disable_device functions in - kernel 2.4.6. - - - - - - - -Version 1.1.14 - - - - - Use VM_RESERVE when available, to eliminate unnecessary page faults. - - - - - - -Version 1.1.12 - - - - - mmap bug fixes from Linus. - - - - - - -Version 1.1.11 - - - - - Many more bug fixes. mmap enabled by default, but may still be buggy. - - - - - - Uses new and spiffy method of mmap'ing the DMA buffer, based - on a suggestion from Linus. - - - - - - -Version 1.1.10 - - - - - Many bug fixes. mmap enabled by default, but may still be buggy. - - - - - - -Version 1.1.9 - - - - - Redesign and rewrite audio playback implementation. (faster and smaller, hopefully) - - - - - - Implement recording and full duplex (DSP_CAP_DUPLEX) support. - - - - - - Make procfs support optional. - - - - - - Quick interrupt status check, to lessen overhead in interrupt - sharing situations. - - - - - - Add mmap(2) support. Disabled for now, it is still buggy and experimental. - - - - - - Surround all syscalls with a semaphore for cheap and easy SMP protection. - - - - - - Fix bug in channel shutdown (hardware channel reset) code. - - - - - - Remove unnecessary spinlocks (better performance). - - - - - - Eliminate "unknown AFMT" message by using a different method - of selecting the best AFMT_xxx sound sample format for use. - - - - - - Support for realtime hardware pointer position reporting - (DSP_CAP_REALTIME, SNDCTL_DSP_GETxPTR ioctls) - - - - - - Support for capture/playback triggering - (DSP_CAP_TRIGGER, SNDCTL_DSP_SETTRIGGER ioctls) - - - - - - SNDCTL_DSP_SETDUPLEX and SNDCTL_DSP_POST ioctls now handled. - - - - - - Rewrite open(2) and close(2) logic to allow only one user at - a time. All other open(2) attempts will sleep until they succeed. - FIXME: open(O_RDONLY) and open(O_WRONLY) should be allowed to succeed. - - - - - - Reviewed code to ensure that SMP and multiple audio devices - are fully supported. - - - - - - - -Version 1.1.8 - - - - - Clean up interrupt handler output. Fixes the following kernel error message: - - - unhandled interrupt ... - - - - - - Convert documentation to DocBook, so that PDF, HTML and PostScript (.ps) output is readily - available. - - - - - - - -Version 1.1.7 - - - - - Fix module unload bug where mixer device left registered - after driver exit - - - - - - -Version 1.1.6 - - - - - Rewrite via_set_rate to mimic ALSA basic AC97 rate setting - - - - - Remove much dead code - - - - - Complete spin_lock_irqsave -> spin_lock_irq conversion in via_dsp_ioctl - - - - - Fix build problem in via_dsp_ioctl - - - - - Optimize included headers to eliminate headers found in linux/sound - - - - - - -Version 1.1.5 - - - - - Disable some overly-verbose debugging code - - - - - Remove unnecessary sound locks - - - - - Fix some ioctls for better time resolution - - - - - Begin spin_lock_irqsave -> spin_lock_irq conversion in via_dsp_ioctl - - - - - - -Version 1.1.4 - - - - - Completed rewrite of driver. Eliminated SoundBlaster compatibility - completely, and now uses the much-faster scatter-gather DMA engine. - - - - - - - - - Internal Functions -!Isound/oss/via82cxxx_audio.c - - - - - diff --git a/Documentation/README.moxa b/Documentation/README.moxa deleted file mode 100644 index 20600ad32..000000000 --- a/Documentation/README.moxa +++ /dev/null @@ -1,18 +0,0 @@ - =================================================================== - Release Note of Linux Driver for Moxa's C104/C168/CI-104J - =================================================================== - - ------------------------------------------------------------------- - Ver. 1.1 Sep. 1, 1999 - ------------------------------------------------------------------- - 1. Improved: - a. Static driver (kernel) and dynamic driver (loadable module) - modes are supported. - b. Multiple Smartio PCI series boards sharing the same IRQ - supported. - - ------------------------------------------------------------------- - Ver. 1.0 Feb 17, 1997 - ------------------------------------------------------------------- - 1. Newly release. - diff --git a/Documentation/arm/SA1100/PCMCIA b/Documentation/arm/SA1100/PCMCIA deleted file mode 100644 index 5eb5d3ab3..000000000 --- a/Documentation/arm/SA1100/PCMCIA +++ /dev/null @@ -1,374 +0,0 @@ -Kernel Low-Level PCMCIA Interface Documentation -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -John G Dorsey -Updated: 30 June, 2000 - - -Note: this interface has not been finalized! -See also: http://www.cs.cmu.edu/~wearable/software/pcmcia-arm.html - - -Introduction - -Early versions of PCMCIA Card Services for StrongARM were designed to -permit a single socket driver to run on a variety of SA-1100 boards by -using a userland configuration process. During the conversion to the 2.3 -kernel series, all of the configuration has moved into sub-drivers in the -kernel proper (see linux/drivers/pcmcia/sa1100*). This document describes -the low-level interface between those sub-drivers and the sa1100 socket -driver module. - -Presently, there are six operations which must be provided by the -board-specific code. Only functions whose implementation is likely to -differ across board designs are required at this level. Some examples -include: - - - configuring card detect lines to generate interrupts - - sensing the legal voltage levels for inserted cards - - asserting the reset signal for a card - -Functions which are assumed to be the same across all designs are -performed within the generic socket driver itself. Some examples of these -kinds of operations include: - - - configuring memory access times based on the core clock frequency - - reads/writes on memory, byte swizzling, ... - -The current implementation allows the specific per-board set of low-level -operations to be determined at run time. For each specific board, the -following structure should be filled in: - - struct pcmcia_low_level { - int (*init)(struct pcmcia_init *); - int (*shutdown)(void); - int (*socket_state)(struct pcmcia_state_array *); - int (*get_irq_info)(struct pcmcia_irq_info *); - int (*configure_socket)(const struct pcmcia_configure *); - }; - -The component functions are described in detail below. Using the -machine_is_*() tests, the pointer `pcmcia_low_level' should be assigned to -the location of the table for your board. - - -0. init(struct pcmcia_init *init) - -This operation has three responsibilities: - - - perform any board-specific initialization tasks - - associate the given handler with any interrupt-generating signals - such as card detection, or battery voltage detection - - set up any necessary edge detection for card ready signals - -Argument passing for this operation is implemented by the following -structure: - - struct pcmcia_init { - void (*handler)(int irq, void *dev, struct pt_regs *regs); - struct pcmcia_maps *maps; - }; - -Here, `handler' is provided by the socket driver, and `maps' must be -modified if the default mapping isn't appropriate. This operation should -return one of two values: - - - the highest-numbered socket available, plus one - - a negative number, indicating an error in configuration - -Note that the former case is _not_ the same as "the number of sockets -available." In particular, if your design uses SA-1100 slot "one" but -not slot "zero," you MUST report "2" to the socket driver. - - -1. shutdown(void) - -This operation takes no arguments, and will be called during cleanup for -the socket driver module. Any state associated with the socket controller, -including allocated data structures, reserved IRQs, etc. should be -released in this routine. - -The return value for this operation is not examined. - - -2. socket_state(struct pcmcia_state_array *state_array) - -This operation will be invoked from the interrupt handler which was set up -in the earlier call to init(). Note, however, that it should not include -any side effects which would be inappropriate if the operation were to -occur when no interrupt is pending. (An extra invocation of this operation -currently takes place to initialize state in the socket driver.) - -Argument passing for this operation is handled by a structure which -contains an array of the following type: - - struct pcmcia_state { - unsigned detect: 1, - ready: 1, - bvd1: 1, - bvd2: 1, - wrprot: 1, - vs_3v: 1, - vs_Xv: 1; - }; - -Upon return from the operation, a struct pcmcia_state should be filled in -for each socket available in the hardware. For every array element (up to -`size' in the struct pcmcia_state_saarray) which does not correspond to an -available socket, zero the element bits. (This includes element [0] if -socket zero is not used.) - -Regardless of how the various signals are routed to the SA-1100, the bits -in struct pcmcia_state always have the following semantics: - - detect - 1 if a card is fully inserted, 0 otherwise - ready - 1 if the card ready signal is asserted, 0 otherwise - bvd1 - the value of the Battery Voltage Detect 1 signal - bvd2 - the value of the Battery Voltage Detect 2 signal - wrprot - 1 if the card is write-protected, 0 otherwise - vs_3v - 1 if the card must be operated at 3.3V, 0 otherwise - vs_Xv - 1 if the card must be operated at X.XV, 0 otherwise - -A note about the BVD signals: if your board does not make both lines -directly observable to the processor, just return reasonable values. The -standard interpretation of the BVD signals is: - - BVD1 BVD2 - - 0 x battery is dead - 1 0 battery warning - 1 1 battery ok - -Regarding the voltage sense flags (vs_3v, vs_Xv), these bits should be set -based on a sampling of the Voltage Sense pins, if available. The standard -interpretation of the VS signals (for a "low-voltage" socket) is: - - VS1 VS2 - - 0 0 X.XV, else 3.3V, else none - 0 1 3.3V, else none - 1 0 X.XV, else none - 1 1 5V, else none - -More information about the BVD and VS conventions is available in chapter -5 of "PCMCIA System Architecture," 2nd ed., by Don Anderson. - -This operation should return 1 if an IRQ is actually pending for the -socket controller, 0 if no IRQ is pending (but no error condition exists, -such as an undersized state array), or -1 on any error. - - -3. get_irq_info(struct pcmcia_irq_info *info) - -This operation obtains the IRQ assignment which is legal for the given -socket. An argument of the following type is passed: - - struct pcmcia_irq_info { - unsigned int sock; - unsigned int irq ; - }; - -The `sock' field contains the socket index being queried. The `irq' field -should contain the IRQ number corresponding to the card ready signal from -the device. - -This operation should return 0 on success, or -1 on any error. - - -4. configure_socket(const struct pcmcia_configure *configure) - -This operation allows the caller to apply power to the socket, issue a -reset, or enable various outputs. The argument is of the following type: - - struct pcmcia_configure { - unsigned sock: 8, - vcc: 8, - vpp: 8, - output: 1, - speaker: 1, - reset: 1; - }; - -The `sock' field contains the index of the socket to be configured. The -`vcc' and `vpp' fields contain the voltages to be applied for Vcc and Vpp, -respectively, in units of 0.1V. (Note that vpp==120 indicates that -programming voltage should be applied.) - -The two output enables, `output' and `speaker', refer to the card data -signal enable and the card speaker enable, respectively. The `reset' bit, -when set, indicates that the card reset should be asserted. - -This operation should return 0 on success, or -1 on any error. - - -Board-Specific Notes - -The following information is known about various SA-11x0 board designs -which may be used as reference while adding support to the kernel. - - -Carnegie Mellon Itsy/Cue (http://www.cs.cmu.edu/~wearable/itsy/) - - Itsy Chip Select 3 (CS3) Interface - ("ITSY MEMORY/PCMCIA ADD-ON BOARD with BATTERY and CHARGER CIRCUITRY," - memo dated 5-20-99, from Tim Manns to Richard Martin, et. al) - - Read: - ABVD2 (SS)D0 A slot, Battery Voltage Detect - ABVD1 (SS)D1 - AVSS2 (SS)D2 A slot, Voltage Sense - AVSS1 (SS)D3 - GND (SS)D4 - GND (SS)D5 - GND (SS)D6 - GND (SS)D7 - - BBVD2 (SS)D8 B slot, Battery Voltage Detect - BBVD1 (SS)D9 - BVSS2 (SS)D10 B slot, Voltage Sense - BVSS1 (SS)D11 - GND (SS)D12 - GND (SS)D13 - GND (SS)D14 - GND (SS)D15 - - Write: - (SS)D0 A_VPP_VCC LTC1472 VPPEN1 - (SS)D1 A_VPP_PGM LTC1472 VPPEN0 - (SS)D2 A_VCC_3 LTC1472 VCCEN0 - (SS)D3 A_VCC_5 LTC1472 VCCEN1 - (SS)D4 RESET (A SLOT) - (SS)D5 GND - (SS)D6 GND - (SS)D7 GND - - (SS)D8 B_VPP_VCC LTC1472 VPPEN1 - (SS)D9 B_VPP_PGM LTC1472 VPPEN0 - (SS)D10 B_VCC_3 LTC1472 VCCEN0 - (SS)D11 B_VCC_5 LTC1472 VCCEN1 - (SS)D12 RESET (B SLOT) - (SS)D13 GND - (SS)D14 GND - (SS)D15 GND - - GPIO pin assignments are as follows: (from schematics) - - GPIO 10 Slot 0 Card Detect - GPIO 11 Slot 1 Card Detect - GPIO 12 Slot 0 Ready/Interrupt - GPIO 13 Slot 1 Ready/Interrupt - - - -Intel SA-1100 Multimedia Board (http://developer.intel.com/design/strong/) - - CPLD Registers - SA-1100 Multimedia Development Board with Companion SA-1101 Development - Board User's Guide, p.4-42 - - This SA-1100/1101 development package uses only one GPIO pin (24) to - signal changes in card status, and requires software to inspect a - PCMCIA status register to determine the source. - - Read: (PCMCIA Power Sense Register - 0x19400000) - S0VS1 0 Slot 0 voltage sense - S0VS2 1 - S0BVD1 2 Slot 0 battery voltage sense - S0BVD2 3 - S1VS1 4 Slot 1 voltage sense - S1VS2 5 - S1BVD1 6 Slot 1 battery voltage sense - S1BVD2 7 - - Read/Write: (PCMCIA Power Control Register - 0x19400002) - S0VPP0 0 Slot 0 Vpp - S0VPP1 1 - S0VCC0 2 Slot 0 Vcc - S0VCC1 3 - S1VPP0 4 Slot 1 Vpp - S1VPP1 5 - S1VCC0 6 Slot 1 Vcc - S1VCC1 7 - - Read: (PCMCIA Status Register - 0x19400004) - S0CD1 0 Slot 0 Card Detect 1 - S0RDY 1 Slot 0 Ready/Interrupt - S0STSCHG 2 Slot 0 Status Change - S0Reset 3 Slot 0 Reset (RW) - S1CD1 4 Slot 1 Card Detect 1 - S1RDY 5 Slot 1 Ready/Interrupt - S1STSCHG 6 Slot 1 Status Change - S1Reset 7 Slot 1 Reset (RW) - - - -Intel SA-1100 Evaluation Platform (http://developer.intel.com/design/strong/) - - Brutus I/O Pins and Chipselect Register - pcmcia-brutus.c, by Ivo Clarysse - (What's the official reference for this info?) - - This SA-1100 development board uses more GPIO pins than say, the Itsy - or the SA-1100/1101 multimedia package. The pin assignments are as - follows: - - GPIO 2 Slot 0 Battery Voltage Detect 1 - GPIO 3 Slot 0 Ready/Interrupt - GPIO 4 Slot 0 Card Detect - GPIO 5 Slot 1 Battery Voltage Detect 1 - GPIO 6 Slot 1 Ready/Interrupt - GPIO 7 Slot 1 Card Detect - - Like the Itsy, Brutus uses a chipselect register in static memory - bank 3 for the other signals, such as voltage sense or reset: - - Read: - P0_VS1 8 Slot 0 Voltage Sense - P0_VS2 9 - P0_STSCHG 10 Slot 0 Status Change - P1_VS1 12 Slot 1 Voltage Sense - P1_VS2 13 - P1_STSCHG 14 Slot 1 Status Change - - Read/Write: - P0_ 16 Slot 0 MAX1600EAI control line - P0_ 17 Slot 0 MAX1600EAI control line - P0_ 18 Slot 0 MAX1600EAI control line - P0_ 19 Slot 0 MAX1600EAI control line - P0_ 20 Slot 0 12V - P0_ 21 Slot 0 Vpp to Vcc (CONFIRM?) - P0_ 22 Slot 0 enable fan-out drivers & xcvrs - P0_SW_RST 23 Slot 0 Reset - P1_ 24 Slot 1 MAX1600EAI control line - P1_ 25 Slot 1 MAX1600EAI control line - P1_ 26 Slot 1 MAX1600EAI control line - P1_ 27 Slot 1 MAX1600EAI control line - P1_ 28 Slot 1 12V - P1_ 29 Slot 1 Vpp to Vcc (CONFIRM?) - P1_ 30 Slot 1 enable fan-out drivers & xcvrs - P1_SW_RST 31 Slot 1 Reset - - For each slot, the bits labelled "MAX1600EAI" should (apparently) - be written with the value 0101 for Vcc 3.3V, and 1001 for Vcc 5V. - - - -Intel SA-1110 Development Platform (http://developer.intel.com/design/strong/) - - GPIO Pin Descriptions and Board Control Register - SA-1110 Microprocessor Development Board User's Guide, p.4-7, 4-10 - - The Assabet board contains only a single Compact Flash slot, - attached to slot 1 on the SA-1110. Card detect, ready, and BVD - signals are routed through GPIO, with power and reset placed in a - control register. Note that the CF bus must be enabled before use. - - GPIO 21 Slot 1 Compact Flash interrupt - GPIO 22 Slot 1 card detect (CD1 NOR CD2) - GPIO 24 Slot 1 Battery Voltage Detect 2 - GPIO 25 Slot 1 Battery Voltage Detect 1 - - Write-only: (Board Control Register - 0x12000000) - CF_PWR 0 CF bus power (3.3V) - CF_RST 1 CF reset - CF_Bus_On 7 CF bus enable - diff --git a/Documentation/arm/XScale/ADIFCC/80200EVB b/Documentation/arm/XScale/ADIFCC/80200EVB deleted file mode 100644 index 3762de418..000000000 --- a/Documentation/arm/XScale/ADIFCC/80200EVB +++ /dev/null @@ -1,110 +0,0 @@ - -Board Overview ------------------------------ - -This is an beta release of the Xscale Linux port to the ADI 80200EVB -evaluation board. - -The 80200EVB is an evaluation platform for ADI Engineering's high-performance -80200FCC chipset for the Intel 80200 XScale CPU. The 80200FCC is an open -source FPGA based system that contains a PCI unit and a high performance -memory controller. - -In addition to the 80200FCC, the board also contains a 16C550 UART, and 4MB -of flash. - -The board is still under development and currently only the UART is functional -as the PCI bits have not been programmed into the FPGA. - -For more information on the board, see http://www.adiengineering.com - -Port Status ------------------------------ - -Supported: - -- Onboard UART (Polled operation only) -- Cache/TLB locking on 80200 CPU - -TODO: - -- PCI when hardware supports it - -Building the Kernel ------------------------------ -change Linux makefile -make adi_evb_config -make oldconfig -make zImage - -Loading Linux ------------------------------ - -Before you can use Linux on the ADI board, you need to grab the following: - -ADI 80200EVB Monitor: - ftp://source.mvista.com/pub/xscale/ADI_EVB/monitor.srec - -ADI JFFS2 Image: - ftp://source.mvista.com/pub/xscale/ADI_EVB/adi.jffs2 - -Once you've got the Cygnus prompt, type in the following command: - - load - -On another terminal window: - - cat monitor.srec > /dev/ttyS0 - -(replace ttyS0 with the serial port you are using) - -Once completed, just type 'go' at the cygmon prompt and you should see: - - MontaVista IQ80310 Monitor Version 0.1 - monitor> - -Type 'b 115200' at the prompt and change your terminal speed to 115200 - -The first thing to do is to upload and burn the jffs2 filesystem image -onto the boards 4MB of flash: - - monitor> u c1000000 - Uploading file at 0xc1000000 - Now send file with ymodem - -Do as the monitor says and transfer the file adi.jffs2. Once complete, -the following will copy the jffs2 image to location 0x80000 in the flash. - - monitor> f 8000 c1000000 200000 - Erasing sector 0x00080000 - Writing sector 0x00080000 with data at 0xC1000000 - Erasing sector 0x000A0000 - Writing sector 0x000A0000 with data at 0xC1020000 - Erasing sector 0x000C0000 - ... - -Now use the same command as above to upload your zImage to location c1000000. -When you've done that, type 'j c1000000' to run Linux. Login as -root and you're all set to go. - -Misc Notes ------------------------------ - -The current version of the HW does not have an onboard timer, so the 80200 -PMU is not available for general use as it is being used for a timer source. - -By default, the MTD driver reserves the first 512K for bootloaders and -the remaining 3.5MB for the filesystem. You can edit drivers/mtd/map/adi_evb.c -to change this as needed for your application. - -Contributors ------------------------------ - -Thanks to ADI Engineering for providing the hardware for development - -Deepak Saxena - Initial port - ------------------------------ -Enjoy. If you have any problem please contact Deepak Saxena -dsaxena@mvista.com - diff --git a/Documentation/arm/XScale/IOP3XX/IQ80310 b/Documentation/arm/XScale/IOP3XX/IQ80310 deleted file mode 100644 index 5312a5742..000000000 --- a/Documentation/arm/XScale/IOP3XX/IQ80310 +++ /dev/null @@ -1,247 +0,0 @@ - -Board Overview ------------------------------ - -The Cyclone IQ80310 board is an evaluation platform for Intel's 80200 Xscale -CPU and 80312 Intelligent I/O chipset (collectively called IOP310 chipset). - -The 80312 contains dual PCI hoses (called the ATUs), a PCI-to-PCI bridge, -three DMA channels (1 on secondary PCI, one on primary PCI ), I2C, I2O -messaging unit, XOR unit for RAID operations, a bus performance monitoring -unit, and a memory controller with ECC features. - -For more information on the board, see http://developer.intel.com/iio - -Port Status ------------------------------ - -Supported: - -- MTD/JFFS/JFFS2 -- NFS root -- RAMDISK root -- 2ndary PCI slots -- Onboard ethernet -- Serial ports (ttyS0/S1) -- Cache/TLB locking on 80200 CPU -- Performance monitoring unit on 80200 CPU -- 80200 Performance Monitoring Unit -- Acting as a system controller on Cyclone 80303BP PCI backplane -- DMA engines (EXPERIMENTAL) -- 80312 Bus Performance Monitor (EXPERIMENTAL) -- Application Accelerator Unit (XOR engine for RAID) (EXPERIMENTAL) -- Messaging Unit (EXPERIMENTAL) - -TODO: -- I2C - -Building the Kernel ------------------------------ -make iq80310_config -make oldconfig -make zImage - -This will build an image setup for BOOTP/NFS root support. To change this, -just run make menuconfig and disable nfs root or add a "root=" option. - -Preparing the Hardware ------------------------------ - -This document assumes you're using a Rev D or newer board running -Redboot as the bootloader. Note that the version of RedBoot provided -with the boards has a major issue and you need to replace it with the -latest RedBoot. You can grab the source from the ECOS CVS or you can -get a prebuilt image and burn it in using FRU at: - - ftp://source.mvista.com/pub/xscale/iq80310/redboot.bin - -Make sure you do an 'fis init' command once you boot with the new -RedBoot image. - - - -Downloading Linux ------------------------------ - -Assuming you have your development system setup to act as a bootp/dhcp -server and running tftp: - - RedBoot> load -r -b 0xa1008000 /tftpboot/zImage.xs - Raw file loaded 0xa1008000-0xa1094bd8 - -If you're not using dhcp/tftp, you can use y-modem instead: - - RedBoot> load -r -b 0xa1008000 -m y - -Note that on Rev D. of the board, tftp does not work due to intermittent -interrupt issues, so you need to download using ymodem. - -Once the download is completed: - - RedBoot> go 0xa1008000 - -Root Devices ------------------------------ - -A kernel is not useful without a root filesystem, and you have several -choices with this board: NFS root, RAMDISK, or JFFS/JFFS2. For development -purposes, it is suggested that you use NFS root for easy access to various -tools. Once you're ready to deploy, probably want to utilize JFFS/JFFS2 on -the flash device. - -MTD on the IQ80310 ------------------------------ - -Linux on the IQ80310 supports RedBoot FIS paritioning if it is enabled. -Out of the box, once you've done 'fis init' on RedBoot, you will get -the following partitioning scheme: - - root@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 0075f000 00020000 "unallocated space" - mtd3: 00001000 00020000 "RedBoot config" - mtd4: 00020000 00020000 "FIS directory" - -To create an FIS directory, you need to use the fis command in RedBoot. -As an example, you can burn the kernel into the flash once it's downloaded: - - RedBoot> fis create -b 0xa1008000 -l 0x8CBAC -r 0xa1008000 -f 0x80000 kernel - ... Erase from 0x00080000-0x00120000: ..... - ... Program from 0xa1008000-0xa1094bac at 0x00080000: ..... - ... Unlock from 0x007e0000-0x00800000: . - ... Erase from 0x007e0000-0x00800000: . - ... Program from 0xa1fdf000-0xa1fff000 at 0x007e0000: . - ... Lock from 0x007e0000-0x00800000: . - - RedBoot> fis list - Name FLASH addr Mem addr Length Entry point - RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 - RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000 - RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000 - FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000 - kernel 0x00080000 0xA1008000 0x000A0000 0x00000000 - -This leads to the following Linux MTD setup: - - mtroot@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 000a0000 00020000 "kernel" - mtd3: 006bf000 00020000 "unallocated space" - mtd4: 00001000 00020000 "RedBoot config" - mtd5: 00020000 00020000 "FIS directory" - -Note that there is not a 1:1 mapping to the number of RedBoot paritions to -MTD partitions as unused space also gets allocated into MTD partitions. - -As an aside, the -r option when creating the Kernel entry allows you to -simply do an 'fis load kernel' to copy the image from flash into memory. -You can then do an 'fis go 0xa1008000' to start Linux. - -If you choose to use static partitioning instead of the RedBoot partioning: - - /dev/mtd0 0x00000000 - 0x0007ffff: Boot Monitor (512k) - /dev/mtd1 0x00080000 - 0x0011ffff: Kernel Image (640K) - /dev/mtd2 0x00120000 - 0x0071ffff: File System (6M) - /dev/mtd3 0x00720000 - 0x00800000: RedBoot Reserved (896K) - -To use a JFFS1/2 root FS, you need to donwload the JFFS image using either -tftp or ymodem, and then copy it to flash: - - RedBoot> load -r -b 0xa1000000 /tftpboot/jffs.img - Raw file loaded 0xa1000000-0xa1600000 - RedBoot> fis create -b 0xa1000000 -l 0x600000 -f 0x120000 jffs - ... Erase from 0x00120000-0x00720000: .................................. - ... Program from 0xa1000000-0xa1600000 at 0x00120000: .................. - ...................... - ... Unlock from 0x007e0000-0x00800000: . - ... Erase from 0x007e0000-0x00800000: . - ... Program from 0xa1fdf000-0xa1fff000 at 0x007e0000: . - ... Lock from 0x007e0000-0x00800000: . - RedBoot> fis list - Name FLASH addr Mem addr Length Entry point - RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 - RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000 - RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000 - FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000 - kernel 0x00080000 0xA1008000 0x000A0000 0xA1008000 - jffs 0x00120000 0x00120000 0x00600000 0x00000000 - -This looks like this in Linux: - - root@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 000a0000 00020000 "kernel" - mtd3: 00600000 00020000 "jffs" - mtd4: 000bf000 00020000 "unallocated space" - mtd5: 00001000 00020000 "RedBoot config" - mtd6: 00020000 00020000 "FIS directory" - -You need to boot the kernel once and watch the boot messages to see how the -JFFS RedBoot partition mapped into the MTD partition scheme. - -You can grab a pre-built JFFS image to use as a root file system at: - - ftp://source.mvista.com/pub/xscale/iq80310/jffs.img - -For detailed info on using MTD and creating a JFFS image go to: - - http://www.linux-mtd.infradead.org. - -For details on using RedBoot's FIS commands, type 'fis help' or consult -your RedBoot manual. - -Contributors ------------------------------ - -Thanks to Intel Corporation for providing the hardware. - -John Clark - Initial discovery of RedBoot issues -Dave Jiang - IRQ demux fixes, AAU, DMA, MU -Nicolas Pitre - Initial port, cleanup, debugging -Matt Porter - PCI subsystem development, debugging -Tim Sanders - Initial PCI code -Mark Salter - RedBoot fixes -Deepak Saxena - Cleanup, debug, cache lock, PMU - ------------------------------ -Enjoy. - -If you have any problems please contact Deepak Saxena - -A few notes from rmk ------------------------------ - -These are notes of my initial experience getting the IQ80310 Rev D up and -running. In total, it has taken many hours to work out what's going on... -The version of redboot used is: - - RedBoot(tm) bootstrap and debug environment, version UNKNOWN - built 14:58:21, Aug 15 2001 - - -1. I've had a corrupted download of the redboot.bin file from Montavista's - FTP site. It would be a good idea if there were md5sums, sum or gpg - signatures available to ensure the integrity of the downloaded files. - The result of this was an apparantly 100% dead card. - -2. RedBoot Intel EtherExpress Pro 100 driver seems to be very unstable - - I've had it take out the whole of a 100mbit network for several minutes. - The Hub indiates ZERO activity, despite machines attempting to communicate. - Further to this, while tftping the kernel, the transfer will stall regularly, - and might even drop the link LED. - -3. There appears to be a bug in the Intel Documentation Pack that comes with - the IQ80310 board. Serial port 1, which is the socket next to the LEDs - is address 0xfe810000, not 0xfe800000. - - Note that RedBoot uses either serial port 1 OR serial port 2, so if you - have your console connected to the wrong port, you'll see redboot messages - but not kernel boot messages. - -4. Trying to use fconfig to setup a boot script fails - it hangs when trying - to erase the flash. diff --git a/Documentation/arm/XScale/IOP3XX/IQ80321 b/Documentation/arm/XScale/IOP3XX/IQ80321 deleted file mode 100644 index e3253279d..000000000 --- a/Documentation/arm/XScale/IOP3XX/IQ80321 +++ /dev/null @@ -1,215 +0,0 @@ - -Board Overview ------------------------------ - -The Worcester IQ80321 board is an evaluation platform for Intel's 80321 Xscale -CPU (sometimes called IOP321 chipset). - -The 80321 contains a single PCI hose (called the ATUs), a PCI-to-PCI bridge, -two DMA channels, I2C, I2O messaging unit, XOR unit for RAID operations, -a bus performance monitoring unit, and a memory controller with ECC features. - -For more information on the board, see http://developer.intel.com/iio - -Port Status ------------------------------ - -Supported: - -- MTD/JFFS/JFFS2 root -- NFS root -- RAMDISK root -- Serial port (ttyS0) -- Cache/TLB locking on 80321 CPU -- Performance monitoring unit on 80321 CPU - -TODO: - -- DMA engines -- I2C -- 80321 Bus Performance Monitor -- Application Accelerator Unit (XOR engine for RAID) -- I2O Messaging Unit -- I2C unit -- SSP - -Building the Kernel ------------------------------ -make iq80321_config -make oldconfig -make zImage - -This will build an image setup for BOOTP/NFS root support. To change this, -just run make menuconfig and disable nfs root or add a "root=" option. - -Preparing the Hardware ------------------------------ - -Make sure you do an 'fis init' command once you boot with the new -RedBoot image. - -Downloading Linux ------------------------------ - -Assuming you have your development system setup to act as a bootp/dhcp -server and running tftp: - -NOTE: The 80321 board uses a different default memory map than the 80310. - - RedBoot> load -r -b 0x01008000 -m y - -Once the download is completed: - - RedBoot> go 0x01008000 - -There is a version of RedBoot floating around that has DHCP support, but -I've never been able to cleanly transfer a kernel image and have it run. - -Root Devices ------------------------------ - -A kernel is not useful without a root filesystem, and you have several -choices with this board: NFS root, RAMDISK, or JFFS/JFFS2. For development -purposes, it is suggested that you use NFS root for easy access to various -tools. Once you're ready to deploy, probably want to utilize JFFS/JFFS2 on -the flash device. - -MTD on the IQ80321 ------------------------------ - -Linux on the IQ80321 supports RedBoot FIS paritioning if it is enabled. -Out of the box, once you've done 'fis init' on RedBoot, you will get -the following partitioning scheme: - - root@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 0075f000 00020000 "unallocated space" - mtd3: 00001000 00020000 "RedBoot config" - mtd4: 00020000 00020000 "FIS directory" - -To create an FIS directory, you need to use the fis command in RedBoot. -As an example, you can burn the kernel into the flash once it's downloaded: - - RedBoot> fis create -b 0x01008000 -l 0x8CBAC -r 0x01008000 -f 0x80000 kernel - ... Erase from 0x00080000-0x00120000: ..... - ... Program from 0x01008000-0x01094bac at 0x00080000: ..... - ... Unlock from 0x007e0000-0x00800000: . - ... Erase from 0x007e0000-0x00800000: . - ... Program from 0x01fdf000-0x01fff000 at 0x007e0000: . - ... Lock from 0x007e0000-0x00800000: . - - RedBoot> fis list - Name FLASH addr Mem addr Length Entry point - RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 - RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000 - RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000 - FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000 - kernel 0x00080000 0x01008000 0x000A0000 0x00000000 - -This leads to the following Linux MTD setup: - - mtroot@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 000a0000 00020000 "kernel" - mtd3: 006bf000 00020000 "unallocated space" - mtd4: 00001000 00020000 "RedBoot config" - mtd5: 00020000 00020000 "FIS directory" - -Note that there is not a 1:1 mapping to the number of RedBoot paritions to -MTD partitions as unused space also gets allocated into MTD partitions. - -As an aside, the -r option when creating the Kernel entry allows you to -simply do an 'fis load kernel' to copy the image from flash into memory. -You can then do an 'fis go 0x01008000' to start Linux. - -If you choose to use static partitioning instead of the RedBoot partioning: - - /dev/mtd0 0x00000000 - 0x0007ffff: Boot Monitor (512k) - /dev/mtd1 0x00080000 - 0x0011ffff: Kernel Image (640K) - /dev/mtd2 0x00120000 - 0x0071ffff: File System (6M) - /dev/mtd3 0x00720000 - 0x00800000: RedBoot Reserved (896K) - -To use a JFFS1/2 root FS, you need to donwload the JFFS image using either -tftp or ymodem, and then copy it to flash: - - RedBoot> load -r -b 0x01000000 /tftpboot/jffs.img - Raw file loaded 0x01000000-0x01600000 - RedBoot> fis create -b 0x01000000 -l 0x600000 -f 0x120000 jffs - ... Erase from 0x00120000-0x00720000: .................................. - ... Program from 0x01000000-0x01600000 at 0x00120000: .................. - ...................... - ... Unlock from 0x007e0000-0x00800000: . - ... Erase from 0x007e0000-0x00800000: . - ... Program from 0x01fdf000-0x01fff000 at 0x007e0000: . - ... Lock from 0x007e0000-0x00800000: . - RedBoot> fis list - Name FLASH addr Mem addr Length Entry point - RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 - RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000 - RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000 - FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000 - kernel 0x00080000 0x01008000 0x000A0000 0x01008000 - jffs 0x00120000 0x00120000 0x00600000 0x00000000 - -This looks like this in Linux: - - root@192.168.0.14:~# cat /proc/mtd - dev: size erasesize name - mtd0: 00040000 00020000 "RedBoot" - mtd1: 00040000 00020000 "RedBoot[backup]" - mtd2: 000a0000 00020000 "kernel" - mtd3: 00600000 00020000 "jffs" - mtd4: 000bf000 00020000 "unallocated space" - mtd5: 00001000 00020000 "RedBoot config" - mtd6: 00020000 00020000 "FIS directory" - -You need to boot the kernel once and watch the boot messages to see how the -JFFS RedBoot partition mapped into the MTD partition scheme. - -You can grab a pre-built JFFS image to use as a root file system at: - - ftp://source.mvista.com/pub/xscale/iq80310/jffs.img - -For detailed info on using MTD and creating a JFFS image go to: - - http://www.linux-mtd.infradead.org. - -For details on using RedBoot's FIS commands, type 'fis help' or consult -your RedBoot manual. - -BUGS and ISSUES ------------------------------ - -* As shipped from Intel, pre-production boards have two issues: - -- The on board ethernet is disabled S8E1-2 is off. You will need to turn it on. - -- The PCIXCAPs are configured for a 100Mhz clock, but the clock selected is - actually only 66Mhz. This causes the wrong PPL multiplier to be used and the - board only runs at 400Mhz instead of 600Mhz. The way to observe this is to - use a independent clock to time a "sleep 10" command from the prompt. If it - takes 15 seconds instead of 10, you are running at 400Mhz. - -- The experimental IOP310 drivers for the AAU, DMA, etc. are not supported yet. - -Contributors ------------------------------ -The port to the IQ80321 was performed by: - -Rory Bolt - Initial port, debugging. - -This port was based on the IQ80310 port with the following contributors: - -Nicolas Pitre - Initial port, cleanup, debugging -Matt Porter - PCI subsystem development, debugging -Tim Sanders - Initial PCI code -Deepak Saxena - Cleanup, debug, cache lock, PMU - -The port is currently maintained by Deepak Saxena - ------------------------------ -Enjoy. diff --git a/Documentation/arm/XScale/IOP3XX/aau.txt b/Documentation/arm/XScale/IOP3XX/aau.txt deleted file mode 100644 index e3852ccbf..000000000 --- a/Documentation/arm/XScale/IOP3XX/aau.txt +++ /dev/null @@ -1,178 +0,0 @@ -Support functions for the Intel 80310 AAU -=========================================== - -Dave Jiang -Last updated: 09/18/2001 - -The Intel 80312 companion chip in the 80310 chipset contains an AAU. The -AAU is capable of processing up to 8 data block sources and perform XOR -operations on them. This unit is typically used to accelerated XOR -operations utilized by RAID storage device drivers such as RAID 5. This -API is designed to provide a set of functions to take adventage of the -AAU. The AAU can also be used to transfer data blocks and used as a memory -copier. The AAU transfer the memory faster than the operation performed by -using CPU copy therefore it is recommended to use the AAU for memory copy. - ------------------- -int aau_request(u32 *aau_context, const char *device_id); -This function allows the user the acquire the control of the the AAU. The -function will return a context of AAU to the user and allocate -an interrupt for the AAU. The user must pass the context as a parameter to -various AAU API calls. - -int aau_queue_buffer(u32 aau_context, aau_head_t *listhead); -This function starts the AAU operation. The user must create a SGL -header with a SGL attached. The format is presented below. The SGL is -built from kernel memory. - -/* hardware descriptor */ -typedef struct _aau_desc -{ - u32 NDA; /* next descriptor address [READONLY] */ - u32 SAR[AAU_SAR_GROUP]; /* src addrs */ - u32 DAR; /* destination addr */ - u32 BC; /* byte count */ - u32 DC; /* descriptor control */ - u32 SARE[AAU_SAR_GROUP]; /* extended src addrs */ -} aau_desc_t; - -/* user SGL format */ -typedef struct _aau_sgl -{ - aau_desc_t aau_desc; /* AAU HW Desc */ - u32 status; /* status of SGL [READONLY] */ - struct _aau_sgl *next; /* pointer to next SG [READONLY] */ - void *dest; /* destination addr */ - void *src[AAU_SAR_GROUP]; /* source addr[4] */ - void *ext_src[AAU_SAR_GROUP]; /* ext src addr[4] */ - u32 total_src; /* total number of source */ -} aau_sgl_t; - -/* header for user SGL */ -typedef struct _aau_head -{ - u32 total; /* total descriptors allocated */ - u32 status; /* SGL status */ - aau_sgl_t *list; /* ptr to head of list */ - aau_callback_t callback; /* callback func ptr */ -} aau_head_t; - - -The function will call aau_start() and start the AAU after it queues -the SGL to the processing queue. When the function will either -a. Sleep on the wait queue aau->wait_q if no callback has been provided, or -b. Continue and then call the provided callback function when DMA interrupt - has been triggered. - -int aau_suspend(u32 aau_context); -Stops/Suspends the AAU operation - -int aau_free(u32 aau_context); -Frees the ownership of AAU. Called when no longer need AAU service. - -aau_sgl_t * aau_get_buffer(u32 aau_context, int num_buf); -This function obtains an AAU SGL for the user. User must specify the number -of descriptors to be allocated in the chain that is returned. - -void aau_return_buffer(u32 aau_context, aau_sgl_t *list); -This function returns all SGL back to the API after user is done. - -int aau_memcpy(void *dest, void *src, u32 size); -This function is a short cut for user to do memory copy utilizing the AAU for -better large block memory copy vs using the CPU. This is similar to using -typical memcpy() call. - -* User is responsible for the source address(es) and the destination address. - The source and destination should all be cached memory. - - - -void aau_test() -{ - u32 aau; - char dev_id[] = "AAU"; - int size = 2; - int err = 0; - aau_head_t *head; - aau_sgl_t *list; - u32 i; - u32 result = 0; - void *src, *dest; - - printk("Starting AAU test\n"); - if((err = aau_request(&aau, dev_id))<0) - { - printk("test - AAU request failed: %d\n", err); - return; - } - else - { - printk("test - AAU request successful\n"); - } - - head = kmalloc(sizeof(aau_head_t), GFP_KERNEL); - head->total = size; - head->status = 0; - head->callback = NULL; - - list = aau_get_buffer(aau, size); - if(!list) - { - printk("Can't get buffers\n"); - return; - } - head->list = list; - - src = kmalloc(1024, GFP_KERNEL); - dest = kmalloc(1024, GFP_KERNEL); - - while(list) - { - list->status = 0; - list->aau_desc->SAR[0] = (u32)src; - list->aau_desc->DAR = (u32)dest; - list->aau_desc->BC = 1024; - - /* see iop310-aau.h for more DCR commands */ - list->aau_desc->DC = AAU_DCR_WRITE | AAU_DCR_BLKCTRL_1_DF; - if(!list->next) - { - list->aau_desc->DC = AAU_DCR_IE; - break; - } - list = list->next; - } - - printk("test- Queueing buffer for AAU operation\n"); - err = aau_queue_buffer(aau, head); - if(err >= 0) - { - printk("AAU Queue Buffer is done...\n"); - } - else - { - printk("AAU Queue Buffer failed...: %d\n", err); - } - - - -#if 1 - printk("freeing the AAU\n"); - aau_return_buffer(aau, head->list); - aau_free(aau); - kfree(src); - kfree(dest); - kfree((void *)head); -#endif -} - -All Disclaimers apply. Use this at your own discretion. Neither Intel nor I -will be responsible if anything goes wrong. =) - - -TODO -____ -* Testing -* Do zero-size AAU transfer/channel at init - so all we have to do is chainining - diff --git a/Documentation/arm/XScale/IOP3XX/dma.txt b/Documentation/arm/XScale/IOP3XX/dma.txt deleted file mode 100644 index 50c7f99e4..000000000 --- a/Documentation/arm/XScale/IOP3XX/dma.txt +++ /dev/null @@ -1,214 +0,0 @@ -Support functions forthe Intel 80310 DMA channels -================================================== - -Dave Jiang -Last updated: 09/18/2001 - -The Intel 80310 XScale chipset provides 3 DMA channels via the 80312 I/O -companion chip. Two of them resides on the primary PCI bus and one on the -secondary PCI bus. - -The DMA API provided is not compatible with the generic interface in the -ARM tree unfortunately due to how the 80312 DMACs work. Hopefully some time -in the near future a software interface can be done to bridge the differences. -The DMA API has been modeled after Nicholas Pitre's SA11x0 DMA API therefore -they will look somewhat similar. - - -80310 DMA API -------------- - -int dma_request(dmach_t channel, const char *device_id); - -This function will attempt to allocate the channel depending on what the -user requests: - -IOP310_DMA_P0: PCI Primary 1 -IOP310_DMA_P1: PCI Primary 2 -IOP310_DMA_S0: PCI Secondary 1 -/*EOF*/ - -Once the user allocates the DMA channel it is owned until released. Although -other users can also use the same DMA channel, but no new resources will be -allocated. The function will return the allocated channel number if successful. - -int dma_queue_buffer(dmach_t channel, dma_sghead_t *listhead); - -The user will construct a SGL in the form of below: -/* - * Scattered Gather DMA List for user - */ -typedef struct _dma_desc -{ - u32 NDAR; /* next descriptor adress [READONLY] */ - u32 PDAR; /* PCI address */ - u32 PUADR; /* upper PCI address */ - u32 LADR; /* local address */ - u32 BC; /* byte count */ - u32 DC; /* descriptor control */ -} dma_desc_t; - -typedef struct _dma_sgl -{ - dma_desc_t dma_desc; /* DMA descriptor */ - u32 status; /* descriptor status [READONLY] */ - u32 data; /* user defined data */ - struct _dma_sgl *next; /* next descriptor [READONLY] */ -} dma_sgl_t; - -/* dma sgl head */ -typedef struct _dma_head -{ - u32 total; /* total elements in SGL */ - u32 status; /* status of sgl */ - u32 mode; /* read or write mode */ - dma_sgl_t *list; /* pointer to list */ - dma_callback_t callback; /* callback function */ -} dma_head_t; - - -The user shall allocate user SGL elements by calling the function: -dma_get_buffer(). This function will give the user an SGL element. The user -is responsible for creating the SGL head however. The user is also -responsible for allocating the memory for DMA data. The following code segment -shows how a DMA operation can be performed: - -#include - -void dma_test(void) -{ - char dev_id[] = "Primary 0"; - dma_head_t *sgl_head = NULL; - dma_sgl_t *sgl = NULL; - int err = 0; - int channel = -1; - u32 *test_ptr = 0; - DECLARE_WAIT_QUEUE_HEAD(wait_q); - - - *(IOP310_ATUCR) = (IOP310_ATUCR_PRIM_OUT_ENAB | - IOP310_ATUCR_DIR_ADDR_ENAB); - - channel = dma_request(IOP310_DMA_P0, dev_id); - - sgl_head = (dma_head_t *)kmalloc(sizeof(dma_head_t), GFP_KERNEL); - sgl_head->callback = NULL; /* no callback created */ - sgl_head->total = 2; /* allocating 2 DMA descriptors */ - sgl_head->mode = (DMA_MOD_WRITE); - sgl_head->status = 0; - - /* now we get the two descriptors */ - sgl = dma_get_buffer(channel, 2); - - /* we set the header to point to the list we allocated */ - sgl_head->list = sgl; - - /* allocate 1k of DMA data */ - sgl->data = (u32)kmalloc(1024, GFP_KERNEL); - - /* Local address is physical */ - sgl->dma_desc.LADR = (u32)virt_to_phys(sgl->data); - - /* write to arbitrary location over the PCI bus */ - sgl->dma_desc.PDAR = 0x00600000; - sgl->dma_desc.PUADR = 0; - sgl->dma_desc.BC = 1024; - - /* set write & invalidate PCI command */ - sgl->dma_desc.DC = DMA_DCR_PCI_MWI; - sgl->status = 0; - - /* set a pattern */ - memset(sgl->data, 0xFF, 1024); - - /* User's responsibility to keep buffers cached coherent */ - cpu_dcache_clean(sgl->data, sgl->data + 1024); - - sgl = sgl->next; - - sgl->data = (u32)kmalloc(1024, GFP_KERNEL); - sgl->dma_desc.LADR = (u32)virt_to_phys(sgl->data); - sgl->dma_desc.PDAR = 0x00610000; - sgl->dma_desc.PUADR = 0; - sgl->dma_desc.BC = 1024; - - /* second descriptor has interrupt flag enabled */ - sgl->dma_desc.DC = (DMA_DCR_PCI_MWI | DMA_DCR_IE); - - /* must set end of chain flag */ - sgl->status = DMA_END_CHAIN; /* DO NOT FORGET THIS!!!! */ - - memset(sgl->data, 0x0f, 1024); - /* User's responsibility to keep buffers cached coherent */ - cpu_dcache_clean(sgl->data, sgl->data + 1024); - - /* queuing the buffer, this function will sleep since no callback */ - err = dma_queue_buffer(channel, sgl_head); - - /* now we are woken from DMA complete */ - - /* do data operations here */ - - /* free DMA data if necessary */ - - /* return the descriptors */ - dma_return_buffer(channel, sgl_head->list); - - /* free the DMA */ - dma_free(channel); - - kfree((void *)sgl_head); -} - - -dma_sgl_t * dma_get_buffer(dmach_t channel, int buf_num); - -This call allocates DMA descriptors for the user. - - -void dma_return_buffer(dmach_t channel, dma_sgl_t *list); - -This call returns the allocated descriptors back to the API. - - -int dma_suspend(dmach_t channel); - -This call suspends any DMA transfer on the given channel. - - - -int dma_resume(dmach_t channel); - -This call resumes a DMA transfer which would have been stopped through -dma_suspend(). - - -int dma_flush_all(dmach_t channel); - -This completely flushes all queued buffers and on-going DMA transfers on a -given channel. This is called when DMA channel errors have occurred. - - -void dma_free(dmach_t channel); - -This clears all activities on a given DMA channel and releases it for future -requests. - - - -Buffer Allocation ------------------ -It is the user's responsibility to allocate, free, and keep track of the -allocated DMA data memory. Upon calling dma_queue_buffer() the user must -relinquish the control of the buffers to the kernel and not change the -state of the buffers that it has passed to the kernel. The user will regain -the control of the buffers when it has been woken up by the bottom half of -the DMA interrupt handler. The user can allocate cached buffers or non-cached -via pci_alloc_consistent(). It is the user's responsibility to ensure that -the data is cache coherent. - -*Reminder* -The user is responsble to ensure the ATU is setup properly for DMA transfers. - -All Disclaimers apply. Use this at your own discretion. Neither Intel nor I -will be responsible ifanything goes wrong. diff --git a/Documentation/arm/XScale/IOP3XX/message.txt b/Documentation/arm/XScale/IOP3XX/message.txt deleted file mode 100644 index 480d13e7a..000000000 --- a/Documentation/arm/XScale/IOP3XX/message.txt +++ /dev/null @@ -1,110 +0,0 @@ -Support functions for the Intel 80310 MU -=========================================== - -Dave Jiang -Last updated: 10/11/2001 - -The messaging unit of the IOP310 contains 4 components and is utilized for -passing messages between the PCI agents on the primary bus and the Intel(R) -80200 CPU. The four components are: -Messaging Component -Doorbell Component -Circular Queues Component -Index Registers Component - -Messaging Component: -Contains 4 32bit registers, 2 in and 2 out. Writing to the registers assert -interrupt on the PCI bus or to the 80200 depend on incoming or outgoing. - -int mu_msg_request(u32 *mu_context); -Request the usage of Messaging Component. mu_context is written back by the -API. The MU context is passed to other Messaging calls as a parameter. - -int mu_msg_set_callback(u32 mu_context, u8 reg, mu_msg_cb_t func); -Setup the callback function for incoming messages. Callback can be setup for -outbound 0, 1, or both outbound registers. - -int mu_msg_post(u32 mu_context, u32 val, u8 reg); -Posting a message in the val parameter. The reg parameter denotes whether -to use register 0, 1. - -int mu_msg_free(u32 mu_context, u8 mode); -Free the usage of messaging component. mode can be specified soft or hard. In -hardmode all resources are unallocated. - -Doorbell Component: -The doorbell registers contains 1 inbound and 1 outbound. Depending on the bits -being set different interrupts are asserted. - -int mu_db_request(u32 *mu_context); -Request the usage of the doorbell register. - -int mu_db_set_callback(u32 mu_context, mu_db_cb_t func); -Setting up the inbound callback. - -void mu_db_ring(u32 mu_context, u32 mask); -Write to the outbound db register with mask. - -int mu_db_free(u32 mu_context); -Free the usage of doorbell component. - -Circular Queues Component: -The circular queue component has 4 circular queues. Inbound post, inbound free, -outbound post, outbound free. These queues are used to pass messages. - -int mu_cq_request(u32 *mu_context, u32 q_size); -Request the usage of the queue. See code comment header for q_size. It tells -the API how big of queues to setup. - -int mu_cq_inbound_init(u32 mu_context, mfa_list_t *list, u32 size, - mu_cq_cb_t func); -Init inbound queues. The user must provide a list of free message frames to -be put in inbound free queue and the callback function to handle the inbound -messages. - -int mu_cq_enable(u32 mu_context); -Enables the circular queues mechanism. Called once all the setup functions -are called. - -u32 mu_cq_get_frame(u32 mu_context); -Obtain the address of an outbound free frame for the user. - -int mu_cq_post_frame(u32 mu_context, u32 mfa); -The user can post the frame once getting the frame and put information in the -frame. - -int mu_cq_free(u32 mu_context); -Free the usage of circular queues mechanism. - -Index Registers Component: -The index register provides the mechanism to receive inbound messages. - -int mu_ir_request(u32 *mu_context); -Request of Index Register component usage. - -int mu_ir_set_callback(u32 mu_context, mu_ir_cb_t callback); -Setting up callback for inbound messages. The callback will receive the -value of the register that IAR offsets to. - -int mu_ir_free(u32 mu_context); -Free the usage of Index Registers component. - -void mu_set_irq_threshold(u32 mu_context, int thresh); -Setup the IRQ threshold before relinquish processing in IRQ space. Default -is set at 10 loops. - - -*NOTE: Example of host driver that utilize the MU can be found in the Linux I2O -driver. Specifically i2o_pci and some functions of i2o_core. The I2O driver -only utilize the circular queues mechanism. The other 3 components are simple -enough that they can be easily setup. The MU API provides no flow control for -the messaging mechanism. Flow control of the messaging needs to be established -by a higher layer of software on the IOP or the host driver. - -All Disclaimers apply. Use this at your own discretion. Neither Intel nor I -will be responsible if anything goes wrong. =) - - -TODO -____ - diff --git a/Documentation/arm/XScale/IOP3XX/pmon.txt b/Documentation/arm/XScale/IOP3XX/pmon.txt deleted file mode 100644 index 7978494a9..000000000 --- a/Documentation/arm/XScale/IOP3XX/pmon.txt +++ /dev/null @@ -1,71 +0,0 @@ - -Intel's XScale Microarchitecture 80312 companion processor provides a -Performance Monitoring Unit (PMON) that can be utilized to provide -information that can be useful for fine tuning of code. This text -file describes the API that's been developed for use by Linux kernel -programmers. Note that to get the most usage out of the PMON, -I highly reccomend getting the XScale reference manual from Intel[1] -and looking at chapter 12. - -To use the PMON, you must #include in your -source file. - -Since there's only one PMON, only one user can currently use the PMON -at a given time. To claim the PMON for usage, call iop310_pmon_claim() which -returns an identifier. When you are done using the PMON, call -iop310_pmon_release() with the id you were given earlier. - -The PMON consists of 14 registers that can be used for performance measurements. -By combining different statistics, you can derive complex performance metrics. - -To start the PMON, just call iop310_pmon_start(mode). Mode tells the PMON what -statistics to capture and can each be one of: - - IOP310_PMU_MODE0 - Performance Monitoring Disabled - - IOP310_PMU_MODE1 - Primary PCI bus and internal agents (bridge, dma Ch0, dam Ch1, patu) - - IOP310_PMU_MODE2 - Secondary PCI bus and internal agents (bridge, dma Ch0, dam Ch1, patu) - - IOP310_PMU_MODE3 - Secondary PCI bus and internal agents (external masters 0..2 and Intel - 80312 I/O companion chip) - - IOP310_PMU_MODE4 - Secondary PCI bus and internal agents (external masters 3..5 and Intel - 80312 I/O companion chip) - - IOP310_PMU_MODE5 - Intel 80312 I/O companion chip internal bus, DMA Channels and Application - Accelerator - - IOP310_PMU_MODE6 - Intel 80312 I/O companion chip internal bus, PATU, SATU and Intel 80200 - processor - - IOP310_PMU_MODE7 - Intel 80312 I/O companion chip internal bus, Primary PCI bus, Secondary - PCI bus and Secondary PCI agents (external masters 0..5 & Intel 80312 I/O - companion chip) - -To get the results back, call iop310_pmon_stop(&results) where results is -defined as follows: - -typedef struct _iop310_pmon_result -{ - u32 timestamp; /* Global Time Stamp Register */ - u32 timestamp_overflow; /* Time Stamp overflow count */ - u32 event_count[14]; /* Programmable Event Counter - Registers 1-14 */ - u32 event_overflow[14]; /* Overflow counter for PECR1-14 */ -} iop310_pmon_res_t; - - --- -This code is still under development, so please feel free to send patches, -questions, comments, etc to me. - -Deepak Saxena diff --git a/Documentation/arm/XScale/cache-lock.txt b/Documentation/arm/XScale/cache-lock.txt deleted file mode 100644 index 9728c94f1..000000000 --- a/Documentation/arm/XScale/cache-lock.txt +++ /dev/null @@ -1,123 +0,0 @@ - -Intel's XScale Microarchitecture provides support for locking of data -and instructions into the appropriate caches. This file provides -an overview of the API that has been developed to take advantage of this -feature from kernel space. Note that there is NO support for user space -cache locking. - -For example usage of this code, grab: - - ftp://source.mvista.com/pub/xscale/cache-test.c - -If you have any questions, comments, patches, etc, please contact me. - -Deepak Saxena - -API DESCRIPTION - - -I. Header File - - #include - -II. Cache Capability Discovery - - SYNOPSIS - - int cache_query(u8 cache_type, - struct cache_capabilities *pcache); - - struct cache_capabilities - { - u32 flags; /* Flags defining capabilities */ - u32 cache_size; /* Cache size in K (1024 bytes) */ - u32 max_lock; /* Maximum lockable region in K */ - } - - /* - * Flags - */ - - /* - * Bit 0: Cache lockability - * Bits 1-31: Reserved for future use - */ - #define CACHE_LOCKABLE 0x00000001 /* Cache can be locked */ - - /* - * Cache Types - */ - #define ICACHE 0x00 - #define DCACHE 0x01 - - DESCRIPTION - - This function fills out the pcache capability identifier for the - requested cache. cache_type is either DCACHE or ICACHE. This - function is not very useful at the moment as all XScale CPU's - have the same size Cache, but is is provided for future XScale - based processors that may have larger cache sizes. - - RETURN VALUE - - This function returns 0 if no error occurs, otherwise it returns - a negative, errno compatible value. - - -EIO Unknown hardware error - -III. Cache Locking - - SYNOPSIS - - int cache_lock(void *addr, u32 len, u8 cache_type, const char *desc); - - DESCRIPTION - - This function locks a physically contigous portion of memory starting - at the virtual address pointed to by addr into the cache referenced - by cache_type. - - The address of the data/instruction that is to be locked must be - aligned on a cache line boundary (L1_CACHE_ALIGNEMENT). - - The desc parameter is an optional (pass NULL if not used) human readable - descriptor of the locked memory region that is used by the cache - management code to build the /proc/cache_locks table. - - Note that this function does not check whether the address is valid - or not before locking it into the cache. That duty is up to the - caller. Also, it does not check for duplicate or overlaping - entries. - - RETURN VALUE - - If the function is successful in locking the entry into cache, a - zero is returned. - - If an error occurs, an appropriate error value is returned. - - -EINVAL The memory address provided was not cache line aligned - -ENOMEM Could not allocate memory to complete operation - -ENOSPC Not enough space left on cache to lock in requested region - -EIO Unknown error - -III. Cache Unlocking - - SYNOPSIS - - int cache_unlock(void *addr) - - DESCRIPTION - - This function unlocks a portion of memory that was previously locked - into either the I or D cache. - - RETURN VALUE - - If the entry is cleanly unlocked from the cache, a 0 is returned. - In the case of an error, an appropriate error is returned. - - -ENOENT No entry with given address associated with this cache - -EIO Unknown error - - diff --git a/Documentation/arm/XScale/pmu.txt b/Documentation/arm/XScale/pmu.txt deleted file mode 100644 index 508575d65..000000000 --- a/Documentation/arm/XScale/pmu.txt +++ /dev/null @@ -1,168 +0,0 @@ - -Intel's XScale Microarchitecture processors provide a Performance -Monitoring Unit (PMU) that can be utilized to provide information -that can be useful for fine tuning of code. This text file describes -the API that's been developed for use by Linux kernel programmers. -When I have some extra time on my hand, I will extend the code to -provide support for user mode performance monitoring (which is -probably much more useful). Note that to get the most usage out -of the PMU, I highly reccomend getting the XScale reference manual -from Intel and looking at chapter 12. - -To use the PMU, you must #include in your source file. - -Since there's only one PMU, only one user can currently use the PMU -at a given time. To claim the PMU for usage, call pmu_claim() which -returns an identifier. When you are done using the PMU, call -pmu_release() with the identifier that you were given by pmu_claim. - -In addition, the PMU can only be used on XScale based systems that -provide an external timer. Systems that the PMU is currently supported -on are: - - - Cyclone IQ80310 - -Before delving into how to use the PMU code, let's do a quick overview -of the PMU itself. The PMU consists of three registers that can be -used for performance measurements. The first is the CCNT register with -provides the number of clock cycles elapsed since the PMU was started. -The next two register, PMN0 and PMN1, are eace user programmable to -provide 1 of 20 different performance statistics. By combining different -statistics, you can derive complex performance metrics. - -To start the PMU, just call pmu_start(pm0, pmn1). pmn0 and pmn1 tell -the PMU what statistics to capture and can each be one of: - -EVT_ICACHE_MISS - Instruction fetches requiring access to external memory - -EVT_ICACHE_NO_DELIVER - Instruction cache could not deliver an instruction. Either an - ICACHE miss or an instruction TLB miss. - -EVT_ICACHE_DATA_STALL - Stall in execution due to a data dependency. This counter is - incremented each cycle in which the condition is present. - -EVT_ITLB_MISS - Instruction TLB miss - -EVT_DTLB_MISS - Data TLB miss - -EVT_BRANCH - A branch instruction was executed and it may or may not have - changed program flow - -EVT_BRANCH_MISS - A branch (B or BL instructions only) was mispredicted - -EVT_INSTRUCTION - An instruction was executed - -EVT_DCACHE_FULL_STALL - Stall because data cache buffers are full. Incremented on every - cycle in which condition is present. - -EVT_DCACHE_FULL_STALL_CONTIG - Stall because data cache buffers are full. Incremented on every - cycle in which condition is contigous. - -EVT_DCACHE_ACCESS - Data cache access (data fetch) - -EVT_DCACHE_MISS - Data cache miss - -EVT_DCACHE_WRITE_BACK - Data cache write back. This counter is incremented for every - 1/2 line (four words) that are written back. - -EVT_PC_CHANGED - Software changed the PC. This is incremented only when the - software changes the PC and there is no mode change. For example, - a MOV instruction that targets the PC would increment the counter. - An SWI would not as it triggers a mode change. - -EVT_BCU_REQUEST - The Bus Control Unit(BCU) received a request from the core - -EVT_BCU_FULL - The BCU request queue if full. A high value for this event means - that the BCU is often waiting for to complete on the external bus. - -EVT_BCU_DRAIN - The BCU queues were drained due to either a Drain Write Buffer - command or an I/O transaction for a page that was marked as - uncacheable and unbufferable. - -EVT_BCU_ECC_NO_ELOG - The BCU detected an ECC error on the memory bus but noe ELOG - register was available to to log the errors. - -EVT_BCU_1_BIT_ERR - The BCU detected a 1-bit error while reading from the bus. - -EVT_RMW - An RMW cycle occurred due to narrow write on ECC protected memory. - -To get the results back, call pmu_stop(&results) where results is defined -as a struct pmu_results: - - struct pmu_results - { - u32 ccnt; /* Clock Counter Register */ - u32 ccnt_of; / - u32 pmn0; /* Performance Counter Register 0 */ - u32 pmn0_of; - u32 pmn1; /* Performance Counter Register 1 */ - u32 pmn1_of; - }; - -Pretty simple huh? Following are some examples of how to get some commonly -wanted numbers out of the PMU data. Note that since you will be dividing -things, this isn't super useful from the kernel and you need to printk the -data out to syslog. See [1] for more examples. - -Instruction Cache Efficiency - - pmu_start(EVT_INSTRUCTION, EVT_ICACHE_MISS); - ... - pmu_stop(&results); - - icache_miss_rage = results.pmn1 / results.pmn0; - cycles_per_instruction = results.ccnt / results.pmn0; - -Data Cache Efficiency - - pmu_start(EVT_DCACHE_ACCESS, EVT_DCACHE_MISS); - ... - pmu_stop(&results); - - dcache_miss_rage = results.pmn1 / results.pmn0; - -Instruction Fetch Latency - - pmu_start(EVT_ICACHE_NO_DELIVER, EVT_ICACHE_MISS); - ... - pmu_stop(&results); - - average_stall_waiting_for_instruction_fetch = - results.pmn0 / results.pmn1; - - percent_stall_cycles_due_to_instruction_fetch = - results.pmn0 / results.ccnt; - - -ToDo: - -- Add support for usermode PMU usage. This might require hooking into - the scheduler so that we pause the PMU when the task that requested - statistics is scheduled out. - --- -This code is still under development, so please feel free to send patches, -questions, comments, etc to me. - -Deepak Saxena - diff --git a/Documentation/arm/XScale/tlb-lock.txt b/Documentation/arm/XScale/tlb-lock.txt deleted file mode 100644 index 1ba3e11d0..000000000 --- a/Documentation/arm/XScale/tlb-lock.txt +++ /dev/null @@ -1,64 +0,0 @@ - -Intel's XScale Microarchitecture provides support for locking of TLB -entries in both the instruction and data TLBs. This file provides -an overview of the API that has been developed to take advantage of this -feature from kernel space. Note that there is NO support for user space. - -In general, this feature should be used in conjunction with locking -data or instructions into the appropriate caches. See the file -cache-lock.txt in this directory. - -If you have any questions, comments, patches, etc, please contact me. - -Deepak Saxena - - -API DESCRIPTION - -I. Header file - - #include - -II. Locking an entry into the TLB - - SYNOPSIS - - xscale_tlb_lock(u8 tlb_type, u32 addr); - - /* - * TLB types - */ - #define ITLB 0x0 - #define DTLB 0x1 - - DESCRIPTION - - This function locks the virtual to physical mapping for virtual - address addr into the requested TLB. - - RETURN VALUE - - If the entry is properly locked into the TLB, a 0 is returned. - In case of an error, an appropriate error is returned. - - -ENOSPC No more entries left in the TLB - -EIO Unknown error - -III. Unlocking an entry from a TLB - - SYNOPSIS - - xscale_tlb_unlock(u8 tlb_type, u32 addr); - - DESCRIPTION - - This function unlocks the entry for virtual address addr from the - specified cache. - - RETURN VALUE - - If the TLB entry is properly unlocked, a 0 is returned. - In case of an error, an appropriate error is returned. - - -ENOENT No entry for given address in specified TLB - diff --git a/Documentation/as-iosched.txt b/Documentation/as-iosched.txt deleted file mode 100644 index 0dba00d5a..000000000 --- a/Documentation/as-iosched.txt +++ /dev/null @@ -1,165 +0,0 @@ -Anticipatory IO scheduler -------------------------- -Nick Piggin 13 Sep 2003 - -Attention! Database servers, especially those using "TCQ" disks should -investigate performance with the 'deadline' IO scheduler. Any system with high -disk performance requirements should do so, in fact. - -If you see unusual performance characteristics of your disk systems, or you -see big performance regressions versus the deadline scheduler, please email -me. Database users don't bother unless you're willing to test a lot of patches -from me ;) its a known issue. - -Also, users with hardware RAID controllers, doing striping, may find -highly variable performance results with using the as-iosched. The -as-iosched anticipatory implementation is based on the notion that a disk -device has only one physical seeking head. A striped RAID controller -actually has a head for each physical device in the logical RAID device. - -However, setting the antic_expire (see tunable parameters below) produces -very similar behavior to the deadline IO scheduler. - - -Selecting IO schedulers ------------------------ -To choose IO schedulers at boot time, use the argument 'elevator=deadline'. -'noop' and 'as' (the default) are also available. IO schedulers are assigned -globally at boot time only presently. - - -Anticipatory IO scheduler Policies ----------------------------------- -The as-iosched implementation implements several layers of policies -to determine when an IO request is dispatched to the disk controller. -Here are the policies outlined, in order of application. - -1. one-way Elevator algorithm. - -The elevator algorithm is similar to that used in deadline scheduler, with -the addition that it allows limited backward movement of the elevator -(i.e. seeks backwards). A seek backwards can occur when choosing between -two IO requests where one is behind the elevator's current position, and -the other is in front of the elevator's position. If the seek distance to -the request in back of the elevator is less than half the seek distance to -the request in front of the elevator, then the request in back can be chosen. -Backward seeks are also limited to a maximum of MAXBACK (1024*1024) sectors. -This favors forward movement of the elevator, while allowing opportunistic -"short" backward seeks. - -2. FIFO expiration times for reads and for writes. - -This is again very similar to the deadline IO scheduler. The expiration -times for requests on these lists is tunable using the parameters read_expire -and write_expire discussed below. When a read or a write expires in this way, -the IO scheduler will interrupt its current elevator sweep or read anticipation -to service the expired request. - -3. Read and write request batching - -A batch is a collection of read requests or a collection of write -requests. The as scheduler alternates dispatching read and write batches -to the driver. In the case a read batch, the scheduler submits read -requests to the driver as long as there are read requests to submit, and -the read batch time limit has not been exceeded (read_batch_expire). -The read batch time limit begins counting down only when there are -competing write requests pending. - -In the case of a write batch, the scheduler submits write requests to -the driver as long as there are write requests available, and the -write batch time limit has not been exceeded (write_batch_expire). -However, the length of write batches will be gradually shortened -when read batches frequently exceed their time limit. - -When changing between batch types, the scheduler waits for all requests -from the previous batch to complete before scheduling requests for the -next batch. - -The read and write fifo expiration times described in policy 2 above -are checked only when in scheduling IO of a batch for the corresponding -(read/write) type. So for example, the read FIFO timeout values are -tested only during read batches. Likewise, the write FIFO timeout -values are tested only during write batches. For this reason, -it is generally not recommended for the read batch time -to be longer than the write expiration time, nor for the write batch -time to exceed the read expiration time (see tunable parameters below). - -When the IO scheduler changes from a read to a write batch, -it begins the elevator from the request that is on the head of the -write expiration FIFO. Likewise, when changing from a write batch to -a read batch, scheduler begins the elevator from the first entry -on the read expiration FIFO. - -4. Read anticipation. - -Read anticipation occurs only when scheduling a read batch. -This implementation of read anticipation allows only one read request -to be dispatched to the disk controller at a time. In -contrast, many write requests may be dispatched to the disk controller -at a time during a write batch. It is this characteristic that can make -the anticipatory scheduler perform anomalously with controllers supporting -TCQ, or with hardware striped RAID devices. Setting the antic_expire -queue paramter (see below) to zero disables this behavior, and the anticipatory -scheduler behaves essentially like the deadline scheduler. - -When read anticipation is enabled (antic_expire is not zero), reads -are dispatched to the disk controller one at a time. -At the end of each read request, the IO scheduler examines its next -candidate read request from its sorted read list. If that next request -is from the same process as the request that just completed, -or if the next request in the queue is "very close" to the -just completed request, it is dispatched immediately. Otherwise, -statistics (average think time, average seek distance) on the process -that submitted the just completed request are examined. If it seems -likely that that process will submit another request soon, and that -request is likely to be near the just completed request, then the IO -scheduler will stop dispatching more read requests for up time (antic_expire) -milliseconds, hoping that process will submit a new request near the one -that just completed. If such a request is made, then it is dispatched -immediately. If the antic_expire wait time expires, then the IO scheduler -will dispatch the next read request from the sorted read queue. - -To decide whether an anticipatory wait is worthwhile, the scheduler -maintains statistics for each process that can be used to compute -mean "think time" (the time between read requests), and mean seek -distance for that process. One observation is that these statistics -are associated with each process, but those statistics are not associated -with a specific IO device. So for example, if a process is doing IO -on several file systems on separate devices, the statistics will be -a combination of IO behavior from all those devices. - - -Tuning the anticipatory IO scheduler ------------------------------------- -When using 'as', the anticipatory IO scheduler there are 5 parameters under -/sys/block/*/iosched/. All are units of milliseconds. - -The parameters are: -* read_expire - Controls how long until a read request becomes "expired". It also controls the - interval between which expired requests are served, so set to 50, a request - might take anywhere < 100ms to be serviced _if_ it is the next on the - expired list. Obviously request expiration strategies won't make the disk - go faster. The result basically equates to the timeslice a single reader - gets in the presence of other IO. 100*((seek time / read_expire) + 1) is - very roughly the % streaming read efficiency your disk should get with - multiple readers. - -* read_batch_expire - Controls how much time a batch of reads is given before pending writes are - served. A higher value is more efficient. This might be set below read_expire - if writes are to be given higher priority than reads, but reads are to be - as efficient as possible when there are no writes. Generally though, it - should be some multiple of read_expire. - -* write_expire, and -* write_batch_expire are equivalent to the above, for writes. - -* antic_expire - Controls the maximum amount of time we can anticipate a good read (one - with a short seek distance from the most recently completed request) before - giving up. Many other factors may cause anticipation to be stopped early, - or some processes will not be "anticipated" at all. Should be a bit higher - for big seek time devices though not a linear correspondence - most - processes have only a few ms thinktime. - diff --git a/Documentation/cdrom/mcd b/Documentation/cdrom/mcd deleted file mode 100644 index 39537f9f0..000000000 --- a/Documentation/cdrom/mcd +++ /dev/null @@ -1,4 +0,0 @@ -This driver does not support XA or MultiSession CDs (PhotoCDs). Use the -experimental driver mcdx.c for that. - -You can use mcd for one interface, and mcdx for another. diff --git a/Documentation/devices.txt b/Documentation/devices.txt index bb67cf250..a3efd3cc0 100644 --- a/Documentation/devices.txt +++ b/Documentation/devices.txt @@ -94,6 +94,7 @@ Your cooperation is appreciated. 9 = /dev/urandom Faster, less secure random number gen. 10 = /dev/aio Asyncronous I/O notification interface 11 = /dev/kmsg Writes to this come out as printk's + 12 = /dev/oldmem Access to kexec-ed crash dump 1 block RAM disk 0 = /dev/ram0 First RAM disk 1 = /dev/ram1 Second RAM disk diff --git a/Documentation/digiboard.txt b/Documentation/digiboard.txt deleted file mode 100644 index 9ccd612b0..000000000 --- a/Documentation/digiboard.txt +++ /dev/null @@ -1,272 +0,0 @@ -The Linux Digiboard Driver --------------------------- - -The Digiboard Driver for Linux supports the following boards: - - DigiBoard PC/Xi, PC/Xe, PC/Xeve(which is the newer, smaller Xe with - a 8K window which is also known as PC/Xe(8K) and has no memory/irq - switches) You can use up to 4 cards with this driver and it should work - on other architectures than intel also. - -A version of this driver has been taken by Digiboard to make a driver -software package which supports also PC/Xem cards and newer PCI cards -but it doesn't support the old PC/Xi cards and it isn't yet ported to -linux-2.1.x and may not be usable on other architectures than intel now. -It is available from ftp.digi.com/ftp.digiboard.com. You can write me if -you need an patch for this driver. - -Bernhard Kaindl (bkaindl@netway.at) 6. April 1997. - -Configuring the Driver ----------------------- - -The driver can be built direct into the kernel or as a module. -The pcxx driver can be configured using the command line feature while -loading the kernel with LILO or LOADLIN or, if built as a module, -with arguments to insmod and modprobe or with parameters in -/etc/modprobe.conf for modprobe and kerneld. - -After configuring the driver you need to create the device special files -as described in "Device file creation:" below and set the appropriate -permissions for your application. - -As Module ---------- - -modprobe pcxx io= \ - membase= \ - memsize= \ - numports= \ - altpin= \ - verbose= - -or, if several cards are installed - -modprobe pcxx io=,,... \ - membase=,,... \ - memsize=,,... \ - numports=,,... \ - altpin=,,... \ - verbose= - -where is the io address of the Nth card and is the -memory base address of the Nth card, etc. - -The parameters can be specified in any order. For example, the numports -parameter can precede the membase parameter, or vice versa. If several -cards are installed the ordering within the comma separated parameter -lists must be consistent, of course. - -io - I/O port address of that card. -membase - Memory start address of that card. -memsize - Memory size of that card, in kilobytes. If given, this value - is compared against the card to verify configuration and - hinder the driver from using a misconfigured card. If the parameter - does not match the board it is disabled with a memory size error. -numports - Number of ports on this card. This is the number of devices to - assign to this card or reserve if disabled. -altpin - 1: swap DCD and DSR for 8-pin RJ-45 with modems. - 0: don't swap DCD and DSR. - other values count as 1. -verbose - 1: give nice verbose output during initialisation of the driver, - possibly helpful during board configuration. - 0: normal terse output. - -Only the parameters which differ from the defaults need to be specified. -If the io= parameter is not given, the default config is used. This is - - io=0x200 membase=0xD0000 numports=16 altpin=0 - -Only applicable parameters need be specified. For example to configure -2 boards, first one at 0x200 with 8 ports, rest defaults, second one at -0x120, memory at 0xD80000, altpin enabled, rest defaults, you can do this -by using these parameters: - - modprobe pcxx io=0x200,0x120 numports=8,8 membase=,0xD80000 altpin=,1 - -To disable a temporary unusable board without changing the mapping of the -devices following that board, you can empty the io-value for that board: - - modprobe pcxx io=,0x120 numports=8,8 membase=,0xD80000 altpin=,1 - -The remaining board still uses ttyD8-ttyD15 and cud8-cud15. - -Example line for /etc/modprobe.conf for use with kerneld and as default -parameters for modprobe: - -options pcxx io=0x200 numports=8 - -For kmod to work you will likely need to add these two lines to your -/etc/modprobe.conf: - -alias char-major-22 pcxx -alias char-major-23 pcxx - - -Boot-time configuration when linked into the kernel ---------------------------------------------------- - -Per board to be configured, pass a digi= command-line parameter to the -kernel using lilo or loadlin. It consists of a string of comma separated -identifiers or integers. The 6 values in order are: - -Card status: Enable - use that board - Disable - don't actually use that board. - -Card type: PC/Xi - the old ones with 64/128/256/512K RAM. - PC/Xe - PC/Xe(old ones with 64k mem range). - PC/Xeve - PC/Xe(new ones with 8k mem range). - -Note: This is for documentation only, the type is detected from the board. - -Altpin setting: Enable - swap DCD and DSR for 8-pin RJ-45 with modems. - Disable - don't swap DCD and DSR. - -Number of ports: 1 ... 16 - Number of ports on this card. This is the - number of devices to assign to this card. - -I/O port address: eg. 200 - I/O Port address where the card is configured. - -Memory base addr: eg. 80000 - Memory address where the board's memory starts. - -This is an example for a line which you can insert into you lilo.conf: - - append="digi=Enable,PC/Xi,Disable,4,120,D0000" - -there is an alternate form, in which you must use decimal values only: - - append="digi=1,0,0,16,512,851968" - -If you don't give a digi= command line, the compiled-in defaults of -board 1: io=0x200, membase=0xd0000, altpin=off and numports=16 are used. - -If you have the resources (io&mem) free for use, configure your board to -these settings and you should be set up fine even if yours has not got 16 -ports. - - -Sources of Information ----------------------- - -Please contact digi directly digilnux@dgii.com. Forward any information of -general interest to me so that I can include it on the webpage. - -Web page: http://lameter.com/digi - -Christoph Lameter (christoph@lameter.com) Aug 14, 2000. - -Device file creation --------------------- - -Currently the Linux MAKEDEV command does not support generating the Digiboard -Devices. - -The /dev/cud devices behave like the /dev/cua devices -and the ttyD devices are like the /dev/ttyS devices. - -Use the following script to generate the devices: - ------------------- mkdigidev begin -#!/bin/sh -# -# Script to create Digiboard Devices -# Christoph Lameter, April 16, 1996 -# -# Usage: -# mkdigidev [] -# - -DIGI_MAJOR=23 -DIGICU_MAJOR=22 - -BOARDS=$1 - -if [ "$BOARDS" = "" ]; then -BOARDS=1 -fi - -boardnum=0 -while [ $boardnum -lt $BOARDS ]; -do - for c in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; - do - name=`expr $boardnum \* 16 + $c` - mknod /dev/cud$name c $DIGICU_MAJOR $name - mknod /dev/ttyD$name c $DIGI_MAJOR $name - done - boardnum=`expr $boardnum + 1` -done ------------------- mkdigidev end - -or apply the following patch to /dev/MAKEDEV and do a -sh /dev/MAKEDEV digi - ------ MAKEDEV Patch ---- /dev/MAKEDEV Sun Aug 13 15:48:23 1995 -+++ MAKEDEV Tue Apr 16 17:53:27 1996 -@@ -120,7 +120,7 @@ - while [ $# -ne 0 ] - do - case "$1" in -- mem|tty|ttyp|cua|cub) ;; -+ mem|tty|ttyp|cua|cub|cud) ;; - hd) echo hda hdb hdc hdd ;; - xd) echo xda xdb ;; - fd) echo fd0 fd1 ;; -@@ -140,6 +140,7 @@ - dcf) echo dcf ;; - pcmcia) ;; # taken care of by its own driver - ttyC) echo cyclades ;; -+ ttyD) echo digi ;; - *) echo "$0: don't know what \"$1\" is" >&2 ;; - esac - shift -@@ -208,6 +209,15 @@ - do - makedev ttyC$i c $major1 `expr 32 + $i` $tty - makedev cub$i c $major2 `expr 32 + $i` $dialout -+ done -+ ;; -+ digi) -+ major1=`Major ttyD` || continue -+ major2=`Major cud` || continue -+ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -+ do -+ makedev ttyD$i c $major1 `expr 32 + $i` $tty -+ makedev cud$i c $major2 `expr 32 + $i` $dialout - done - ;; - par[0-2]) ------ End Makedev patch - ------------------------------------------------------------------------------ - -Changes v1.5.5: - -The ability to use the kernel's command line to pass in the configuration for -boards. Using LILO's APPEND command, a string of comma separated identifiers -or integers can be used. The 6 values in order are: - - Enable/Disable this card, - Type of card: PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3) - Enable/Disable alternate pin arrangement, - Number of ports on this card, - I/O Port where card is configured (in HEX if using string identifiers), - Base of memory window (in HEX if using string identifiers), - -Samples: - append="digi=E,PC/Xi,D,16,200,D0000" - append="digi=1,0,0,16,512,(whatever D0000 is in base 10 :) - -Drivers' minor device numbers are conserved. This means that instead of -each board getting a block of 16 minors pre-assigned, it gets however -many it should, with the next card following directly behind it. A -system with 4 2-port PC/Xi boards will use minor numbers 0-7. -This conserves some memory, and removes a few hard coded constants. - -NOTE!! NOTE!! NOTE!! -The definition of PC/Xem as a valid board type is the BEGINNING of support -for this device. The driver does not currently recognise the board, nor -does it want to initialize it. At least not the EISA version. - -Mike McLagan 5, April 1996. diff --git a/Documentation/dvb/firmware.txt b/Documentation/dvb/firmware.txt deleted file mode 100644 index 37d880794..000000000 --- a/Documentation/dvb/firmware.txt +++ /dev/null @@ -1,120 +0,0 @@ -Some DVB cards and many newer frontends require proprietary, -binary-only firmware. - -The DVB drivers will be converted to use the request_firmware() -hotplug interface (see Documentation/firmware_class/). -(CONFIG_FW_LOADER) - -The firmware can be loaded automatically via the hotplug manager -or manually with the steps described below. - -Currently the drivers still use various different methods -to load their firmwares, so here's just a short list of the -current state: - -- dvb-ttpci: driver uses firmware hotplug interface -- ttusb-budget: firmware is compiled in (dvb-ttusb-dspbootcode.h) -- sp887x: firmware is compiled in (sp887x_firm.h) -- alps_tdlb7: firmware is loaded from path specified by - "mcfile" module parameter; the binary must be - extracted from the Windows driver (Sc_main.mc). -- tda1004x: firmware is loaded from path specified in - DVB_TDA1004X_FIRMWARE_FILE kernel config - variable (default /usr/lib/hotplug/firmware/tda1004x.bin); the - firmware binary must be extracted from the windows - driver -- ttusb-dec: see "ttusb-dec.txt" for details - -1) Automatic firmware loading - -You need to install recent hotplug scripts if your distribution did not do it -for you already, especially the /etc/hotplug/firmware.agent. -http://linux-hotplug.sourceforge.net/ (Call /sbin/hotplug without arguments -to find out if the firmware agent is installed.) - -The firmware.agent script expects firmware binaries in -/usr/lib/hotplug/firmware/. To avoid naming and versioning -conflicts we propose the following naming scheme: - - /usr/lib/hotplug/firmware/dvb-{driver}-{ver}.fw for MPEG decoders etc. - /usr/lib/hotplug/firmware/dvb-fe-{driver}-{ver}.fw for frontends - - {driver} name is the basename of the driver kernel module (e.g. dvb-ttpci) - {ver} is a version number/name that should change only when the - driver/firmware internal API changes (so users are free to install the - latest firmware compatible with the driver). - -2) Manually loading the firmware into a driver - (currently only the dvb-ttpci / av7110 driver supports this) - -Step a) Mount sysfs-filesystem. - -Sysfs provides a means to export kernel data structures, their attributes, -and the linkages between them to userspace. - -For detailed informations have a look at Documentation/filesystems/sysfs.txt -All you need to know at the moment is that firmware loading only works through -sysfs. - -> mkdir /sys -> mount -t sysfs sysfs /sys - -Step b) Exploring the firmware loading facilities - -Firmware_class support is located in -/sys/class/firmware - -> dir /sys/class/firmware - -The "timeout" values specifies the amount of time that is waited before the -firmware upload process is cancelled. The default values is 10 seconds. If -you use a hotplug script for the firmware upload, this is sufficient. If -you want to upload the firmware by hand, however, this might be too fast. - -> echo "180" > /sys/class/firmware/timeout - -Step c) Getting a usable firmware file for the dvb-ttpci driver/av7110 card. - -You can download the firmware files from -http://linuxtv.org/download/dvb/ - -Please note that in case of the dvb-ttpci driver this is *not* the "Root" -file you probably know from the 2.4 DVB releases driver. - -The ttpci-firmware utility from linuxtv.org CVS can be used to -convert Dpram and Root files into a usable firmware image. -See dvb-kerrnel/scripts/ in http://linuxtv.org/cvs/. - -> wget http://www.linuxtv.org/download/dvb/dvb-ttpci-01.fw -gets you the version 01 of the firmware fot the ttpci driver. - -Step d) Loading the dvb-ttpci driver and loading the firmware - -"modprobe" will take care that every needed module will be loaded -automatically (except the frontend driver) - -> modprobe dvb-ttpci - -The "modprobe" process will hang until -a) you upload the firmware or -b) the timeout occurs. - -Change to another terminal and have a look at - -> dir /sys/class/firmware/ - -total 0 -drwxr-xr-x 2 root root 0 Jul 29 11:00 0000:03:05.0 --rw-r--r-- 1 root root 0 Jul 29 10:41 timeout - -"0000:03:05.0" is the id for my dvb-c card. It depends on the pci slot, -so it changes if you plug the card to different slots. - -You can upload the firmware like that: - -> export DEVDIR=/sys/class/firmware/0000\:03\:05.0 -> echo 1 > $DEVDIR/loading -> cat dvb-ttpci-01.fw > $DEVDIR/data -> echo 0 > $DEVDIR/loading - -That's it. The driver should be up and running now. diff --git a/Documentation/filesystems/umsdos.txt b/Documentation/filesystems/umsdos.txt deleted file mode 100644 index c253708f3..000000000 --- a/Documentation/filesystems/umsdos.txt +++ /dev/null @@ -1,100 +0,0 @@ -Firstly, let me say that UMSDOS is going through some major code changes, -and has some KNOWN BUGS (and quite a few unknown :-). Please read -fs/umsdos/README-WIP.txt for more information on current status. Thanks. - ----------------------------------------------------------------------------- -Very short explanation for the impatient! - -Umsdos is a file system driver that run on top the MSDOS fs driver. -It is written by Jacques Gelinas (jacques@solucorp.qc.ca) -and is currently maintained by Matija Nalis (mnalis@jagor.srce.hr) - -Umsdos is not a file system per se, but a twist to make a boring -one into a useful one. - -It gives you: - - long file names - Permissions and owners - Links - Special files (devices, pipes...) - All that is needed to be a linux root fs. - -There is plenty of documentation on it in the source. A formatted document -made from those comments is available from -sunsite.unc.edu:/pub/Linux/system/Filesystems/umsdos. - -You mount a DOS partition like this: - -mount -t umsdos /dev/hda3 /mnt - ^ ----------| - -All options are passed to the msdos drivers. Option like uid,gid etc are -given to msdos. - -The default behavior of Umsdos is to do the same thing as the msdos driver -mostly passing commands to it without much processing. Again, this is -the default. After doing the mount on a DOS partition, nothing special -happens. This is why all mount options are passed to the msdos fs driver. - -Umsdos uses a special DOS file --linux-.--- to store the information -which can't be handled by the normal MS-DOS filesystem. This is the trick. - ---linux-.--- is optional. There is one per directory. - -**** If --linux-.--- is missing, then Umsdos process the directory the - same way the msdos driver does. Short file names, no goodies, default - owner and permissions. So each directory may have or not this - --linux-.--- - -Now, how to get those --linux-.---. - -\begin joke_section - - Well send me a directory content - and I will send you one customised for you. - $5 per directory. Add any applicable taxes. -\end joke_section - -A utility umssync creates those. The kernel maintains them. It is available -from the same directory above (sunsite) in the file umsdos_progs-0.7.tar.gz. -A compiled version is available in umsdos_progs-0.7.bin.tar.gz. - -So in our example, after mounting mnt, we do - - umssync . - -This will promote this directory (a recursive option is available) to full -umsdos capabilities (long name, etc.). However, an "ls -l" before and after -won't show much difference. The files which were there are still there, but -now you can do all this: - - chmod 644 * - chown you.your_group * - ls >THIS_IS.A.VERY.LONG.NAME - ln -s toto tata - ls -l - -Once a directory is promoted, all subdirectories created will inherit that -promotion. - -What happens if you boot DOS and create files in those promoted directories ? -Umsdos won't notice new files, but will signal removed files (it won't crash). -Using umssync in /etc/rc will make sure the DOS directory is in sync with -the --linux-.---. - -It is a good idea to put the following command in your RC file just -after the "mount -a": - - mount -a - /sbin/umssync -i+ -c+ -r99 /umsdos_mount_point - - (You put one for each umsdos mount point in the fstab) - -This will ensure nice operation. A umsdos.fsck is in the making, -so you will be allowed to manage umsdos partitions in the same way -other filesystems are, using the generic fsck front end. - -Hope this helps! - diff --git a/Documentation/i2c/i2c-old-porting b/Documentation/i2c/i2c-old-porting deleted file mode 100644 index 158dfe550..000000000 --- a/Documentation/i2c/i2c-old-porting +++ /dev/null @@ -1,626 +0,0 @@ -I2C Conversion Guide for I2C-old to the current I2C API -July 2002 -For Linux Kernel v2.5.x -Frank Davis -------------------------------------------------------- - -There exists several kernel drivers that are using an old version of the I2C -API. These drivers need to be converted to the current (kernel 2.5.x) version. -The following document provides a guideline to make the appropriate changes to -the affected drivers. There maybe slight modifications to this guide that are -specific to the driver you are working on. If you see {driver_name}, replace -that with the respective name of the driver, such as saa7110.c , {driver_name} -= saa7110. - -------------------------------------------------------- - -Step 1: Include the right header file - -Perform the following change within the driver - -#include --> #include - -Step 2: Add and set the i2c modes - -Add the following code near the top of the driver - -static unsigned short normal_i2c[] = {34>>1, I2C_CLIENT_END }; -static unsigned short normal_i2c_range[] = { I2C_CLIENT_END }; -static unsigned short probe[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; -static unsigned short probe_range[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; -static unsigned short ignore[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; -static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; -static unsigned short force[2] = { I2C_CLIENT_END , I2C_CLIENT_END }; - -static struct i2c_client_address_data addr_data = { - normal_i2c , normal_i2c_range, - probe , probe_range, - ignore , ignore_range, - force -}; - -static struct i2c_client client_template; - -Step 3: Modify the driver info struct - -Within the struct for the driver , such as struct {driver_name} , make the -following change , -struct i2c_bus *bus --> struct i2c_client *client - -Make changes where this change affects references within the file. - -Add a semaphore to the driver struct (as above) - -struct semaphore lock - -Step 5: Remove specific read and write functions - -Remove the driver specific write and read functions, usually in the form: -{driver_name}_write , {driver_name}_read , {driver_name}_write_block , etc. - -Step 6: Update the write and read functions for the current I2C API - -Replace all references of {driver_name}_write with i2c_smbus_write_byte_data -Replace all references of {driver_name}_read with i2c_smbus_read_byte_data or -i2c_smbus_read_byte , depending on args passed in. - -** Ensure that these functions pass in the i2c_client *client , NOT the -decoder/encoder that was passed in the driver specific write and read -functions. - -Step 7: Modify the driver's attach function - -Change the driver attach function prototype : -{driver_name}_attach(struct i2c_device *device) --> {driver_name}_attach(struct -i2c_adapter *adap, int addr , unsigned short flags, int kind) - -Create a i2c_client client... -Add the following (where "decoder" is a reference to a struct for the driver -info: - -struct i2c_client *client; -client = kmalloc(sizeof(*client), GFP_KERNEL); -if(client == NULL) - return -ENOMEM; -client_template.adapter = adap; -client_template.addr = addr; -memcpy(client, &client_template, sizeof(*client)); -strcpy(client->name , "{driver_name}"); -decoder->client = client; -client->data = decoder; -decoder->addr = addr; - -Towards the end of the function, add: - -init_MUTEX(&decoder->lock); -i2c_attach_client(client); - - -Step 8: Modify the driver's detach function - -Change the driver detach function prototype : -{driver_name}_detach(struct i2c_device *device) --> {driver_name}_detach(struct -i2c_client *client) - -In the beginning of the detach function, add: -i2c_detach_client(client); - -Towards the end of the detach function, add: -kfree(client->data); -kfree(client); - -Step 9: Modify the driver's command function - -Change the driver command function prototype : - -Step 10: Add the probe function after the driver's attach function. - -Add the following code: - -static int {driver_name}_probe(struct i2c_adapter *adap) -{ - return i2c_probe(adap, &addr_data, {driver_name}_attach); - -} - -Step 11: Modify the driver's i2c_driver - -Find the i2c_driver , such as -static struct i2c_driver i2c_driver_saa7110 -It is usually located towards the end of the driver -Replace the values from I2C_DRIVERID_{something} to {driver_name}_attach, and -add the following -I2C_DRIVERID_{driver_name} , // verify by looking in include/linux/i2c-id.h -I2C_DF_NOTIFY, -{driver_name}_probe, -.... - -Step 12: Adding the i2c_client - -Add the i2c_client to the driver. Add the following code: - -static struct i2c_client client_template = { - "{driver_name}_client", - -1, - 0, - 0, - NULL, - {i2c_driver reference} -}; - -Step 13: Registering and Unregistering - -Replace i2c_register_driver with i2c_add_driver -Replace i2c_unregister_driver with i2c_del_driver - -------------------------------------------------------- - -Example: - -The following patch provides the i2c coversion patch for the saa7110 driver -based on the above guide (for clarity). - - ---- drivers/media/video/saa7110.c.old Fri Jun 28 10:22:52 2002 -+++ drivers/media/video/saa7110.c Thu Jul 4 16:51:08 2002 -@@ -26,7 +26,7 @@ - #include - #include - --#include -+#include - #include - #include "linux/video_decoder.h" - -@@ -37,13 +37,31 @@ - - #define I2C_SAA7110 0x9C /* or 0x9E */ - -+#define IF_NAME "saa7110" - #define I2C_DELAY 10 /* 10 us or 100khz */ - -+static unsigned short normal_i2c[] = {34>>1, I2C_CLIENT_END }; -+static unsigned short normal_i2c_range[] = { I2C_CLIENT_END }; -+static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; -+static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; -+static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; -+static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; -+static unsigned short force[2] = { I2C_CLIENT_END, I2C_CLIENT_END }; -+ -+static struct i2c_client_address_data addr_data = { -+ normal_i2c, normal_i2c_range, -+ probe, probe_range, -+ ignore, ignore_range, -+ force -+}; -+ -+static struct i2c_client client_template; -+ - struct saa7110 { -- struct i2c_bus *bus; -+ struct i2c_client *client; - int addr; - unsigned char reg[36]; -- -+ struct semaphore lock; - int norm; - int input; - int enable; -@@ -54,67 +72,10 @@ - }; - - /* ----------------------------------------------------------------------- */ --/* I2C support functions */ --/* ----------------------------------------------------------------------- */ --static --int saa7110_write(struct saa7110 *decoder, unsigned char subaddr, unsigned char data) --{ -- int ack; -- -- LOCK_I2C_BUS(decoder->bus); -- i2c_start(decoder->bus); -- i2c_sendbyte(decoder->bus, decoder->addr, I2C_DELAY); -- i2c_sendbyte(decoder->bus, subaddr, I2C_DELAY); -- ack = i2c_sendbyte(decoder->bus, data, I2C_DELAY); -- i2c_stop(decoder->bus); -- decoder->reg[subaddr] = data; -- UNLOCK_I2C_BUS(decoder->bus); -- return ack; --} -- --static --int saa7110_write_block(struct saa7110* decoder, unsigned const char *data, unsigned int len) --{ -- unsigned subaddr = *data; -- -- LOCK_I2C_BUS(decoder->bus); -- i2c_start(decoder->bus); -- i2c_sendbyte(decoder->bus,decoder->addr,I2C_DELAY); -- while (len-- > 0) { -- if (i2c_sendbyte(decoder->bus,*data,0)) { -- i2c_stop(decoder->bus); -- UNLOCK_I2C_BUS(decoder->bus); -- return -EAGAIN; -- } -- decoder->reg[subaddr++] = *data++; -- } -- i2c_stop(decoder->bus); -- UNLOCK_I2C_BUS(decoder->bus); -- -- return 0; --} -- --static --int saa7110_read(struct saa7110* decoder) --{ -- int data; -- -- LOCK_I2C_BUS(decoder->bus); -- i2c_start(decoder->bus); -- i2c_sendbyte(decoder->bus, decoder->addr, I2C_DELAY); -- i2c_start(decoder->bus); -- i2c_sendbyte(decoder->bus, decoder->addr | 1, I2C_DELAY); -- data = i2c_readbyte(decoder->bus, 1); -- i2c_stop(decoder->bus); -- UNLOCK_I2C_BUS(decoder->bus); -- return data; --} -- --/* ----------------------------------------------------------------------- */ - /* SAA7110 functions */ - /* ----------------------------------------------------------------------- */ - static --int saa7110_selmux(struct i2c_device *device, int chan) -+int saa7110_selmux(struct i2c_client *client, int chan) - { - static const unsigned char modes[9][8] = { - /* mode 0 */ { 0x00, 0xD9, 0x17, 0x40, 0x03, 0x44, 0x75, 0x16 }, -@@ -126,61 +87,59 @@ - /* mode 6 */ { 0x80, 0x59, 0x17, 0x42, 0xA3, 0x44, 0x75, 0x12 }, - /* mode 7 */ { 0x80, 0x9A, 0x17, 0xB1, 0x13, 0x60, 0xB5, 0x14 }, - /* mode 8 */ { 0x80, 0x3C, 0x27, 0xC1, 0x23, 0x44, 0x75, 0x21 } }; -- struct saa7110* decoder = device->data; - const unsigned char* ptr = modes[chan]; - -- saa7110_write(decoder,0x06,ptr[0]); /* Luminance control */ -- saa7110_write(decoder,0x20,ptr[1]); /* Analog Control #1 */ -- saa7110_write(decoder,0x21,ptr[2]); /* Analog Control #2 */ -- saa7110_write(decoder,0x22,ptr[3]); /* Mixer Control #1 */ -- saa7110_write(decoder,0x2C,ptr[4]); /* Mixer Control #2 */ -- saa7110_write(decoder,0x30,ptr[5]); /* ADCs gain control */ -- saa7110_write(decoder,0x31,ptr[6]); /* Mixer Control #3 */ -- saa7110_write(decoder,0x21,ptr[7]); /* Analog Control #2 */ -+ i2c_smbus_write_byte_data(client,0x06,ptr[0]); /* Luminance control */ -+ i2c_smbus_write_byte_data(client,0x20,ptr[1]); /* Analog Control #1 */ -+ i2c_smbus_write_byte_data(client,0x21,ptr[2]); /* Analog Control #2 */ -+ i2c_smbus_write_byte_data(client,0x22,ptr[3]); /* Mixer Control #1 */ -+ i2c_smbus_write_byte_data(client,0x2C,ptr[4]); /* Mixer Control #2 */ -+ i2c_smbus_write_byte_data(client,0x30,ptr[5]); /* ADCs gain control */ -+ i2c_smbus_write_byte_data(client,0x31,ptr[6]); /* Mixer Control #3 */ -+ i2c_smbus_write_byte_data(client,0x21,ptr[7]); /* Analog Control #2 */ - - return 0; - } - - static --int determine_norm(struct i2c_device* dev) -+int determine_norm(struct i2c_client* client) - { -- struct saa7110* decoder = dev->data; - int status; - - /* mode changed, start automatic detection */ -- status = saa7110_read(decoder); -+ status = i2c_smbus_read_byte(client); - if ((status & 3) == 0) { -- saa7110_write(decoder,0x06,0x80); -+ i2c_smbus_write_byte_data(client,0x06,0x80); - if (status & 0x20) { -- DEBUG(printk(KERN_INFO "%s: norm=bw60\n",dev->name)); -- saa7110_write(decoder,0x2E,0x81); -+ DEBUG(printk(KERN_INFO "%s: norm=bw60\n",adp->name)); -+ i2c_smbus_write_byte_data(client,0x2E,0x81); - return VIDEO_MODE_NTSC; - } -- DEBUG(printk(KERN_INFO "%s: norm=bw50\n",dev->name)); -- saa7110_write(decoder,0x2E,0x9A); -+ DEBUG(printk(KERN_INFO "%s: norm=bw50\n",adp->name)); -+ i2c_smbus_write_byte_data(client,0x2E,0x9A); - return VIDEO_MODE_PAL; - } - -- saa7110_write(decoder,0x06,0x00); -+ i2c_smbus_write_byte_data(client,0x06,0x00); - if (status & 0x20) { /* 60Hz */ -- DEBUG(printk(KERN_INFO "%s: norm=ntsc\n",dev->name)); -- saa7110_write(decoder,0x0D,0x06); -- saa7110_write(decoder,0x11,0x2C); -- saa7110_write(decoder,0x2E,0x81); -+ DEBUG(printk(KERN_INFO "%s: norm=ntsc\n",adp->name)); -+ i2c_smbus_write_byte_data(client,0x0D,0x06); -+ i2c_smbus_write_byte_data(client,0x11,0x2C); -+ i2c_smbus_write_byte_data(client,0x2E,0x81); - return VIDEO_MODE_NTSC; - } - - /* 50Hz -> PAL/SECAM */ -- saa7110_write(decoder,0x0D,0x06); -- saa7110_write(decoder,0x11,0x59); -- saa7110_write(decoder,0x2E,0x9A); -+ i2c_smbus_write_byte_data(client,0x0D,0x06); -+ i2c_smbus_write_byte_data(client,0x11,0x59); -+ i2c_smbus_write_byte_data(client,0x2E,0x9A); - - mdelay(150); /* pause 150 ms */ - -- status = saa7110_read(decoder); -+ status = i2c_smbus_read_byte(client); - if ((status & 0x03) == 0x01) { - DEBUG(printk(KERN_INFO "%s: norm=secam\n",dev->name)); -- saa7110_write(decoder,0x0D,0x07); -+ i2c_smbus_write_byte_data(client,0x0D,0x07); - return VIDEO_MODE_SECAM; - } - DEBUG(printk(KERN_INFO "%s: norm=pal\n",dev->name)); -@@ -188,7 +147,7 @@ - } - - static --int saa7110_attach(struct i2c_device *device) -+int saa7110_attach(struct i2c_adapter *adap, int addr, unsigned short flags, int kind) - { - static const unsigned char initseq[] = { - 0, 0x4C, 0x3C, 0x0D, 0xEF, 0xBD, 0xF0, 0x00, 0x00, -@@ -198,20 +157,28 @@ - 0xD9, 0x17, 0x40, 0x41, 0x80, 0x41, 0x80, 0x4F, - 0xFE, 0x01, 0xCF, 0x0F, 0x03, 0x01, 0x81, 0x03, - 0x40, 0x75, 0x01, 0x8C, 0x03}; -- struct saa7110* decoder; -+ struct saa7110 *decoder; -+ struct i2c_client *client; - int rv; -- -- device->data = decoder = kmalloc(sizeof(struct saa7110), GFP_KERNEL); -- if (device->data == 0) -+ client=kmalloc(sizeof(*client), GFP_KERNEL); -+ if(client == NULL) - return -ENOMEM; -- -+ client_template.adapter = adap; -+ client_template.addr = addr; -+ memcpy(client, &client_template, sizeof(*client)); -+ -+ decoder = kmalloc(sizeof(*decoder), GFP_KERNEL); -+ if (decoder == NULL) { -+ kfree(client); -+ return -ENOMEM; -+ } - - /* clear our private data */ -- memset(decoder, 0, sizeof(struct saa7110)); -- strcpy(device->name, "saa7110"); -- decoder->bus = device->bus; -- decoder->addr = device->addr; -+ memset(decoder, 0, sizeof(*decoder)); -+ strcpy(client->name, IF_NAME); -+ decoder->client = client; -+ client->data = decoder; -+ decoder->addr = addr; - decoder->norm = VIDEO_MODE_PAL; - decoder->input = 0; - decoder->enable = 1; -@@ -220,40 +187,52 @@ - decoder->hue = 32768; - decoder->sat = 32768; - -- rv = saa7110_write_block(decoder, initseq, sizeof(initseq)); -+ rv = i2c_master_send(client, initseq, sizeof(initseq)); - if (rv < 0) -- printk(KERN_ERR "%s_attach: init status %d\n", device->name, rv); -+ printk(KERN_ERR "%s_attach: init status %d\n", client->name, rv); - else { -- saa7110_write(decoder,0x21,0x16); -- saa7110_write(decoder,0x0D,0x04); -- DEBUG(printk(KERN_INFO "%s_attach: chip version %x\n", device->name, saa7110_read(decoder))); -- saa7110_write(decoder,0x0D,0x06); -+ i2c_smbus_write_byte_data(client,0x21,0x16); -+ i2c_smbus_write_byte_data(client,0x0D,0x04); -+ DEBUG(printk(KERN_INFO "%s_attach: chip version %x\n", client->name, i2c_smbus_read_byte(client))); -+ i2c_smbus_write_byte_data(client,0x0D,0x06); - } - -+ init_MUTEX(&decoder->lock); -+ i2c_attach_client(client); - /* setup and implicit mode 0 select has been performed */ - return 0; - } - -+static -+int saa7110_probe(struct i2c_adapter *adap) -+{ -+ return i2c_probe(adap, &addr_data, saa7110_attach); -+} -+ - static --int saa7110_detach(struct i2c_device *device) -+int saa7110_detach(struct i2c_client *client) - { -- struct saa7110* decoder = device->data; -+ struct saa7110* decoder = client->data; - -- DEBUG(printk(KERN_INFO "%s_detach\n",device->name)); -+ i2c_detach_client(client); -+ -+ DEBUG(printk(KERN_INFO "%s_detach\n",client->name)); - - /* stop further output */ -- saa7110_write(decoder,0x0E,0x00); -+ i2c_smbus_write_byte_data(client,0x0E,0x00); - -- kfree(device->data); -+ kfree(decoder); -+ kfree(client); - - return 0; - } - - static --int saa7110_command(struct i2c_device *device, unsigned int cmd, void *arg) -+int saa7110_command(struct i2c_client *client, unsigned int cmd, void *arg) - { -- struct saa7110* decoder = device->data; -+ struct saa7110* decoder = client->data; - int v; - - switch (cmd) { -@@ -272,11 +251,11 @@ - - case DECODER_GET_STATUS: - { -- struct saa7110* decoder = device->data; -+ struct saa7110* decoder = client->data; - int status; - int res = 0; - -- status = i2c_read(device->bus,device->addr|1); -+ status = i2c_smbus_read_byte(client); - if (status & 0x40) - res |= DECODER_STATUS_GOOD; - if (status & 0x03) -@@ -301,26 +280,26 @@ - v = *(int*)arg; - if (decoder->norm != v) { - decoder->norm = v; -- saa7110_write(decoder, 0x06, 0x00); -+ i2c_smbus_write_byte_data(client, 0x06, 0x00); - switch (v) { - case VIDEO_MODE_NTSC: -- saa7110_write(decoder, 0x0D, 0x06); -- saa7110_write(decoder, 0x11, 0x2C); -- saa7110_write(decoder, 0x30, 0x81); -- saa7110_write(decoder, 0x2A, 0xDF); -+ i2c_smbus_write_byte_data(client, 0x0D, 0x06); -+ i2c_smbus_write_byte_data(client, 0x11, 0x2C); -+ i2c_smbus_write_byte_data(client, 0x30, 0x81); -+ i2c_smbus_write_byte_data(client, 0x2A, 0xDF); - break; - case VIDEO_MODE_PAL: -- saa7110_write(decoder, 0x0D, 0x06); -- saa7110_write(decoder, 0x11, 0x59); -- saa7110_write(decoder, 0x2E, 0x9A); -+ i2c_smbus_write_byte_data(client, 0x0D, 0x06); -+ i2c_smbus_write_byte_data(client, 0x11, 0x59); -+ i2c_smbus_write_byte_data(client, 0x2E, 0x9A); - break; - case VIDEO_MODE_SECAM: -- saa7110_write(decoder, 0x0D, 0x07); -- saa7110_write(decoder, 0x11, 0x59); -- saa7110_write(decoder, 0x2E, 0x9A); -+ i2c_smbus_write_byte_data(client, 0x0D, 0x07); -+ i2c_smbus_write_byte_data(client, 0x11, 0x59); -+ i2c_smbus_write_byte_data(client, 0x2E, 0x9A); - break; - case VIDEO_MODE_AUTO: -- *(int*)arg = determine_norm(device); -+ *(int*)arg = determine_norm(client); - break; - default: - return -EPERM; -@@ -334,7 +313,7 @@ - return -EINVAL; - if (decoder->input != v) { - decoder->input = v; -- saa7110_selmux(device, v); -+ saa7110_selmux(client, v); - } - break; - -@@ -349,7 +328,7 @@ - v = *(int*)arg; - if (decoder->enable != v) { - decoder->enable = v; -- saa7110_write(decoder,0x0E, v ? 0x18 : 0x00); -+ i2c_smbus_write_byte_data(client,0x0E, v ? 0x18 : 0x00); - } - break; - -@@ -360,22 +339,22 @@ - if (decoder->bright != pic->brightness) { - /* We want 0 to 255 we get 0-65535 */ - decoder->bright = pic->brightness; -- saa7110_write(decoder, 0x19, decoder->bright >> 8); -+ i2c_smbus_write_byte_data(client, 0x19, decoder->bright >> 8); - } - if (decoder->contrast != pic->contrast) { - /* We want 0 to 127 we get 0-65535 */ - decoder->contrast = pic->contrast; -- saa7110_write(decoder, 0x13, decoder->contrast >> 9); -+ i2c_smbus_write_byte_data(client, 0x13, decoder->contrast >> 9); - } - if (decoder->sat != pic->colour) { - /* We want 0 to 127 we get 0-65535 */ - decoder->sat = pic->colour; -- saa7110_write(decoder, 0x12, decoder->sat >> 9); -+ i2c_smbus_write_byte_data(client, 0x12, decoder->sat >> 9); - } - if (decoder->hue != pic->hue) { - /* We want -128 to 127 we get 0-65535 */ - decoder->hue = pic->hue; -- saa7110_write(decoder, 0x07, (decoder->hue>>8)-128); -+ i2c_smbus_write_byte_data(client, 0x07, (decoder->hue>>8)-128); - } - } - break; -@@ -383,7 +362,7 @@ - case DECODER_DUMP: - for (v=0; v<34; v+=16) { - int j; -- DEBUG(printk(KERN_INFO "%s: %03x\n",device->name,v)); -+ DEBUG(printk(KERN_INFO "%s: %03x\n",client->name,v)); - for (j=0; j<16; j++) { - DEBUG(printk(KERN_INFO " %02x",decoder->reg[v+j])); - } -@@ -402,24 +381,30 @@ - - static struct i2c_driver i2c_driver_saa7110 = - { -- "saa7110", /* name */ -- -- I2C_DRIVERID_VIDEODECODER, /* in i2c.h */ -- I2C_SAA7110, I2C_SAA7110+1, /* Addr range */ -- -- saa7110_attach, -- saa7110_detach, -- saa7110_command -+ .owner = THIS_MODULE, -+ .name = IF_NAME, -+ .id = I2C_DRIVERID_SAA7110, -+ .flags = I2C_DF_NOTIFY, -+ .attach_adapter = saa7110_probe, -+ .detach_adapter = saa7110_detach, -+ .command = saa7110_command, - }; -+static struct i2c_client client_template = { -+ "saa7110_client", -+ -1, -+ 0, -+ 0, -+ NULL, -+ &i2c_driver_saa7110 -+}; - - static int saa7110_init(void) - { -- return i2c_register_driver(&i2c_driver_saa7110); -+ return i2c_add_driver(&i2c_driver_saa7110); - } - - static void saa7110_exit(void) - { -- i2c_unregister_driver(&i2c_driver_saa7110); -+ i2c_del_driver(&i2c_driver_saa7110); - } - - - - diff --git a/Documentation/i2c/i2c-parport b/Documentation/i2c/i2c-parport deleted file mode 100644 index d359461ce..000000000 --- a/Documentation/i2c/i2c-parport +++ /dev/null @@ -1,156 +0,0 @@ -================== -i2c-parport driver -================== - -2004-07-06, Jean Delvare - -This is a unified driver for several i2c-over-parallel-port adapters, -such as the ones made by Philips, Velleman or ELV. This driver is -meant as a replacement for the older, individual drivers: - * i2c-philips-par - * i2c-elv - * i2c-velleman - * video/i2c-parport (NOT the same as this one, dedicated to home brew - teletext adapters) - -It currently supports the following devices: - * Philips adapter - * home brew teletext adapter - * Velleman K8000 adapter - * ELV adapter - * Analog Devices evaluation boards (ADM1025, ADM1030, ADM1031, ADM1032) - -These devices use different pinout configurations, so you have to tell -the driver what you have, using the type module parameter. There is no -way to autodetect the devices. Support for different pinout configurations -can be easily added when needed. - - -Building your own adapter -------------------------- - -If you want to build you own i2c-over-parallel-port adapter, here is -a sample electronics schema (credits go to Sylvain Munaut): - -Device PC -Side ___________________Vdd (+) Side - | | | - --- --- --- - | | | | | | - |R| |R| |R| - | | | | | | - --- --- --- - | | | - | | /| | -SCL ----------x--------o |-----------x------------------- pin 2 - | \| | | - | | | - | |\ | | -SDA ----------x----x---| o---x--------------------------- pin 13 - | |/ | - | | - | /| | - ---------o |----------------x-------------- pin 3 - \| | | - | | - --- --- - | | | | - |R| |R| - | | | | - --- --- - | | - ### ### - GND GND - -Remarks: - - This is the exact pinout and electronics used on the Analog Devices - evaluation boards. - /| - - All inverters -o |- must be 74HC05, they must be open collector output. - \| - - All resitors are 10k. - - Pins 18-25 of the parallel port connected to GND. - - Pins 4-9 (D2-D7) could be used as VDD is the driver drives them high. - The ADM1032 evaluation board uses D4-D7. Beware that the amount of - current you can draw from the parallel port is limited. Also note that - all connected lines MUST BE driven at the same state, else you'll short - circuit the output buffers! So plugging the I2C adapter after loading - the i2c-parport module might be a good safety since data line state - prior to init may be unknown. - - This is 5V! - - Obviously you cannot read SCL (so it's not really standard-compliant). - Pretty easy to add, just copy the SDA part and use another input pin. - That would give (ELV compatible pinout): - - -Device PC -Side ______________________________Vdd (+) Side - | | | | - --- --- --- --- - | | | | | | | | - |R| |R| |R| |R| - | | | | | | | | - --- --- --- --- - | | | | - | | |\ | | -SCL ----------x--------x--| o---x------------------------ pin 15 - | | |/ | - | | | - | | /| | - | ---o |-------------x-------------- pin 2 - | \| | | - | | | - | | | - | |\ | | -SDA ---------------x---x--| o--------x------------------- pin 10 - | |/ | - | | - | /| | - ---o |------------------x--------- pin 3 - \| | | - | | - --- --- - | | | | - |R| |R| - | | | | - --- --- - | | - ### ### - GND GND - - -If possible, you should use the same pinout configuration as existing -adapters do, so you won't even have to change the code. - - -Similar (but different) drivers -------------------------------- - -This driver is NOT the same as the i2c-pport driver found in the i2c package. -The i2c-pport driver makes use of modern parallel port features so that -you don't need additional electronics. It has other restrictions however, and -was not ported to Linux 2.6 (yet). - -This driver is also NOT the same as the i2c-pcf-epp driver found in the -lm_sensors package. The i2c-pcf-epp driver doesn't use the parallel port -as an I2C bus directly. Instead, it uses it to control an external I2C bus -master. That driver was not ported to Linux 2.6 (yet) either. - - -Legacy documentation for Velleman adapter ------------------------------------------ - -Useful links: -Velleman http://www.velleman.be/ -Velleman K8000 Howto http://howto.htlw16.ac.at/k8000-howto.html - -The project has lead to new libs for the Velleman K8000 and K8005: - LIBK8000 v1.99.1 and LIBK8005 v0.21 -With these libs, you can control the K8000 interface card and the K8005 -stepper motor card with the simple commands which are in the original -Velleman software, like SetIOchannel, ReadADchannel, SendStepCCWFull and -many more, using /dev/velleman. - http://home.wanadoo.nl/hihihi/libk8000.htm - http://home.wanadoo.nl/hihihi/libk8005.htm - http://struyve.mine.nu:8080/index.php?block=k8000 - http://sourceforge.net/projects/libk8005/ diff --git a/Documentation/i2c/i2c-pport b/Documentation/i2c/i2c-pport deleted file mode 100644 index ce68c6778..000000000 --- a/Documentation/i2c/i2c-pport +++ /dev/null @@ -1,45 +0,0 @@ -Primitive parallel port is driver for i2c bus, which exploits -features of modern bidirectional parallel ports. - -Bidirectional ports have particular bits connected in following way: - - | - /-----| R - --o| |-----| - read \-----| /------- Out pin - |/ - - -|\ - write V - | - --- - - -It means when output is set to 1 we can read the port. Therefore -we can use 2 pins of parallel port as SDA and SCL for i2c bus. It -is not necessary to add any external - additional parts, we can -read and write the same port simultaneously. - I only use register base+2 so it is possible to use all -8 data bits of parallel port for other applications (I have -connected EEPROM and LCD display). I do not use bit Enable Bi-directional - Port. The only disadvantage is we can only support 5V chips. - -Layout: - -Cannon 25 pin - -SDA - connect to pin 14 (Auto Linefeed) -SCL - connect to pin 16 (Initialize Printer) -GND - connect to pin 18-25 -+5V - use external supply (I use 5V from 3.5" floppy connector) - -no pullups requied - -Module parameters: - -base = 0xXXX -XXX - 278 or 378 - -That's all. - -Daniel Smolik -marvin@sitour.cz diff --git a/Documentation/i2c/i2c-velleman b/Documentation/i2c/i2c-velleman deleted file mode 100644 index 04be638dd..000000000 --- a/Documentation/i2c/i2c-velleman +++ /dev/null @@ -1,23 +0,0 @@ -i2c-velleman driver -------------------- -This is a driver for i2c-hw access for Velleman K8000 and other adapters. - -Useful links ------------- -Velleman: - http://www.velleman.be/ - -Velleman K8000 Howto: - http://howto.htlw16.ac.at/k8000-howto.html - -K8000 and K8005 libraries -------------------------- -The project has lead to new libs for the Velleman K8000 and K8005: -LIBK8000 v1.99.1 and LIBK8005 v0.21 - -With these libs, you can control the K8000 interface card and the K8005 -stepper motor card with the simple commands which are in the original -Velleman software, like SetIOchannel, ReadADchannel, SendStepCCWFull and -many more, using /dev/velleman. - -The libs can be found on http://groups.yahoo.com/group/k8000/files/linux/ diff --git a/Documentation/input/appletouch.txt b/Documentation/input/appletouch.txt new file mode 100644 index 000000000..b48d11d03 --- /dev/null +++ b/Documentation/input/appletouch.txt @@ -0,0 +1,84 @@ +Apple Touchpad Driver (appletouch) +---------------------------------- + Copyright (C) 2005 Stelian Pop + +appletouch is a Linux kernel driver for the USB touchpad found on post +February 2005 Apple Alu Powerbooks. + +This driver is derived from Johannes Berg's appletrackpad driver[1], but it has +been improved in some areas: + * appletouch is a full kernel driver, no userspace program is necessary + * appletouch can be interfaced with the synaptics X11 driver, in order + to have touchpad acceleration, scrolling, etc. + +Credits go to Johannes Berg for reverse-engineering the touchpad protocol, +Frank Arnold for further improvements, and Alex Harper for some additional +information about the inner workings of the touchpad sensors. + +Usage: +------ + +In order to use the touchpad in the basic mode, compile the driver and load +the module. A new input device will be detected and you will be able to read +the mouse data from /dev/input/mice (using gpm, or X11). + +In X11, you can configure the touchpad to use the synaptics X11 driver, which +will give additional functionalities, like acceleration, scrolling, 2 finger +tap for middle button mouse emulation, 3 finger tap for right button mouse +emulation, etc. In order to do this, make sure you're using a recent version of +the synaptics driver (tested with 0.14.2, available from [2]), and configure a +new input device in your X11 configuration file (take a look below for an +example). For additional configuration, see the synaptics driver documentation. + + Section "InputDevice" + Identifier "Synaptics Touchpad" + Driver "synaptics" + Option "SendCoreEvents" "true" + Option "Device" "/dev/input/mice" + Option "Protocol" "auto-dev" + Option "LeftEdge" "0" + Option "RightEdge" "850" + Option "TopEdge" "0" + Option "BottomEdge" "645" + Option "MinSpeed" "0.4" + Option "MaxSpeed" "1" + Option "AccelFactor" "0.02" + Option "FingerLow" "0" + Option "FingerHigh" "30" + Option "MaxTapMove" "20" + Option "MaxTapTime" "100" + Option "HorizScrollDelta" "0" + Option "VertScrollDelta" "30" + Option "SHMConfig" "on" + EndSection + + Section "ServerLayout" + ... + InputDevice "Mouse" + InputDevice "Synaptics Touchpad" + ... + EndSection + +Fuzz problems: +-------------- + +The touchpad sensors are very sensitive to heat, and will generate a lot of +noise when the temperature changes. This is especially true when you power-on +the laptop for the first time. + +The appletouch driver tries to handle this noise and auto adapt itself, but it +is not perfect. If finger movements are not recognized anymore, try reloading +the driver. + +You can activate debugging using the 'debug' module parameter. A value of 0 +deactivates any debugging, 1 activates tracing of invalid samples, 2 activates +full tracing (each sample is being traced): + modprobe appletouch debug=1 + or + echo "1" > /sys/module/appletouch/parameters/debug + +Links: +------ + +[1]: http://johannes.sipsolutions.net/PowerBook/touchpad/ +[2]: http://web.telia.com/~u89404340/touchpad/index.html diff --git a/Documentation/isdn/README.eicon b/Documentation/isdn/README.eicon deleted file mode 100644 index 111409ba6..000000000 --- a/Documentation/isdn/README.eicon +++ /dev/null @@ -1,118 +0,0 @@ -$Id: README.eicon,v 1.10.6.1 2001/02/19 10:04:59 armin Exp $ - -(c) 1999,2000 Armin Schindler (mac@melware.de) -(c) 1999,2000 Cytronics & Melware (info@melware.de) - -This document describes the eicon driver for the -Eicon active ISDN cards. - -It is meant to be used with isdn4linux, an ISDN link-level module for Linux. - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. - - - -Supported Cards -=============== - -Old ISA type ------------- -- S-Card ISA -- SX-Card ISA -- SXn-Card ISA -- SCOM-Card ISA -- Quadro-Card ISA -- S2M-Card ISA - -DIVA Server family ------------------- -- DIVA Server BRI/PCI 2M -- DIVA Server PRI/PCI 2M (9M 23M 30M) -- DIVA Server 4BRI/PCI - supported functions of onboard DSPs: - - analog modem - - fax group 2/3 (Fax Class 2 commands) - - DTMF detection - - -ISDN D-Channel Protocols ------------------------- - -- ETSI (Euro-DSS1) -- 1TR6 (German ISDN) *not testet* -- other protocols exist for the range of DIVA Server cards, - but they are not fully testet yet. - - -You can load the module simply by using the insmod or modprobe function : - - insmod eicon [id=driverid] [membase=] [irq=] - - -The module will automatically probe the PCI-cards. If the id-option -is omitted, the driver will assume 'eicon0' for the first pci card and -increases the digit with each further card. With a given driver-id -the module appends a number starting with '0'. - -For ISA-cards you have to specify membase, irq and id. If id or -membase is missing/invalid, the driver will not be loaded except -PCI-cards were found. Additional ISA-cards and irq/membase changes -can be done with the eiconctrl utility. - -After loading the module, you have to download the protocol and -dsp-code by using the eiconctrl utility of isdn4k-utils. - - -Example for loading and starting a BRI card with E-DSS1 Protocol. - - eiconctrl [-d DriverId] load etsi - -Example for a BRI card with E-DSS1 Protocol with PtP configuration. - - eiconctrl [-d DriverId] load etsi -n -t1 -s1 - - -Example for loading and starting a PRI card with E-DSS1 Protocol. - - eiconctrl [-d DriverId] load etsi -s2 -n - - -Details about using the eiconctrl utility are in 'man eiconctrl' -or will be printed by starting eiconctrl without any parameters. - -ISDNLOG: -With eicon driver version 1.77 or newer and the eiconctrl utility -of version 1.1 or better, you can use the isdnlog user program -with your DIVA Server BRI card. -Just use "eiconctrl isdnlog on" and the driver will generate -the necessary D-Channel traces for isdnlog. - - - -Thanks to - Deutsche Mailbox Saar-Lor-Lux GmbH - for sponsoring and testing fax - capabilities with Diva Server cards. - - -Any reports about bugs, errors and even wishes are welcome. - - -Have fun ! - -Armin Schindler -mac@melware.de -http://www.melware.de - diff --git a/Documentation/kdump.txt b/Documentation/kdump.txt new file mode 100644 index 000000000..8fc3d68ae --- /dev/null +++ b/Documentation/kdump.txt @@ -0,0 +1,105 @@ +Documentation for kdump - the kexec based crash dumping solution +================================================================ + +DESIGN +====== + +We use kexec to reboot to a second kernel whenever a dump needs to be taken. +This second kernel is booted with with very little memory (configurable +at compile time). 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. The first 640k of physical memory is +needed irrespective of where the kernel loads at. Hence, this region is +backed up before reboot. + +In the second kernel, "old memory" can be accessed in two ways. The +first one is through a device interface. We can create a /dev/oldmem or +whatever and write out the memory in raw format. The second interface is +through /proc/vmcore. This exports the dump as an ELF format file which +can be written out using any file copy command (cp, scp, etc). Further, gdb +can be used to perform some minimal debugging on the dump file. Both these +methods ensure that there is correct ordering of the dump pages (corresponding +to the first 640k that has been relocated). + +SETUP +===== + +1) Obtain the appropriate -mm tree patch and apply it on to the vanilla + kernel tree. + +2) Two kernels need to be built in order to get this feature working. + + For the first kernel, choose the default values for the following options. + + a) Physical address where the kernel is loaded + b) kexec system call + c) kernel crash dumps + + All the options are under "Processor type and features" + + For the second kernel, change (a) to 16MB. If you want to choose another + value here, ensure "location from where the crash dumping kernel will boot + (MB)" under (c) reflects the same value. + + Also ensure you have CONFIG_HIGHMEM on. + +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 --append="root= dump + init 1 memmap=exactmap memmap=640k@0 memmap=32M@16M" + + Note that has to be a vmlinux image. bzImage will not + work, as of now. + +5) Enable kexec based dumping by + + echo 1 > /proc/kexec-dump + + If this is not set, the system will not do a kexec reboot in the event + of a panic. + +6) System reboots into the second kernel when a panic occurs. + You could write a module to call panic, for testing purposes. + +7) Write out the dump file using + + cp /proc/vmcore + +You can also access the dump as a device for a linear/raw view. To do this, +you will need the kd-oldmem-.patch built into the kernel. To create +the device, type + + mknod /dev/oldmem c 1 12 + +Use "dd" with suitable options for count, bs and skip to access specific +portions of the dump. + +ANALYSIS +======== + +You can run gdb on the dump file copied out of /proc/vmcore. Use vmlinux built +with -g and run + + gdb vmlinux + +Stack trace for the task on processor 0, register display, memory display +work fine. + +TODO +==== + +1) Provide a kernel-pages only view for the dump. This could possibly turn up + as /proc/vmcore-kern. +2) Provide register contents of all processors (similar to what multi-threaded + core dumps does). +3) Modify "crash" to make it recognize this dump. +4) Make the i386 kernel boot from any location so we can run the second kernel + from the reserved location instead of the current approach. + +CONTACT +======= + +Hariprasad Nellitheertha - hari at in dot ibm dot com diff --git a/Documentation/mkdev.cciss b/Documentation/mkdev.cciss deleted file mode 100644 index fbbaf30a7..000000000 --- a/Documentation/mkdev.cciss +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -# Script to create device nodes for SMART array controllers -# Usage: -# mkdev.cciss [num controllers] [num log volumes] [num partitions] -# -# With no arguments, the script assumes 1 controller, 16 logical volumes, -# and 16 partitions/volume, which is adequate for most configurations. -# -# If you had 5 controllers and were planning on no more than 4 logical volumes -# each, using a maximum of 8 partitions per volume, you could say: -# -# mkdev.cciss 5 4 8 -# -# Of course, this has no real benefit over "mkdev.cciss 5" except that it -# doesn't create so many device nodes in /dev/cciss. - -NR_CTLR=${1-1} -NR_VOL=${2-16} -NR_PART=${3-16} - -if [ ! -d /dev/cciss ]; then - mkdir -p /dev/cciss -fi - -C=0; while [ $C -lt $NR_CTLR ]; do - MAJ=`expr $C + 104` - D=0; while [ $D -lt $NR_VOL ]; do - P=0; while [ $P -lt $NR_PART ]; do - MIN=`expr $D \* 16 + $P` - if [ $P -eq 0 ]; then - mknod /dev/cciss/c${C}d${D} b $MAJ $MIN - else - mknod /dev/cciss/c${C}d${D}p${P} b $MAJ $MIN - fi - P=`expr $P + 1` - done - D=`expr $D + 1` - done - C=`expr $C + 1` -done diff --git a/Documentation/mkdev.ida b/Documentation/mkdev.ida deleted file mode 100644 index d2764899d..000000000 --- a/Documentation/mkdev.ida +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -# Script to create device nodes for SMART array controllers -# Usage: -# mkdev.ida [num controllers] [num log volumes] [num partitions] -# -# With no arguments, the script assumes 1 controller, 16 logical volumes, -# and 16 partitions/volume, which is adequate for most configurations. -# -# If you had 5 controllers and were planning on no more than 4 logical volumes -# each, using a maximum of 8 partitions per volume, you could say: -# -# mkdev.ida 5 4 8 -# -# Of course, this has no real benefit over "mkdev.ida 5" except that it -# doesn't create so many device nodes in /dev/ida. - -NR_CTLR=${1-1} -NR_VOL=${2-16} -NR_PART=${3-16} - -if [ ! -d /dev/ida ]; then - mkdir -p /dev/ida -fi - -C=0; while [ $C -lt $NR_CTLR ]; do - MAJ=`expr $C + 72` - D=0; while [ $D -lt $NR_VOL ]; do - P=0; while [ $P -lt $NR_PART ]; do - MIN=`expr $D \* 16 + $P` - if [ $P -eq 0 ]; then - mknod /dev/ida/c${C}d${D} b $MAJ $MIN - else - mknod /dev/ida/c${C}d${D}p${P} b $MAJ $MIN - fi - P=`expr $P + 1` - done - D=`expr $D + 1` - done - C=`expr $C + 1` -done diff --git a/Documentation/networking/README.ipw2100 b/Documentation/networking/README.ipw2100 new file mode 100644 index 000000000..93bba8b17 --- /dev/null +++ b/Documentation/networking/README.ipw2100 @@ -0,0 +1,179 @@ + +Intel PRO/Wireless 2100 802.11b Driver for Linux +README.ipw2100 + +October 13, 2004 + + +Release 0.56 Current Features +------------ ----- ----- ---- --- -- - + +- IBSS and BSS modes +- 802.11 fragmentation +- WEP (shared key and open) +- wireless extension support +- 802.1x EAP via xsupplicant +- Monitor/RFMon mode +- transmit power control +- long/short preamble support +- power states support (ACPI) + +TODO +------------ ----- ----- ---- --- -- - +- Fix bugs... The biggies: + C3 corruption + Fragmentation + + +Command Line Parameters +------------ ----- ----- ---- --- -- - + +If the driver is built as a module, the following optional parameters are used +by entering them on the command line with the modprobe command using this +syntax: + + modprobe ipw2100 [