Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVojtech Pavlik <vojtech@suse.cz>2005-01-13 13:55:09 +0100
committerVojtech Pavlik <vojtech@suse.cz>2005-01-13 13:55:09 +0100
commitb6f507979d72ac455ecbd24709c3e3484992c0c8 (patch)
tree5b953e1817c08522b6c0bc3888bcb40add8eb34c
parenta0da4d850b69a0a1b7c4bb03f14537fe88f3c3e4 (diff)
parentbe847405f7541be998ba361a6f35f4df70a460d1 (diff)
Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input
-rw-r--r--CREDITS8
-rw-r--r--Documentation/00-INDEX4
-rw-r--r--Documentation/Changes10
-rw-r--r--Documentation/DocBook/kernel-api.tmpl9
-rw-r--r--Documentation/README.cycladesZ (renamed from drivers/char/README.cycladesZ)0
-rw-r--r--Documentation/README.moxa18
-rw-r--r--Documentation/SAK.txt4
-rw-r--r--Documentation/aoe/aoe.txt75
-rw-r--r--Documentation/aoe/autoload.sh17
-rw-r--r--Documentation/aoe/mkdevs.sh33
-rw-r--r--Documentation/aoe/mkshelf.sh23
-rw-r--r--Documentation/aoe/status.sh15
-rw-r--r--Documentation/cciss.txt30
-rw-r--r--Documentation/cdrom/packet-writing.txt3
-rw-r--r--Documentation/early-userspace/README67
-rw-r--r--Documentation/feature-removal-schedule.txt34
-rw-r--r--Documentation/filesystems/00-INDEX2
-rw-r--r--Documentation/filesystems/sysfs-pci.txt88
-rw-r--r--Documentation/filesystems/umsdos.txt100
-rw-r--r--Documentation/i2c/chips/smsc47b397.txt146
-rw-r--r--Documentation/i2c/i2c-old-porting626
-rw-r--r--Documentation/i2c/i2c-stub9
-rw-r--r--Documentation/kernel-parameters.txt14
-rw-r--r--Documentation/mkdev.cciss40
-rw-r--r--Documentation/networking/e100.txt12
-rw-r--r--Documentation/networking/e1000.txt36
-rw-r--r--Documentation/pm.txt48
-rw-r--r--Documentation/power/devices.txt88
-rw-r--r--Documentation/riscom8.txt42
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt61
-rw-r--r--Documentation/sound/alsa/Bt87x.txt78
-rw-r--r--Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl211
-rw-r--r--Documentation/sound/alsa/MIXART.txt4
-rw-r--r--Documentation/sound/alsa/OSS-Emulation.txt11
-rw-r--r--Documentation/sparse.txt72
-rw-r--r--Documentation/stable_api_nonsense.txt4
-rw-r--r--Documentation/stallion.txt68
-rw-r--r--Documentation/usb/sn9c102.txt202
-rw-r--r--Documentation/vm/hugetlbpage.txt262
-rw-r--r--Documentation/vm/numa2
-rw-r--r--Documentation/w1/w1.generic19
-rw-r--r--Documentation/x86_64/boot-options.txt40
-rw-r--r--MAINTAINERS58
-rw-r--r--Makefile6
-rw-r--r--arch/alpha/Kconfig2
-rw-r--r--arch/alpha/kernel/core_marvel.c2
-rw-r--r--arch/alpha/kernel/srmcons.c2
-rw-r--r--arch/alpha/mm/numa.c10
-rw-r--r--arch/arm/Kconfig46
-rw-r--r--arch/arm/boot/compressed/Makefile4
-rw-r--r--arch/arm/boot/compressed/head-sharpsl.S92
-rw-r--r--arch/arm/boot/compressed/head-xscale.S14
-rw-r--r--arch/arm/common/Makefile1
-rw-r--r--arch/arm/common/amba.c2
-rw-r--r--arch/arm/common/locomo.c2
-rw-r--r--arch/arm/common/sa1111.c13
-rw-r--r--arch/arm/common/scoop.c134
-rw-r--r--arch/arm/configs/ep80219_defconfig13
-rw-r--r--arch/arm/configs/iq31244_defconfig13
-rw-r--r--arch/arm/configs/iq80321_defconfig91
-rw-r--r--arch/arm/configs/iq80331_defconfig105
-rw-r--r--arch/arm/configs/iq80332_defconfig864
-rw-r--r--arch/arm/kernel/Makefile1
-rw-r--r--arch/arm/kernel/asm-offsets.c2
-rw-r--r--arch/arm/kernel/head.S282
-rw-r--r--arch/arm/kernel/irq.c129
-rw-r--r--arch/arm/kernel/semaphore.c2
-rw-r--r--arch/arm/kernel/setup.c20
-rw-r--r--arch/arm/kernel/smp.c406
-rw-r--r--arch/arm/lib/io-readsw-armv4.S87
-rw-r--r--arch/arm/lib/io-writesw-armv4.S62
-rw-r--r--arch/arm/mach-integrator/impd1.c13
-rw-r--r--arch/arm/mach-integrator/integrator_cp.c9
-rw-r--r--arch/arm/mach-iop3xx/Kconfig17
-rw-r--r--arch/arm/mach-iop3xx/Makefile2
-rw-r--r--arch/arm/mach-iop3xx/iop321-pci.c8
-rw-r--r--arch/arm/mach-iop3xx/iop321-setup.c61
-rw-r--r--arch/arm/mach-iop3xx/iop331-pci.c35
-rw-r--r--arch/arm/mach-iop3xx/iop331-setup.c92
-rw-r--r--arch/arm/mach-iop3xx/iq31244-pci.c22
-rw-r--r--arch/arm/mach-iop3xx/iq80321-pci.c33
-rw-r--r--arch/arm/mach-iop3xx/iq80331-pci.c34
-rw-r--r--arch/arm/mach-iop3xx/iq80332-mm.c36
-rw-r--r--arch/arm/mach-iop3xx/iq80332-pci.c128
-rw-r--r--arch/arm/mach-ixp2000/enp2611.c2
-rw-r--r--arch/arm/mach-ixp2000/ixdp2400.c2
-rw-r--r--arch/arm/mach-ixp2000/ixdp2800.c2
-rw-r--r--arch/arm/mach-ixp4xx/common.c37
-rw-r--r--arch/arm/mach-ixp4xx/coyote-pci.c1
-rw-r--r--arch/arm/mach-ixp4xx/coyote-setup.c4
-rw-r--r--arch/arm/mach-ixp4xx/ixdp425-pci.c1
-rw-r--r--arch/arm/mach-ixp4xx/ixdp425-setup.c5
-rw-r--r--arch/arm/mach-ixp4xx/ixdpg425-pci.c1
-rw-r--r--arch/arm/mach-ixp4xx/prpmc1100-pci.c1
-rw-r--r--arch/arm/mach-ixp4xx/prpmc1100-setup.c5
-rw-r--r--arch/arm/mach-pxa/Kconfig20
-rw-r--r--arch/arm/mach-pxa/Makefile1
-rw-r--r--arch/arm/mach-pxa/corgi.c165
-rw-r--r--arch/arm/mach-pxa/corgi_ssp.c247
-rw-r--r--arch/arm/mach-s3c2410/cpu.h26
-rw-r--r--arch/arm/mach-s3c2410/irq.c4
-rw-r--r--arch/arm/mach-s3c2410/mach-bast.c8
-rw-r--r--arch/arm/mach-s3c2410/mach-h1940.c6
-rw-r--r--arch/arm/mach-s3c2410/mach-rx3715.c7
-rw-r--r--arch/arm/mach-s3c2410/mach-smdk2410.c5
-rw-r--r--arch/arm/mach-s3c2410/mach-vr1000.c8
-rw-r--r--arch/arm/mach-s3c2410/s3c2410.c5
-rw-r--r--arch/arm/mach-s3c2410/s3c2410.h16
-rw-r--r--arch/arm/mach-s3c2410/s3c2440-dsc.c5
-rw-r--r--arch/arm/mach-s3c2410/s3c2440.h21
-rw-r--r--arch/arm/mach-s3c2410/time.c2
-rw-r--r--arch/arm/mach-sa1100/neponset.c4
-rw-r--r--arch/arm/mach-versatile/core.c9
-rw-r--r--arch/arm/mm/consistent.c56
-rw-r--r--arch/arm/mm/init.c35
-rw-r--r--arch/arm/mm/mm-armv.c5
-rw-r--r--arch/arm/mm/proc-arm1020.S45
-rw-r--r--arch/arm/mm/proc-arm1020e.S46
-rw-r--r--arch/arm/mm/proc-arm1022.S44
-rw-r--r--arch/arm/mm/proc-arm1026.S45
-rw-r--r--arch/arm/mm/proc-arm6_7.S12
-rw-r--r--arch/arm/mm/proc-arm720.S91
-rw-r--r--arch/arm/mm/proc-arm920.S44
-rw-r--r--arch/arm/mm/proc-arm922.S44
-rw-r--r--arch/arm/mm/proc-arm925.S47
-rw-r--r--arch/arm/mm/proc-arm926.S44
-rw-r--r--arch/arm/mm/proc-sa110.S30
-rw-r--r--arch/arm/mm/proc-sa1100.S36
-rw-r--r--arch/arm/mm/proc-v6.S47
-rw-r--r--arch/arm/mm/proc-xscale.S34
-rw-r--r--arch/arm/tools/mach-types41
-rw-r--r--arch/arm26/mm/init.c3
-rw-r--r--arch/cris/arch-v10/kernel/fasttimer.c30
-rw-r--r--arch/i386/Kconfig11
-rw-r--r--arch/i386/kernel/apic.c15
-rw-r--r--arch/i386/kernel/cpu/amd.c17
-rw-r--r--arch/i386/kernel/cpu/common.c54
-rw-r--r--arch/i386/kernel/cpu/intel.c45
-rw-r--r--arch/i386/kernel/cpu/mtrr/generic.c21
-rw-r--r--arch/i386/kernel/cpu/proc.c17
-rw-r--r--arch/i386/kernel/dmi_scan.c10
-rw-r--r--arch/i386/kernel/entry.S3
-rw-r--r--arch/i386/kernel/kprobes.c19
-rw-r--r--arch/i386/kernel/mpparse.c4
-rw-r--r--arch/i386/kernel/numaq.c10
-rw-r--r--arch/i386/kernel/process.c2
-rw-r--r--arch/i386/kernel/signal.c6
-rw-r--r--arch/i386/kernel/smpboot.c1
-rw-r--r--arch/i386/kernel/srat.c32
-rw-r--r--arch/i386/kernel/traps.c2
-rw-r--r--arch/i386/lib/delay.c2
-rw-r--r--arch/i386/mm/discontig.c28
-rw-r--r--arch/i386/mm/ioremap.c6
-rw-r--r--arch/i386/mm/pageattr.c28
-rw-r--r--arch/i386/oprofile/nmi_int.c8
-rw-r--r--arch/i386/pci/fixup.c18
-rw-r--r--arch/i386/pci/irq.c22
-rw-r--r--arch/i386/pci/numa.c7
-rw-r--r--arch/i386/pci/pci.h2
-rw-r--r--arch/ia64/Kconfig41
-rw-r--r--arch/ia64/Kconfig.debug2
-rw-r--r--arch/ia64/Makefile2
-rw-r--r--arch/ia64/configs/sn2_defconfig51
-rw-r--r--arch/ia64/configs/zx1_defconfig215
-rw-r--r--arch/ia64/defconfig51
-rw-r--r--arch/ia64/hp/common/Makefile2
-rw-r--r--arch/ia64/hp/common/hwsw_iommu.c185
-rw-r--r--arch/ia64/hp/common/sba_iommu.c2
-rw-r--r--arch/ia64/hp/sim/simeth.c8
-rw-r--r--arch/ia64/hp/zx1/Makefile2
-rw-r--r--arch/ia64/hp/zx1/hpzx1_swiotlb_machvec.c3
-rw-r--r--arch/ia64/ia32/sys_ia32.c4
-rw-r--r--arch/ia64/kernel/Makefile1
-rw-r--r--arch/ia64/kernel/acpi.c24
-rw-r--r--arch/ia64/kernel/domain.c1
-rw-r--r--arch/ia64/kernel/head.S24
-rw-r--r--arch/ia64/kernel/irq_ia64.c2
-rw-r--r--arch/ia64/kernel/mca.c1
-rw-r--r--arch/ia64/kernel/perfmon.c2
-rw-r--r--arch/ia64/kernel/setup.c25
-rw-r--r--arch/ia64/kernel/topology.c4
-rw-r--r--arch/ia64/kernel/unwind.c2
-rw-r--r--arch/ia64/lib/io.c17
-rw-r--r--arch/ia64/lib/swiotlb.c328
-rw-r--r--arch/ia64/mm/contig.c4
-rw-r--r--arch/ia64/mm/discontig.c70
-rw-r--r--arch/ia64/mm/init.c1
-rw-r--r--arch/ia64/pci/pci.c136
-rw-r--r--arch/ia64/sn/kernel/bte_error.c11
-rw-r--r--arch/ia64/sn/kernel/io_init.c9
-rw-r--r--arch/ia64/sn/kernel/setup.c26
-rw-r--r--arch/ia64/sn/kernel/sn2/prominfo_proc.c14
-rw-r--r--arch/ia64/sn/kernel/sn2/sn2_smp.c15
-rw-r--r--arch/ia64/sn/kernel/sn2/sn_hwperf.c7
-rw-r--r--arch/ia64/sn/pci/pci_dma.c64
-rw-r--r--arch/m32r/Kconfig2
-rw-r--r--arch/m32r/kernel/entry.S90
-rw-r--r--arch/m32r/kernel/setup.c4
-rw-r--r--arch/m32r/kernel/signal.c187
-rw-r--r--arch/m32r/kernel/smpboot.c2
-rw-r--r--arch/m32r/mm/discontig.c6
-rw-r--r--arch/m32r/mm/init.c9
-rw-r--r--arch/m32r/oprofile/init.c6
-rw-r--r--arch/m68k/apollo/dn_debug.c22
-rw-r--r--arch/m68k/configs/amiga_defconfig9
-rw-r--r--arch/m68k/configs/apollo_defconfig9
-rw-r--r--arch/m68k/configs/atari_defconfig9
-rw-r--r--arch/m68k/configs/bvme6000_defconfig9
-rw-r--r--arch/m68k/configs/hp300_defconfig9
-rw-r--r--arch/m68k/configs/mac_defconfig9
-rw-r--r--arch/m68k/configs/mvme147_defconfig9
-rw-r--r--arch/m68k/configs/mvme16x_defconfig9
-rw-r--r--arch/m68k/configs/q40_defconfig9
-rw-r--r--arch/m68k/configs/sun3_defconfig9
-rw-r--r--arch/m68k/configs/sun3x_defconfig9
-rw-r--r--arch/m68k/defconfig9
-rw-r--r--arch/m68k/sun3x/sun3x_ksyms.c13
-rw-r--r--arch/m68knommu/Kconfig13
-rw-r--r--arch/m68knommu/kernel/process.c4
-rw-r--r--arch/m68knommu/kernel/vmlinux.lds.S8
-rw-r--r--arch/m68knommu/lib/checksum.c1
-rw-r--r--arch/m68knommu/lib/delay.c3
-rw-r--r--arch/m68knommu/mm/init.c2
-rw-r--r--arch/m68knommu/platform/5307/head.S253
-rw-r--r--arch/mips/Kconfig2
-rw-r--r--arch/mips/au1000/common/usbdev.c6
-rw-r--r--arch/mips/au1000/mtx-1/board_setup.c2
-rw-r--r--arch/mips/configs/pb1500_defconfig2
-rw-r--r--arch/mips/gt64120/ev64120/irq.c2
-rw-r--r--arch/mips/kernel/irixelf.c11
-rw-r--r--arch/mips/sgi-ip27/ip27-init.c1
-rw-r--r--arch/mips/sgi-ip27/ip27-klnuma.c28
-rw-r--r--arch/mips/sgi-ip27/ip27-memory.c32
-rw-r--r--arch/mips/sgi-ip27/ip27-nmi.c8
-rw-r--r--arch/mips/sgi-ip27/ip27-reset.c4
-rw-r--r--arch/mips/sgi-ip27/ip27-smp.c14
-rw-r--r--arch/mips/vr41xx/common/bcu.c1
-rw-r--r--arch/mips/vr41xx/common/pmu.c1
-rw-r--r--arch/parisc/kernel/binfmt_elf32.c6
-rw-r--r--arch/parisc/mm/init.c2
-rw-r--r--arch/ppc/kernel/idle.c7
-rw-r--r--arch/ppc/kernel/perfmon.c1
-rw-r--r--arch/ppc/mm/init.c1
-rw-r--r--arch/ppc/platforms/prep_setup.c4
-rw-r--r--arch/ppc/syslib/ppc4xx_dma.c4
-rw-r--r--arch/ppc64/Kconfig3
-rw-r--r--arch/ppc64/Makefile4
-rw-r--r--arch/ppc64/kernel/LparData.c70
-rw-r--r--arch/ppc64/kernel/Makefile2
-rw-r--r--arch/ppc64/kernel/binfmt_elf32.c6
-rw-r--r--arch/ppc64/kernel/eeh.c37
-rw-r--r--arch/ppc64/kernel/entry.S6
-rw-r--r--arch/ppc64/kernel/head.S226
-rw-r--r--arch/ppc64/kernel/iSeries_iommu.c11
-rw-r--r--arch/ppc64/kernel/iSeries_setup.c3
-rw-r--r--arch/ppc64/kernel/iommu.c21
-rw-r--r--arch/ppc64/kernel/kprobes.c2
-rw-r--r--arch/ppc64/kernel/maple_pci.c6
-rw-r--r--arch/ppc64/kernel/maple_setup.c7
-rw-r--r--arch/ppc64/kernel/misc.S20
-rw-r--r--arch/ppc64/kernel/pSeries_iommu.c289
-rw-r--r--arch/ppc64/kernel/pSeries_pci.c6
-rw-r--r--arch/ppc64/kernel/pSeries_setup.c17
-rw-r--r--arch/ppc64/kernel/pSeries_smp.c62
-rw-r--r--arch/ppc64/kernel/pacaData.c6
-rw-r--r--arch/ppc64/kernel/pci.c38
-rw-r--r--arch/ppc64/kernel/pci.h4
-rw-r--r--arch/ppc64/kernel/pci_direct_iommu.c (renamed from arch/ppc64/kernel/pci_dma_direct.c)2
-rw-r--r--arch/ppc64/kernel/pci_dn.c33
-rw-r--r--arch/ppc64/kernel/pmac_pci.c4
-rw-r--r--arch/ppc64/kernel/pmac_setup.c7
-rw-r--r--arch/ppc64/kernel/ppc_ksyms.c1
-rw-r--r--arch/ppc64/kernel/process.c48
-rw-r--r--arch/ppc64/kernel/prom.c11
-rw-r--r--arch/ppc64/kernel/ras.c120
-rw-r--r--arch/ppc64/kernel/rtas-proc.c12
-rw-r--r--arch/ppc64/kernel/rtasd.c2
-rw-r--r--arch/ppc64/kernel/setup.c2
-rw-r--r--arch/ppc64/kernel/smp.c28
-rw-r--r--arch/ppc64/kernel/time.c78
-rw-r--r--arch/ppc64/kernel/traps.c158
-rw-r--r--arch/ppc64/kernel/u3_iommu.c106
-rw-r--r--arch/ppc64/kernel/vio.c18
-rw-r--r--arch/ppc64/kernel/xics.c17
-rw-r--r--arch/ppc64/lib/sstep.c4
-rw-r--r--arch/ppc64/mm/hugetlbpage.c3
-rw-r--r--arch/ppc64/mm/init.c3
-rw-r--r--arch/ppc64/mm/numa.c37
-rw-r--r--arch/ppc64/oprofile/op_impl.h38
-rw-r--r--arch/ppc64/oprofile/op_model_power4.c2
-rw-r--r--arch/ppc64/oprofile/op_model_rs64.c2
-rw-r--r--arch/ppc64/xmon/setjmp.S73
-rw-r--r--arch/ppc64/xmon/setjmp.c77
-rw-r--r--arch/ppc64/xmon/xmon.c24
-rw-r--r--arch/s390/Kconfig10
-rw-r--r--arch/s390/kernel/binfmt_elf32.c9
-rw-r--r--arch/s390/kernel/entry.S135
-rw-r--r--arch/s390/kernel/entry64.S128
-rw-r--r--arch/s390/kernel/irq.c8
-rw-r--r--arch/s390/kernel/time.c42
-rw-r--r--arch/s390/kernel/vtime.c111
-rw-r--r--arch/sh/boards/renesas/hs7751rvoip/io.c4
-rw-r--r--arch/sh/drivers/pci/Kconfig3
-rw-r--r--arch/sh/kernel/sh_ksyms.c4
-rw-r--r--arch/sh/lib/delay.c2
-rw-r--r--arch/sparc64/kernel/binfmt_aout32.c14
-rw-r--r--arch/sparc64/kernel/binfmt_elf32.c6
-rw-r--r--arch/sparc64/lib/delay.c2
-rw-r--r--arch/um/Kconfig7
-rw-r--r--arch/um/Kconfig_arch16
-rw-r--r--arch/um/Kconfig_char11
-rw-r--r--arch/um/Kconfig_i38620
-rw-r--r--arch/um/Kconfig_x86_6411
-rw-r--r--arch/um/Makefile20
-rw-r--r--arch/um/Makefile-i3868
-rw-r--r--arch/um/Makefile-x86_6435
-rw-r--r--arch/um/defconfig4
-rw-r--r--arch/um/drivers/Makefile3
-rw-r--r--arch/um/drivers/chan_kern.c4
-rw-r--r--arch/um/drivers/cow.h5
-rw-r--r--arch/um/drivers/cow_sys.h4
-rw-r--r--arch/um/drivers/cow_user.c6
-rw-r--r--arch/um/drivers/line.c31
-rw-r--r--arch/um/drivers/mconsole_kern.c11
-rw-r--r--arch/um/drivers/mmapper_kern.c2
-rw-r--r--arch/um/drivers/ubd_kern.c10
-rw-r--r--arch/um/drivers/ubd_user.c2
-rw-r--r--arch/um/include/process.h2
-rw-r--r--arch/um/include/registers.h27
-rw-r--r--arch/um/include/sysdep-i386/ptrace.h45
-rw-r--r--arch/um/include/sysdep-i386/signal.h25
-rw-r--r--arch/um/include/sysdep-i386/syscalls.h71
-rw-r--r--arch/um/include/sysdep-ppc/syscalls.h7
-rw-r--r--arch/um/include/sysdep-x86_64/checksum.h151
-rw-r--r--arch/um/include/sysdep-x86_64/ptrace.h260
-rw-r--r--arch/um/include/sysdep-x86_64/ptrace_user.h69
-rw-r--r--arch/um/include/sysdep-x86_64/sigcontext.h49
-rw-r--r--arch/um/include/sysdep-x86_64/signal.h27
-rw-r--r--arch/um/include/sysdep-x86_64/syscalls.h96
-rw-r--r--arch/um/include/um_uaccess.h14
-rw-r--r--arch/um/include/uml_uaccess.h2
-rw-r--r--arch/um/kernel/checksum.c12
-rw-r--r--arch/um/kernel/exec_kern.c10
-rw-r--r--arch/um/kernel/exitcode.c2
-rw-r--r--arch/um/kernel/irq.c14
-rw-r--r--arch/um/kernel/mem.c14
-rw-r--r--arch/um/kernel/mem_user.c4
-rw-r--r--arch/um/kernel/physmem.c7
-rw-r--r--arch/um/kernel/process.c8
-rw-r--r--arch/um/kernel/process_kern.c20
-rw-r--r--arch/um/kernel/ptrace.c44
-rw-r--r--arch/um/kernel/signal_kern.c41
-rw-r--r--arch/um/kernel/signal_user.c1
-rw-r--r--arch/um/kernel/skas/Makefile2
-rw-r--r--arch/um/kernel/skas/include/ptrace-skas.h57
-rw-r--r--arch/um/kernel/skas/include/skas.h3
-rw-r--r--arch/um/kernel/skas/mem.c5
-rw-r--r--arch/um/kernel/skas/process.c93
-rw-r--r--arch/um/kernel/skas/process_kern.c8
-rw-r--r--arch/um/kernel/skas/tlb.c150
-rw-r--r--arch/um/kernel/skas/trap_user.c1
-rw-r--r--arch/um/kernel/skas/uaccess.c48
-rw-r--r--arch/um/kernel/skas/util/Makefile2
-rw-r--r--arch/um/kernel/skas/util/mk_ptregs-i386.c (renamed from arch/um/kernel/skas/util/mk_ptregs.c)4
-rw-r--r--arch/um/kernel/skas/util/mk_ptregs-x86_64.c68
-rw-r--r--arch/um/kernel/smp.c6
-rw-r--r--arch/um/kernel/sys_call_table.c450
-rw-r--r--arch/um/kernel/syscall_kern.c129
-rw-r--r--arch/um/kernel/time_kern.c25
-rw-r--r--arch/um/kernel/tlb.c16
-rw-r--r--arch/um/kernel/trap_kern.c8
-rw-r--r--arch/um/kernel/trap_user.c22
-rw-r--r--arch/um/kernel/tt/Makefile5
-rw-r--r--arch/um/kernel/tt/gdb.c8
-rw-r--r--arch/um/kernel/tt/ptproxy/proxy.c8
-rw-r--r--arch/um/kernel/tt/ptproxy/sysdep.c1
-rw-r--r--arch/um/kernel/tt/ptproxy/wait.c1
-rw-r--r--arch/um/kernel/tt/syscall_kern.c93
-rw-r--r--arch/um/kernel/tt/tlb.c160
-rw-r--r--arch/um/kernel/tt/tracer.c1
-rw-r--r--arch/um/kernel/tt/trap_user.c1
-rw-r--r--arch/um/kernel/tt/uaccess.c12
-rw-r--r--arch/um/kernel/um_arch.c5
-rw-r--r--arch/um/os-Linux/Makefile7
-rw-r--r--arch/um/os-Linux/elf_aux.c1
-rw-r--r--arch/um/os-Linux/signal.c48
-rw-r--r--arch/um/os-Linux/sys-i386/Makefile11
-rw-r--r--arch/um/os-Linux/sys-i386/registers.c115
-rw-r--r--arch/um/os-Linux/sys-x86_64/Makefile11
-rw-r--r--arch/um/os-Linux/sys-x86_64/registers.c82
-rw-r--r--arch/um/os-Linux/user_syms.c8
-rw-r--r--arch/um/sys-i386/Makefile2
-rw-r--r--arch/um/sys-i386/delay.c14
-rw-r--r--arch/um/sys-i386/ldt.c14
-rw-r--r--arch/um/sys-i386/ptrace.c24
-rw-r--r--arch/um/sys-i386/sigcontext.c3
-rw-r--r--arch/um/sys-i386/signal.c2
-rw-r--r--arch/um/sys-i386/syscalls.c134
-rw-r--r--arch/um/sys-x86_64/Makefile39
-rw-r--r--arch/um/sys-x86_64/bugs.c122
-rw-r--r--arch/um/sys-x86_64/delay.c26
-rw-r--r--arch/um/sys-x86_64/fault.c23
-rw-r--r--arch/um/sys-x86_64/mem.c25
-rw-r--r--arch/um/sys-x86_64/ptrace.c138
-rw-r--r--arch/um/sys-x86_64/ptrace_user.c64
-rw-r--r--arch/um/sys-x86_64/sigcontext.c39
-rw-r--r--arch/um/sys-x86_64/signal.c276
-rw-r--r--arch/um/sys-x86_64/syscalls.c191
-rw-r--r--arch/um/sys-x86_64/sysrq.c49
-rw-r--r--arch/um/sys-x86_64/util/Makefile10
-rw-r--r--arch/um/sys-x86_64/util/mk_sc.c58
-rw-r--r--arch/um/sys-x86_64/util/mk_thread_kern.c21
-rw-r--r--arch/um/sys-x86_64/util/mk_thread_user.c30
-rw-r--r--arch/x86_64/Kconfig11
-rw-r--r--arch/x86_64/Makefile2
-rw-r--r--arch/x86_64/defconfig120
-rw-r--r--arch/x86_64/ia32/ia32_aout.c12
-rw-r--r--arch/x86_64/ia32/ia32_signal.c6
-rw-r--r--arch/x86_64/ia32/ia32entry.S4
-rw-r--r--arch/x86_64/kernel/aperture.c14
-rw-r--r--arch/x86_64/kernel/apic.c5
-rw-r--r--arch/x86_64/kernel/genapic.c7
-rw-r--r--arch/x86_64/kernel/head.S2
-rw-r--r--arch/x86_64/kernel/head64.c13
-rw-r--r--arch/x86_64/kernel/io_apic.c7
-rw-r--r--arch/x86_64/kernel/mce.c18
-rw-r--r--arch/x86_64/kernel/mpparse.c11
-rw-r--r--arch/x86_64/kernel/setup.c59
-rw-r--r--arch/x86_64/kernel/setup64.c3
-rw-r--r--arch/x86_64/kernel/signal.c8
-rw-r--r--arch/x86_64/lib/delay.c2
-rw-r--r--arch/x86_64/lib/io.c8
-rw-r--r--arch/x86_64/lib/old-checksum.c33
-rw-r--r--arch/x86_64/mm/init.c54
-rw-r--r--arch/x86_64/mm/ioremap.c10
-rw-r--r--arch/x86_64/mm/k8topology.c22
-rw-r--r--arch/x86_64/mm/numa.c23
-rw-r--r--arch/x86_64/mm/pageattr.c26
-rw-r--r--arch/x86_64/mm/srat.c26
-rw-r--r--drivers/Makefile1
-rw-r--r--drivers/acpi/asus_acpi.c4
-rw-r--r--drivers/acpi/ec.c4
-rw-r--r--drivers/acpi/processor_idle.c10
-rw-r--r--drivers/base/Kconfig2
-rw-r--r--drivers/base/bus.c2
-rw-r--r--drivers/base/class.c18
-rw-r--r--drivers/base/node.c3
-rw-r--r--drivers/base/platform.c54
-rw-r--r--drivers/base/power/power.h6
-rw-r--r--drivers/base/power/runtime.c4
-rw-r--r--drivers/base/power/suspend.c8
-rw-r--r--drivers/block/DAC960.c2
-rw-r--r--drivers/block/Kconfig65
-rw-r--r--drivers/block/aoe/Makefile6
-rw-r--r--drivers/block/aoe/aoe.h162
-rw-r--r--drivers/block/aoe/aoeblk.c251
-rw-r--r--drivers/block/aoe/aoechr.c279
-rw-r--r--drivers/block/aoe/aoecmd.c627
-rw-r--r--drivers/block/aoe/aoedev.c194
-rw-r--r--drivers/block/aoe/aoemain.c93
-rw-r--r--drivers/block/aoe/aoenet.c175
-rw-r--r--drivers/block/cciss.c19
-rw-r--r--drivers/block/cciss_scsi.c4
-rw-r--r--drivers/block/cciss_scsi.h2
-rw-r--r--drivers/block/cfq-iosched.c6
-rw-r--r--drivers/block/cpqarray.c4
-rw-r--r--drivers/block/cpqarray.h2
-rw-r--r--drivers/block/deadline-iosched.c10
-rw-r--r--drivers/block/elevator.c7
-rw-r--r--drivers/block/floppy.c5
-rw-r--r--drivers/block/ida_cmd.h2
-rw-r--r--drivers/block/ida_ioctl.h2
-rw-r--r--drivers/block/nbd.c2
-rw-r--r--drivers/block/paride/bpck6.c2
-rw-r--r--drivers/block/paride/pcd.c16
-rw-r--r--drivers/block/paride/pd.c18
-rw-r--r--drivers/block/paride/pf.c18
-rw-r--r--drivers/block/paride/pg.c14
-rw-r--r--drivers/block/paride/pt.c14
-rw-r--r--drivers/block/pktcdvd.c12
-rw-r--r--drivers/block/ps2esdi.c8
-rw-r--r--drivers/block/scsi_ioctl.c3
-rw-r--r--drivers/block/smart1,2.h2
-rw-r--r--drivers/block/sx8.c2
-rw-r--r--drivers/block/xd.c6
-rw-r--r--drivers/bluetooth/bfusb.c2
-rw-r--r--drivers/bluetooth/bluecard_cs.c6
-rw-r--r--drivers/bluetooth/bt3c_cs.c6
-rw-r--r--drivers/bluetooth/btuart_cs.c6
-rw-r--r--drivers/bluetooth/dtl1_cs.c6
-rw-r--r--drivers/bluetooth/hci_usb.c10
-rw-r--r--drivers/cdrom/aztcd.c2
-rw-r--r--drivers/cdrom/cdrom.c26
-rw-r--r--drivers/cdrom/gscd.c3
-rw-r--r--drivers/cdrom/isp16.c8
-rw-r--r--drivers/cdrom/mcd.c12
-rw-r--r--drivers/cdrom/mcdx.c11
-rw-r--r--drivers/cdrom/optcd.c2
-rw-r--r--drivers/cdrom/sjcd.c2
-rw-r--r--drivers/cdrom/sonycd535.c2
-rw-r--r--drivers/char/Kconfig2
-rw-r--r--drivers/char/agp/Kconfig2
-rw-r--r--drivers/char/agp/amd64-agp.c2
-rw-r--r--drivers/char/agp/sis-agp.c4
-rw-r--r--drivers/char/applicom.c9
-rw-r--r--drivers/char/cyclades.c21
-rw-r--r--drivers/char/drm/drmP.h1
-rw-r--r--drivers/char/drm/gamma_lists.h6
-rw-r--r--drivers/char/drm/i810_dma.c18
-rw-r--r--drivers/char/drm/i915_dma.c18
-rw-r--r--drivers/char/ds1286.c2
-rw-r--r--drivers/char/ec3104_keyb.c2
-rw-r--r--drivers/char/efirtc.c2
-rw-r--r--drivers/char/esp.c2
-rw-r--r--drivers/char/ftape/compressor/zftape-compress.c4
-rw-r--r--drivers/char/ftape/lowlevel/fc-10.c4
-rw-r--r--drivers/char/ftape/lowlevel/fdc-io.c67
-rw-r--r--drivers/char/ftape/lowlevel/fdc-io.h5
-rw-r--r--drivers/char/ftape/lowlevel/ftape-bsm.c8
-rw-r--r--drivers/char/ftape/lowlevel/ftape-bsm.h1
-rw-r--r--drivers/char/ftape/lowlevel/ftape-ctl.c15
-rw-r--r--drivers/char/ftape/lowlevel/ftape-ctl.h1
-rw-r--r--drivers/char/ftape/lowlevel/ftape-init.c6
-rw-r--r--drivers/char/ftape/lowlevel/ftape-io.c24
-rw-r--r--drivers/char/ftape/lowlevel/ftape-io.h4
-rw-r--r--drivers/char/ftape/lowlevel/ftape-proc.c4
-rw-r--r--drivers/char/ftape/lowlevel/ftape-rw.c2
-rw-r--r--drivers/char/ftape/lowlevel/ftape-rw.h1
-rw-r--r--drivers/char/ftape/zftape/zftape-buffers.c7
-rw-r--r--drivers/char/ftape/zftape/zftape-buffers.h1
-rw-r--r--drivers/char/ftape/zftape/zftape-init.c13
-rw-r--r--drivers/char/ftape/zftape/zftape-init.h1
-rw-r--r--drivers/char/ftape/zftape/zftape-rw.c1
-rw-r--r--drivers/char/ftape/zftape/zftape-rw.h1
-rw-r--r--drivers/char/ftape/zftape/zftape-vtbl.c4
-rw-r--r--drivers/char/ftape/zftape/zftape-vtbl.h1
-rw-r--r--drivers/char/ftape/zftape/zftape_syms.c1
-rw-r--r--drivers/char/generic_serial.c26
-rw-r--r--drivers/char/genrtc.c4
-rw-r--r--drivers/char/hpet.c4
-rw-r--r--drivers/char/hvc_console.c4
-rw-r--r--drivers/char/hvcs.c6
-rw-r--r--drivers/char/hvsi.c2
-rw-r--r--drivers/char/hw_random.c2
-rw-r--r--drivers/char/ip2/fip_firm.h2
-rw-r--r--drivers/char/ip2/i2cmd.c59
-rw-r--r--drivers/char/ip2/i2cmd.h17
-rw-r--r--drivers/char/ip2/i2lib.c2
-rw-r--r--drivers/char/ip2main.c5
-rw-r--r--drivers/char/ipmi/ipmi_msghandler.c8
-rw-r--r--drivers/char/ipmi/ipmi_poweroff.c12
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c2
-rw-r--r--drivers/char/ipmi/ipmi_watchdog.c26
-rw-r--r--drivers/char/isicom.c836
-rw-r--r--drivers/char/keyboard.c20
-rw-r--r--drivers/char/lp.c4
-rw-r--r--drivers/char/misc.c14
-rw-r--r--drivers/char/mwave/3780i.c2
-rw-r--r--drivers/char/mwave/mwavedd.c10
-rw-r--r--drivers/char/n_hdlc.c8
-rw-r--r--drivers/char/n_tty.c4
-rw-r--r--drivers/char/nvram.c2
-rw-r--r--drivers/char/pcmcia/synclink_cs.c47
-rw-r--r--drivers/char/pty.c2
-rw-r--r--drivers/char/qtronix.c2
-rw-r--r--drivers/char/random.c754
-rw-r--r--drivers/char/rio/cdproto.h55
-rw-r--r--drivers/char/rio/func.h21
-rw-r--r--drivers/char/rio/rio_linux.c34
-rw-r--r--drivers/char/rio/rioboot.c8
-rw-r--r--drivers/char/rio/riocmd.c58
-rw-r--r--drivers/char/rio/rioctrl.c35
-rw-r--r--drivers/char/rio/rioinit.c59
-rw-r--r--drivers/char/rio/riointr.c166
-rw-r--r--drivers/char/rio/rioroute.c18
-rw-r--r--drivers/char/rio/riotable.c19
-rw-r--r--drivers/char/rio/riotty.c17
-rw-r--r--drivers/char/rsf16fmi.h13
-rw-r--r--drivers/char/rtc.c2
-rw-r--r--drivers/char/scx200_gpio.c2
-rw-r--r--drivers/char/selection.c44
-rw-r--r--drivers/char/sonypi.c4
-rw-r--r--drivers/char/synclink.c331
-rw-r--r--drivers/char/synclinkmp.c10
-rw-r--r--drivers/char/sysrq.c2
-rw-r--r--drivers/char/tipar.c53
-rw-r--r--drivers/char/toshiba.c4
-rw-r--r--drivers/char/tty_io.c71
-rw-r--r--drivers/char/tty_ioctl.c2
-rw-r--r--drivers/char/vc_screen.c60
-rw-r--r--drivers/char/viocons.c4
-rw-r--r--drivers/char/vt.c428
-rw-r--r--drivers/char/vt_ioctl.c2
-rw-r--r--drivers/char/watchdog/machzwd.c29
-rw-r--r--drivers/char/watchdog/pcwd_usb.c8
-rw-r--r--drivers/eisa/Makefile3
-rw-r--r--drivers/i2c/algos/Kconfig13
-rw-r--r--drivers/i2c/algos/Makefile2
-rw-r--r--drivers/i2c/algos/i2c-algo-bit.c4
-rw-r--r--drivers/i2c/algos/i2c-algo-pca.c4
-rw-r--r--drivers/i2c/algos/i2c-algo-pcf.c4
-rw-r--r--drivers/i2c/algos/i2c-algo-sgi.c189
-rw-r--r--drivers/i2c/algos/i2c-algo-sibyte.c231
-rw-r--r--drivers/i2c/busses/Kconfig16
-rw-r--r--drivers/i2c/busses/Makefile1
-rw-r--r--drivers/i2c/busses/i2c-ali1535.c7
-rw-r--r--drivers/i2c/busses/i2c-ali1563.c15
-rw-r--r--drivers/i2c/busses/i2c-ali15x3.c7
-rw-r--r--drivers/i2c/busses/i2c-amd756.c15
-rw-r--r--drivers/i2c/busses/i2c-amd8111.c2
-rw-r--r--drivers/i2c/busses/i2c-hydra.c7
-rw-r--r--drivers/i2c/busses/i2c-i801.c56
-rw-r--r--drivers/i2c/busses/i2c-iop3xx.c547
-rw-r--r--drivers/i2c/busses/i2c-iop3xx.h103
-rw-r--r--drivers/i2c/busses/i2c-nforce2.c11
-rw-r--r--drivers/i2c/busses/i2c-piix4.c54
-rw-r--r--drivers/i2c/busses/i2c-prosavage.c7
-rw-r--r--drivers/i2c/busses/i2c-sibyte.c71
-rw-r--r--drivers/i2c/busses/i2c-sis96x.c12
-rw-r--r--drivers/i2c/busses/i2c-stub.c22
-rw-r--r--drivers/i2c/busses/i2c-viapro.c72
-rw-r--r--drivers/i2c/chips/Kconfig12
-rw-r--r--drivers/i2c/chips/Makefile1
-rw-r--r--drivers/i2c/chips/asb100.c3
-rw-r--r--drivers/i2c/chips/eeprom.c19
-rw-r--r--drivers/i2c/chips/fscher.c11
-rw-r--r--drivers/i2c/chips/isp1301_omap.c9
-rw-r--r--drivers/i2c/chips/it87.c2
-rw-r--r--drivers/i2c/chips/lm78.c2
-rw-r--r--drivers/i2c/chips/lm90.c28
-rw-r--r--drivers/i2c/chips/pc87360.c3
-rw-r--r--drivers/i2c/chips/smsc47b397.c353
-rw-r--r--drivers/i2c/chips/smsc47m1.c2
-rw-r--r--drivers/i2c/chips/via686a.c2
-rw-r--r--drivers/i2c/chips/w83627hf.c45
-rw-r--r--drivers/i2c/chips/w83781d.c3
-rw-r--r--drivers/i2c/i2c-sensor-vid.c5
-rw-r--r--drivers/ide/arm/icside.c2
-rw-r--r--drivers/ide/cris/ide-v10.c2
-rw-r--r--drivers/ide/ide-cd.c141
-rw-r--r--drivers/ide/ide-disk.c190
-rw-r--r--drivers/ide/ide-dma.c3
-rw-r--r--drivers/ide/ide-floppy.c4
-rw-r--r--drivers/ide/ide-io.c171
-rw-r--r--drivers/ide/ide-iops.c4
-rw-r--r--drivers/ide/ide-lib.c132
-rw-r--r--drivers/ide/ide-taskfile.c8
-rw-r--r--drivers/ide/ide.c153
-rw-r--r--drivers/ide/legacy/ide-cs.c8
-rw-r--r--drivers/ide/pci/sgiioc4.c8
-rw-r--r--drivers/ide/ppc/pmac.c2
-rw-r--r--drivers/ide/setup-pci.c27
-rw-r--r--drivers/ieee1394/csr.c2
-rw-r--r--drivers/ieee1394/eth1394.c4
-rw-r--r--drivers/ieee1394/pcilynx.c10
-rw-r--r--drivers/ieee1394/sbp2.c2
-rw-r--r--drivers/input/gameport/Kconfig2
-rw-r--r--drivers/input/gameport/Makefile2
-rw-r--r--drivers/input/mouse/synaptics.h2
-rw-r--r--drivers/input/serio/maceps2.c2
-rw-r--r--drivers/isdn/act2000/module.c8
-rw-r--r--drivers/isdn/hardware/avm/avm_cs.c9
-rw-r--r--drivers/isdn/hardware/avm/b1pcmcia.c1
-rw-r--r--drivers/isdn/hardware/eicon/divamnt.c4
-rw-r--r--drivers/isdn/hardware/eicon/divasmain.c2
-rw-r--r--drivers/isdn/hisax/avma1_cs.c15
-rw-r--r--drivers/isdn/hisax/config.c18
-rw-r--r--drivers/isdn/hisax/elsa_cs.c14
-rw-r--r--drivers/isdn/hisax/hfc_usb.c15
-rw-r--r--drivers/isdn/hisax/hisax_fcpcipnp.c6
-rw-r--r--drivers/isdn/hisax/hisax_isac.c2
-rw-r--r--drivers/isdn/hisax/sedlbauer_cs.c17
-rw-r--r--drivers/isdn/hisax/st5481_b.c2
-rw-r--r--drivers/isdn/hisax/st5481_d.c2
-rw-r--r--drivers/isdn/hisax/st5481_init.c9
-rw-r--r--drivers/isdn/hisax/st5481_usb.c4
-rw-r--r--drivers/isdn/hisax/teles_cs.c14
-rw-r--r--drivers/isdn/icn/icn.c8
-rw-r--r--drivers/isdn/pcbit/module.c5
-rw-r--r--drivers/isdn/sc/init.c9
-rw-r--r--drivers/isdn/tpam/tpam_main.c4
-rw-r--r--drivers/macintosh/via-pmu.c2
-rw-r--r--drivers/mca/mca-bus.c2
-rw-r--r--drivers/mca/mca-legacy.c59
-rw-r--r--drivers/mca/mca-proc.c4
-rw-r--r--drivers/md/Makefile30
-rw-r--r--drivers/md/kcopyd.c2
-rw-r--r--drivers/md/linear.c38
-rw-r--r--drivers/md/multipath.c2
-rw-r--r--drivers/md/raid1.c4
-rw-r--r--drivers/md/raid10.c4
-rw-r--r--drivers/md/raid5.c4
-rw-r--r--drivers/md/raid6algos.c10
-rw-r--r--drivers/md/raid6altivec.uc122
-rw-r--r--drivers/md/raid6main.c4
-rw-r--r--drivers/media/common/saa7146_core.c4
-rw-r--r--drivers/media/dvb/b2c2/b2c2-usb-core.c2
-rw-r--r--drivers/media/dvb/b2c2/skystar2.c2
-rw-r--r--drivers/media/dvb/dibusb/dvb-dibusb.c12
-rw-r--r--drivers/media/dvb/ttpci/av7110_hw.c15
-rw-r--r--drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c6
-rw-r--r--drivers/media/dvb/ttusb-dec/ttusb_dec.c12
-rw-r--r--drivers/media/radio/miropcm20-radio.c2
-rw-r--r--drivers/media/radio/radio-aimslab.c8
-rw-r--r--drivers/media/radio/radio-aztech.c4
-rw-r--r--drivers/media/radio/radio-cadet.c8
-rw-r--r--drivers/media/radio/radio-gemtek-pci.c6
-rw-r--r--drivers/media/radio/radio-gemtek.c6
-rw-r--r--drivers/media/radio/radio-maestro.c6
-rw-r--r--drivers/media/radio/radio-maxiradio.c6
-rw-r--r--drivers/media/radio/radio-rtrack2.c4
-rw-r--r--drivers/media/radio/radio-sf16fmi.c4
-rw-r--r--drivers/media/radio/radio-sf16fmr2.c4
-rw-r--r--drivers/media/radio/radio-terratec.c6
-rw-r--r--drivers/media/radio/radio-trust.c4
-rw-r--r--drivers/media/radio/radio-typhoon.c12
-rw-r--r--drivers/media/radio/radio-zoltrix.c8
-rw-r--r--drivers/media/video/Kconfig2
-rw-r--r--drivers/media/video/adv7170.c2
-rw-r--r--drivers/media/video/adv7175.c2
-rw-r--r--drivers/media/video/bt819.c4
-rw-r--r--drivers/media/video/bt856.c2
-rw-r--r--drivers/media/video/bttv-cards.c20
-rw-r--r--drivers/media/video/bttv-driver.c20
-rw-r--r--drivers/media/video/bttv-i2c.c6
-rw-r--r--drivers/media/video/bttv-risc.c8
-rw-r--r--drivers/media/video/bttv.h3
-rw-r--r--drivers/media/video/bttvp.h19
-rw-r--r--drivers/media/video/bw-qcam.c16
-rw-r--r--drivers/media/video/c-qcam.c13
-rw-r--r--drivers/media/video/cpia.c2
-rw-r--r--drivers/media/video/cpia_pp.c2
-rw-r--r--drivers/media/video/cx88/cx88-mpeg.c2
-rw-r--r--drivers/media/video/cx88/cx88-video.c2
-rw-r--r--drivers/media/video/dpc7146.c9
-rw-r--r--drivers/media/video/hexium_gemini.c2
-rw-r--r--drivers/media/video/hexium_orion.c6
-rw-r--r--drivers/media/video/ir-kbd-i2c.c10
-rw-r--r--drivers/media/video/meye.c4
-rw-r--r--drivers/media/video/msp3400.c8
-rw-r--r--drivers/media/video/mxb.c4
-rw-r--r--drivers/media/video/mxb.h2
-rw-r--r--drivers/media/video/pms.c8
-rw-r--r--drivers/media/video/saa7110.c2
-rw-r--r--drivers/media/video/saa7114.c2
-rw-r--r--drivers/media/video/saa7134/saa7134-core.c4
-rw-r--r--drivers/media/video/saa7134/saa7134-video.c14
-rw-r--r--drivers/media/video/saa7185.c2
-rw-r--r--drivers/media/video/stradis.c9
-rw-r--r--drivers/media/video/tda7432.c12
-rw-r--r--drivers/media/video/tda9875.c4
-rw-r--r--drivers/media/video/tuner-3036.c6
-rw-r--r--drivers/media/video/videocodec.c2
-rw-r--r--drivers/media/video/vpx3220.c2
-rw-r--r--drivers/media/video/w9966.c6
-rw-r--r--drivers/media/video/zoran_card.c27
-rw-r--r--drivers/media/video/zoran_device.c8
-rw-r--r--drivers/media/video/zoran_device.h1
-rw-r--r--drivers/media/video/zoran_driver.c4
-rw-r--r--drivers/media/video/zr36016.c2
-rw-r--r--drivers/media/video/zr36050.c2
-rw-r--r--drivers/media/video/zr36060.c4
-rw-r--r--drivers/media/video/zr36120.c2
-rw-r--r--drivers/message/fusion/mptlan.c4
-rw-r--r--drivers/message/i2o/pci.c2
-rw-r--r--drivers/misc/ibmasm/module.c6
-rw-r--r--drivers/mmc/Kconfig2
-rw-r--r--drivers/mmc/mmci.c3
-rw-r--r--drivers/mmc/pxamci.c2
-rw-r--r--drivers/mmc/wbsd.c6
-rw-r--r--drivers/mtd/chips/jedec_probe.c20
-rw-r--r--drivers/mtd/devices/Kconfig2
-rw-r--r--drivers/mtd/devices/blkmtd.c9
-rw-r--r--drivers/mtd/devices/block2mtd.c1
-rw-r--r--drivers/mtd/devices/docprobe.c2
-rw-r--r--drivers/mtd/devices/mtdram.c4
-rw-r--r--drivers/mtd/devices/pmc551.c9
-rw-r--r--drivers/mtd/devices/slram.c6
-rw-r--r--drivers/mtd/ftl.c2
-rw-r--r--drivers/mtd/maps/pcmciamtd.c31
-rw-r--r--drivers/mtd/maps/scx200_docflash.c25
-rw-r--r--drivers/net/3c501.c4
-rw-r--r--drivers/net/3c503.c6
-rw-r--r--drivers/net/3c505.c6
-rw-r--r--drivers/net/3c507.c154
-rw-r--r--drivers/net/3c509.c29
-rw-r--r--drivers/net/3c515.c21
-rw-r--r--drivers/net/3c523.c4
-rw-r--r--drivers/net/3c59x.c321
-rw-r--r--drivers/net/8139cp.c8
-rw-r--r--drivers/net/8139too.c4
-rw-r--r--drivers/net/82596.c8
-rw-r--r--drivers/net/8390.c21
-rw-r--r--drivers/net/8390.h1
-rw-r--r--drivers/net/Kconfig11
-rw-r--r--drivers/net/ac3200.c66
-rwxr-xr-xdrivers/net/amd8111e.c22
-rw-r--r--drivers/net/appletalk/cops.c6
-rw-r--r--drivers/net/appletalk/ipddp.c2
-rw-r--r--drivers/net/appletalk/ltpc.c8
-rw-r--r--drivers/net/arcnet/arcnet.c5
-rw-r--r--drivers/net/at1700.c6
-rw-r--r--drivers/net/atp.c10
-rw-r--r--drivers/net/bonding/bond_main.c20
-rw-r--r--drivers/net/cs89x0.c16
-rw-r--r--drivers/net/de600.c6
-rw-r--r--drivers/net/de620.c12
-rw-r--r--drivers/net/depca.c24
-rw-r--r--drivers/net/dgrs.c16
-rw-r--r--drivers/net/dl2k.c20
-rw-r--r--drivers/net/e100.c23
-rw-r--r--drivers/net/e1000/e1000_ethtool.c70
-rw-r--r--drivers/net/e1000/e1000_hw.c125
-rw-r--r--drivers/net/e1000/e1000_hw.h8
-rw-r--r--drivers/net/e1000/e1000_main.c224
-rw-r--r--drivers/net/e1000/e1000_osdep.h9
-rw-r--r--drivers/net/e1000/e1000_param.c8
-rw-r--r--drivers/net/e2100.c26
-rw-r--r--drivers/net/eepro.c144
-rw-r--r--drivers/net/eepro100.c323
-rw-r--r--drivers/net/eexpress.c4
-rw-r--r--drivers/net/epic100.c8
-rw-r--r--drivers/net/es3210.c6
-rw-r--r--drivers/net/eth16i.c8
-rw-r--r--drivers/net/ewrk3.c5
-rw-r--r--drivers/net/fealnx.c12
-rw-r--r--drivers/net/forcedeth.c305
-rw-r--r--drivers/net/hamachi.c30
-rw-r--r--drivers/net/hamradio/baycom_epp.c4
-rw-r--r--drivers/net/hamradio/baycom_par.c4
-rw-r--r--drivers/net/hamradio/baycom_ser_fdx.c8
-rw-r--r--drivers/net/hamradio/baycom_ser_hdx.c6
-rw-r--r--drivers/net/hp-plus.c4
-rw-r--r--drivers/net/hp.c4
-rw-r--r--drivers/net/hp100.c8
-rw-r--r--drivers/net/ibm_emac/ibm_emac.h2
-rw-r--r--drivers/net/ibm_emac/ibm_emac_core.c15
-rw-r--r--drivers/net/ibm_emac/ibm_emac_phy.c19
-rw-r--r--drivers/net/ibmlana.c4
-rw-r--r--drivers/net/irda/ali-ircc.c6
-rw-r--r--drivers/net/irda/donauboe.c4
-rw-r--r--drivers/net/irda/irda-usb.c6
-rw-r--r--drivers/net/irda/irtty-sir.c6
-rw-r--r--drivers/net/irda/nsc-ircc.c10
-rw-r--r--drivers/net/irda/smsc-ircc2.c12
-rw-r--r--drivers/net/irda/stir4200.c4
-rw-r--r--drivers/net/irda/tekram-sir.c4
-rw-r--r--drivers/net/irda/via-ircc.c2
-rw-r--r--drivers/net/irda/vlsi_ir.c16
-rw-r--r--drivers/net/irda/w83977af_ir.c6
-rw-r--r--drivers/net/ixgb/ixgb.h25
-rw-r--r--drivers/net/ixgb/ixgb_ee.c192
-rw-r--r--drivers/net/ixgb/ixgb_ethtool.c518
-rw-r--r--drivers/net/ixgb/ixgb_hw.c231
-rw-r--r--drivers/net/ixgb/ixgb_hw.h50
-rw-r--r--drivers/net/ixgb/ixgb_ids.h21
-rw-r--r--drivers/net/ixgb/ixgb_main.c707
-rw-r--r--drivers/net/ixgb/ixgb_osdep.h10
-rw-r--r--drivers/net/ixgb/ixgb_param.c316
-rw-r--r--drivers/net/lance.c8
-rw-r--r--drivers/net/lne390.c66
-rw-r--r--drivers/net/lp486e.c14
-rw-r--r--drivers/net/natsemi.c12
-rw-r--r--drivers/net/ne.c6
-rw-r--r--drivers/net/ne2.c6
-rw-r--r--drivers/net/ne2k-pci.c6
-rw-r--r--drivers/net/ne3210.c34
-rw-r--r--drivers/net/ni52.c8
-rw-r--r--drivers/net/ni65.c6
-rw-r--r--drivers/net/pci-skeleton.c4
-rw-r--r--drivers/net/pcmcia/3c574_cs.c9
-rw-r--r--drivers/net/pcmcia/3c589_cs.c9
-rw-r--r--drivers/net/pcmcia/Kconfig2
-rw-r--r--drivers/net/pcmcia/axnet_cs.c9
-rw-r--r--drivers/net/pcmcia/com20020_cs.c21
-rw-r--r--drivers/net/pcmcia/fmvj18x_cs.c13
-rw-r--r--drivers/net/pcmcia/ibmtr_cs.c19
-rw-r--r--drivers/net/pcmcia/nmclan_cs.c9
-rw-r--r--drivers/net/pcmcia/pcnet_cs.c52
-rw-r--r--drivers/net/pcmcia/smc91c92_cs.c11
-rw-r--r--drivers/net/pcmcia/xirc2ps_cs.c14
-rw-r--r--drivers/net/plip.c4
-rw-r--r--drivers/net/ppp_async.c2
-rw-r--r--drivers/net/r8169.c100
-rw-r--r--drivers/net/s2io.c22
-rw-r--r--drivers/net/s2io.h6
-rw-r--r--drivers/net/seeq8005.c4
-rw-r--r--drivers/net/shaper.c2
-rw-r--r--drivers/net/sis900.c4
-rw-r--r--drivers/net/sk98lin/Makefile1
-rw-r--r--drivers/net/sk98lin/h/skdrv2nd.h5
-rw-r--r--drivers/net/sk98lin/skaddr.c2
-rw-r--r--drivers/net/sk98lin/skethtool.c555
-rw-r--r--drivers/net/sk98lin/skge.c280
-rw-r--r--drivers/net/sk98lin/skproc.c433
-rw-r--r--drivers/net/smc-mca.c4
-rw-r--r--drivers/net/smc-ultra.c6
-rw-r--r--drivers/net/smc9194.c6
-rw-r--r--drivers/net/smc91x.c16
-rw-r--r--drivers/net/starfire.c20
-rw-r--r--drivers/net/sundance.c8
-rw-r--r--drivers/net/sunhme.c2
-rw-r--r--drivers/net/tg3.c22
-rw-r--r--drivers/net/tlan.c10
-rw-r--r--drivers/net/tokenring/3c359.c42
-rw-r--r--drivers/net/tokenring/3c359.h2
-rw-r--r--drivers/net/tokenring/Kconfig2
-rw-r--r--drivers/net/tokenring/ibmtr.c6
-rw-r--r--drivers/net/tokenring/lanstreamer.c7
-rw-r--r--drivers/net/tokenring/olympic.c8
-rw-r--r--drivers/net/tokenring/proteon.c6
-rw-r--r--drivers/net/tokenring/skisa.c6
-rw-r--r--drivers/net/tokenring/smctr.c6
-rw-r--r--drivers/net/tulip/de2104x.c4
-rw-r--r--drivers/net/tulip/dmfe.c18
-rw-r--r--drivers/net/tulip/media.c37
-rw-r--r--drivers/net/tulip/timer.c1
-rw-r--r--drivers/net/tulip/tulip.h8
-rw-r--r--drivers/net/tulip/tulip_core.c52
-rw-r--r--drivers/net/tulip/winbond-840.c12
-rw-r--r--drivers/net/tulip/xircom_tulip_cb.c19
-rw-r--r--drivers/net/tun.c151
-rw-r--r--drivers/net/typhoon.c6
-rw-r--r--drivers/net/via-rhine.c4
-rw-r--r--drivers/net/via-velocity.c38
-rw-r--r--drivers/net/wan/cosa.c8
-rw-r--r--drivers/net/wan/cosa.h10
-rw-r--r--drivers/net/wan/cycx_main.c2
-rw-r--r--drivers/net/wan/dscc4.c4
-rw-r--r--drivers/net/wan/farsync.c11
-rw-r--r--drivers/net/wan/hostess_sv11.c8
-rw-r--r--drivers/net/wan/sbni.c14
-rw-r--r--drivers/net/wan/sdla.c2
-rw-r--r--drivers/net/wan/sealevel.c10
-rw-r--r--drivers/net/wan/syncppp.c2
-rw-r--r--drivers/net/wan/x25_asy.c2
-rw-r--r--drivers/net/wd.c8
-rw-r--r--drivers/net/wireless/Kconfig2
-rw-r--r--drivers/net/wireless/airo.c48
-rw-r--r--drivers/net/wireless/airo_cs.c19
-rw-r--r--drivers/net/wireless/arlan-main.c47
-rw-r--r--drivers/net/wireless/atmel_cs.c29
-rw-r--r--drivers/net/wireless/netwave_cs.c19
-rw-r--r--drivers/net/wireless/orinoco.c207
-rw-r--r--drivers/net/wireless/orinoco_cs.c17
-rw-r--r--drivers/net/wireless/prism54/islpci_dev.c2
-rw-r--r--drivers/net/wireless/prism54/prismcompat.h6
-rw-r--r--drivers/net/wireless/ray_cs.c31
-rw-r--r--drivers/net/wireless/wavelan.c3
-rw-r--r--drivers/net/wireless/wavelan.p.h9
-rw-r--r--drivers/net/wireless/wavelan_cs.c6
-rw-r--r--drivers/net/wireless/wavelan_cs.p.h8
-rw-r--r--drivers/net/wireless/wl3501_cs.c18
-rw-r--r--drivers/net/yellowfin.c14
-rw-r--r--drivers/net/znet.c2
-rw-r--r--drivers/oprofile/buffer_sync.c4
-rw-r--r--drivers/parport/Kconfig2
-rw-r--r--drivers/parport/parport_cs.c10
-rw-r--r--drivers/parport/parport_pc.c30
-rw-r--r--drivers/parport/share.c2
-rw-r--r--drivers/pci/hotplug/Kconfig2
-rw-r--r--drivers/pci/hotplug/acpiphp_ibm.c2
-rw-r--r--drivers/pci/hotplug/cpci_hotplug_pci.c2
-rw-r--r--drivers/pci/hotplug/cpcihp_generic.c2
-rw-r--r--drivers/pci/hotplug/cpqphp_pci.c30
-rw-r--r--drivers/pci/hotplug/fakephp.c2
-rw-r--r--drivers/pci/hotplug/ibmphp.h2
-rw-r--r--drivers/pci/hotplug/ibmphp_core.c804
-rw-r--r--drivers/pci/hotplug/ibmphp_pci.c56
-rw-r--r--drivers/pci/hotplug/pciehp_core.c1
-rw-r--r--drivers/pci/hotplug/rpaphp_pci.c4
-rw-r--r--drivers/pci/hotplug/shpchp.h2
-rw-r--r--drivers/pci/hotplug/shpchp_core.c1
-rw-r--r--drivers/pci/pci-driver.c2
-rw-r--r--drivers/pci/pci-sysfs.c163
-rw-r--r--drivers/pci/pci.c67
-rw-r--r--drivers/pci/probe.c139
-rw-r--r--drivers/pci/quirks.c33
-rw-r--r--drivers/pci/setup-bus.c9
-rw-r--r--drivers/pci/setup-irq.c3
-rw-r--r--drivers/pcmcia/Kconfig23
-rw-r--r--drivers/pcmcia/Makefile4
-rw-r--r--drivers/pcmcia/bulkmem.c218
-rw-r--r--drivers/pcmcia/cardbus.c45
-rw-r--r--drivers/pcmcia/cistpl.c50
-rw-r--r--drivers/pcmcia/cs.c417
-rw-r--r--drivers/pcmcia/cs_internal.h46
-rw-r--r--drivers/pcmcia/ds.c1061
-rw-r--r--drivers/pcmcia/hd64465_ss.c1
-rw-r--r--drivers/pcmcia/i82092.c1
-rw-r--r--drivers/pcmcia/i82365.c1
-rw-r--r--drivers/pcmcia/m32r_cfc.c1
-rw-r--r--drivers/pcmcia/m32r_pcc.c1
-rw-r--r--drivers/pcmcia/pcmcia_compat.c20
-rw-r--r--drivers/pcmcia/pd6729.c271
-rw-r--r--drivers/pcmcia/pd6729.h6
-rw-r--r--drivers/pcmcia/rsrc_mgr.c856
-rw-r--r--drivers/pcmcia/rsrc_nonstatic.c816
-rw-r--r--drivers/pcmcia/soc_common.c1
-rw-r--r--drivers/pcmcia/tcic.c3
-rw-r--r--drivers/pcmcia/ti113x.h11
-rw-r--r--drivers/pcmcia/yenta_socket.c10
-rw-r--r--drivers/pnp/isapnp/core.c8
-rw-r--r--drivers/scsi/NCR_D700.c2
-rw-r--r--drivers/scsi/aacraid/aachba.c14
-rw-r--r--drivers/scsi/aacraid/commsup.c27
-rw-r--r--drivers/scsi/aha152x.c52
-rw-r--r--drivers/scsi/aha1542.c4
-rw-r--r--drivers/scsi/ahci.c17
-rw-r--r--drivers/scsi/aic7xxx/aic7770_osm.c12
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm.c40
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_osm.c12
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_osm.h2
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_osm_pci.c91
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_pci.c4
-rw-r--r--drivers/scsi/ata_piix.c15
-rw-r--r--drivers/scsi/constants.c24
-rw-r--r--drivers/scsi/fd_mcs.c58
-rw-r--r--drivers/scsi/fd_mcs.h37
-rw-r--r--drivers/scsi/fdomain.c2
-rw-r--r--drivers/scsi/g_NCR5380.c14
-rw-r--r--drivers/scsi/gdth.c978
-rw-r--r--drivers/scsi/gdth_kcompat.h21
-rw-r--r--drivers/scsi/gdth_proc.c287
-rw-r--r--drivers/scsi/gdth_proc.h6
-rw-r--r--drivers/scsi/ibmmca.c9
-rw-r--r--drivers/scsi/ibmvscsi/ibmvscsi.c142
-rw-r--r--drivers/scsi/ibmvscsi/ibmvscsi.h1
-rw-r--r--drivers/scsi/ide-scsi.c33
-rw-r--r--drivers/scsi/in2000.c2
-rw-r--r--drivers/scsi/ipr.c28
-rw-r--r--drivers/scsi/lasi700.c22
-rw-r--r--drivers/scsi/lasi700.h49
-rw-r--r--drivers/scsi/nsp32.c6
-rw-r--r--drivers/scsi/osst.c851
-rw-r--r--drivers/scsi/osst.h15
-rw-r--r--drivers/scsi/pcmcia/aha152x_stub.c22
-rw-r--r--drivers/scsi/pcmcia/fdomain_stub.c12
-rw-r--r--drivers/scsi/pcmcia/nsp_cs.c13
-rw-r--r--drivers/scsi/pcmcia/qlogic_stub.c10
-rw-r--r--drivers/scsi/pcmcia/sym53c500_cs.c1
-rw-r--r--drivers/scsi/qla1280.c22
-rw-r--r--drivers/scsi/qlogicfas.c4
-rw-r--r--drivers/scsi/sata_sil.c2
-rw-r--r--drivers/scsi/scsi.c22
-rw-r--r--drivers/scsi/scsi_lib.c18
-rw-r--r--drivers/scsi/scsi_transport_fc.c36
-rw-r--r--drivers/scsi/scsi_transport_spi.c91
-rw-r--r--drivers/scsi/sd.c7
-rw-r--r--drivers/scsi/sim710.c2
-rw-r--r--drivers/scsi/sr.c3
-rw-r--r--drivers/scsi/sr_ioctl.c3
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_conf.h8
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_defs.h34
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_fw.c4
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_glue.c83
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_glue.h34
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_hipd.c469
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_hipd.h72
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_malloc.c2
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_misc.c98
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_nvram.c39
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_nvram.h6
-rw-r--r--drivers/scsi/sym53c8xx_comm.h2
-rw-r--r--drivers/scsi/zalon.c21
-rw-r--r--drivers/serial/icom.c1
-rw-r--r--drivers/serial/mcfserial.c61
-rw-r--r--drivers/serial/mpc52xx_uart.c4
-rw-r--r--drivers/serial/serial_cs.c6
-rw-r--r--drivers/serial/sn_console.c2
-rw-r--r--drivers/telephony/ixj.c111
-rw-r--r--drivers/telephony/ixj_pcmcia.c6
-rw-r--r--drivers/usb/Makefile4
-rw-r--r--drivers/usb/README33
-rw-r--r--drivers/usb/atm/speedtch.c31
-rw-r--r--drivers/usb/atm/usb_atm.c17
-rw-r--r--drivers/usb/atm/usb_atm.h19
-rw-r--r--drivers/usb/class/audio.c7
-rw-r--r--drivers/usb/class/bluetty.c6
-rw-r--r--drivers/usb/class/cdc-acm.c23
-rw-r--r--drivers/usb/class/cdc-acm.h3
-rw-r--r--drivers/usb/class/usb-midi.c30
-rw-r--r--drivers/usb/class/usb-midi.h4
-rw-r--r--drivers/usb/class/usblp.c19
-rw-r--r--drivers/usb/core/config.c4
-rw-r--r--drivers/usb/core/devices.c14
-rw-r--r--drivers/usb/core/devio.c52
-rw-r--r--drivers/usb/core/hcd-pci.c23
-rw-r--r--drivers/usb/core/hcd.c232
-rw-r--r--drivers/usb/core/hcd.h47
-rw-r--r--drivers/usb/core/hub.c560
-rw-r--r--drivers/usb/core/hub.h2
-rw-r--r--drivers/usb/core/inode.c2
-rw-r--r--drivers/usb/core/message.c50
-rw-r--r--drivers/usb/core/otg_whitelist.h16
-rw-r--r--drivers/usb/core/sysfs.c26
-rw-r--r--drivers/usb/core/urb.c2
-rw-r--r--drivers/usb/core/usb.c84
-rw-r--r--drivers/usb/core/usb.h2
-rw-r--r--drivers/usb/gadget/Kconfig35
-rw-r--r--drivers/usb/gadget/dummy_hcd.c132
-rw-r--r--drivers/usb/gadget/epautoconf.c3
-rw-r--r--drivers/usb/gadget/file_storage.c2
-rw-r--r--drivers/usb/gadget/omap_udc.c2
-rw-r--r--drivers/usb/gadget/serial.c2
-rw-r--r--drivers/usb/host/ehci-dbg.c30
-rw-r--r--drivers/usb/host/ehci-hcd.c130
-rw-r--r--drivers/usb/host/ehci-hub.c12
-rw-r--r--drivers/usb/host/ehci-mem.c31
-rw-r--r--drivers/usb/host/ehci-q.c68
-rw-r--r--drivers/usb/host/ehci-sched.c420
-rw-r--r--drivers/usb/host/ehci.h50
-rw-r--r--drivers/usb/host/hc_crisv10.c32
-rw-r--r--drivers/usb/host/ohci-dbg.c22
-rw-r--r--drivers/usb/host/ohci-hcd.c73
-rw-r--r--drivers/usb/host/ohci-hub.c27
-rw-r--r--drivers/usb/host/ohci-lh7a404.c45
-rw-r--r--drivers/usb/host/ohci-mem.c25
-rw-r--r--drivers/usb/host/ohci-omap.c61
-rw-r--r--drivers/usb/host/ohci-pci.c8
-rw-r--r--drivers/usb/host/ohci-pxa27x.c43
-rw-r--r--drivers/usb/host/ohci-q.c78
-rw-r--r--drivers/usb/host/ohci-sa1111.c30
-rw-r--r--drivers/usb/host/ohci.h25
-rw-r--r--drivers/usb/host/sl811-hcd.c345
-rw-r--r--drivers/usb/host/sl811.h18
-rw-r--r--drivers/usb/host/uhci-debug.c36
-rw-r--r--drivers/usb/host/uhci-hcd.c122
-rw-r--r--drivers/usb/host/uhci-hcd.h22
-rw-r--r--drivers/usb/image/mdc800.c45
-rw-r--r--drivers/usb/image/microtek.c4
-rw-r--r--drivers/usb/input/aiptek.c6
-rw-r--r--drivers/usb/input/ati_remote.c19
-rw-r--r--drivers/usb/input/hid-core.c8
-rw-r--r--drivers/usb/input/hid-ff.c4
-rw-r--r--drivers/usb/input/hid-input.c6
-rw-r--r--drivers/usb/input/hid-lgff.c4
-rw-r--r--drivers/usb/input/hiddev.c6
-rw-r--r--drivers/usb/input/kbtab.c6
-rw-r--r--drivers/usb/input/mtouchusb.c6
-rw-r--r--drivers/usb/input/powermate.c13
-rw-r--r--drivers/usb/input/touchkitusb.c6
-rw-r--r--drivers/usb/input/usbkbd.c6
-rw-r--r--drivers/usb/input/usbmouse.c6
-rw-r--r--drivers/usb/input/wacom.c6
-rw-r--r--drivers/usb/input/xpad.c10
-rw-r--r--drivers/usb/media/Makefile2
-rw-r--r--drivers/usb/media/dabusb.c9
-rw-r--r--drivers/usb/media/ibmcam.c25
-rw-r--r--drivers/usb/media/konicawc.c18
-rw-r--r--drivers/usb/media/ov511.c20
-rw-r--r--drivers/usb/media/se401.c22
-rw-r--r--drivers/usb/media/sn9c102.h13
-rw-r--r--drivers/usb/media/sn9c102_core.c119
-rw-r--r--drivers/usb/media/sn9c102_hv7131d.c271
-rw-r--r--drivers/usb/media/sn9c102_mi0343.c363
-rw-r--r--drivers/usb/media/sn9c102_pas106b.c45
-rw-r--r--drivers/usb/media/sn9c102_pas202bcb.c49
-rw-r--r--drivers/usb/media/sn9c102_sensor.h62
-rw-r--r--drivers/usb/media/sn9c102_tas5110c1b.c28
-rw-r--r--drivers/usb/media/sn9c102_tas5130d1b.c26
-rw-r--r--drivers/usb/media/stv680.c3
-rw-r--r--drivers/usb/media/ultracam.c16
-rw-r--r--drivers/usb/media/vicam.c6
-rw-r--r--drivers/usb/media/w9968cf.c8
-rw-r--r--drivers/usb/misc/Kconfig20
-rw-r--r--drivers/usb/misc/Makefile1
-rw-r--r--drivers/usb/misc/auerswald.c19
-rw-r--r--drivers/usb/misc/emi26.c8
-rw-r--r--drivers/usb/misc/emi62.c6
-rw-r--r--drivers/usb/misc/legousbtower.c11
-rw-r--r--drivers/usb/misc/tiglusb.c592
-rw-r--r--drivers/usb/misc/tiglusb.h43
-rw-r--r--drivers/usb/misc/usblcd.c15
-rw-r--r--drivers/usb/misc/usbtest.c25
-rw-r--r--drivers/usb/misc/uss720.c3
-rw-r--r--drivers/usb/net/catc.c5
-rw-r--r--drivers/usb/net/kaweth.c9
-rw-r--r--drivers/usb/net/usbnet.c2
-rw-r--r--drivers/usb/serial/Kconfig23
-rw-r--r--drivers/usb/serial/Makefile2
-rw-r--r--drivers/usb/serial/belkin_sa.c4
-rw-r--r--drivers/usb/serial/ftdi_sio.c135
-rw-r--r--drivers/usb/serial/ftdi_sio.h51
-rw-r--r--drivers/usb/serial/garmin_gps.c1541
-rw-r--r--drivers/usb/serial/io_edgeport.c4
-rw-r--r--drivers/usb/serial/io_ti.c4
-rw-r--r--drivers/usb/serial/keyspan.c12
-rw-r--r--drivers/usb/serial/keyspan_pda.c6
-rw-r--r--drivers/usb/serial/kobil_sct.c2
-rw-r--r--drivers/usb/serial/mct_u232.c157
-rw-r--r--drivers/usb/serial/ti_fw_3410.h885
-rw-r--r--drivers/usb/serial/ti_fw_5052.h885
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.c1842
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.h224
-rw-r--r--drivers/usb/serial/usb-serial.c29
-rw-r--r--drivers/usb/serial/usb-serial.h4
-rw-r--r--drivers/usb/serial/visor.c8
-rw-r--r--drivers/usb/serial/visor.h6
-rw-r--r--drivers/usb/storage/scsiglue.c2
-rw-r--r--drivers/usb/storage/transport.c16
-rw-r--r--drivers/usb/storage/unusual_devs.h112
-rw-r--r--drivers/usb/storage/usb.c20
-rw-r--r--drivers/usb/storage/usb.h1
-rw-r--r--drivers/usb/usb-skeleton.c2
-rw-r--r--drivers/video/amba-clcd.c18
-rw-r--r--drivers/video/console/mdacon.c15
-rw-r--r--drivers/video/console/sticore.c2
-rw-r--r--drivers/video/console/vgacon.c3
-rw-r--r--drivers/video/cyber2000fb.c2
-rw-r--r--drivers/video/hgafb.c2
-rw-r--r--drivers/video/i810/i810_accel.c43
-rw-r--r--drivers/video/matrox/matroxfb_base.c76
-rw-r--r--drivers/video/matrox/matroxfb_crtc2.c2
-rw-r--r--drivers/video/neofb.c5
-rw-r--r--drivers/video/pm2fb.c7
-rw-r--r--drivers/video/pxafb.c15
-rw-r--r--drivers/video/radeonfb.c24
-rw-r--r--drivers/video/riva/fbdev.c3
-rw-r--r--drivers/video/sa1100fb.c32
-rw-r--r--drivers/video/sstfb.c10
-rw-r--r--drivers/video/tdfxfb.c35
-rw-r--r--drivers/video/tridentfb.c27
-rw-r--r--drivers/video/vfb.c4
-rw-r--r--drivers/w1/dscore.c2
-rw-r--r--fs/Kconfig48
-rw-r--r--fs/Makefile2
-rw-r--r--fs/afs/types.h2
-rw-r--r--fs/afs/volume.c4
-rw-r--r--fs/attr.c7
-rw-r--r--fs/befs/debug.c2
-rw-r--r--fs/binfmt_aout.c21
-rw-r--r--fs/binfmt_elf.c52
-rw-r--r--fs/binfmt_em86.c2
-rw-r--r--fs/binfmt_script.c2
-rw-r--r--fs/bio.c2
-rw-r--r--fs/buffer.c8
-rw-r--r--fs/cifs/cifsfs.c4
-rw-r--r--fs/cifs/misc.c2
-rw-r--r--fs/coda/cnode.c2
-rw-r--r--fs/coda/dir.c60
-rw-r--r--fs/coda/file.c2
-rw-r--r--fs/coda/inode.c2
-rw-r--r--fs/coda/psdev.c18
-rw-r--r--fs/coda/sysctl.c56
-rw-r--r--fs/coda/upcall.c29
-rw-r--r--fs/dcache.c23
-rw-r--r--fs/debugfs/Makefile4
-rw-r--r--fs/debugfs/file.c262
-rw-r--r--fs/debugfs/inode.c328
-rw-r--r--fs/devpts/inode.c2
-rw-r--r--fs/direct-io.c13
-rw-r--r--fs/dquot.c8
-rw-r--r--fs/efs/super.c20
-rw-r--r--fs/exec.c8
-rw-r--r--fs/ext2/xattr.c24
-rw-r--r--fs/ext2/xattr.h7
-rw-r--r--fs/ext3/balloc.c7
-rw-r--r--fs/ext3/dir.c2
-rw-r--r--fs/ext3/file.c16
-rw-r--r--fs/ext3/ialloc.c1
-rw-r--r--fs/ext3/inode.c4
-rw-r--r--fs/ext3/namei.c9
-rw-r--r--fs/ext3/resize.c4
-rw-r--r--fs/ext3/super.c53
-rw-r--r--fs/ext3/xattr.c242
-rw-r--r--fs/ext3/xattr.h8
-rw-r--r--fs/fifo.c8
-rw-r--r--fs/file_table.c2
-rw-r--r--fs/fs-writeback.c16
-rw-r--r--fs/hugetlbfs/inode.c8
-rw-r--r--fs/inode.c9
-rw-r--r--fs/isofs/compress.c1
-rw-r--r--fs/jbd/checkpoint.c12
-rw-r--r--fs/jbd/commit.c20
-rw-r--r--fs/jbd/recovery.c2
-rw-r--r--fs/libfs.c1
-rw-r--r--fs/lockd/mon.c4
-rw-r--r--fs/lockd/svc.c16
-rw-r--r--fs/nfsd/nfs3xdr.c16
-rw-r--r--fs/nfsd/nfs4state.c3
-rw-r--r--fs/nls/nls_ascii.c12
-rw-r--r--fs/open.c3
-rw-r--r--fs/pipe.c188
-rw-r--r--fs/proc/array.c22
-rw-r--r--fs/proc/base.c2
-rw-r--r--fs/proc/generic.c5
-rw-r--r--fs/proc/kcore.c20
-rw-r--r--fs/proc/proc_misc.c64
-rw-r--r--fs/proc/proc_tty.c4
-rw-r--r--fs/quota.c2
-rw-r--r--fs/quota_v2.c2
-rw-r--r--fs/readdir.c4
-rw-r--r--fs/reiserfs/bitmap.c2
-rw-r--r--fs/reiserfs/dir.c4
-rw-r--r--fs/reiserfs/do_balan.c6
-rw-r--r--fs/reiserfs/file.c14
-rw-r--r--fs/reiserfs/fix_node.c7
-rw-r--r--fs/reiserfs/ibalance.c4
-rw-r--r--fs/reiserfs/inode.c18
-rw-r--r--fs/reiserfs/ioctl.c4
-rw-r--r--fs/reiserfs/item_ops.c10
-rw-r--r--fs/reiserfs/journal.c25
-rw-r--r--fs/reiserfs/prints.c75
-rw-r--r--fs/reiserfs/stree.c84
-rw-r--r--fs/reiserfs/super.c34
-rw-r--r--fs/reiserfs/xattr_acl.c4
-rw-r--r--fs/romfs/inode.c3
-rw-r--r--fs/select.c1
-rw-r--r--fs/smbfs/ChangeLog160
-rw-r--r--fs/smbfs/inode.c2
-rw-r--r--fs/smbfs/proc.c6
-rw-r--r--fs/smbfs/proto.h5
-rw-r--r--fs/smbfs/request.c6
-rw-r--r--fs/sysfs/bin.c27
-rw-r--r--fs/sysfs/dir.c2
-rw-r--r--fs/sysfs/mount.c17
-rw-r--r--fs/sysfs/sysfs.h3
-rw-r--r--fs/umsdos/Makefile13
-rw-r--r--fs/umsdos/README-WIP.txt114
-rw-r--r--fs/umsdos/dir.c810
-rw-r--r--fs/umsdos/emd.c660
-rw-r--r--fs/umsdos/inode.c483
-rw-r--r--fs/umsdos/ioctl.c446
-rw-r--r--fs/umsdos/mangle.c522
-rw-r--r--fs/umsdos/namei.c1124
-rw-r--r--fs/umsdos/rdir.c248
-rw-r--r--fs/umsdos/specs289
-rw-r--r--fs/xfs/linux-2.6/xfs_vfs.c2
-rw-r--r--include/acpi/processor.h1
-rw-r--r--include/asm-alpha/cputime.h6
-rw-r--r--include/asm-alpha/io_trivial.h4
-rw-r--r--include/asm-alpha/spinlock.h6
-rw-r--r--include/asm-arm/arch-iop3xx/entry-macro.S11
-rw-r--r--include/asm-arm/arch-iop3xx/hardware.h1
-rw-r--r--include/asm-arm/arch-iop3xx/iop321.h28
-rw-r--r--include/asm-arm/arch-iop3xx/iop331-irqs.h23
-rw-r--r--include/asm-arm/arch-iop3xx/iop331.h47
-rw-r--r--include/asm-arm/arch-iop3xx/iq31244.h12
-rw-r--r--include/asm-arm/arch-iop3xx/iq80321.h11
-rw-r--r--include/asm-arm/arch-iop3xx/iq80331.h15
-rw-r--r--include/asm-arm/arch-iop3xx/iq80332.h23
-rw-r--r--include/asm-arm/arch-iop3xx/timex.h2
-rw-r--r--include/asm-arm/arch-iop3xx/uncompress.h8
-rw-r--r--include/asm-arm/arch-iop3xx/vmalloc.h5
-rw-r--r--include/asm-arm/arch-ixp4xx/irqs.h14
-rw-r--r--include/asm-arm/arch-ixp4xx/ixp4xx-regs.h12
-rw-r--r--include/asm-arm/arch-ixp4xx/platform.h1
-rw-r--r--include/asm-arm/arch-pxa/corgi.h135
-rw-r--r--include/asm-arm/arch-pxa/memory.h2
-rw-r--r--include/asm-arm/arch-pxa/pxa-regs.h5
-rw-r--r--include/asm-arm/arch-s3c2410/entry-macro.S33
-rw-r--r--include/asm-arm/arch-s3c2410/timex.h16
-rw-r--r--include/asm-arm/cpu.h25
-rw-r--r--include/asm-arm/cputime.h6
-rw-r--r--include/asm-arm/dma-mapping.h19
-rw-r--r--include/asm-arm/hardware/amba_clcd.h5
-rw-r--r--include/asm-arm/hardware/scoop.h47
-rw-r--r--include/asm-arm/mach/irq.h14
-rw-r--r--include/asm-arm/pgtable.h2
-rw-r--r--include/asm-arm/processor.h1
-rw-r--r--include/asm-arm/smp.h58
-rw-r--r--include/asm-arm/spinlock.h8
-rw-r--r--include/asm-arm/tlb.h2
-rw-r--r--include/asm-arm26/cputime.h6
-rw-r--r--include/asm-arm26/ian_char.h79
-rw-r--r--include/asm-cris/cputime.h6
-rw-r--r--include/asm-generic/cputime.h64
-rw-r--r--include/asm-h8300/cputime.h6
-rw-r--r--include/asm-i386/bug.h2
-rw-r--r--include/asm-i386/cpufeature.h6
-rw-r--r--include/asm-i386/cputime.h6
-rw-r--r--include/asm-i386/mach-numaq/mach_apic.h10
-rw-r--r--include/asm-i386/processor.h8
-rw-r--r--include/asm-i386/smp.h2
-rw-r--r--include/asm-i386/spinlock.h16
-rw-r--r--include/asm-i386/string.h3
-rw-r--r--include/asm-i386/topology.h4
-rw-r--r--include/asm-ia64/cputime.h6
-rw-r--r--include/asm-ia64/io.h11
-rw-r--r--include/asm-ia64/machvec.h26
-rw-r--r--include/asm-ia64/machvec_hpzx1_swiotlb.h43
-rw-r--r--include/asm-ia64/machvec_init.h3
-rw-r--r--include/asm-ia64/machvec_sn2.h6
-rw-r--r--include/asm-ia64/mmzone.h11
-rw-r--r--include/asm-ia64/nodedata.h2
-rw-r--r--include/asm-ia64/numa.h2
-rw-r--r--include/asm-ia64/numnodes.h2
-rw-r--r--include/asm-ia64/pci.h14
-rw-r--r--include/asm-ia64/sn/sn_sal.h50
-rw-r--r--include/asm-ia64/spinlock.h8
-rw-r--r--include/asm-ia64/topology.h2
-rw-r--r--include/asm-m32r/cputime.h6
-rw-r--r--include/asm-m32r/hardirq.h12
-rw-r--r--include/asm-m32r/unistd.h241
-rw-r--r--include/asm-m68k/adb_mouse.h23
-rw-r--r--include/asm-m68k/atari_SCCserial.h67
-rw-r--r--include/asm-m68k/cputime.h6
-rw-r--r--include/asm-m68knommu/atomic.h74
-rw-r--r--include/asm-m68knommu/bitops.h263
-rw-r--r--include/asm-m68knommu/cputime.h6
-rw-r--r--include/asm-m68knommu/elf.h8
-rw-r--r--include/asm-m68knommu/keyboard.h1
-rw-r--r--include/asm-m68knommu/m5206sim.h12
-rw-r--r--include/asm-m68knommu/m5249sim.h90
-rw-r--r--include/asm-m68knommu/m527xsim.h20
-rw-r--r--include/asm-m68knommu/m528xsim.h9
-rw-r--r--include/asm-m68knommu/mcfcache.h125
-rw-r--r--include/asm-m68knommu/nap.h96
-rw-r--r--include/asm-m68knommu/page.h7
-rw-r--r--include/asm-m68knommu/processor.h2
-rw-r--r--include/asm-m68knommu/thread_info.h8
-rw-r--r--include/asm-mips/cputime.h6
-rw-r--r--include/asm-mips/sections.h1
-rw-r--r--include/asm-mips/sn/sn_private.h4
-rw-r--r--include/asm-mips/spinlock.h8
-rw-r--r--include/asm-parisc/cputime.h6
-rw-r--r--include/asm-parisc/spinlock.h5
-rw-r--r--include/asm-parisc/system.h3
-rw-r--r--include/asm-ppc/cputime.h6
-rw-r--r--include/asm-ppc/reg.h1
-rw-r--r--include/asm-ppc/spinlock.h8
-rw-r--r--include/asm-ppc64/bug.h2
-rw-r--r--include/asm-ppc64/cputime.h6
-rw-r--r--include/asm-ppc64/iommu.h13
-rw-r--r--include/asm-ppc64/machdep.h9
-rw-r--r--include/asm-ppc64/pci-bridge.h31
-rw-r--r--include/asm-ppc64/processor.h25
-rw-r--r--include/asm-ppc64/rtas.h2
-rw-r--r--include/asm-ppc64/spinlock.h6
-rw-r--r--include/asm-ppc64/system.h1
-rw-r--r--include/asm-ppc64/topology.h4
-rw-r--r--include/asm-ppc64/xics.h5
-rw-r--r--include/asm-s390/cputime.h168
-rw-r--r--include/asm-s390/hardirq.h1
-rw-r--r--include/asm-s390/lowcore.h47
-rw-r--r--include/asm-s390/pgtable.h8
-rw-r--r--include/asm-s390/spinlock.h8
-rw-r--r--include/asm-s390/system.h18
-rw-r--r--include/asm-s390/timer.h2
-rw-r--r--include/asm-sh/cputime.h6
-rw-r--r--include/asm-sh/mpc1211/keyboard.h2
-rw-r--r--include/asm-sh/spinlock.h8
-rw-r--r--include/asm-sh64/cputime.h6
-rw-r--r--include/asm-sh64/keyboard.h2
-rw-r--r--include/asm-sparc/cputime.h6
-rw-r--r--include/asm-sparc/spinlock.h23
-rw-r--r--include/asm-sparc64/cputime.h6
-rw-r--r--include/asm-sparc64/spinlock.h2
-rw-r--r--include/asm-um/apic.h4
-rw-r--r--include/asm-um/archparam-i386.h11
-rw-r--r--include/asm-um/archparam-ppc.h4
-rw-r--r--include/asm-um/archparam-x86_64.h62
-rw-r--r--include/asm-um/calling.h9
-rw-r--r--include/asm-um/cputime.h6
-rw-r--r--include/asm-um/dwarf2.h11
-rw-r--r--include/asm-um/elf.h5
-rw-r--r--include/asm-um/fixmap.h7
-rw-r--r--include/asm-um/module-x86_64.h30
-rw-r--r--include/asm-um/page.h106
-rw-r--r--include/asm-um/pda.h31
-rw-r--r--include/asm-um/pgalloc.h24
-rw-r--r--include/asm-um/pgtable-2level.h83
-rw-r--r--include/asm-um/pgtable-3level.h172
-rw-r--r--include/asm-um/pgtable.h238
-rw-r--r--include/asm-um/prctl.h6
-rw-r--r--include/asm-um/processor-i386.h3
-rw-r--r--include/asm-um/processor-x86_64.h33
-rw-r--r--include/asm-um/ptrace-generic.h6
-rw-r--r--include/asm-um/ptrace-x86_64.h75
-rw-r--r--include/asm-um/sigcontext-x86_64.h (renamed from arch/um/kernel/tt/include/ptrace-tt.h)14
-rw-r--r--include/asm-um/system-x86_64.h23
-rw-r--r--include/asm-um/thread_info.h2
-rw-r--r--include/asm-um/uaccess.h4
-rw-r--r--include/asm-um/vm-flags-i386.h14
-rw-r--r--include/asm-um/vm-flags-x86_64.h33
-rw-r--r--include/asm-v850/cputime.h6
-rw-r--r--include/asm-x86_64/cputime.h6
-rw-r--r--include/asm-x86_64/hw_irq.h2
-rw-r--r--include/asm-x86_64/ia32_unistd.h6
-rw-r--r--include/asm-x86_64/io.h6
-rw-r--r--include/asm-x86_64/msr.h3
-rw-r--r--include/asm-x86_64/numa.h5
-rw-r--r--include/asm-x86_64/proto.h2
-rw-r--r--include/asm-x86_64/smp.h2
-rw-r--r--include/asm-x86_64/spinlock.h16
-rw-r--r--include/asm-x86_64/topology.h4
-rw-r--r--include/asm-x86_64/uaccess.h2
-rw-r--r--include/asm-x86_64/unistd.h12
-rw-r--r--include/linux/ac97_codec.h22
-rw-r--r--include/linux/arcdevice.h1
-rw-r--r--include/linux/cdrom.h2
-rw-r--r--include/linux/coda.h4
-rw-r--r--include/linux/coda_proc.h21
-rw-r--r--include/linux/coda_psdev.h2
-rw-r--r--include/linux/console_struct.h3
-rw-r--r--include/linux/debugfs.h90
-rw-r--r--include/linux/device.h9
-rw-r--r--include/linux/efs_vh.h17
-rw-r--r--include/linux/ext3_fs.h10
-rw-r--r--include/linux/ext3_jbd.h2
-rw-r--r--include/linux/fs.h8
-rw-r--r--include/linux/generic_serial.h1
-rw-r--r--include/linux/gfp.h1
-rw-r--r--include/linux/hardirq.h30
-rw-r--r--include/linux/i2c-algo-sgi.h27
-rw-r--r--include/linux/i2c-algo-sibyte.h33
-rw-r--r--include/linux/i2c-id.h16
-rw-r--r--include/linux/ide.h22
-rw-r--r--include/linux/if_ether.h2
-rw-r--r--include/linux/if_tun.h5
-rw-r--r--include/linux/interrupt.h34
-rw-r--r--include/linux/ipv6.h3
-rw-r--r--include/linux/isicom.h173
-rw-r--r--include/linux/kernel_stat.h20
-rw-r--r--include/linux/kobject.h2
-rw-r--r--include/linux/list.h48
-rw-r--r--include/linux/lp.h6
-rw-r--r--include/linux/mca-legacy.h5
-rw-r--r--include/linux/miscdevice.h5
-rw-r--r--include/linux/mm.h15
-rw-r--r--include/linux/mmzone.h10
-rw-r--r--include/linux/module.h24
-rw-r--r--include/linux/nodemask.h9
-rw-r--r--include/linux/page-flags.h6
-rw-r--r--include/linux/parport_pc.h6
-rw-r--r--include/linux/pci.h37
-rw-r--r--include/linux/pci_ids.h13
-rw-r--r--include/linux/pipe_fs_i.h21
-rw-r--r--include/linux/pm.h103
-rw-r--r--include/linux/preempt.h19
-rw-r--r--include/linux/proc_fs.h5
-rw-r--r--include/linux/ptrace.h1
-rw-r--r--include/linux/raid/linear.h7
-rw-r--r--include/linux/reiserfs_acl.h2
-rw-r--r--include/linux/reiserfs_fs.h32
-rw-r--r--include/linux/reiserfs_fs_sb.h1
-rw-r--r--include/linux/sched.h73
-rw-r--r--include/linux/security.h25
-rw-r--r--include/linux/selection.h23
-rw-r--r--include/linux/slab.h1
-rw-r--r--include/linux/smp.h33
-rw-r--r--include/linux/smp_lock.h14
-rw-r--r--include/linux/spinlock.h26
-rw-r--r--include/linux/sysfs.h6
-rw-r--r--include/linux/tcp.h14
-rw-r--r--include/linux/topology.h16
-rw-r--r--include/linux/umsdos_fs.h182
-rw-r--r--include/linux/umsdos_fs.p100
-rw-r--r--include/linux/umsdos_fs_i.h58
-rw-r--r--include/linux/usb.h94
-rw-r--r--include/linux/usb_ch9.h27
-rw-r--r--include/linux/vmalloc.h1
-rw-r--r--include/net/route.h2
-rw-r--r--include/net/snmp.h14
-rw-r--r--include/net/tcp.h112
-rw-r--r--include/net/tcp_ecn.h37
-rw-r--r--include/pcmcia/bulkmem.h28
-rw-r--r--include/pcmcia/ciscode.h25
-rw-r--r--include/pcmcia/cisreg.h25
-rw-r--r--include/pcmcia/cistpl.h25
-rw-r--r--include/pcmcia/cs.h53
-rw-r--r--include/pcmcia/cs_types.h25
-rw-r--r--include/pcmcia/ds.h65
-rw-r--r--include/pcmcia/mem_op.h114
-rw-r--r--include/pcmcia/ss.h53
-rw-r--r--include/scsi/scsi_dbg.h3
-rw-r--r--include/scsi/scsi_device.h2
-rw-r--r--include/scsi/scsi_transport_fc.h22
-rw-r--r--include/sound/ac97_codec.h12
-rw-r--r--include/sound/ad1848.h9
-rw-r--r--include/sound/ainstr_fm.h2
-rw-r--r--include/sound/ainstr_gf1.h2
-rw-r--r--include/sound/ainstr_iw.h2
-rw-r--r--include/sound/ainstr_simple.h2
-rw-r--r--include/sound/ak4531_codec.h2
-rw-r--r--include/sound/asound.h5
-rw-r--r--include/sound/control.h9
-rw-r--r--include/sound/core.h9
-rw-r--r--include/sound/cs4231.h5
-rw-r--r--include/sound/cs8427.h3
-rw-r--r--include/sound/emu10k1.h19
-rw-r--r--include/sound/es1688.h3
-rw-r--r--include/sound/gus.h4
-rw-r--r--include/sound/info.h9
-rw-r--r--include/sound/pcm.h92
-rw-r--r--include/sound/rawmidi.h7
-rw-r--r--include/sound/sb.h4
-rw-r--r--include/sound/seq_midi_emul.h2
-rw-r--r--include/sound/snd_wavefront.h1
-rw-r--r--include/sound/soundfont.h1
-rw-r--r--include/sound/soundmem.h8
-rw-r--r--include/sound/trident.h4
-rw-r--r--include/sound/version.h4
-rw-r--r--include/sound/vx_core.h34
-rw-r--r--include/sound/ymfpci.h3
-rw-r--r--init/Kconfig17
-rw-r--r--init/initramfs.c11
-rw-r--r--init/main.c24
-rw-r--r--kernel/acct.c2
-rw-r--r--kernel/audit.c10
-rw-r--r--kernel/auditsc.c2
-rw-r--r--kernel/capability.c2
-rw-r--r--kernel/compat.c14
-rw-r--r--kernel/cpu.c7
-rw-r--r--kernel/dma.c2
-rw-r--r--kernel/exec_domain.c2
-rw-r--r--kernel/exit.c33
-rw-r--r--kernel/fork.c19
-rw-r--r--kernel/intermodule.c2
-rw-r--r--kernel/itimer.c57
-rw-r--r--kernel/kprobes.c2
-rw-r--r--kernel/ksysfs.c3
-rw-r--r--kernel/kthread.c25
-rw-r--r--kernel/module.c118
-rw-r--r--kernel/params.c191
-rw-r--r--kernel/pid.c2
-rw-r--r--kernel/posix-timers.c2
-rw-r--r--kernel/power/swsusp.c13
-rw-r--r--kernel/printk.c10
-rw-r--r--kernel/profile.c2
-rw-r--r--kernel/ptrace.c50
-rw-r--r--kernel/resource.c2
-rw-r--r--kernel/sched.c833
-rw-r--r--kernel/signal.c35
-rw-r--r--kernel/softirq.c5
-rw-r--r--kernel/spinlock.c235
-rw-r--r--kernel/stop_machine.c4
-rw-r--r--kernel/sys.c39
-rw-r--r--kernel/timer.c78
-rw-r--r--kernel/user.c2
-rw-r--r--kernel/workqueue.c4
-rw-r--r--lib/Kconfig.debug25
-rw-r--r--lib/kernel_lock.c142
-rw-r--r--lib/kobject_uevent.c2
-rw-r--r--lib/string.c2
-rw-r--r--mm/filemap.c30
-rw-r--r--mm/highmem.c2
-rw-r--r--mm/hugetlb.c7
-rw-r--r--mm/memory.c226
-rw-r--r--mm/mempolicy.c2
-rw-r--r--mm/mlock.c2
-rw-r--r--mm/mmap.c239
-rw-r--r--mm/mremap.c16
-rw-r--r--mm/msync.c29
-rw-r--r--mm/nommu.c2
-rw-r--r--mm/oom_kill.c5
-rw-r--r--mm/page_alloc.c229
-rw-r--r--mm/pdflush.c2
-rw-r--r--mm/readahead.c2
-rw-r--r--mm/rmap.c9
-rw-r--r--mm/shmem.c2
-rw-r--r--mm/slab.c2
-rw-r--r--mm/swapfile.c101
-rw-r--r--mm/thrash.c2
-rw-r--r--mm/truncate.c72
-rw-r--r--mm/vmalloc.c2
-rw-r--r--mm/vmscan.c9
-rw-r--r--net/core/sock.c9
-rw-r--r--net/ipv4/ip_sockglue.c2
-rw-r--r--net/ipv4/syncookies.c6
-rw-r--r--net/ipv4/tcp.c48
-rw-r--r--net/ipv4/tcp_diag.c4
-rw-r--r--net/ipv4/tcp_input.c240
-rw-r--r--net/ipv4/tcp_ipv4.c39
-rw-r--r--net/ipv4/tcp_minisocks.c12
-rw-r--r--net/ipv4/tcp_output.c63
-rw-r--r--net/ipv4/tcp_timer.c20
-rw-r--r--net/ipv6/ipv6_sockglue.c4
-rw-r--r--net/ipv6/tcp_ipv6.c28
-rw-r--r--net/irda/ircomm/ircomm_event.c2
-rw-r--r--net/irda/ircomm/ircomm_tty_attach.c2
-rw-r--r--net/sunrpc/svcsock.c2
-rw-r--r--net/sunrpc/xprt.c3
-rw-r--r--scripts/gen_initramfs_list.sh147
-rwxr-xr-xscripts/ver_linux2
-rw-r--r--security/Kconfig1
-rw-r--r--security/commoncap.c81
-rw-r--r--security/dummy.c70
-rw-r--r--security/selinux/hooks.c218
-rw-r--r--security/selinux/include/objsec.h6
-rw-r--r--sound/Kconfig2
-rw-r--r--sound/arm/sa11xx-uda1341.c4
-rw-r--r--sound/core/Kconfig2
-rw-r--r--sound/core/control.c239
-rw-r--r--sound/core/hwdep.c2
-rw-r--r--sound/core/info.c31
-rw-r--r--sound/core/init.c29
-rw-r--r--sound/core/ioctl32/hwdep32.c32
-rw-r--r--sound/core/ioctl32/ioctl32.c313
-rw-r--r--sound/core/ioctl32/ioctl32.h87
-rw-r--r--sound/core/ioctl32/pcm32.c333
-rw-r--r--sound/core/ioctl32/rawmidi32.c16
-rw-r--r--sound/core/ioctl32/seq32.c6
-rw-r--r--sound/core/ioctl32/timer32.c10
-rw-r--r--sound/core/memory.c16
-rw-r--r--sound/core/oss/mixer_oss.c40
-rw-r--r--sound/core/oss/mulaw.c1
-rw-r--r--sound/core/oss/pcm_oss.c21
-rw-r--r--sound/core/oss/pcm_plugin.c49
-rw-r--r--sound/core/oss/pcm_plugin.h1
-rw-r--r--sound/core/oss/rate.c2
-rw-r--r--sound/core/oss/route.c91
-rw-r--r--sound/core/pcm.c33
-rw-r--r--sound/core/pcm_lib.c99
-rw-r--r--sound/core/pcm_memory.c2
-rw-r--r--sound/core/pcm_native.c22
-rw-r--r--sound/core/rawmidi.c8
-rw-r--r--sound/core/seq/Makefile2
-rw-r--r--sound/core/seq/instr/ainstr_fm.c5
-rw-r--r--sound/core/seq/instr/ainstr_gf1.c5
-rw-r--r--sound/core/seq/instr/ainstr_iw.c5
-rw-r--r--sound/core/seq/instr/ainstr_simple.c5
-rw-r--r--sound/core/seq/oss/seq_oss_device.h1
-rw-r--r--sound/core/seq/oss/seq_oss_init.c39
-rw-r--r--sound/core/seq/oss/seq_oss_misc.c110
-rw-r--r--sound/core/seq/oss/seq_oss_readq.c3
-rw-r--r--sound/core/seq/oss/seq_oss_timer.c2
-rw-r--r--sound/core/seq/seq_clientmgr.c6
-rw-r--r--sound/core/seq/seq_clientmgr.h1
-rw-r--r--sound/core/seq/seq_instr.c18
-rw-r--r--sound/core/seq/seq_memory.c5
-rw-r--r--sound/core/seq/seq_memory.h1
-rw-r--r--sound/core/seq/seq_midi.c8
-rw-r--r--sound/core/seq/seq_midi_emul.c17
-rw-r--r--sound/core/seq/seq_midi_event.c6
-rw-r--r--sound/core/sgbuf.c6
-rw-r--r--sound/core/sound.c29
-rw-r--r--sound/core/timer.c12
-rw-r--r--sound/drivers/opl3/Makefile1
-rw-r--r--sound/drivers/opl3/opl3_drums.c8
-rw-r--r--sound/drivers/opl3/opl3_lib.c6
-rw-r--r--sound/drivers/opl3/opl3_midi.c2
-rw-r--r--sound/drivers/opl3/opl3_seq.c4
-rw-r--r--sound/drivers/opl4/opl4_lib.c13
-rw-r--r--sound/drivers/vx/vx_cmd.c2
-rw-r--r--sound/drivers/vx/vx_cmd.h2
-rw-r--r--sound/drivers/vx/vx_core.c116
-rw-r--r--sound/drivers/vx/vx_hwdep.c138
-rw-r--r--sound/drivers/vx/vx_pcm.c8
-rw-r--r--sound/drivers/vx/vx_uer.c2
-rw-r--r--sound/i2c/cs8427.c21
-rw-r--r--sound/i2c/i2c.c2
-rw-r--r--sound/i2c/l3/uda1341.c7
-rw-r--r--sound/i2c/other/ak4117.c2
-rw-r--r--sound/isa/ad1816a/ad1816a_lib.c10
-rw-r--r--sound/isa/ad1848/ad1848_lib.c30
-rw-r--r--sound/isa/als100.c2
-rw-r--r--sound/isa/cs423x/cs4231_lib.c42
-rw-r--r--sound/isa/cs423x/cs4236.c2
-rw-r--r--sound/isa/es1688/es1688_lib.c8
-rw-r--r--sound/isa/es18xx.c12
-rw-r--r--sound/isa/gus/gus_dma.c12
-rw-r--r--sound/isa/gus/gus_mem.c3
-rw-r--r--sound/isa/gus/gus_sample.c2
-rw-r--r--sound/isa/opl3sa2.c14
-rw-r--r--sound/isa/opti9xx/opti92x-ad1848.c12
-rw-r--r--sound/isa/sb/emu8000.c2
-rw-r--r--sound/isa/sb/emu8000_callback.c4
-rw-r--r--sound/isa/sb/emu8000_pcm.c3
-rw-r--r--sound/isa/sb/sb16_main.c10
-rw-r--r--sound/isa/sb/sb8_main.c4
-rw-r--r--sound/isa/sb/sb_common.c2
-rw-r--r--sound/isa/sscape.c26
-rw-r--r--sound/isa/wavefront/wavefront.c6
-rw-r--r--sound/isa/wavefront/wavefront_fx.c3
-rw-r--r--sound/isa/wavefront/wavefront_synth.c100
-rw-r--r--sound/oss/ac97.c13
-rw-r--r--sound/oss/ac97.h16
-rw-r--r--sound/oss/ac97_codec.c91
-rw-r--r--sound/oss/aci.c6
-rw-r--r--sound/oss/ad1816.c23
-rw-r--r--sound/oss/ad1848.c30
-rw-r--r--sound/oss/ad1889.c18
-rw-r--r--sound/oss/adlib_card.c2
-rw-r--r--sound/oss/aedsp16.c22
-rw-r--r--sound/oss/ali5455.c13
-rw-r--r--sound/oss/awe_wave.c14
-rw-r--r--sound/oss/btaudio.c18
-rw-r--r--sound/oss/cmpci.c31
-rw-r--r--sound/oss/cs4232.c23
-rw-r--r--sound/oss/cs4232.h3
-rw-r--r--sound/oss/cs4281/cs4281_wrapper-24.c4
-rw-r--r--sound/oss/cs4281/cs4281m.c44
-rw-r--r--sound/oss/cs4281/cs4281pm-24.c6
-rw-r--r--sound/oss/cs46xx.c64
-rw-r--r--sound/oss/cs46xx_wrapper-24.h2
-rw-r--r--sound/oss/cs46xxpm-24.h1
-rw-r--r--sound/oss/emu10k1/audio.c13
-rw-r--r--sound/oss/emu10k1/audio.h3
-rw-r--r--sound/oss/emu10k1/cardmi.c59
-rw-r--r--sound/oss/emu10k1/cardmi.h17
-rw-r--r--sound/oss/emu10k1/cardwi.c2
-rw-r--r--sound/oss/emu10k1/efxmgr.c4
-rw-r--r--sound/oss/emu10k1/hwaccess.c38
-rw-r--r--sound/oss/emu10k1/hwaccess.h2
-rw-r--r--sound/oss/emu10k1/main.c8
-rw-r--r--sound/oss/emu10k1/voicemgr.c3
-rw-r--r--sound/oss/es1370.c4
-rw-r--r--sound/oss/es1371.c6
-rw-r--r--sound/oss/forte.c4
-rw-r--r--sound/oss/gus_card.c16
-rw-r--r--sound/oss/gus_wave.c2
-rw-r--r--sound/oss/i810_audio.c122
-rw-r--r--sound/oss/mad16.c26
-rw-r--r--sound/oss/maestro.c18
-rw-r--r--sound/oss/maestro3.c26
-rw-r--r--sound/oss/maestro3.h4
-rw-r--r--sound/oss/maui.c4
-rw-r--r--sound/oss/mpu401.c4
-rw-r--r--sound/oss/msnd_pinnacle.c35
-rw-r--r--sound/oss/nm256_audio.c12
-rw-r--r--sound/oss/opl3.c2
-rw-r--r--sound/oss/opl3sa.c12
-rw-r--r--sound/oss/opl3sa2.c25
-rw-r--r--sound/oss/pas2_card.c32
-rw-r--r--sound/oss/pss.c32
-rw-r--r--sound/oss/rme96xx.c28
-rw-r--r--sound/oss/sb.h3
-rw-r--r--sound/oss/sb_card.c2
-rw-r--r--sound/oss/sb_common.c13
-rw-r--r--sound/oss/sb_ess.c2
-rw-r--r--sound/oss/sequencer.c2
-rw-r--r--sound/oss/sgalaxy.c10
-rw-r--r--sound/oss/sonicvibes.c2
-rw-r--r--sound/oss/sscape.c14
-rw-r--r--sound/oss/trident.c3
-rw-r--r--sound/oss/trix.c20
-rw-r--r--sound/oss/uart6850.c4
-rw-r--r--sound/oss/via82cxxx_audio.c220
-rw-r--r--sound/oss/vwsnd.c6
-rw-r--r--sound/oss/wavfront.c100
-rw-r--r--sound/oss/ymfpci.c9
-rw-r--r--sound/pci/Kconfig39
-rw-r--r--sound/pci/Makefile3
-rw-r--r--sound/pci/ac97/ac97_codec.c694
-rw-r--r--sound/pci/ac97/ac97_local.h27
-rw-r--r--sound/pci/ac97/ac97_patch.c168
-rw-r--r--sound/pci/ac97/ac97_pcm.c12
-rw-r--r--sound/pci/ac97/ac97_proc.c12
-rw-r--r--sound/pci/ac97/ak4531_codec.c34
-rw-r--r--sound/pci/ali5451/ali5451.c5
-rw-r--r--sound/pci/atiixp.c12
-rw-r--r--sound/pci/atiixp_modem.c12
-rw-r--r--sound/pci/au88x0/au88x0.c15
-rw-r--r--sound/pci/au88x0/au88x0.h6
-rw-r--r--sound/pci/au88x0/au88x0_core.c83
-rw-r--r--sound/pci/au88x0/au88x0_eq.c58
-rw-r--r--sound/pci/au88x0/au88x0_mixer.c4
-rw-r--r--sound/pci/au88x0/au88x0_pcm.c13
-rw-r--r--sound/pci/azt3328.c37
-rw-r--r--sound/pci/bt87x.c149
-rw-r--r--sound/pci/ca0106/Makefile3
-rw-r--r--sound/pci/ca0106/ca0106.h549
-rw-r--r--sound/pci/ca0106/ca0106_main.c1274
-rw-r--r--sound/pci/ca0106/ca0106_mixer.c635
-rw-r--r--sound/pci/ca0106/ca0106_proc.c437
-rw-r--r--sound/pci/cmipci.c25
-rw-r--r--sound/pci/cs4281.c10
-rw-r--r--sound/pci/cs46xx/cs46xx_lib.c85
-rw-r--r--sound/pci/cs46xx/cs46xx_lib.h40
-rw-r--r--sound/pci/cs46xx/dsp_spos.c24
-rw-r--r--sound/pci/cs46xx/dsp_spos_scb_lib.c12
-rw-r--r--sound/pci/cs46xx/imgs/cwcdma.h8
-rw-r--r--sound/pci/emu10k1/Makefile4
-rw-r--r--sound/pci/emu10k1/emu10k1.c32
-rw-r--r--sound/pci/emu10k1/emu10k1_main.c37
-rw-r--r--sound/pci/emu10k1/emu10k1_synth.c4
-rw-r--r--sound/pci/emu10k1/emu10k1x.c1644
-rw-r--r--sound/pci/emu10k1/emufx.c209
-rw-r--r--sound/pci/emu10k1/emumixer.c71
-rw-r--r--sound/pci/emu10k1/emupcm.c14
-rw-r--r--sound/pci/emu10k1/emuproc.c220
-rw-r--r--sound/pci/emu10k1/io.c25
-rw-r--r--sound/pci/emu10k1/irq.c4
-rw-r--r--sound/pci/emu10k1/timer.c99
-rw-r--r--sound/pci/ens1370.c31
-rw-r--r--sound/pci/es1938.c17
-rw-r--r--sound/pci/es1968.c46
-rw-r--r--sound/pci/fm801.c15
-rw-r--r--sound/pci/ice1712/ak4xxx.c3
-rw-r--r--sound/pci/ice1712/aureon.c510
-rw-r--r--sound/pci/ice1712/aureon.h10
-rw-r--r--sound/pci/ice1712/delta.c3
-rw-r--r--sound/pci/ice1712/ice1712.h1
-rw-r--r--sound/pci/ice1712/ice1724.c2
-rw-r--r--sound/pci/intel8x0.c87
-rw-r--r--sound/pci/intel8x0m.c8
-rw-r--r--sound/pci/korg1212/korg1212.c25
-rw-r--r--sound/pci/maestro3.c61
-rw-r--r--sound/pci/mixart/mixart.c16
-rw-r--r--sound/pci/mixart/mixart_core.c5
-rw-r--r--sound/pci/mixart/mixart_hwdep.c174
-rw-r--r--sound/pci/mixart/mixart_hwdep.h3
-rw-r--r--sound/pci/nm256/nm256.c18
-rw-r--r--sound/pci/rme32.c6
-rw-r--r--sound/pci/rme96.c10
-rw-r--r--sound/pci/rme9652/hdsp.c118
-rw-r--r--sound/pci/rme9652/rme9652.c2
-rw-r--r--sound/pci/sonicvibes.c7
-rw-r--r--sound/pci/trident/trident_main.c55
-rw-r--r--sound/pci/trident/trident_memory.c23
-rw-r--r--sound/pci/trident/trident_synth.c4
-rw-r--r--sound/pci/via82xx.c76
-rw-r--r--sound/pci/via82xx_modem.c1256
-rw-r--r--sound/pci/vx222/vx222.c11
-rw-r--r--sound/pci/vx222/vx222_ops.c26
-rw-r--r--sound/pci/ymfpci/ymfpci_main.c21
-rw-r--r--sound/pcmcia/pdaudiocf/pdaudiocf.c12
-rw-r--r--sound/pcmcia/pdaudiocf/pdaudiocf.h2
-rw-r--r--sound/pcmcia/pdaudiocf/pdaudiocf_core.c6
-rw-r--r--sound/pcmcia/vx/vx_entry.c89
-rw-r--r--sound/pcmcia/vx/vxp_ops.c28
-rw-r--r--sound/pcmcia/vx/vxpocket.c2
-rw-r--r--sound/pcmcia/vx/vxpocket.h1
-rw-r--r--sound/ppc/pmac.c17
-rw-r--r--sound/sparc/cs4231.c23
-rw-r--r--sound/synth/emux/emux.c8
-rw-r--r--sound/synth/emux/emux_seq.c3
-rw-r--r--sound/synth/emux/emux_synth.c10
-rw-r--r--sound/synth/emux/soundfont.c8
-rw-r--r--sound/usb/Kconfig2
-rw-r--r--sound/usb/usbaudio.c82
-rw-r--r--sound/usb/usbmidi.c14
-rw-r--r--sound/usb/usbmixer.c68
-rw-r--r--sound/usb/usx2y/Makefile2
-rw-r--r--sound/usb/usx2y/usX2Yhwdep.c18
-rw-r--r--sound/usb/usx2y/usbusx2y.c50
-rw-r--r--sound/usb/usx2y/usbusx2y.h47
-rw-r--r--sound/usb/usx2y/usbusx2yaudio.c808
-rw-r--r--sound/usb/usx2y/usx2y.h6
-rw-r--r--sound/usb/usx2y/usx2yhwdeppcm.c807
-rw-r--r--sound/usb/usx2y/usx2yhwdeppcm.h21
-rw-r--r--usr/Makefile48
-rw-r--r--usr/gen_init_cpio.c138
1935 files changed, 53611 insertions, 33940 deletions
diff --git a/CREDITS b/CREDITS
index 7a8edb5f7dd0..6147a4ea921e 100644
--- a/CREDITS
+++ b/CREDITS
@@ -2936,10 +2936,10 @@ S: 03600 Karkkila
S: Finland
N: Deepak Saxena
-E: deepak@csociety.purdue.edu
+E: dsaxena@plexity.net
D: I2O kernel layer (config, block, core, pci, net). I2O disk support for LILO
-D: XScale(IOP310) porting
-S: Tempe, Arizona
+D: XScale(IOP, IXP) porting and other random ARM bits
+S: Portland, OR
N: Eric Schenk
E: Eric.Schenk@dna.lth.se
@@ -3344,7 +3344,7 @@ D: Amiga Buddha and Catweasel chipset IDE
D: Atari Falcon chipset IDE
D: Amiga Gayle chipset IDE
D: mipsel NEC DDB Vrc-5074
-S: Holsbeeksesteenweg 166
+S: Emiel Vlieberghlaan 2A/21
S: B-3010 Kessel-Lo
S: Belgium
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX
index a8c19aa34767..72dc90f8f4a7 100644
--- a/Documentation/00-INDEX
+++ b/Documentation/00-INDEX
@@ -40,8 +40,6 @@ RCU/
- directory with info on RCU (read-copy update).
README.DAC960
- info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux.
-README.moxa
- - release notes for Moxa mutiport serial card.
SAK.txt
- info on Secure Attention Keys.
SubmittingDrivers
@@ -174,8 +172,6 @@ memory.txt
- info on typical Linux memory problems.
mips/
- directory with info about Linux on MIPS architecture.
-mkdev.cciss
- - script to make /dev entries for SMART controllers (see cciss.txt).
mono.txt
- how to execute Mono-based .NET binaries with the help of BINFMT_MISC.
moxa-smartio
diff --git a/Documentation/Changes b/Documentation/Changes
index 22ec89259ee9..c056d65b1a30 100644
--- a/Documentation/Changes
+++ b/Documentation/Changes
@@ -223,6 +223,11 @@ If you are running v0.1.17 or earlier, you should upgrade to
version v0.99.0 or higher. Running old versions may cause problems
with programs using shared memory.
+udev
+----
+udev is a userspace application for populating /dev dynamically with
+only entries for devices actually present. udev replaces devfs.
+
Networking
==========
@@ -368,6 +373,10 @@ Powertweak
----------
o <http://powertweak.sourceforge.net/>
+udev
+----
+o <http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html>
+
Networking
**********
@@ -399,4 +408,3 @@ NFS-Utils
---------
o <http://nfs.sourceforge.net/>
-
diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl
index ef66fdda129f..97a30ce957ad 100644
--- a/Documentation/DocBook/kernel-api.tmpl
+++ b/Documentation/DocBook/kernel-api.tmpl
@@ -105,6 +105,15 @@ KAO -->
</sect1>
</chapter>
+ <chapter id="debugfs">
+ <title>The debugfs filesystem</title>
+
+ <sect1><title>debugfs interface</title>
+!Efs/debugfs/inode.c
+!Efs/debugfs/file.c
+ </sect1>
+ </chapter>
+
<chapter id="vfs">
<title>The Linux VFS</title>
<sect1><title>The Directory Cache</title>
diff --git a/drivers/char/README.cycladesZ b/Documentation/README.cycladesZ
index 024a69443cc2..024a69443cc2 100644
--- a/drivers/char/README.cycladesZ
+++ b/Documentation/README.cycladesZ
diff --git a/Documentation/README.moxa b/Documentation/README.moxa
deleted file mode 100644
index 20600ad324b8..000000000000
--- 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/SAK.txt b/Documentation/SAK.txt
index 9be5a227b30e..b9019ca872ea 100644
--- a/Documentation/SAK.txt
+++ b/Documentation/SAK.txt
@@ -1,5 +1,5 @@
Linux 2.4.2 Secure Attention Key (SAK) handling
-18 March 2001, Andrew Morton <andrewm@uow.edu.au>
+18 March 2001, Andrew Morton <akpm@osdl.org>
An operating system's Secure Attention Key is a security tool which is
provided as protection against trojan password capturing programs. It
@@ -44,7 +44,7 @@ NOTES
/dev/console opened.
Unfortunately this includes a number of things which you don't
- actually want killed. This is because these appliccaitons are
+ actually want killed. This is because these applications are
incorrectly holding /dev/console open. Be sure to complain to your
Linux distributor about this!
diff --git a/Documentation/aoe/aoe.txt b/Documentation/aoe/aoe.txt
new file mode 100644
index 000000000000..ce84de72bf5f
--- /dev/null
+++ b/Documentation/aoe/aoe.txt
@@ -0,0 +1,75 @@
+The EtherDrive (R) HOWTO for users of 2.6 kernels is found at ...
+
+ http://www.coraid.com/support/linux/EtherDrive-2.6-HOWTO.html
+
+ It has many tips and hints!
+
+CREATING DEVICE NODES
+
+ Users of udev should find device nodes created automatically. Two
+ scripts are provided in Documentation/aoe as examples of static
+ device node creation for using the aoe driver.
+
+ rm -rf /dev/etherd
+ sh Documentation/aoe/mkdevs.sh /dev/etherd
+
+ ... or to make just one shelf's worth of block device nodes ...
+
+ sh Documentation/aoe/mkshelf.sh /dev/etherd 0
+
+ There is also an autoload script that shows how to edit
+ /etc/modprobe.conf to ensure that the aoe module is loaded when
+ necessary.
+
+USING DEVICE NODES
+
+ "cat /dev/etherd/err" blocks, waiting for error diagnostic output,
+ like any retransmitted packets.
+
+ "echo eth2 eth4 > /dev/etherd/interfaces" tells the aoe driver to
+ limit ATA over Ethernet traffic to eth2 and eth4. AoE traffic from
+ untrusted networks should be ignored as a matter of security.
+
+ "echo > /dev/etherd/discover" tells the driver to find out what AoE
+ devices are available.
+
+ The block devices are named like this:
+
+ e{shelf}.{slot}
+ e{shelf}.{slot}p{part}
+
+ ... so that "e0.2" is the third blade from the left (slot 2) in the
+ first shelf (shelf address zero). That's the whole disk. The first
+ partition on that disk would be "e0.2p1".
+
+USING SYSFS
+
+ Each aoe block device in /sys/block has the extra attributes of
+ state, mac, and netif. The state attribute is "up" when the device
+ is ready for I/O and "down" if detected but unusable. The
+ "down,closewait" state shows that the device is still open and
+ cannot come up again until it has been closed.
+
+ The mac attribute is the ethernet address of the remote AoE device.
+ The netif attribute is the network interface on the localhost
+ through which we are communicating with the remote AoE device.
+
+ There is a script in this directory that formats this information
+ in a convenient way.
+
+ root@makki linux# sh Documentation/aoe/status.sh
+ device mac netif state
+ e6.0 0010040010c6 eth0 up
+ e6.1 001004001067 eth0 up
+ e6.2 001004001068 eth0 up
+ e6.3 001004001065 eth0 up
+ e6.4 001004001066 eth0 up
+ e6.5 0010040010c7 eth0 up
+ e6.6 0010040010c8 eth0 up
+ e6.7 0010040010c9 eth0 up
+ e6.8 0010040010ca eth0 up
+ e6.9 0010040010cb eth0 up
+ e9.0 001004000020 eth1 up
+ e9.5 001004000025 eth1 up
+ e9.9 001004000029 eth1 up
+
diff --git a/Documentation/aoe/autoload.sh b/Documentation/aoe/autoload.sh
new file mode 100644
index 000000000000..78dad1334c6f
--- /dev/null
+++ b/Documentation/aoe/autoload.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+# set aoe to autoload by installing the
+# aliases in /etc/modprobe.conf
+
+f=/etc/modprobe.conf
+
+if test ! -r $f || test ! -w $f; then
+ echo "cannot configure $f for module autoloading" 1>&2
+ exit 1
+fi
+
+grep major-152 $f >/dev/null
+if [ $? = 1 ]; then
+ echo alias block-major-152 aoe >> $f
+ echo alias char-major-152 aoe >> $f
+fi
+
diff --git a/Documentation/aoe/mkdevs.sh b/Documentation/aoe/mkdevs.sh
new file mode 100644
index 000000000000..fa007699c636
--- /dev/null
+++ b/Documentation/aoe/mkdevs.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+n_shelves=10
+
+if test "$#" != "1"; then
+ echo "Usage: sh mkdevs.sh {dir}" 1>&2
+ exit 1
+fi
+dir=$1
+
+MAJOR=152
+
+echo "Creating AoE devnode files in $dir ..."
+
+set -e
+
+mkdir -p $dir
+
+# (Status info is in sysfs. See status.sh.)
+# rm -f $dir/stat
+# mknod -m 0400 $dir/stat c $MAJOR 1
+rm -f $dir/err
+mknod -m 0400 $dir/err c $MAJOR 2
+rm -f $dir/discover
+mknod -m 0200 $dir/discover c $MAJOR 3
+rm -f $dir/interfaces
+mknod -m 0200 $dir/interfaces c $MAJOR 4
+
+i=0
+while test $i -lt $n_shelves; do
+ sh -xc "sh `dirname $0`/mkshelf.sh $dir $i"
+ i=`expr $i + 1`
+done
diff --git a/Documentation/aoe/mkshelf.sh b/Documentation/aoe/mkshelf.sh
new file mode 100644
index 000000000000..ba8c9a8ec082
--- /dev/null
+++ b/Documentation/aoe/mkshelf.sh
@@ -0,0 +1,23 @@
+#! /bin/sh
+
+if test "$#" != "2"; then
+ echo "Usage: sh mkshelf.sh {dir} {shelfaddress}" 1>&2
+ exit 1
+fi
+dir=$1
+shelf=$2
+MAJOR=152
+
+set -e
+
+minor=`echo 10 \* $shelf \* 16 | bc`
+for slot in `seq 0 9`; do
+ for part in `seq 0 15`; do
+ name=e$shelf.$slot
+ test "$part" != "0" && name=${name}p$part
+ rm -f $dir/$name
+ mknod -m 0660 $dir/$name b $MAJOR $minor
+
+ minor=`expr $minor + 1`
+ done
+done
diff --git a/Documentation/aoe/status.sh b/Documentation/aoe/status.sh
new file mode 100644
index 000000000000..7b8c8a7f8bd6
--- /dev/null
+++ b/Documentation/aoe/status.sh
@@ -0,0 +1,15 @@
+# collate and present sysfs information about AoE storage
+
+set -e
+format="%8s\t%12s\t%8s\t%8s\n"
+
+printf "$format" device mac netif state
+
+for d in `ls -d /sys/block/etherd* | grep -v p`; do
+ dev=`echo "$d" | sed 's/.*!//'`
+ printf "$format" \
+ "$dev" \
+ "`cat \"$d/mac\"`" \
+ "`cat \"$d/netif\"`" \
+ "`cat \"$d/state\"`"
+done | sort
diff --git a/Documentation/cciss.txt b/Documentation/cciss.txt
index 7d8f67e5c837..74589c53a0c4 100644
--- a/Documentation/cciss.txt
+++ b/Documentation/cciss.txt
@@ -14,28 +14,29 @@ This driver is known to work with the following cards:
* SA 6400
* SA 6400 U320 Expansion Module
* SA 6i
- * SA 6422
- * SA V100
+ * SA P600
-If nodes are not already created in the /dev/cciss directory
+If nodes are not already created in the /dev/cciss directory, run as root:
-# mkdev.cciss [ctlrs]
-
-Where ctlrs is the number of controllers you have (defaults to 1 if not
-specified).
+# cd /dev
+# ./MAKEDEV cciss
Device Naming:
--------------
-You need some entries in /dev for the cciss device. The mkdev.cciss script
+You need some entries in /dev for the cciss device. The MAKEDEV script
can make device nodes for you automatically. Currently the device setup
is as follows:
Major numbers:
104 cciss0
105 cciss1
- 106 cciss2
- etc...
+ 106 cciss2
+ 105 cciss3
+ 108 cciss4
+ 109 cciss5
+ 110 cciss6
+ 111 cciss7
Minor numbers:
b7 b6 b5 b4 b3 b2 b1 b0
@@ -45,7 +46,7 @@ Minor numbers:
|
+-------------------- Logical Volume number
-The suggested device naming scheme is:
+The device naming scheme is:
/dev/cciss/c0d0 Controller 0, disk 0, whole device
/dev/cciss/c0d0p1 Controller 0, disk 0, partition 1
/dev/cciss/c0d0p2 Controller 0, disk 0, partition 2
@@ -117,16 +118,13 @@ from the adapter, informing the SCSI mid layer may not be necessary.
Note that the naming convention of the /proc filesystem entries
contains a number in addition to the driver name. (E.g. "cciss0"
-instead of just "cciss" which you might expect.) This is because
-of changes to the 2.4 kernel PCI interface related to PCI hot plug
-that imply the driver must register with the SCSI mid layer once per
-adapter instance rather than once per driver.
+instead of just "cciss" which you might expect.)
Note: ONLY sequential access devices and medium changers are presented
as SCSI devices to the SCSI mid layer by the cciss driver. Specifically,
physical SCSI disk drives are NOT presented to the SCSI mid layer. The
physical SCSI disk drives are controlled directly by the array controller
-hardware and it is important to prevent the OS from attempting to directly
+hardware and it is important to prevent the kernel from attempting to directly
access these devices too, as if the array controller were merely a SCSI
controller in the same way that we are allowing it to access SCSI tape drives.
diff --git a/Documentation/cdrom/packet-writing.txt b/Documentation/cdrom/packet-writing.txt
index d34fcbca9f27..b402e4c949da 100644
--- a/Documentation/cdrom/packet-writing.txt
+++ b/Documentation/cdrom/packet-writing.txt
@@ -43,6 +43,8 @@ shall implement "true random writes with 2KB granularity", which means
that it should be possible to put any filesystem with a block size >=
2KB on such a disc. For example, it should be possible to do:
+ # dvd+rw-format /dev/hdc (only needed if the disc has never
+ been formatted)
# mkudffs /dev/hdc
# mount /dev/hdc /cdrom -t udf -o rw,noatime
@@ -54,6 +56,7 @@ writes are not 32KB aligned.
Both problems can be solved by using the pktcdvd driver, which always
generates aligned writes.
+ # dvd+rw-format /dev/hdc
# pktsetup dev_name /dev/hdc
# mkudffs /dev/pktcdvd/dev_name
# mount /dev/pktcdvd/dev_name /cdrom -t udf -o rw,noatime
diff --git a/Documentation/early-userspace/README b/Documentation/early-userspace/README
index 7d5661284f25..270a88e22fb9 100644
--- a/Documentation/early-userspace/README
+++ b/Documentation/early-userspace/README
@@ -1,7 +1,7 @@
Early userspace support
=======================
-Last update: 2003-08-21
+Last update: 2004-12-20 tlh
"Early userspace" is a set of libraries and programs that provide
@@ -17,15 +17,66 @@ It consists of several major infrastructure components:
- initramfs, a chunk of code that unpacks the compressed cpio image
midway through the kernel boot process.
- klibc, a userspace C library, currently packaged separately, that is
- optimised for correctness and small size.
+ optimized for correctness and small size.
The cpio file format used by initramfs is the "newc" (aka "cpio -c")
-format, and is documented in the file "buffer-format.txt". If you
-want to generate your own cpio files directly instead of hacking on
-gen_init_cpio, you will need to short-circuit the build process in
-usr/ so that gen_init_cpio does not get run, then simply pop your own
-initramfs_data.cpio.gz file into place.
-
+format, and is documented in the file "buffer-format.txt". There are
+two ways to add an early userspace image: specify an existing cpio
+archive to be used as the image or have the kernel build process build
+the image from specifications.
+
+CPIO ARCHIVE method
+
+You can create a cpio archive that contains the early userspace image.
+Youre cpio archive should be specified in CONFIG_INITRAMFS_SOURCE and it
+will be used directly. Only a single cpio file may be specified in
+CONFIG_INITRAMFS_SOURCE and directory and file names are not allowed in
+combination with a cpio archive.
+
+IMAGE BUILDING method
+
+The kernel build process can also build an early userspace image from
+source parts rather than supplying a cpio archive. This method provides
+a way to create images with root-owned files even though the image was
+built by an unprivileged user.
+
+The image is specified as one or more sources in
+CONFIG_INITRAMFS_SOURCE. Sources can be either directories or files -
+cpio archives are *not* allowed when building from sources.
+
+A source directory will have it and all of it's contents packaged. The
+specified directory name will be mapped to '/'. When packaging a
+directory, limited user and group ID translation can be performed.
+INITRAMFS_ROOT_UID can be set to a user ID that needs to be mapped to
+user root (0). INITRAMFS_ROOT_GID can be set to a group ID that needs
+to be mapped to group root (0).
+
+A source file must be directives in the format required by the
+usr/gen_init_cpio utility (run 'usr/gen_init_cpio --help' to get the
+file format). The directives in the file will be passed directly to
+usr/gen_init_cpio.
+
+When a combination of directories and files are specified then the
+initramfs image will be an aggregate of all of them. In this way a user
+can create a 'root-image' directory and install all files into it.
+Because device-special files cannot be created by a unprivileged user,
+special files can be listed in a 'root-files' file. Both 'root-image'
+and 'root-files' can be listed in CONFIG_INITRAMFS_SOURCE and a complete
+early userspace image can be built by an unprivileged user.
+
+As a technical note, when directories and files are specified, the
+entire CONFIG_INITRAMFS_SOURCE is passed to
+scripts/gen_initramfs_list.sh. This means that CONFIG_INITRAMFS_SOURCE
+can really be interpreted as any legal argument to
+gen_initramfs_list.sh. If a directory is specified as an argument then
+the contents are scanned, uid/gid translation is performed, and
+usr/gen_init_cpio file directives are output. If a directory is
+specified as an arugemnt to scripts/gen_initramfs_list.sh then the
+contents of the file are simply copied to the output. All of the output
+directives from directory scanning and file contents copying are
+processed by usr/gen_init_cpio.
+
+See also 'scripts/gen_initramfs_list.sh -h'.
Where's this all leading?
=========================
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
new file mode 100644
index 000000000000..190819531324
--- /dev/null
+++ b/Documentation/feature-removal-schedule.txt
@@ -0,0 +1,34 @@
+The following is a list of files and features that are going to be
+removed in the kernel source tree. Every entry should contain what
+exactly is going away, why it is happening, and who is going to be doing
+the work. When the feature is removed from the kernel, it should also
+be removed from this file.
+
+---------------------------
+
+What: devfs
+When: July 2005
+Files: fs/devfs/*, include/linux/devfs_fs*.h and assorted devfs
+ function calls throughout the kernel tree
+Why: It has been unmaintained for a number of years, has unfixable
+ races, contains a naming policy within the kernel that is
+ against the LSB, and can be replaced by using udev.
+Who: Greg Kroah-Hartman <greg@kroah.com>
+
+---------------------------
+
+What: /proc/sys/cpu/*, sysctl and /proc/cpufreq interfaces to cpufreq (2.4.x interfaces)
+When: January 2005
+Files: drivers/cpufreq/: cpufreq_userspace.c, proc_intf.c
+Why: /proc/sys/cpu/* has been deprecated since inclusion of cpufreq into
+ the main kernel tree. It bloats /proc/ unnecessarily and doesn't work
+ well with the "governor"-based design of cpufreq.
+ /proc/cpufreq/* has also been deprecated for a long time and was only
+ meant for usage during 2.5. until the new sysfs-based interface became
+ ready. It has an inconsistent interface which doesn't work well with
+ userspace setting the frequency. The output from /proc/cpufreq/* can
+ be emulated using "cpufreq-info --proc" (cpufrequtils).
+ Both interfaces are superseded by the cpufreq interface in
+ /sys/devices/system/cpu/cpu%n/cpufreq/.
+Who: Dominik Brodowski <linux@brodo.de>
+
diff --git a/Documentation/filesystems/00-INDEX b/Documentation/filesystems/00-INDEX
index 6cf8082f605b..bcfbab899b37 100644
--- a/Documentation/filesystems/00-INDEX
+++ b/Documentation/filesystems/00-INDEX
@@ -42,8 +42,6 @@ udf.txt
- info and mount options for the UDF filesystem.
ufs.txt
- info on the ufs filesystem.
-umsdos.txt
- - info on the umsdos extensions to the msdos filesystem.
vfat.txt
- info on using the VFAT filesystem used in Windows NT and Windows 95
vfs.txt
diff --git a/Documentation/filesystems/sysfs-pci.txt b/Documentation/filesystems/sysfs-pci.txt
new file mode 100644
index 000000000000..e97d024eae77
--- /dev/null
+++ b/Documentation/filesystems/sysfs-pci.txt
@@ -0,0 +1,88 @@
+Accessing PCI device resources through sysfs
+
+sysfs, usually mounted at /sys, provides access to PCI resources on platforms
+that support it. For example, a given bus might look like this:
+
+ /sys/devices/pci0000:17
+ |-- 0000:17:00.0
+ | |-- class
+ | |-- config
+ | |-- detach_state
+ | |-- device
+ | |-- irq
+ | |-- local_cpus
+ | |-- resource
+ | |-- resource0
+ | |-- resource1
+ | |-- resource2
+ | |-- rom
+ | |-- subsystem_device
+ | |-- subsystem_vendor
+ | `-- vendor
+ `-- detach_state
+
+The topmost element describes the PCI domain and bus number. In this case,
+the domain number is 0000 and the bus number is 17 (both values are in hex).
+This bus contains a single function device in slot 0. The domain and bus
+numbers are reproduced for convenience. Under the device directory are several
+files, each with their own function.
+
+ file function
+ ---- --------
+ class PCI class (ascii, ro)
+ config PCI config space (binary, rw)
+ detach_state connection status (bool, rw)
+ device PCI device (ascii, ro)
+ irq IRQ number (ascii, ro)
+ local_cpus nearby CPU mask (cpumask, ro)
+ resource PCI resource host addresses (ascii, ro)
+ resource0..N PCI resource N, if present (binary, mmap)
+ rom PCI ROM resource, if present (binary, ro)
+ subsystem_device PCI subsystem device (ascii, ro)
+ subsystem_vendor PCI subsystem vendor (ascii, ro)
+ vendor PCI vendor (ascii, ro)
+
+ ro - read only file
+ rw - file is readable and writable
+ mmap - file is mmapable
+ ascii - file contains ascii text
+ binary - file contains binary data
+ cpumask - file contains a cpumask type
+
+The read only files are informational, writes to them will be ignored.
+Writable files can be used to perform actions on the device (e.g. changing
+config space, detaching a device). mmapable files are available via an
+mmap of the file at offset 0 and can be used to do actual device programming
+from userspace. Note that some platforms don't support mmapping of certain
+resources, so be sure to check the return value from any attempted mmap.
+
+Accessing legacy resources through sysfs
+
+Legacy I/O port and ISA memory resources are also provided in sysfs if the
+underlying platform supports them. They're located in the PCI class heirarchy,
+e.g.
+
+ /sys/class/pci_bus/0000:17/
+ |-- bridge -> ../../../devices/pci0000:17
+ |-- cpuaffinity
+ |-- legacy_io
+ `-- legacy_mem
+
+The legacy_io file is a read/write file that can be used by applications to
+do legacy port I/O. The application should open the file, seek to the desired
+port (e.g. 0x3e8) and do a read or a write of 1, 2 or 4 bytes. The legacy_mem
+file should be mmapped with an offset corresponding to the memory offset
+desired, e.g. 0xa0000 for the VGA frame buffer. The application can then
+simply dereference the returned pointer (after checking for errors of course)
+to access legacy memory space.
+
+Supporting PCI access on new platforms
+
+In order to support PCI resource mapping as described above, Linux platform
+code must define HAVE_PCI_MMAP and provide a pci_mmap_page_range function.
+Platforms are free to only support subsets of the mmap functionality, but
+useful return codes should be provided.
+
+Legacy resources are protected by the HAVE_PCI_LEGACY define. Platforms
+wishing to support legacy functionality should define it and provide
+pci_legacy_read, pci_legacy_write and pci_mmap_legacy_page_range functions. \ No newline at end of file
diff --git a/Documentation/filesystems/umsdos.txt b/Documentation/filesystems/umsdos.txt
deleted file mode 100644
index c253708f3466..000000000000
--- 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/chips/smsc47b397.txt b/Documentation/i2c/chips/smsc47b397.txt
new file mode 100644
index 000000000000..389edae7f8df
--- /dev/null
+++ b/Documentation/i2c/chips/smsc47b397.txt
@@ -0,0 +1,146 @@
+November 23, 2004
+
+The following specification describes the SMSC LPC47B397-NC sensor chip
+(for which there is no public datasheet available). This document was
+provided by Craig Kelly (In-Store Broadcast Network) and edited/corrected
+by Mark M. Hoffman <mhoffman@lightlink.com>.
+
+* * * * *
+
+Methods for detecting the HP SIO and reading the thermal data on a dc7100.
+
+The thermal information on the dc7100 is contained in the SIO Hardware Monitor
+(HWM). The information is accessed through an index/data pair. The index/data
+pair is located at the HWM Base Address + 0 and the HWM Base Address + 1. The
+HWM Base address can be obtained from Logical Device 8, registers 0x60 (MSB)
+and 0x61 (LSB). Currently we are using 0x480 for the HWM Base Address and
+0x480 and 0x481 for the index/data pair.
+
+Reading temperature information.
+The temperature information is located in the following registers:
+Temp1 0x25 (Currently, this reflects the CPU temp on all systems).
+Temp2 0x26
+Temp3 0x27
+Temp4 0x80
+
+Programming Example
+The following is an example of how to read the HWM temperature registers:
+MOV DX,480H
+MOV AX,25H
+OUT DX,AL
+MOV DX,481H
+IN AL,DX
+
+AL contains the data in hex, the temperature in Celsius is the decimal
+equivalent.
+
+Ex: If AL contains 0x2A, the temperature is 42 degrees C.
+
+Reading tach information.
+The fan speed information is located in the following registers:
+ LSB MSB
+Tach1 0x28 0x29 (Currently, this reflects the CPU
+ fan speed on all systems).
+Tach2 0x2A 0x2B
+Tach3 0x2C 0x2D
+Tach4 0x2E 0x2F
+
+Important!!!
+Reading the tach LSB locks the tach MSB.
+The LSB Must be read first.
+
+How to convert the tach reading to RPM.
+The tach reading (TCount) is given by: (Tach MSB * 256) + (Tach LSB)
+The SIO counts the number of 90kHz (11.111us) pulses per revolution.
+RPM = 60/(TCount * 11.111us)
+
+Example:
+Reg 0x28 = 0x9B
+Reg 0x29 = 0x08
+
+TCount = 0x89B = 2203
+
+RPM = 60 / (2203 * 11.11111 E-6) = 2451 RPM
+
+Obtaining the SIO version.
+
+CONFIGURATION SEQUENCE
+To program the configuration registers, the following sequence must be followed:
+1. Enter Configuration Mode
+2. Configure the Configuration Registers
+3. Exit Configuration Mode.
+
+Enter Configuration Mode
+To place the chip into the Configuration State The config key (0x55) is written
+to the CONFIG PORT (0x2E).
+
+Configuration Mode
+In configuration mode, the INDEX PORT is located at the CONFIG PORT address and
+the DATA PORT is at INDEX PORT address + 1.
+
+The desired configuration registers are accessed in two steps:
+a. Write the index of the Logical Device Number Configuration Register
+ (i.e., 0x07) to the INDEX PORT and then write the number of the
+ desired logical device to the DATA PORT.
+
+b. Write the address of the desired configuration register within the
+ logical device to the INDEX PORT and then write or read the config-
+ uration register through the DATA PORT.
+
+Note: If accessing the Global Configuration Registers, step (a) is not required.
+
+Exit Configuration Mode
+To exit the Configuration State the write 0xAA to the CONFIG PORT (0x2E).
+The chip returns to the RUN State. (This is important).
+
+Programming Example
+The following is an example of how to read the SIO Device ID located at 0x20
+
+; ENTER CONFIGURATION MODE
+MOV DX,02EH
+MOV AX,055H
+OUT DX,AL
+; GLOBAL CONFIGURATION REGISTER
+MOV DX,02EH
+MOV AL,20H
+OUT DX,AL
+; READ THE DATA
+MOV DX,02FH
+IN AL,DX
+; EXIT CONFIGURATION MODE
+MOV DX,02EH
+MOV AX,0AAH
+OUT DX,AL
+
+The registers of interest for identifying the SIO on the dc7100 are Device ID
+(0x20) and Device Rev (0x21).
+
+The Device ID will read 0X6F
+The Device Rev currently reads 0x01
+
+Obtaining the HWM Base Address.
+The following is an example of how to read the HWM Base Address located in
+Logical Device 8.
+
+; ENTER CONFIGURATION MODE
+MOV DX,02EH
+MOV AX,055H
+OUT DX,AL
+; CONFIGURE REGISTER CRE0,
+; LOGICAL DEVICE 8
+MOV DX,02EH
+MOV AL,07H
+OUT DX,AL ;Point to LD# Config Reg
+MOV DX,02FH
+MOV AL, 08H
+OUT DX,AL;Point to Logical Device 8
+;
+MOV DX,02EH
+MOV AL,60H
+OUT DX,AL ; Point to HWM Base Addr MSB
+MOV DX,02FH
+IN AL,DX ; Get MSB of HWM Base Addr
+; EXIT CONFIGURATION MODE
+MOV DX,02EH
+MOV AX,0AAH
+OUT DX,AL
diff --git a/Documentation/i2c/i2c-old-porting b/Documentation/i2c/i2c-old-porting
deleted file mode 100644
index 158dfe550a3f..000000000000
--- 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 <fdavis@si.rr.com>
--------------------------------------------------------
-
-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 <linux/i2c-old.h> --> #include <linux/i2c.h>
-
-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 <asm/io.h>
- #include <asm/uaccess.h>
-
--#include <linux/i2c-old.h>
-+#include <linux/i2c.h>
- #include <linux/videodev.h>
- #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-stub b/Documentation/i2c/i2c-stub
index 2626ba926e4d..d6dcb138abf5 100644
--- a/Documentation/i2c/i2c-stub
+++ b/Documentation/i2c/i2c-stub
@@ -2,14 +2,19 @@ MODULE: i2c-stub
DESCRIPTION:
-This module is a very simple fake I2C/SMBus driver. It implements three
-types of SMBus commands: write quick, (r/w) byte data, and (r/w) word data.
+This module is a very simple fake I2C/SMBus driver. It implements four
+types of SMBus commands: write quick, (r/w) byte, (r/w) byte data, and
+(r/w) word data.
No hardware is needed nor associated with this module. It will accept write
quick commands to all addresses; it will respond to the other commands (also
to all addresses) by reading from or writing to an array in memory. It will
also spam the kernel logs for every command it handles.
+A pointer register with auto-increment is implemented for all byte
+operations. This allows for continuous byte reads like those supported by
+EEPROMs, among others.
+
The typical use-case is like this:
1. load this module
2. use i2cset (from lm_sensors project) to pre-load some data
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 46f59e879f54..b6a0c0fc50df 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -673,7 +673,11 @@ running once the system is up.
mac53c9x= [HW,SCSI]
Format: <num_esps>,<disconnect>,<nosync>,<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>
-
+
+ machvec= [IA64]
+ Force the use of a particular machine-vector (machvec) in a generic
+ kernel. Example: machvec=hpzx1_swiotlb
+
mad16= [HW,OSS]
Format: <io>,<irq>,<dma>,<dma16>,<mpu_io>,<mpu_irq>,<joystick>
@@ -1342,8 +1346,12 @@ running once the system is up.
thash_entries= [KNL,NET]
Set number of hash buckets for TCP connection
- tipar= [HW]
- See header of drivers/char/tipar.c.
+ tipar.timeout= [HW,PPT]
+ Set communications timeout in tenths of a second
+ (default 15).
+
+ tipar.delay= [HW,PPT]
+ Set inter-bit delay in microseconds (default 10).
tiusb= [HW,USB] Texas Instruments' USB GraphLink (aka SilverLink)
Format: <timeout>
diff --git a/Documentation/mkdev.cciss b/Documentation/mkdev.cciss
deleted file mode 100644
index fbbaf30a7175..000000000000
--- 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/networking/e100.txt b/Documentation/networking/e100.txt
index e4b6c7afc682..df7246947858 100644
--- a/Documentation/networking/e100.txt
+++ b/Documentation/networking/e100.txt
@@ -1,7 +1,7 @@
Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters
==============================================================
-September 13, 2004
+November 17, 2004
Contents
@@ -18,9 +18,7 @@ In This Release
===============
This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of
-Adapters, version 3.2.x. This driver includes support for Itanium(TM)2 and
-EM64T systems.
-
+Adapters, version 3.3.x. This driver supports 2.4.x and 2.6.x kernels.
Identifying Your Adapter
========================
@@ -119,12 +117,6 @@ Additional Configurations
The latest release of ethtool can be found at:
http://sf.net/projects/gkernel.
- After ethtool is installed, ethtool-copy.h must be copied and renamed to
- ethtool.h in your kernel source tree at <linux_kernel_src>/include/linux.
- Backup the original ethtool.h as needed before copying. The driver then
- must be recompiled in order to take advantage of the latest ethtool
- features.
-
NOTE: This driver uses mii support from the kernel. As a result, when
there is no link, ethtool will report speed/duplex to be 10/half.
diff --git a/Documentation/networking/e1000.txt b/Documentation/networking/e1000.txt
index 794c9254289f..2ebd4058d46d 100644
--- a/Documentation/networking/e1000.txt
+++ b/Documentation/networking/e1000.txt
@@ -1,7 +1,7 @@
Linux* Base Driver for the Intel(R) PRO/1000 Family of Adapters
===============================================================
-September 13, 2004
+November 17, 2004
Contents
@@ -20,8 +20,7 @@ In This Release
===============
This file describes the Linux* Base Driver for the Intel(R) PRO/1000 Family
-of Adapters, version 5.x.x. This driver includes support for Itanium(TM)2
-and EM64T systems.
+of Adapters, version 5.x.x.
For questions related to hardware requirements, refer to the documentation
supplied with your Intel PRO/1000 adapter. All hardware requirements listed
@@ -145,9 +144,11 @@ Valid Range: 80-256 for 82542 and 82543-based adapters
Default Value: 256
This value is the number of receive descriptors allocated by the driver.
Increasing this value allows the driver to buffer more incoming packets.
- Each descriptor is 16 bytes. A receive buffer is also allocated for each
- descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending
- on the MTU setting. The maximum MTU size is 16110.
+ Each descriptor is 16 bytes. A receive buffer is allocated for each
+ descriptor and can either be 2048 or 4096 bytes long, depending on the MTU
+
+ setting. An incoming packet can span one or more receive descriptors.
+ The maximum MTU size is 16110.
NOTE: MTU designates the frame size. It only needs to be set for Jumbo
Frames.
@@ -251,17 +252,16 @@ For copper-based boards, the keywords interact as follows:
also be forced.
The AutoNeg parameter is used when more control is required over the auto-
-negotiation process. When this parameter is used, Speed and Duplex must not
-be specified. This parameter is a bitmap that specifies which speed and
-duplex settings are advertised to the link partner.
+negotiation process. When this parameter is used, Speed and Duplex parameters
+must not be specified. The following table describes supported values for the
+AutoNeg parameter:
-Bit 7 6 5 4 3 2 1 0
-Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10
-Duplex Full Full Half Full Half
+Speed (Mbps) 1000 100 100 10 10
+Duplex Full Full Half Full Half
+Value (in base 16) 0x20 0x08 0x04 0x02 0x01
-For example to limit the negotiated speed/duplex on the interface to 10 Mbps
-Half or Full duplex, set AutoNeg to 0x02:
- insmod e1000 AutoNeg=0x02
+Example: insmod e1000 AutoNeg=0x03, loads e1000 and specifies (10 full duplex,
+10 half duplex) for negotiation with the peer.
Note that setting AutoNeg does not guarantee that the board will link at the
highest specified speed or duplex mode, but the board will link at the
@@ -333,11 +333,7 @@ Additional Configurations
version 1.6 or later is required for this functionality.
The latest release of ethtool can be found from
- http://sf.net/projects/gkernel. After ethtool is installed,
- ethtool-copy.h must be copied and renamed to ethtool.h in your kernel
- source tree at <linux_kernel_src>/include/linux. Backup the original
- ethtool.h as needed before copying. The driver then must be recompiled
- in order to take advantage of the latest ethtool features.
+ http://sf.net/projects/gkernel.
NOTE: Ethtool 1.6 only supports a limited set of ethtool options. Support
for a more complete ethtool feature set can be enabled by upgrading
diff --git a/Documentation/pm.txt b/Documentation/pm.txt
index 008ac7d2d6d3..6b9aecc4cd5f 100644
--- a/Documentation/pm.txt
+++ b/Documentation/pm.txt
@@ -91,54 +91,6 @@ void pm_unregister(struct pm_dev *dev);
void pm_unregister_all(pm_callback cback);
/*
- * Device idle/use detection
- *
- * In general, drivers for all devices should call "pm_access"
- * before accessing the hardware (ie. before reading or modifying
- * a hardware register). Request or packet-driven drivers should
- * additionally call "pm_dev_idle" when a device is not being used.
- *
- * Examples:
- * 1) A keyboard driver would call pm_access whenever a key is pressed
- * 2) A network driver would call pm_access before submitting
- * a packet for transmit or receive and pm_dev_idle when its
- * transfer and receive queues are empty.
- * 3) A VGA driver would call pm_access before it accesses any
- * of the video controller registers
- *
- * Ultimately, the PM policy manager uses the access and idle
- * information to decide when to suspend individual devices
- * or when to suspend the entire system
- */
-
-/*
- * Description: Update device access time and wake up device, if necessary
- *
- * Parameters:
- * dev - PM device previously returned from pm_register
- *
- * Details: If called from an interrupt handler pm_access updates
- * access time but should never need to wake up the device
- * (if device is generating interrupts, it should be awake
- * already) This is important as we can not wake up
- * devices from an interrupt handler.
- */
-void pm_access(struct pm_dev *dev);
-
-/*
- * Description: Identify device as currently being idle
- *
- * Parameters:
- * dev - PM device previously returned from pm_register
- *
- * Details: A call to pm_dev_idle might signal to the policy manager
- * to put a device to sleep. If a new device request arrives
- * between the call to pm_dev_idle and the pm_callback
- * callback, the driver should fail the pm_callback request.
- */
-void pm_dev_idle(struct pm_dev *dev);
-
-/*
* Power management request callback
*
* Parameters:
diff --git a/Documentation/power/devices.txt b/Documentation/power/devices.txt
index 435ea29bb676..2b2a3a6f96e2 100644
--- a/Documentation/power/devices.txt
+++ b/Documentation/power/devices.txt
@@ -118,6 +118,94 @@ will fail.
There is currently no way to know what states a device or driver
supports a priori. This will change in the future.
+pm_message_t meaning
+
+pm_message_t has two fields. event ("major"), and flags. If driver
+does not know event code, it aborts the request, returning error. Some
+drivers may need to deal with special cases based on the actual type
+of suspend operation being done at the system level. This is why
+there are flags.
+
+Event codes are:
+
+ON -- no need to do anything except special cases like broken
+HW.
+
+# NOTIFICATION -- pretty much same as ON?
+
+FREEZE -- stop DMA and interrupts, and be prepared to reinit HW from
+scratch. That probably means stop accepting upstream requests, the
+actual policy of what to do with them beeing specific to a given
+driver. It's acceptable for a network driver to just drop packets
+while a block driver is expected to block the queue so no request is
+lost. (Use IDE as an example on how to do that). FREEZE requires no
+power state change, and it's expected for drivers to be able to
+quickly transition back to operating state.
+
+SUSPEND -- like FREEZE, but also put hardware into low-power state. If
+there's need to distinguish several levels of sleep, additional flag
+is probably best way to do that.
+
+Transitions are only from a resumed state to a suspended state, never
+between 2 suspended states. (ON -> FREEZE or ON -> SUSPEND can happen,
+FREEZE -> SUSPEND or SUSPEND -> FREEZE can not).
+
+All events are:
+
+[NOTE NOTE NOTE: If you are driver author, you should not care; you
+should only look at event, and ignore flags.]
+
+#Prepare for suspend -- userland is still running but we are going to
+#enter suspend state. This gives drivers chance to load firmware from
+#disk and store it in memory, or do other activities taht require
+#operating userland, ability to kmalloc GFP_KERNEL, etc... All of these
+#are forbiden once the suspend dance is started.. event = ON, flags =
+#PREPARE_TO_SUSPEND
+
+Apm standby -- prepare for APM event. Quiesce devices to make life
+easier for APM BIOS. event = FREEZE, flags = APM_STANDBY
+
+Apm suspend -- same as APM_STANDBY, but it we should probably avoid
+spinning down disks. event = FREEZE, flags = APM_SUSPEND
+
+System halt, reboot -- quiesce devices to make life easier for BIOS. event
+= FREEZE, flags = SYSTEM_HALT or SYSTEM_REBOOT
+
+System shutdown -- at least disks need to be spun down, or data may be
+lost. Quiesce devices, just to make life easier for BIOS. event =
+FREEZE, flags = SYSTEM_SHUTDOWN
+
+Kexec -- turn off DMAs and put hardware into some state where new
+kernel can take over. event = FREEZE, flags = KEXEC
+
+Powerdown at end of swsusp -- very similar to SYSTEM_SHUTDOWN, except wake
+may need to be enabled on some devices. This actually has at least 3
+subtypes, system can reboot, enter S4 and enter S5 at the end of
+swsusp. event = FREEZE, flags = SWSUSP and one of SYSTEM_REBOOT,
+SYSTEM_SHUTDOWN, SYSTEM_S4
+
+Suspend to ram -- put devices into low power state. event = SUSPEND,
+flags = SUSPEND_TO_RAM
+
+Freeze for swsusp snapshot -- stop DMA and interrupts. No need to put
+devices into low power mode, but you must be able to reinitialize
+device from scratch in resume method. This has two flavors, its done
+once on suspending kernel, once on resuming kernel. event = FREEZE,
+flags = DURING_SUSPEND or DURING_RESUME
+
+Device detach requested from /sys -- deinitialize device; proably same as
+SYSTEM_SHUTDOWN, I do not understand this one too much. probably event
+= FREEZE, flags = DEV_DETACH.
+
+#These are not really events sent:
+#
+#System fully on -- device is working normally; this is probably never
+#passed to suspend() method... event = ON, flags = 0
+#
+#Ready after resume -- userland is now running, again. Time to free any
+#memory you ate during prepare to suspend... event = ON, flags =
+#READY_AFTER_RESUME
+#
Driver Detach Power Management
diff --git a/Documentation/riscom8.txt b/Documentation/riscom8.txt
index a51dafefff43..14f61fdad7ca 100644
--- a/Documentation/riscom8.txt
+++ b/Documentation/riscom8.txt
@@ -1,5 +1,12 @@
+* NOTE - this is an unmaintained driver. The original author cannot be located.
+
+SDL Communications is now SBS Technologies, and does not have any
+information on these ancient ISA cards on their website.
+
+James Nelson <james4765@gmail.com> - 12-12-2004
+
This is the README for RISCom/8 multi-port serial driver
- (C) 1994-1996 D.Gorodchanin (pgmdsg@ibi.com)
+ (C) 1994-1996 D.Gorodchanin
See file LICENSE for terms and conditions.
NOTE: English is not my native language.
@@ -10,47 +17,20 @@ Misc. notes for RISCom/8 serial driver, in no particular order :)
1) This driver can support up to 4 boards at time.
Use string "riscom8=0xXXX,0xXXX,0xXXX,0xXXX" at LILO prompt, for
setting I/O base addresses for boards. If you compile driver
- as module use insmod options "iobase=0xXXX iobase1=0xXXX iobase2=..."
+ as module use modprobe options "iobase=0xXXX iobase1=0xXXX iobase2=..."
2) The driver partially supports famous 'setserial' program, you can use almost
any of its options, excluding port & irq settings.
3) There are some misc. defines at the beginning of riscom8.c, please read the
comments and try to change some of them in case of problems.
-
+
4) I consider the current state of the driver as BETA.
- If you REALLY think you found a bug, send me e-mail, I hope I'll
- fix it. For any other problems please ask support@sdlcomm.com.
5) SDL Communications WWW page is http://www.sdlcomm.com.
-6) You can use the script at the end of this file to create RISCom/8 devices.
+6) You can use the MAKEDEV program to create RISCom/8 /dev/ttyL* entries.
7) Minor numbers for first board are 0-7, for second 8-15, etc.
22 Apr 1996.
-
--------------------------------cut here-------------------------------------
-#!/bin/bash
-NORMAL_DEVICE=/dev/ttyL
-CALLOUT_DEVICE=/dev/cuL
-NORMAL_MAJOR=48
-CALLOUT_MAJOR=49
-
-echo "Creating devices... "
-for i in 0 1 2 3; do
- echo "Board No $[$i+1]"
- for j in 0 1 2 3 4 5 6 7; do
- k=$[ 8 * $i + $j]
- rm -f $NORMAL_DEVICE$k
- mknod $NORMAL_DEVICE$k c $NORMAL_MAJOR $k
- chmod a+rw $NORMAL_DEVICE$k
- echo -n $NORMAL_DEVICE$k" "
- rm -f $CALLOUT_DEVICE$k
- mknod $CALLOUT_DEVICE$k c $CALLOUT_MAJOR $k
- chmod a+rw $CALLOUT_DEVICE$k
- echo $CALLOUT_DEVICE$k
- done
-done
-echo "done."
--------------------------------cut here-------------------------------------
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index 35b4331217b2..c2ea934104ed 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -252,9 +252,18 @@ Module parameters
Module for video cards based on Bt87x chips.
digital_rate - Override the default digital rate (Hz)
+ load_all - Load the driver even if the card model isn't known
Module supports up to 8 cards.
+ Module snd-ca0106
+ -----------------
+
+ Module for Creative Audigy LS and SB Live 24bit
+
+ Module supports up to 8 cards.
+
+
Module snd-cmi8330
------------------
@@ -426,6 +435,13 @@ Module parameters
* Creative Card 5.1 (c) 2003 [0x3fc3/0x7cff]
* Creative Card all ins and outs [0x3fff/0x7fff]
+ Module snd-emu10k1x
+ -------------------
+
+ Module for Creative Emu10k1X (SB Live Dell OEM version)
+
+ Module supports up to 8 cards.
+
Module snd-ens1370
------------------
@@ -595,8 +611,11 @@ Module parameters
Module supports up to 8 cards.
- Note: you need to load the firmware via hdsploader utility included
- in alsa-tools and alsa-firmware packages.
+ Note: The firmware data can be automatically loaded via hotplug
+ when CONFIG_FW_LOADER is set. Otherwise, you need to load
+ the firmware via hdsploader utility included in alsa-tools
+ package.
+ The firmware data is found in alsa-firmware package.
Note: snd-page-alloc module does the job which snd-hammerfall-mem
module did formerly. It will allocate the buffers in advance
@@ -774,6 +793,12 @@ Module parameters
Note: One miXart8 board will be represented as 4 alsa cards.
See MIXART.txt for details.
+ When the driver is compiled as a module and the hotplug firmware
+ is supported, the firmware data is loaded via hotplug automatically.
+ Install the necessary firmware files in alsa-firmware package.
+ When no hotplug fw loader is available, you need to load the
+ firmware via mixartloader utility in alsa-tools package.
+
Module snd-mpu401
-----------------
@@ -1182,6 +1207,15 @@ Module parameters
Note: for the MPU401 on VIA823x, use snd-mpu401 driver
additonally. The mpu_port option is for VIA686 chips only.
+ Module snd-via82xx-modem
+ ------------------------
+
+ Module for VIA82xx AC97 modem
+
+ ac97_clock - AC'97 codec clock base (default 48000Hz)
+
+ Module supports up to 8 cards.
+
Module snd-virmidi
------------------
@@ -1203,9 +1237,12 @@ Module parameters
Module supports up to 8 cards.
- For loading the firmware, use vxloader utility in alsa-tools
- and alsa-firmware packages. You can load the firmware automatically
- by adding the following to /etc/modprobe.conf
+ When the driver is compiled as a module and the hotplug firmware
+ is supported, the firmware data is loaded via hotplug automatically.
+ Install the necessary firmware files in alsa-firmware package.
+ When no hotplug fw loader is available, you need to load the
+ firmware via vxloader utility in alsa-tools package. To invoke
+ vxloader automatically, add the following to /etc/modprobe.conf
install snd-vx222 /sbin/modprobe --first-time -i snd-vx222 && /usr/bin/vxloader
@@ -1234,8 +1271,11 @@ Module parameters
To activate the driver via the card manager, you'll need to set
up /etc/pcmcia/vxpocket.conf. See the sound/pcmcia/vx/vxpocket.c.
- For loading the firmware, use vxloader utility in alsa-tools
- and alsa-firmware packages.
+ When the driver is compiled as a module and the hotplug firmware
+ is supported, the firmware data is loaded via hotplug automatically.
+ Install the necessary firmware files in alsa-firmware package.
+ When no hotplug fw loader is available, you need to load the
+ firmware via vxloader utility in alsa-tools package.
The irq_mask and irq_list are provided to avoid allocation of
specific IRQs. Usually you don't need to specify them.
@@ -1260,8 +1300,11 @@ Module parameters
To activate the driver via the card manager, you'll need to set
up /etc/pcmcia/vxp440.conf. See the sound/pcmcia/vx/vxp440.c.
- For loading the firmware, use vxloader utility in alsa-tools
- and alsa-firmware packages.
+ When the driver is compiled as a module and the hotplug firmware
+ is supported, the firmware data is loaded via hotplug automatically.
+ Install the necessary firmware files in alsa-firmware package.
+ When no hotplug fw loader is available, you need to load the
+ firmware via vxloader utility in alsa-tools package.
The irq_mask and irq_list are provided to avoid allocation of
specific IRQs. Usually you don't need to specify them.
diff --git a/Documentation/sound/alsa/Bt87x.txt b/Documentation/sound/alsa/Bt87x.txt
new file mode 100644
index 000000000000..11edb2fd2a5a
--- /dev/null
+++ b/Documentation/sound/alsa/Bt87x.txt
@@ -0,0 +1,78 @@
+Intro
+=====
+
+You might have noticed that the bt878 grabber cards have actually
+_two_ PCI functions:
+
+$ lspci
+[ ... ]
+00:0a.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 02)
+00:0a.1 Multimedia controller: Brooktree Corporation Bt878 (rev 02)
+[ ... ]
+
+The first does video, it is backward compatible to the bt848. The second
+does audio. snd-bt87x is a driver for the second function. It's a sound
+driver which can be used for recording sound (and _only_ recording, no
+playback). As most TV cards come with a short cable which can be plugged
+into your sound card's line-in you probably don't need this driver if all
+you want to do is just watching TV...
+
+Some cards do not bother to connect anything to the audio input pins of
+the chip, and some other cards use the audio function to transport MPEG
+video data, so it's quite possible that audio recording may not work
+with your card.
+
+
+Driver Status
+=============
+
+The driver is now stable. However, it doesn't know about many TV cards,
+and it refuses to load for cards it doesn't know.
+
+If the driver complains ("Unknown TV card found, the audio driver will
+not load"), you can specify the load_all=1 option to force the driver to
+try to use the audio capture function of your card. If the frequency of
+recorded data is not right, try to specify the digital_rate option with
+other values than the default 32000 (often it's 44100 or 64000).
+
+If you have an unknown card, please mail the ID and board name to
+<alsa-devel@lists.sf.net>, regardless of whether audio capture works or
+not, so that future versions of this driver know about your card.
+
+
+Audio modes
+===========
+
+The chip knows two different modes (digital/analog). snd-bt87x
+registers two PCM devices, one for each mode. They cannot be used at
+the same time.
+
+
+Digital audio mode
+==================
+
+The first device (hw:X,0) gives you 16 bit stereo sound. The sample
+rate depends on the external source which feeds the Bt87x with digital
+sound via I2S interface.
+
+
+Analog audio mode (A/D)
+=======================
+
+The second device (hw:X,1) gives you 8 or 16 bit mono sound. Supported
+sample rates are between 119466 and 448000 Hz (yes, these numbers are
+that high). If you've set the CONFIG_SND_BT87X_OVERCLOCK option, the
+maximum sample rate is 1792000 Hz, but audio data becomes unusable
+beyond 896000 Hz on my card.
+
+The chip has three analog inputs. Consequently you'll get a mixer
+device to control these.
+
+
+Have fun,
+
+ Clemens
+
+
+Written by Clemens Ladisch <clemens@ladisch.de>
+big parts copied from btaudio.txt by Gerd Knorr <kraxel@bytesex.org>
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
index d08c20d8634a..82d4029ef270 100644
--- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
+++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
@@ -397,12 +397,12 @@
#include <sound/core.h>
#include <sound/initval.h>
- // module parameters (see "Module Parameters")
+ /* module parameters (see "Module Parameters") */
static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;
static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;
- // definition of the chip-specific record
+ /* definition of the chip-specific record */
typedef struct snd_mychip mychip_t;
struct snd_mychip {
snd_card_t *card;
@@ -410,23 +410,26 @@
// "PCI Resource Managements"
};
- // chip-specific destructor
- // (see "PCI Resource Managements")
+ /* chip-specific destructor
+ * (see "PCI Resource Managements")
+ */
static int snd_mychip_free(mychip_t *chip)
{
- // will be implemented later...
+ .... // will be implemented later...
}
- // component-destructor
- // (see "Management of Cards and Components")
+ /* component-destructor
+ * (see "Management of Cards and Components")
+ */
static int snd_mychip_dev_free(snd_device_t *device)
{
mychip_t *chip = device->device_data;
return snd_mychip_free(chip);
}
- // chip-specific constructor
- // (see "Management of Cards and Components")
+ /* chip-specific constructor
+ * (see "Management of Cards and Components")
+ */
static int __devinit snd_mychip_create(snd_card_t *card,
struct pci_dev *pci,
mychip_t **rchip)
@@ -441,8 +444,9 @@
// check PCI availability here
// (see "PCI Resource Managements")
+ ....
- // allocate a chip-specific data with zero filled
+ /* allocate a chip-specific data with zero filled */
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
@@ -451,17 +455,21 @@
// rest of initialization here; will be implemented
// later, see "PCI Resource Managements"
+ ....
if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL,
chip, &ops)) < 0) {
snd_mychip_free(chip);
return err;
}
+
+ snd_card_set_dev(card, &pci->dev);
+
*rchip = chip;
return 0;
}
- // constructor -- see "Constructor" sub-section
+ /* constructor -- see "Constructor" sub-section */
static int __devinit snd_mychip_probe(struct pci_dev *pci,
const struct pci_device_id *pci_id)
{
@@ -470,7 +478,7 @@
mychip_t *chip;
int err;
- // (1)
+ /* (1) */
if (dev >= SNDRV_CARDS)
return -ENODEV;
if (!enable[dev]) {
@@ -478,39 +486,39 @@
return -ENOENT;
}
- // (2)
+ /* (2) */
card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0);
if (card == NULL)
return -ENOMEM;
- // (3)
+ /* (3) */
if ((err = snd_mychip_create(card, pci, &chip)) < 0) {
snd_card_free(card);
return err;
}
- // (4)
+ /* (4) */
strcpy(card->driver, "My Chip");
strcpy(card->shortname, "My Own Chip 123");
sprintf(card->longname, "%s at 0x%lx irq %i",
card->shortname, chip->ioport, chip->irq);
- // (5)
- // implemented later
+ /* (5) */
+ .... // implemented later
- // (6)
+ /* (6) */
if ((err = snd_card_register(card)) < 0) {
snd_card_free(card);
return err;
}
- // (7)
+ /* (7) */
pci_set_drvdata(pci, card);
dev++;
return 0;
}
- // destructor -- see "Destructor" sub-section
+ /* destructor -- see "Destructor" sub-section */
static void __devexit snd_mychip_remove(struct pci_dev *pci)
{
snd_card_free(pci_get_drvdata(pci));
@@ -743,7 +751,7 @@
</programlisting>
</informalexample>
- where the last twos are necessary only when module options are
+ where the last one is necessary only when module options are
defined in the source file. If the codes are split to several
files, the file without module options don't need them.
</para>
@@ -1089,20 +1097,22 @@
static int snd_mychip_free(mychip_t *chip)
{
- // disable hardware here if any
- // (not implemented in this document)
+ /* disable hardware here if any */
+ .... // (not implemented in this document)
- // release the irq
+ /* release the irq */
if (chip->irq >= 0)
free_irq(chip->irq, (void *)chip);
- // release the i/o ports
+ /* release the i/o ports */
pci_release_regions(chip->pci);
- // release the data
+ /* disable the PCI entry */
+ pci_disable_device(chip->pci);
+ /* release the data */
kfree(chip);
return 0;
}
- // chip-specific constructor
+ /* chip-specific constructor */
static int __devinit snd_mychip_create(snd_card_t *card,
struct pci_dev *pci,
mychip_t **rchip)
@@ -1115,27 +1125,32 @@
*rchip = NULL;
- // check PCI availability (28bit DMA)
+ /* initialize the PCI entry */
if ((err = pci_enable_device(pci)) < 0)
return err;
+ /* check PCI availability (28bit DMA) */
if (pci_set_dma_mask(pci, 0x0fffffff) < 0 ||
pci_set_consistent_dma_mask(pci, 0x0fffffff) < 0) {
printk(KERN_ERR "error to set 28bit mask DMA\n");
+ pci_disable_device(pci);
return -ENXIO;
}
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
- if (chip == NULL)
+ if (chip == NULL) {
+ pci_disable_device(pci);
return -ENOMEM;
+ }
- // initialize the stuff
+ /* initialize the stuff */
chip->card = card;
chip->pci = pci;
chip->irq = -1;
- // (1) PCI resource allocation
+ /* (1) PCI resource allocation */
if ((err = pci_request_regions(pci, "My Chip")) < 0) {
kfree(chip);
+ pci_disable_device(pci);
return err;
}
chip->port = pci_resource_start(pci, 0);
@@ -1148,19 +1163,22 @@
}
chip->irq = pci->irq;
- // (2) initialization of the chip hardware
- // (not implemented in this document)
+ /* (2) initialization of the chip hardware */
+ .... // (not implemented in this document)
if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL,
chip, &ops)) < 0) {
snd_mychip_free(chip);
return err;
}
+
+ snd_card_set_dev(card, &pci->dev);
+
*rchip = chip;
return 0;
}
- // PCI IDs
+ /* PCI IDs */
static struct pci_device_id snd_mychip_ids[] = {
{ PCI_VENDOR_ID_FOO, PCI_DEVICE_ID_BAR,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },
@@ -1169,7 +1187,7 @@
};
MODULE_DEVICE_TABLE(pci, snd_mychip_ids);
- // pci_driver definition
+ /* pci_driver definition */
static struct pci_driver driver = {
.name = "My Own Chip",
.id_table = snd_mychip_ids,
@@ -1177,13 +1195,13 @@
.remove = __devexit_p(snd_mychip_remove),
};
- // initialization of the module
+ /* initialization of the module */
static int __init alsa_card_mychip_init(void)
{
return pci_module_init(&driver);
}
- // clean up the module
+ /* clean up the module */
static void __exit alsa_card_mychip_exit(void)
{
pci_unregister_driver(&driver);
@@ -1228,6 +1246,7 @@
if (pci_set_dma_mask(pci, 0x0fffffff) < 0 ||
pci_set_consistent_dma_mask(pci, 0x0fffffff) < 0) {
printk(KERN_ERR "error to set 28bit mask DMA\n");
+ pci_disable_device(pci);
return -ENXIO;
}
@@ -1285,6 +1304,7 @@
<![CDATA[
if ((err = pci_request_regions(pci, "My Chip")) < 0) {
kfree(chip);
+ pci_disable_device(pci);
return err;
}
chip->port = pci_resource_start(pci, 0);
@@ -1434,6 +1454,11 @@
</para>
<para>
+ Don't forget to call <function>pci_disable_device()</function>
+ before all finished.
+ </para>
+
+ <para>
And finally, release the chip-specific record.
<informalexample>
@@ -1462,7 +1487,7 @@
When the chip-data is assigned to the card using
<function>snd_device_new()</function> with
<constant>SNDRV_DEV_LOWLELVEL</constant> , its destructor is
- called at the last. that is, it is assured that all other
+ called at the last. That is, it is assured that all other
components like PCMs and controls have been already released.
You don't have to call stopping PCMs, etc. explicitly, but just
stop the hardware in the low-level.
@@ -1485,7 +1510,7 @@
</programlisting>
</informalexample>
- and the allocation would be (assuming its size is 512 bytes):
+ and the allocation would be like below:
<informalexample>
<programlisting>
@@ -1522,6 +1547,30 @@
</section>
+ <section id="pci-resource-device-struct">
+ <title>Registration of Device Struct</title>
+ <para>
+ At some point, typically after calling <function>snd_device_new()</function>,
+ you need to register the <structname>struct device</structname> of the chip
+ you're handling for udev and co. ALSA provides a macro for compatibility with
+ older kernels. Simply call like the following:
+ <informalexample>
+ <programlisting>
+<![CDATA[
+ snd_card_set_dev(card, &pci->dev);
+]]>
+ </programlisting>
+ </informalexample>
+ so that it stores the PCI's device pointer to the card. This will be
+ referred by ALSA core functions later when the devices are registered.
+ </para>
+ <para>
+ In the case of non-PCI, pass the proper device struct pointer of the BUS
+ instead. (In the case of legacy ISA without PnP, you don't have to do
+ anything.)
+ </para>
+ </section>
+
<section id="pci-resource-entries">
<title>PCI Entries</title>
<para>
@@ -1801,8 +1850,9 @@
mychip_t *chip = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime;
- // set up the hardware with the current configuration
- // for example...
+ /* set up the hardware with the current configuration
+ * for example...
+ */
mychip_set_sample_format(chip, runtime->format);
mychip_set_sample_rate(chip, runtime->rate);
mychip_set_channels(chip, runtime->channels);
@@ -1835,7 +1885,7 @@
mychip_t *chip = snd_pcm_substream_chip(substream);
unsigned int current_ptr;
- // get the current hardware pointer
+ /* get the current hardware pointer */
current_ptr = mychip_get_hw_pointer(chip);
return current_ptr;
}
@@ -2068,18 +2118,19 @@
static void mychip_pcm_free(snd_pcm_t *pcm)
{
mychip_t *chip = snd_pcm_chip(pcm);
- // free your own data
+ /* free your own data */
kfree(chip->my_private_pcm_data);
- // do what you like else...
+ // do what you like else
+ ....
}
static int __devinit snd_mychip_new_pcm(mychip_t *chip)
{
snd_pcm_t *pcm;
....
- // allocate your own data
+ /* allocate your own data */
chip->my_private_pcm_data = kmalloc(...);
- // set the destructor
+ /* set the destructor */
pcm->private_data = chip;
pcm->private_free = mychip_pcm_free;
....
@@ -2231,7 +2282,7 @@ struct _snd_pcm_runtime {
<![CDATA[
snd_pcm_runtime_t *runtime = substream->runtime;
...
- runtime->hw = snd_mychip_playback_hw; // common definition
+ runtime->hw = snd_mychip_playback_hw; /* common definition */
if (chip->model == VERY_OLD_ONE)
runtime->hw.channels_max = 1;
]]>
@@ -3030,7 +3081,7 @@ struct _snd_pcm_runtime {
spin_lock(&chip->lock);
....
if (pcm_irq_invoked(chip)) {
- // call updater, unlock before it
+ /* call updater, unlock before it */
spin_unlock(&chip->lock);
snd_pcm_period_elapsed(chip->substream);
spin_lock(&chip->lock);
@@ -3075,24 +3126,25 @@ struct _snd_pcm_runtime {
....
if (pcm_irq_invoked(chip)) {
unsigned int last_ptr, size;
- // get the current hardware pointer (in frames)
+ /* get the current hardware pointer (in frames) */
last_ptr = get_hw_ptr(chip);
- // calculate the processed frames since the
- // last update
+ /* calculate the processed frames since the
+ * last update
+ */
if (last_ptr < chip->last_ptr)
size = runtime->buffer_size + last_ptr
- chip->last_ptr;
else
size = last_ptr - chip->last_ptr;
- // remember the last updated point
+ /* remember the last updated point */
chip->last_ptr = last_ptr;
- // accumulate the size
+ /* accumulate the size */
chip->size += size;
- // over the period boundary?
+ /* over the period boundary? */
if (chip->size >= runtime->period_size) {
- // reset the accumulator
+ /* reset the accumulator */
chip->size %= runtime->period_size;
- // call updater
+ /* call updater */
spin_unlock(&chip->lock);
snd_pcm_period_elapsed(substream);
spin_lock(&chip->lock);
@@ -3216,7 +3268,7 @@ struct _snd_pcm_runtime {
snd_mask_t *f = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT);
snd_mask_t fmt;
- snd_mask_any(&fmt); // Init the struct
+ snd_mask_any(&fmt); /* Init the struct */
if (c->min < 2) {
fmt.bits[0] &= SNDRV_PCM_FMTBIT_S16_LE;
return snd_mask_refine(f, &fmt);
@@ -5131,7 +5183,7 @@ struct _snd_pcm_runtime {
<listitem><para>Call <function>snd_pcm_suspend_all()</function> to suspend the running PCM streams.</para></listitem>
<listitem><para>Save the register values if necessary.</para></listitem>
<listitem><para>Stop the hardware if necessary.</para></listitem>
- <listitem><para>Set the power-state as D3hot by calling <function>snd_power_change_state()</function>.</para></listitem>
+ <listitem><para>Disable the PCI device by calling <function>pci_disable_device()</function>.</para></listitem>
</orderedlist>
</para>
@@ -5143,16 +5195,16 @@ struct _snd_pcm_runtime {
<![CDATA[
static int mychip_suspend(snd_card_t *card, unsigned int state)
{
- // (1)
+ /* (1) */
mychip_t *chip = card->pm_private_data;
- // (2)
+ /* (2) */
snd_pcm_suspend_all(chip->pcm);
- // (3)
+ /* (3) */
snd_mychip_save_registers(chip);
- // (4)
+ /* (4) */
snd_mychip_stop_hardware(chip);
- // (5)
- snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
+ /* (5) */
+ pci_disable_device(chip->pci);
return 0;
}
]]>
@@ -5172,8 +5224,6 @@ struct _snd_pcm_runtime {
<listitem><para>Resume the mixer, e.g. calling
<function>snd_ac97_resume()</function>.</para></listitem>
<listitem><para>Restart the hardware (if any).</para></listitem>
- <listitem><para>Set the power-state as D0 by calling
- <function>snd_power_change_state()</function>.</para></listitem>
</orderedlist>
</para>
@@ -5185,20 +5235,18 @@ struct _snd_pcm_runtime {
<![CDATA[
static void mychip_resume(mychip_t *chip)
{
- // (1)
+ /* (1) */
mychip_t *chip = card->pm_private_data;
- // (2)
+ /* (2) */
pci_enable_device(chip->pci);
- // (3)
+ /* (3) */
snd_mychip_reinit_chip(chip);
- // (4)
+ /* (4) */
snd_mychip_restore_registers(chip);
- // (5)
+ /* (5) */
snd_ac97_resume(chip->ac97);
- // (6)
+ /* (6) */
snd_mychip_restart_chip(chip);
- // (7)
- snd_power_change_state(card, SNDRV_CTL_POWER_D0);
return 0;
}
]]>
@@ -5314,19 +5362,15 @@ struct _snd_pcm_runtime {
<![CDATA[
#define CARD_NAME "My Chip"
- static int boot_devs;
- module_param_array(index, int, boot_devs, 0444);
+ module_param_array(index, int, NULL, 0444);
MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
- module_param_array(id, charp, boot_devs, 0444);
+ module_param_array(id, charp, NULL, 0444);
MODULE_PARM_DESC(id, "ID string for " CARD_NAME " soundcard.");
- module_param_array(enable, bool, boot_devs, 0444);
+ module_param_array(enable, bool, NULL, 0444);
MODULE_PARM_DESC(enable, "Enable " CARD_NAME " soundcard.");
]]>
</programlisting>
</informalexample>
-
- Here boot_devs is passed but simply ignored since we don't care
- the number of parsed parameters.
</para>
<para>
@@ -5423,7 +5467,10 @@ struct _snd_pcm_runtime {
depends on SND
select SND_PCM
help
- Say 'Y' or 'M' to include support for Foobar XYZ soundcard.
+ Say Y here to include support for Foobar XYZ soundcard.
+
+ To compile this driver as a module, choose M here: the module
+ will be called snd-xyz.
]]>
</programlisting>
</informalexample>
diff --git a/Documentation/sound/alsa/MIXART.txt b/Documentation/sound/alsa/MIXART.txt
index 3ff85969bd83..5cb970612870 100644
--- a/Documentation/sound/alsa/MIXART.txt
+++ b/Documentation/sound/alsa/MIXART.txt
@@ -72,6 +72,10 @@ NOT YET IMPLEMENTED
FIRMWARE
========
+[As of 2.6.11, the firmware can be loaded automatically with hotplug
+ when CONFIG_FW_LOADER is set. The mixartloader is necessary only
+ for older versions or when you build the driver into kernel.]
+
For loading the firmware automatically after the module is loaded, use
the post-install command. For example, add the following entry to
/etc/modprobe.conf for miXart driver:
diff --git a/Documentation/sound/alsa/OSS-Emulation.txt b/Documentation/sound/alsa/OSS-Emulation.txt
index 7ba680cf43ab..ec2a02541d5b 100644
--- a/Documentation/sound/alsa/OSS-Emulation.txt
+++ b/Documentation/sound/alsa/OSS-Emulation.txt
@@ -164,16 +164,15 @@ sending the command above.
The block and non-block options are used to change the behavior of
opening the device file.
-As default, ALSA behaves as defined in POSIX, i.e. blocks the file
-when it's busy until the device becomes free (unless O_NONBLOCK is
-specified). Some applications assume the non-block open behavior,
-which are actually implemented in some real OSS drivers.
+
+As default, ALSA behaves as original OSS drivers, i.e. does not block
+the file when it's busy. The -EBUSY error is returned in this case.
This blocking behavior can be changed globally via nonblock_open
-module option of snd-pcm-oss. For using the non-block mode as default
+module option of snd-pcm-oss. For using the blocking mode as default
for OSS devices, define like the following:
- options snd-pcm-oss nonblock_open=1
+ options snd-pcm-oss nonblock_open=0
The partial-frag and no-silence commands have been added recently.
Both commands are for optimization use only. The former command
diff --git a/Documentation/sparse.txt b/Documentation/sparse.txt
new file mode 100644
index 000000000000..f97841478459
--- /dev/null
+++ b/Documentation/sparse.txt
@@ -0,0 +1,72 @@
+Copyright 2004 Linus Torvalds
+Copyright 2004 Pavel Machek <pavel@suse.cz>
+
+Using sparse for typechecking
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+"__bitwise" is a type attribute, so you have to do something like this:
+
+ typedef int __bitwise pm_request_t;
+
+ enum pm_request {
+ PM_SUSPEND = (__force pm_request_t) 1,
+ PM_RESUME = (__force pm_request_t) 2
+ };
+
+which makes PM_SUSPEND and PM_RESUME "bitwise" integers (the "__force" is
+there because sparse will complain about casting to/from a bitwise type,
+but in this case we really _do_ want to force the conversion). And because
+the enum values are all the same type, now "enum pm_request" will be that
+type too.
+
+And with gcc, all the __bitwise/__force stuff goes away, and it all ends
+up looking just like integers to gcc.
+
+Quite frankly, you don't need the enum there. The above all really just
+boils down to one special "int __bitwise" type.
+
+So the simpler way is to just do
+
+ typedef int __bitwise pm_request_t;
+
+ #define PM_SUSPEND ((__force pm_request_t) 1)
+ #define PM_RESUME ((__force pm_request_t) 2)
+
+and you now have all the infrastructure needed for strict typechecking.
+
+One small note: the constant integer "0" is special. You can use a
+constant zero as a bitwise integer type without sparse ever complaining.
+This is because "bitwise" (as the name implies) was designed for making
+sure that bitwise types don't get mixed up (little-endian vs big-endian
+vs cpu-endian vs whatever), and there the constant "0" really _is_
+special.
+
+Modify top-level Makefile to say
+
+CHECK = sparse -Wbitwise
+
+or you don't get any checking at all.
+
+
+Where to get sparse
+~~~~~~~~~~~~~~~~~~~
+
+With BK, you can just get it from
+
+ bk://sparse.bkbits.net/sparse
+
+and DaveJ has tar-balls at
+
+ http://www.codemonkey.org.uk/projects/bitkeeper/sparse/
+
+
+Once you have it, just do
+
+ make
+ make install
+
+as your regular user, and it will install sparse in your ~/bin directory.
+After that, doing a kernel make with "make C=1" will run sparse on all the
+C files that get recompiled, or with "make C=2" will run sparse on the
+files whether they need to be recompiled or not (ie the latter is fast way
+to check the whole tree if you have already built it).
diff --git a/Documentation/stable_api_nonsense.txt b/Documentation/stable_api_nonsense.txt
index c33c99c5100c..3cea13875277 100644
--- a/Documentation/stable_api_nonsense.txt
+++ b/Documentation/stable_api_nonsense.txt
@@ -9,7 +9,7 @@ realize that this article describes the _in kernel_ interfaces, not the
kernel to userspace interfaces. The kernel to userspace interface is
the one that application programs use, the syscall interface. That
interface is _very_ stable over time, and will not break. I have old
-programs that were built on a pre 0.9something kernel that still works
+programs that were built on a pre 0.9something kernel that still work
just fine on the latest 2.6 kernel release. This interface is the one
that users and application programmers can count on being stable.
@@ -167,7 +167,7 @@ up by the person who did the kernel change in the first place. This
ensures that your driver is always buildable, and works over time, with
very little effort on your part.
-The very good side affects of having your driver in the main kernel tree
+The very good side effects of having your driver in the main kernel tree
are:
- The quality of the driver will rise as the maintenance costs (to the
original developer) will decrease.
diff --git a/Documentation/stallion.txt b/Documentation/stallion.txt
index 084d485b1581..5c4902d9a5be 100644
--- a/Documentation/stallion.txt
+++ b/Documentation/stallion.txt
@@ -1,8 +1,13 @@
+* NOTE - This is an unmaintained driver. Lantronix, which bought Stallion
+technologies, is not active in driver maintenance, and they have no information
+on when or if they will have a 2.6 driver.
+
+James Nelson <james4765@gmail.com> - 12-12-2004
Stallion Multiport Serial Driver Readme
---------------------------------------
-Copyright (C) 1994-1999, Stallion Technologies (support@stallion.com).
+Copyright (C) 1994-1999, Stallion Technologies.
Version: 5.5.1
Date: 28MAR99
@@ -19,29 +24,20 @@ the true Stallion intelligent multiport boards - EasyConnection 8/64
If you are using any of the Stallion intelligent multiport boards (Brumby,
ONboard, EasyConnection 8/64 (ISA, EISA, MCA), EasyConnection/RA-PCI) with
-Linux you will need to get the driver utility package. This package is
-available at most of the Linux archive sites (and on CD-ROMs that contain
-these archives). The file will be called stallion-X.X.X.tar.gz where X.X.X
-will be the version number. In particular this package contains the board
-embedded executable images that are required for these boards. It also
-contains the downloader program. These boards cannot be used without this.
+Linux you will need to get the driver utility package. This contains a
+firmware loader and the firmware images necessary to make the devices operate.
The Stallion Technologies ftp site, ftp.stallion.com, will always have
-the latest version of the driver utility package. Other sites that usually
-have the latest version are tsx-11.mit.edu, sunsite.unc.edu and their
-mirrors.
+the latest version of the driver utility package.
-ftp.stallion.com:/drivers/ata5/Linux/v550.tar.gz
-tsx-11.mit.edu:/pub/linux/packages/stallion/stallion-5.5.0.tar.gz
-sunsite.unc.edu:/pub/Linux/kernel/patches/serial/stallion-5.5.0.tar.gz
+ftp://ftp.stallion.com/drivers/ata5/Linux/ata-linux-550.tar.gz
As of the printing of this document the latest version of the driver
utility package is 5.5.0. If a later version is now available then you
should use the latest version.
If you are using the EasyIO, EasyConnection 8/32 or EasyConnection 8/64-PCI
-boards then you don't need this package. Although it does have a handy
-script to create the /dev device nodes for these boards, and a serial stats
+boards then you don't need this package, although it does have a serial stats
display program.
If you require DIP switch settings, EISA or MCA configuration files, or any
@@ -85,7 +81,7 @@ Brumby or original Stallion board then use the "istallion" driver module.
Typically to load up the smart board driver use:
- insmod stallion.o
+ modprobe stallion
This will load the EasyIO and EasyConnection 8/32 driver. It will output a
message to say that it loaded and print the driver version number. It will
@@ -96,12 +92,12 @@ syslogd daemons are setup on your system.
To load the intelligent board driver use:
- insmod istallion.o
+ modprobe istallion
It will output similar messages to the smart board driver.
If not using an auto-detectable board type (that is a PCI board) then you
-will also need to supply command line arguments to the "insmod" command
+will also need to supply command line arguments to the modprobe command
when loading the driver. The general form of the configuration argument is
board?=<name>[,<ioaddr>[,<addr>][,<irq>]]
@@ -111,7 +107,7 @@ where:
board? -- specifies the arbitrary board number of this board,
can be in the range 0 to 3.
- name -- textual name of this board. The board name is the comman
+ name -- textual name of this board. The board name is the common
board name, or any "shortened" version of that. The board
type number may also be used here.
@@ -127,24 +123,24 @@ where:
Up to 4 board configuration arguments can be specified on the load line.
Here is some examples:
- insmod stallion.o board0=easyio,0x2a0,5
+ modprobe stallion board0=easyio,0x2a0,5
This configures an EasyIO board as board 0 at I/O address 0x2a0 and IRQ 5.
- insmod istallion.o board3=ec8/64,0x2c0,0xcc000
+ modprobe istallion board3=ec8/64,0x2c0,0xcc000
This configures an EasyConnection 8/64 ISA as board 3 at I/O address 0x2c0 at
memory address 0xcc000.
- insmod stallion.o board1=ec8/32-at,0x2a0,0x280,10
+ modprobe stallion board1=ec8/32-at,0x2a0,0x280,10
This configures an EasyConnection 8/32 ISA board at primary I/O address 0x2a0,
secondary address 0x280 and IRQ 10.
You will probably want to enter this module load and configuration information
into your system startup scripts so that the drivers are loaded and configured
-on each system boot. Typically the start up script would be something line
-/etc/rc.d/rc.modules.
+on each system boot. Typically the start up script would be something like
+/etc/modprobe.conf.
2.2 STATIC DRIVER CONFIGURATION:
@@ -161,8 +157,8 @@ supports any combination of ONboards, Brumbys, Stallions and EasyConnection
To set up the driver(s) for the boards that you want to use you need to
edit the appropriate driver file and add configuration entries.
-If using EasyIO or EasyConnection 8/32 ISA or MCA boards, do:
- vi /usr/src/linux/drivers/char/stallion.c
+If using EasyIO or EasyConnection 8/32 ISA or MCA boards,
+ In drivers/char/stallion.c:
- find the definition of the stl_brdconf array (of structures)
near the top of the file
- modify this to match the boards you are going to install
@@ -170,8 +166,8 @@ If using EasyIO or EasyConnection 8/32 ISA or MCA boards, do:
- save and exit
If using ONboard, Brumby, Stallion or EasyConnection 8/64 (ISA or EISA)
-boards then do:
- vi /usr/src/linux/drivers/char/istallion.c
+boards,
+ In drivers/char/istallion.c:
- find the definition of the stli_brdconf array (of structures)
near the top of the file
- modify this to match the boards you are going to install
@@ -291,20 +287,20 @@ If you load the wrong image file into a board it will fail to start up, and
of course the ports will not be operational!
If you are using the modularized version of the driver you might want to put
-the insmod calls in the startup script as well (before the download lines
+the modprobe calls in the startup script as well (before the download lines
obviously).
3.2 USING THE SERIAL PORTS
Once the driver is installed you will need to setup some device nodes to
-access the serial ports. The simplest method is to use the stallion utility
-"mkdevnods" script. It will automatically create device entries for Stallion
-boards. This will create the normal serial port devices as /dev/ttyE# where
-# is the port number starting from 0. A bank of 64 minor device numbers is
-allocated to each board, so the first port on the second board is port 64,
-etc. A set of callout type devices is also created. They are created as the
-devices /dev/cue# where # is the same as for the ttyE devices.
+access the serial ports. The simplest method is to use the /dev/MAKEDEV program.
+It will automatically create device entries for Stallion boards. This will
+create the normal serial port devices as /dev/ttyE# where# is the port number
+starting from 0. A bank of 64 minor device numbers is allocated to each board,
+so the first port on the second board is port 64,etc. A set of callout type
+devices may also be created. They are created as the devices /dev/cue# where #
+is the same as for the ttyE devices.
For the most part the Stallion driver tries to emulate the standard PC system
COM ports and the standard Linux serial driver. The idea is that you should
diff --git a/Documentation/usb/sn9c102.txt b/Documentation/usb/sn9c102.txt
index 18ceabdb36e4..53a978fdd69c 100644
--- a/Documentation/usb/sn9c102.txt
+++ b/Documentation/usb/sn9c102.txt
@@ -11,16 +11,17 @@ Index
1. Copyright
2. Disclaimer
3. License
-4. Overview
-5. Driver installation
+4. Overview and features
+5. Module dependencies
6. Module loading
7. Module parameters
8. Optional device control through "sysfs"
9. Supported devices
-10. How to add support for new image sensors
+10. How to add plug-in's for new image sensors
11. Notes for V4L2 application developers
-12. Contact information
-13. Credits
+12. Video frame formats
+13. Contact information
+14. Credits
1. Copyright
@@ -51,16 +52,18 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-4. Overview
-===========
+4. Overview and features
+========================
This driver attempts to support the video and audio streaming capabilities of
-the devices mounting the SONiX SN9C101, SN9C102 and SN9C103 (or SUI-102) PC
-Camera Controllers.
+the devices mounting the SONiX SN9C101, SN9C102 and SN9C103 PC Camera
+Controllers.
It's worth to note that SONiX has never collaborated with the author during the
development of this project, despite several requests for enough detailed
specifications of the register tables, compression engine and video data format
-of the above chips.
+of the above chips. Nevertheless, these informations are no longer necessary,
+becouse all the aspects related to these chips are known and have been
+described in detail in this documentation.
The driver relies on the Video4Linux2 and USB core modules. It has been
designed to run properly on SMP systems as well.
@@ -79,15 +82,16 @@ Some of the features of the driver are:
pixel area of image sensor;
- image downscaling with arbitrary scaling factors from 1, 2 and 4 in both
directions (see "Notes for V4L2 application developers" paragraph);
-- two different video formats for uncompressed or compressed data (see also
- "Notes for V4L2 application developers" paragraph);
+- two different video formats for uncompressed or compressed data in low or
+ high compression quality (see also "Notes for V4L2 application developers"
+ and "Video frame formats" paragraphs);
- full support for the capabilities of many of the possible image sensors that
can be connected to the SN9C10x bridges, including, for istance, red, green,
blue and global gain adjustments and exposure (see "Supported devices"
paragraph for details);
- use of default color settings for sunlight conditions;
-- dynamic I/O interface for both SN9C10x and image sensor control (see
- "Optional device control through 'sysfs'" paragraph);
+- dynamic I/O interface for both SN9C10x and image sensor control and
+ monitoring (see "Optional device control through 'sysfs'" paragraph);
- dynamic driver control thanks to various module parameters (see "Module
parameters" paragraph);
- up to 64 cameras can be handled at the same time; they can be connected and
@@ -177,7 +181,7 @@ Default: 2
-------------------------------------------------------------------------------
-8. Optional device control through "sysfs"
+8. Optional device control through "sysfs" [1]
==========================================
It is possible to read and write both the SN9C10x and the image sensor
registers by using the "sysfs" filesystem interface.
@@ -195,9 +199,9 @@ There are other four entries in the directory above for each registered camera:
SN9C10x bridge, while the other two control the sensor chip. "reg" and
"i2c_reg" hold the values of the current register index where the following
reading/writing operations are addressed at through "val" and "i2c_val". Their
-use is not intended for end-users, unless you know what you are doing. Note
-that "i2c_reg" and "i2c_val" won't be created if the sensor does not actually
-support the standard I2C protocol. Also, remember that you must be logged in as
+use is not intended for end-users. Note that "i2c_reg" and "i2c_val" won't be
+created if the sensor does not actually support the standard I2C protocol or
+its registers are not 8-bit long. Also, remember that you must be logged in as
root before writing to them.
As an example, suppose we were to want to read the value contained in the
@@ -216,7 +220,48 @@ Now let's set the green gain's register of the SN9C101 or SN9C102 chips to 2:
[root@localhost #] echo 2 > val
Note that the SN9C10x always returns 0 when some of its registers are read.
-To avoid race conditions, all the I/O accesses to the files are serialized.
+To avoid race conditions, all the I/O accesses to the above files are
+serialized.
+
+The sysfs interface also provides the "frame_header" entry, which exports the
+frame header of the most recent requested and captured video frame. The header
+is 12-bytes long and is appended to every video frame by the SN9C10x
+controllers. As an example, this additional information can be used by the user
+application for implementing auto-exposure features via software.
+
+The following table describes the frame header:
+
+Byte # Value Description
+------ ----- -----------
+0x00 0xFF Frame synchronisation pattern.
+0x01 0xFF Frame synchronisation pattern.
+0x02 0x00 Frame synchronisation pattern.
+0x03 0xC4 Frame synchronisation pattern.
+0x04 0xC4 Frame synchronisation pattern.
+0x05 0x96 Frame synchronisation pattern.
+0x06 0x00 or 0x01 Unknown meaning. The exact value depends on the chip.
+0x07 0xXX Variable value, whose bits are ff00uzzc, where ff is a
+ frame counter, u is unknown, zz is a size indicator
+ (00 = VGA, 01 = SIF, 10 = QSIF) and c stands for
+ "compression enabled" (1 = yes, 0 = no).
+0x08 0xXX Brightness sum inside Auto-Exposure area (low-byte).
+0x09 0xXX Brightness sum inside Auto-Exposure area (high-byte).
+ For a pure white image, this number will be equal to 500
+ times the area of the specified AE area. For images
+ that are not pure white, the value scales down according
+ to relative whiteness.
+0x0A 0xXX Brightness sum outside Auto-Exposure area (low-byte).
+0x0B 0xXX Brightness sum outside Auto-Exposure area (high-byte).
+ For a pure white image, this number will be equal to 125
+ times the area outside of the specified AE area. For
+ images that are not pure white, the value scales down
+ according to relative whiteness.
+
+The AE area (sx, sy, ex, ey) in the active window can be set by programming the
+registers 0x1c, 0x1d, 0x1e and 0x1f of the SN9C10x controllers, where one unit
+corresponds to 32 pixels.
+
+[1] The frame header has been documented by Bertrik Sikken.
9. Supported devices
@@ -275,8 +320,10 @@ kernel messages will always tell you whether this is the case:
Model Manufacturer
----- ------------
-PAS106B PixArt Imaging Inc.
-PAS202BCB PixArt Imaging Inc.
+HV7131D Hynix Semiconductor, Inc.
+MI-0343 Micron Technology, Inc.
+PAS106B PixArt Imaging, Inc.
+PAS202BCB PixArt Imaging, Inc.
TAS5110C1B Taiwan Advanced Sensor Corporation
TAS5130D1B Taiwan Advanced Sensor Corporation
@@ -295,15 +342,15 @@ appreciated. Non-available hardware won't be supported by the author of this
driver.
-10. How to add support for new image sensors
-============================================
-It should be easy to write code for new sensors by using the small API that I
-have created for this purpose, which is present in "sn9c102_sensor.h"
+10. How to add plug-in's for new image sensors
+==============================================
+It should be easy to write plug-in's for new sensors by using the small API
+that has been created for this purpose, which is present in "sn9c102_sensor.h"
(documentation is included there). As an example, have a look at the code in
"sn9c102_pas106b.c", which uses the mentioned interface.
-At the moment, possible unsupported image sensors are: HV7131x series (VGA),
-MI03x series (VGA), OV7620 (VGA), OV7630 (VGA), CIS-VF10 (VGA).
+At the moment, possible unsupported image sensors are: CIS-VF10 (VGA),
+OV7620 (VGA), OV7630 (VGA).
11. Notes for V4L2 application developers
@@ -332,29 +379,98 @@ scaling factor is restored to 1.
This driver supports two different video formats: the first one is the "8-bit
Sequential Bayer" format and can be used to obtain uncompressed video data
from the device through the current I/O method, while the second one provides
-"raw" compressed video data (without the initial and final frame headers). The
-compression quality may vary from 0 to 1 and can be selected or queried thanks
-to the VIDIOC_S_JPEGCOMP and VIDIOC_G_JPEGCOMP V4L2 ioctl's. For maxim