Merge branch 'topic/hdsp' into for-linus
authorTakashi Iwai <tiwai@suse.de>
Wed, 10 Jun 2009 05:26:32 +0000 (07:26 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 10 Jun 2009 05:26:32 +0000 (07:26 +0200)
* topic/hdsp:
  ALSA: hdsp - Add a comment about external firmwares for hdsp
  ALSA: hdsp: allow firmware loading from inside the kernel

991 files changed:
Documentation/ABI/testing/sysfs-kernel-slab [new file with mode: 0644]
Documentation/DocBook/kgdb.tmpl
Documentation/filesystems/tmpfs.txt
Documentation/hwmon/sysfs-interface
Documentation/input/multi-touch-protocol.txt
Documentation/kernel-parameters.txt
Documentation/networking/ip-sysctl.txt
Documentation/sound/alsa/ALSA-Configuration.txt
Documentation/sound/alsa/HD-Audio-Models.txt
Documentation/sound/alsa/Procfile.txt
Documentation/sound/alsa/soc/dapm.txt
Documentation/sysctl/vm.txt
Documentation/sysfs-rules.txt
MAINTAINERS
Makefile
arch/alpha/include/asm/percpu.h
arch/arm/Kconfig
arch/arm/common/gic.c
arch/arm/include/asm/assembler.h
arch/arm/include/asm/atomic.h
arch/arm/include/asm/cache.h
arch/arm/include/asm/flat.h
arch/arm/include/asm/hardware/gic.h
arch/arm/include/asm/page.h
arch/arm/include/asm/smp.h
arch/arm/include/asm/system.h
arch/arm/kernel/elf.c
arch/arm/kernel/entry-armv.S
arch/arm/kernel/smp.c
arch/arm/lib/bitops.h
arch/arm/mach-davinci/include/mach/asp.h [new file with mode: 0644]
arch/arm/mach-ep93xx/clock.c
arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
arch/arm/mach-gemini/include/mach/hardware.h
arch/arm/mach-integrator/core.c
arch/arm/mach-ixp4xx/ixp4xx_npe.c
arch/arm/mach-kirkwood/common.c
arch/arm/mach-kirkwood/ts219-setup.c
arch/arm/mach-l7200/include/mach/sys-clock.h
arch/arm/mach-loki/common.c
arch/arm/mach-mmp/include/mach/mfp-pxa168.h
arch/arm/mach-mmp/include/mach/mfp-pxa910.h
arch/arm/mach-mmp/include/mach/mfp.h
arch/arm/mach-mmp/time.c
arch/arm/mach-mv78xx0/common.c
arch/arm/mach-mx2/clock_imx21.c
arch/arm/mach-mx2/clock_imx27.c
arch/arm/mach-mx3/clock-imx35.c
arch/arm/mach-mx3/clock.c
arch/arm/mach-omap2/clock24xx.c
arch/arm/mach-omap2/clock34xx.c
arch/arm/mach-omap2/clock34xx.h
arch/arm/mach-omap2/devices.c
arch/arm/mach-omap2/prm-regbits-34xx.h
arch/arm/mach-omap2/usb-tusb6010.c
arch/arm/mach-orion5x/common.c
arch/arm/mach-pxa/devices.c
arch/arm/mach-pxa/ezx.c
arch/arm/mach-pxa/imote2.c
arch/arm/mach-pxa/include/mach/reset.h
arch/arm/mach-pxa/mfp-pxa2xx.c
arch/arm/mach-pxa/palmld.c
arch/arm/mach-pxa/palmt5.c
arch/arm/mach-pxa/palmtx.c
arch/arm/mach-pxa/reset.c
arch/arm/mach-pxa/spitz.c
arch/arm/mach-pxa/tosa.c
arch/arm/mach-pxa/viper.c
arch/arm/mach-realview/core.c
arch/arm/mach-realview/include/mach/smp.h
arch/arm/mach-realview/localtimer.c
arch/arm/mach-realview/platsmp.c
arch/arm/mach-s3c2410/mach-bast.c
arch/arm/mach-versatile/core.c
arch/arm/mm/proc-v7.S
arch/arm/nwfpe/fpa11.h
arch/arm/nwfpe/fpa11_cprt.c
arch/arm/nwfpe/softfloat.h
arch/arm/plat-omap/fb.c
arch/arm/plat-omap/gpio.c
arch/arm/plat-s3c/clock.c
arch/arm/plat-s3c24xx/dma.c
arch/arm/plat-s3c64xx/gpiolib.c
arch/arm/plat-s3c64xx/include/plat/gpio-bank-h.h
arch/arm/tools/mach-types
arch/blackfin/include/asm/.gitignore [deleted file]
arch/blackfin/include/asm/flat.h
arch/blackfin/include/asm/unistd.h
arch/blackfin/kernel/.gitignore [new file with mode: 0644]
arch/blackfin/lib/strncmp.c
arch/blackfin/mach-common/entry.S
arch/cris/Makefile
arch/cris/arch-v10/boot/Makefile [deleted file]
arch/cris/arch-v10/boot/compressed/README [deleted file]
arch/cris/arch-v10/boot/compressed/misc.c [deleted file]
arch/cris/arch-v10/kernel/entry.S
arch/cris/arch-v32/boot/compressed/Makefile [deleted file]
arch/cris/arch-v32/boot/rescue/Makefile [deleted file]
arch/cris/arch-v32/drivers/mach-a3/gpio.c
arch/cris/arch-v32/kernel/Makefile
arch/cris/arch-v32/kernel/entry.S
arch/cris/boot/.gitignore [moved from arch/cris/arch-v10/boot/.gitignore with 100% similarity]
arch/cris/boot/Makefile [moved from arch/cris/arch-v32/boot/Makefile with 65% similarity]
arch/cris/boot/compressed/Makefile [moved from arch/cris/arch-v10/boot/compressed/Makefile with 50% similarity]
arch/cris/boot/compressed/README [moved from arch/cris/arch-v32/boot/compressed/README with 100% similarity]
arch/cris/boot/compressed/decompress_v10.lds [moved from arch/cris/arch-v10/boot/compressed/decompress.lds with 100% similarity]
arch/cris/boot/compressed/decompress_v32.lds [moved from arch/cris/arch-v32/boot/compressed/decompress.lds with 100% similarity]
arch/cris/boot/compressed/head_v10.S [moved from arch/cris/arch-v10/boot/compressed/head.S with 97% similarity]
arch/cris/boot/compressed/head_v32.S [moved from arch/cris/arch-v32/boot/compressed/head.S with 94% similarity]
arch/cris/boot/compressed/misc.c [moved from arch/cris/arch-v32/boot/compressed/misc.c with 65% similarity]
arch/cris/boot/rescue/Makefile [moved from arch/cris/arch-v10/boot/rescue/Makefile with 63% similarity]
arch/cris/boot/rescue/head_v10.S [moved from arch/cris/arch-v10/boot/rescue/head.S with 99% similarity]
arch/cris/boot/rescue/head_v32.S [moved from arch/cris/arch-v32/boot/rescue/head.S with 100% similarity]
arch/cris/boot/rescue/kimagerescue.S [moved from arch/cris/arch-v10/boot/rescue/kimagerescue.S with 100% similarity]
arch/cris/boot/rescue/rescue_v10.lds [moved from arch/cris/arch-v10/boot/rescue/rescue.lds with 100% similarity]
arch/cris/boot/rescue/rescue_v32.lds [moved from arch/cris/arch-v32/boot/rescue/rescue.lds with 100% similarity]
arch/cris/boot/rescue/testrescue.S [moved from arch/cris/arch-v10/boot/rescue/testrescue.S with 100% similarity]
arch/cris/boot/tools/build.c [moved from arch/cris/arch-v10/boot/tools/build.c with 100% similarity]
arch/cris/include/asm/unistd.h
arch/h8300/include/asm/flat.h
arch/m32r/include/asm/flat.h
arch/m68k/include/asm/flat.h
arch/microblaze/configs/nommu_defconfig
arch/microblaze/kernel/intc.c
arch/mips/Kconfig
arch/mips/Makefile
arch/mips/alchemy/common/time.c
arch/mips/cavium-octeon/csrc-octeon.c
arch/mips/include/asm/bitops.h
arch/mips/include/asm/checksum.h
arch/mips/include/asm/compat.h
arch/mips/include/asm/cpu-features.h
arch/mips/include/asm/cpu-info.h
arch/mips/include/asm/delay.h
arch/mips/include/asm/div64.h
arch/mips/include/asm/dma-mapping.h
arch/mips/include/asm/fixmap.h
arch/mips/include/asm/hazards.h
arch/mips/include/asm/highmem.h
arch/mips/include/asm/ioctl.h
arch/mips/include/asm/mach-au1x00/au1000.h
arch/mips/include/asm/mach-au1x00/au1xxx_ide.h
arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h [new file with mode: 0644]
arch/mips/include/asm/mipsregs.h
arch/mips/include/asm/page.h
arch/mips/include/asm/pgtable-64.h
arch/mips/include/asm/sn/addrs.h
arch/mips/include/asm/sn/nmi.h
arch/mips/include/asm/thread_info.h
arch/mips/include/asm/time.h
arch/mips/include/asm/uaccess.h
arch/mips/kernel/cevt-smtc.c
arch/mips/kernel/proc.c
arch/mips/kernel/scall64-n32.S
arch/mips/kernel/scall64-o32.S
arch/mips/kernel/unaligned.c
arch/mips/lib/Makefile
arch/mips/lib/delay.c [new file with mode: 0644]
arch/mips/lib/dump_tlb.c
arch/mips/mm/c-r4k.c
arch/mips/mm/dma-default.c
arch/mips/mm/highmem.c
arch/mips/mm/init.c
arch/mips/mm/sc-rm7k.c
arch/mips/mm/tlb-r3k.c
arch/mips/mm/tlb-r4k.c
arch/mips/mm/tlb-r8k.c
arch/mips/pmc-sierra/Kconfig
arch/mips/pmc-sierra/msp71xx/msp_prom.c
arch/mips/pmc-sierra/msp71xx/msp_setup.c
arch/mips/pmc-sierra/msp71xx/msp_time.c
arch/mips/sgi-ip22/ip22-reset.c
arch/mips/sgi-ip32/ip32-berr.c
arch/mips/sgi-ip32/ip32-irq.c
arch/mips/sgi-ip32/ip32-reset.c
arch/mips/sibyte/bcm1480/irq.c
arch/mips/sibyte/cfe/setup.c
arch/mips/sibyte/sb1250/irq.c
arch/mips/txx9/generic/setup_tx4927.c
arch/mips/txx9/generic/setup_tx4938.c
arch/mips/txx9/generic/setup_tx4939.c
arch/mips/txx9/rbtx4939/setup.c
arch/powerpc/Kconfig
arch/powerpc/boot/Makefile
arch/powerpc/boot/mktree.c
arch/powerpc/configs/83xx/asp8347_defconfig
arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
arch/powerpc/configs/83xx/mpc832x_mds_defconfig
arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
arch/powerpc/configs/83xx/mpc834x_itx_defconfig
arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
arch/powerpc/configs/83xx/mpc834x_mds_defconfig
arch/powerpc/configs/83xx/mpc836x_mds_defconfig
arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
arch/powerpc/configs/83xx/mpc837x_mds_defconfig
arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
arch/powerpc/configs/83xx/sbc834x_defconfig
arch/powerpc/configs/85xx/ksi8560_defconfig
arch/powerpc/configs/85xx/mpc8540_ads_defconfig
arch/powerpc/configs/85xx/mpc8560_ads_defconfig
arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
arch/powerpc/configs/85xx/sbc8548_defconfig
arch/powerpc/configs/85xx/sbc8560_defconfig
arch/powerpc/configs/85xx/socrates_defconfig
arch/powerpc/configs/85xx/stx_gp3_defconfig
arch/powerpc/configs/85xx/tqm8540_defconfig
arch/powerpc/configs/85xx/tqm8541_defconfig
arch/powerpc/configs/85xx/tqm8548_defconfig
arch/powerpc/configs/85xx/tqm8555_defconfig
arch/powerpc/configs/85xx/tqm8560_defconfig
arch/powerpc/configs/86xx/gef_ppc9a_defconfig
arch/powerpc/configs/86xx/gef_sbc310_defconfig
arch/powerpc/configs/86xx/gef_sbc610_defconfig
arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
arch/powerpc/configs/86xx/sbc8641d_defconfig
arch/powerpc/configs/adder875_defconfig
arch/powerpc/configs/c2k_defconfig
arch/powerpc/configs/ep8248e_defconfig
arch/powerpc/configs/ep88xc_defconfig
arch/powerpc/configs/linkstation_defconfig
arch/powerpc/configs/mgcoge_defconfig
arch/powerpc/configs/mgsuvd_defconfig
arch/powerpc/configs/mpc7448_hpc2_defconfig
arch/powerpc/configs/mpc8272_ads_defconfig
arch/powerpc/configs/mpc83xx_defconfig
arch/powerpc/configs/mpc866_ads_defconfig
arch/powerpc/configs/mpc86xx_defconfig
arch/powerpc/configs/mpc885_ads_defconfig
arch/powerpc/configs/pmac32_defconfig
arch/powerpc/configs/pq2fads_defconfig
arch/powerpc/configs/prpmc2800_defconfig
arch/powerpc/configs/ps3_defconfig
arch/powerpc/configs/storcenter_defconfig
arch/powerpc/include/asm/dma-mapping.h
arch/powerpc/include/asm/fixmap.h
arch/powerpc/include/asm/iseries/iommu.h
arch/powerpc/include/asm/mpc52xx_psc.h
arch/powerpc/include/asm/pgtable-ppc32.h
arch/powerpc/include/asm/system.h
arch/powerpc/kernel/cputable.c
arch/powerpc/kernel/dma.c
arch/powerpc/kernel/ftrace.c
arch/powerpc/kernel/machine_kexec.c
arch/powerpc/kernel/pci-common.c
arch/powerpc/kernel/pci_64.c
arch/powerpc/kernel/prom.c
arch/powerpc/kernel/vmlinux.lds.S
arch/powerpc/lib/Makefile
arch/powerpc/lib/dma-noncoherent.c [deleted file]
arch/powerpc/mm/Makefile
arch/powerpc/mm/dma-noncoherent.c [new file with mode: 0644]
arch/powerpc/mm/init_32.c
arch/powerpc/mm/mem.c
arch/powerpc/mm/mmu_context_nohash.c
arch/powerpc/mm/pgtable.c
arch/powerpc/mm/pgtable_32.c
arch/powerpc/oprofile/op_model_power4.c
arch/powerpc/platforms/40x/Kconfig
arch/powerpc/platforms/44x/Kconfig
arch/powerpc/platforms/cell/ras.c
arch/powerpc/platforms/iseries/Kconfig
arch/powerpc/platforms/iseries/iommu.c
arch/powerpc/platforms/iseries/pci.c
arch/powerpc/platforms/maple/pci.c
arch/powerpc/sysdev/fsl_soc.c
arch/powerpc/sysdev/mpic.c
arch/powerpc/sysdev/xilinx_intc.c
arch/sh/boards/board-ap325rxa.c
arch/sh/include/asm/flat.h
arch/sparc/include/asm/elf_64.h
arch/sparc/lib/csum_copy_from_user.S
arch/sparc/lib/csum_copy_to_user.S
arch/x86/Kconfig
arch/x86/boot/compressed/relocs.c
arch/x86/boot/memory.c
arch/x86/include/asm/paravirt.h
arch/x86/include/asm/percpu.h
arch/x86/include/asm/ptrace.h
arch/x86/include/asm/spinlock.h
arch/x86/kernel/Makefile
arch/x86/kernel/apic/es7000_32.c
arch/x86/kernel/cpu/common.c
arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
arch/x86/kernel/cpu/cpufreq/p4-clockmod.c
arch/x86/kernel/cpu/cpufreq/powernow-k7.c
arch/x86/kernel/cpu/cpufreq/powernow-k8.c
arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
arch/x86/kernel/cpu/mcheck/mce_64.c
arch/x86/kernel/cpu/mtrr/generic.c
arch/x86/kernel/ftrace.c
arch/x86/kernel/kgdb.c
arch/x86/kernel/paravirt.c
arch/x86/kernel/reboot.c
arch/x86/kernel/setup_percpu.c
arch/x86/kernel/tlb_uv.c
arch/x86/kvm/mmu.c
arch/x86/kvm/svm.c
arch/x86/kvm/x86.c
arch/x86/lguest/Makefile
arch/x86/lguest/boot.c
arch/x86/mm/hugetlbpage.c
arch/x86/mm/pageattr.c
arch/x86/oprofile/backtrace.c
arch/x86/pci/mmconfig-shared.c
arch/x86/xen/Makefile
arch/x86/xen/mmu.c
arch/x86/xen/xen-ops.h
arch/xtensa/Kconfig
arch/xtensa/configs/s6105_defconfig
arch/xtensa/include/asm/checksum.h
arch/xtensa/include/asm/timex.h
arch/xtensa/kernel/Makefile
arch/xtensa/kernel/traps.c
arch/xtensa/kernel/vmlinux.lds.S
arch/xtensa/platforms/s6105/setup.c
arch/xtensa/variants/s6000/Makefile
arch/xtensa/variants/s6000/delay.c [new file with mode: 0644]
arch/xtensa/variants/s6000/gpio.c
arch/xtensa/variants/s6000/include/variant/gpio.h [new file with mode: 0644]
block/blk-core.c
block/bsg.c
crypto/ahash.c
crypto/api.c
crypto/eseqiv.c
drivers/acpi/acpica/Makefile
drivers/acpi/acpica/aclocal.h
drivers/acpi/bus.c
drivers/acpi/pci_bind.c
drivers/acpi/processor_core.c
drivers/acpi/processor_idle.c
drivers/acpi/processor_perflib.c
drivers/acpi/processor_throttling.c
drivers/acpi/video.c
drivers/ata/ahci.c
drivers/ata/ata_piix.c
drivers/ata/libata-core.c
drivers/ata/libata-eh.c
drivers/ata/libata-scsi.c
drivers/ata/pata_ali.c
drivers/ata/pata_efar.c
drivers/ata/pata_legacy.c
drivers/ata/pata_netcell.c
drivers/ata/pata_pdc202xx_old.c
drivers/ata/sata_fsl.c
drivers/ata/sata_mv.c
drivers/ata/sata_sx4.c
drivers/base/bus.c
drivers/base/core.c
drivers/base/driver.c
drivers/base/platform.c
drivers/base/power/main.c
drivers/block/xen-blkfront.c
drivers/cdrom/viocd.c
drivers/char/ipmi/ipmi_msghandler.c
drivers/char/mem.c
drivers/char/mxser.c
drivers/char/random.c
drivers/char/sysrq.c
drivers/char/tpm/tpm_bios.c
drivers/cpufreq/cpufreq.c
drivers/cpufreq/cpufreq_conservative.c
drivers/cpufreq/cpufreq_ondemand.c
drivers/crypto/ixp4xx_crypto.c
drivers/crypto/padlock-aes.c
drivers/dma/dmaengine.c
drivers/dma/dmatest.c
drivers/dma/fsldma.c
drivers/dma/ioat_dma.c
drivers/dma/ipu/ipu_idmac.c
drivers/edac/Kconfig
drivers/edac/Makefile
drivers/edac/amd8111_edac.c
drivers/edac/amd8131_edac.c
drivers/gpu/drm/Kconfig
drivers/gpu/drm/drm_bufs.c
drivers/gpu/drm/drm_crtc.c
drivers/gpu/drm/drm_crtc_helper.c
drivers/gpu/drm/drm_drv.c
drivers/gpu/drm/drm_edid.c
drivers/gpu/drm/drm_irq.c
drivers/gpu/drm/drm_sysfs.c
drivers/gpu/drm/i915/i915_dma.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem_tiling.c
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/i915_suspend.c
drivers/gpu/drm/i915/intel_bios.c
drivers/gpu/drm/i915/intel_bios.h
drivers/gpu/drm/i915/intel_crt.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_dvo.c
drivers/gpu/drm/i915/intel_fb.c
drivers/gpu/drm/i915/intel_hdmi.c
drivers/gpu/drm/i915/intel_i2c.c
drivers/gpu/drm/i915/intel_lvds.c
drivers/gpu/drm/i915/intel_modes.c
drivers/gpu/drm/i915/intel_sdvo.c
drivers/gpu/drm/i915/intel_tv.c
drivers/gpu/drm/radeon/radeon_cp.c
drivers/gpu/drm/radeon/radeon_drv.h
drivers/hid/hid-ids.h
drivers/hid/usbhid/hid-core.c
drivers/hid/usbhid/hid-quirks.c
drivers/hwmon/lm78.c
drivers/i2c/busses/Kconfig
drivers/i2c/busses/i2c-cpm.c
drivers/i2c/busses/i2c-mpc.c
drivers/i2c/busses/i2c-pxa.c
drivers/ide/icside.c
drivers/ide/ide-io.c
drivers/ide/ide-iops.c
drivers/ide/ide-lib.c
drivers/ide/ide-pci-generic.c
drivers/ide/ide-probe.c
drivers/ide/ide-tape.c
drivers/ide/pdc202xx_old.c
drivers/ide/piix.c
drivers/ide/via82cxxx.c
drivers/idle/i7300_idle.c
drivers/infiniband/hw/cxgb3/cxio_hal.c
drivers/infiniband/hw/ipath/ipath_fs.c
drivers/infiniband/hw/mlx4/mlx4_ib.h
drivers/infiniband/hw/mlx4/mr.c
drivers/infiniband/hw/mlx4/qp.c
drivers/input/ff-memless.c
drivers/input/input.c
drivers/input/joydev.c
drivers/input/keyboard/atkbd.c
drivers/input/serio/ambakmi.c
drivers/input/serio/libps2.c
drivers/input/touchscreen/tsc2007.c
drivers/input/touchscreen/ucb1400_ts.c
drivers/isdn/capi/capifs.c
drivers/isdn/gigaset/isocdata.c
drivers/lguest/x86/core.c
drivers/md/bitmap.c
drivers/md/md.c
drivers/md/raid5.c
drivers/media/radio/radio-sf16fmi.c
drivers/media/radio/radio-sf16fmr2.c
drivers/media/video/cafe_ccic.c
drivers/media/video/cx23885/cx23885-dvb.c
drivers/media/video/ivtv/ivtv-driver.c
drivers/media/video/ivtv/ivtv-gpio.c
drivers/media/video/ivtv/ivtv-ioctl.c
drivers/media/video/ivtv/ivtv-irq.c
drivers/media/video/ivtv/ivtv-queue.c
drivers/media/video/ivtv/ivtv-yuv.c
drivers/media/video/ivtv/ivtvfb.c
drivers/media/video/uvc/uvc_driver.c
drivers/media/video/uvc/uvc_video.c
drivers/media/video/v4l2-ioctl.c
drivers/media/video/zoran/zoran_driver.c
drivers/mfd/pcf50633-core.c
drivers/mfd/wm8350-core.c
drivers/misc/enclosure.c
drivers/mmc/host/mmci.c
drivers/mmc/host/mvsdio.c
drivers/mmc/host/mxcmmc.c
drivers/mmc/host/omap.c
drivers/mmc/host/omap_hsmmc.c
drivers/mmc/host/sdhci-of.c
drivers/mtd/devices/mtd_dataflash.c
drivers/mtd/mtdsuper.c
drivers/mtd/nand/davinci_nand.c
drivers/mtd/nand/mxc_nand.c
drivers/net/3c509.c
drivers/net/Makefile
drivers/net/arm/ixp4xx_eth.c
drivers/net/atl1e/atl1e_main.c
drivers/net/atlx/atl1.c
drivers/net/atlx/atlx.h
drivers/net/benet/be.h
drivers/net/benet/be_main.c
drivers/net/bfin_mac.c
drivers/net/bnx2.c
drivers/net/bonding/bond_3ad.c
drivers/net/bonding/bond_main.c
drivers/net/cxgb3/adapter.h
drivers/net/cxgb3/cxgb3_main.c
drivers/net/cxgb3/sge.c
drivers/net/cxgb3/t3_hw.c
drivers/net/e1000/e1000_main.c
drivers/net/forcedeth.c
drivers/net/gianfar.c
drivers/net/gianfar.h
drivers/net/igb/igb_main.c
drivers/net/mac8390.c
drivers/net/meth.c
drivers/net/mlx4/en_cq.c
drivers/net/mlx4/en_rx.c
drivers/net/mlx4/en_tx.c
drivers/net/mv643xx_eth.c
drivers/net/r8169.c
drivers/net/vxge/vxge-traffic.c
drivers/net/wan/ixp4xx_hss.c
drivers/net/wimax/i2400m/rx.c
drivers/net/wimax/i2400m/usb.c
drivers/net/wireless/Kconfig
drivers/net/wireless/airo.c
drivers/net/wireless/at76c50x-usb.c
drivers/net/wireless/ath5k/base.c
drivers/net/wireless/ath5k/phy.c
drivers/net/wireless/ath5k/reset.c
drivers/net/wireless/iwlwifi/iwl-5000.c
drivers/net/wireless/iwlwifi/iwl-6000.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-scan.c
drivers/net/wireless/iwlwifi/iwl-sta.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
drivers/net/wireless/rt2x00/rt2x00debug.c
drivers/net/wireless/rtl818x/rtl8187.h
drivers/net/wireless/rtl818x/rtl8187_dev.c
drivers/net/wireless/rtl818x/rtl8187_rtl8225.c
drivers/oprofile/cpu_buffer.c
drivers/parport/parport_gsc.c
drivers/parport/share.c
drivers/pci/hotplug/acpiphp.h
drivers/pci/hotplug/acpiphp_glue.c
drivers/pci/intel-iommu.c
drivers/pci/msi.c
drivers/pci/pci.c
drivers/pci/pcie/aer/aerdrv.h
drivers/pci/pcie/portdrv_pci.c
drivers/pci/probe.c
drivers/platform/x86/asus-laptop.c
drivers/platform/x86/eeepc-laptop.c
drivers/pnp/pnpacpi/core.c
drivers/regulator/da903x.c
drivers/rtc/rtc-pl030.c
drivers/rtc/rtc-pl031.c
drivers/rtc/rtc-twl4030.c
drivers/scsi/3w-9xxx.c
drivers/scsi/3w-xxxx.c
drivers/scsi/3w-xxxx.h
drivers/scsi/Kconfig
drivers/scsi/Makefile
drivers/scsi/fnic/Makefile [new file with mode: 0644]
drivers/scsi/fnic/cq_desc.h [new file with mode: 0644]
drivers/scsi/fnic/cq_enet_desc.h [new file with mode: 0644]
drivers/scsi/fnic/cq_exch_desc.h [new file with mode: 0644]
drivers/scsi/fnic/fcpio.h [new file with mode: 0644]
drivers/scsi/fnic/fnic.h [new file with mode: 0644]
drivers/scsi/fnic/fnic_attrs.c [new file with mode: 0644]
drivers/scsi/fnic/fnic_fcs.c [new file with mode: 0644]
drivers/scsi/fnic/fnic_io.h [new file with mode: 0644]
drivers/scsi/fnic/fnic_isr.c [new file with mode: 0644]
drivers/scsi/fnic/fnic_main.c [new file with mode: 0644]
drivers/scsi/fnic/fnic_res.c [new file with mode: 0644]
drivers/scsi/fnic/fnic_res.h [new file with mode: 0644]
drivers/scsi/fnic/fnic_scsi.c [new file with mode: 0644]
drivers/scsi/fnic/rq_enet_desc.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_cq.c [new file with mode: 0644]
drivers/scsi/fnic/vnic_cq.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_cq_copy.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_dev.c [new file with mode: 0644]
drivers/scsi/fnic/vnic_dev.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_devcmd.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_intr.c [new file with mode: 0644]
drivers/scsi/fnic/vnic_intr.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_nic.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_resource.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_rq.c [new file with mode: 0644]
drivers/scsi/fnic/vnic_rq.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_scsi.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_stats.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_wq.c [new file with mode: 0644]
drivers/scsi/fnic/vnic_wq.h [new file with mode: 0644]
drivers/scsi/fnic/vnic_wq_copy.c [new file with mode: 0644]
drivers/scsi/fnic/vnic_wq_copy.h [new file with mode: 0644]
drivers/scsi/fnic/wq_enet_desc.h [new file with mode: 0644]
drivers/scsi/mpt2sas/mpt2sas_base.h
drivers/scsi/osd/osd_uld.c
drivers/scsi/scsi_scan.c
drivers/scsi/scsi_transport_iscsi.c
drivers/serial/8250.c
drivers/serial/8250_gsc.c
drivers/serial/amba-pl010.c
drivers/serial/amba-pl011.c
drivers/serial/icom.c
drivers/serial/imx.c
drivers/serial/mpc52xx_uart.c
drivers/serial/nwpserial.c
drivers/spi/pxa2xx_spi.c
drivers/ssb/embedded.c
drivers/staging/comedi/TODO
drivers/staging/rt2870/rt2870.h
drivers/staging/rtl8187se/r8180.h
drivers/staging/rtl8187se/r8180_core.c
drivers/staging/winbond/wbusb.c
drivers/thermal/thermal_sys.c
drivers/usb/Makefile
drivers/usb/atm/cxacru.c
drivers/usb/class/cdc-acm.c
drivers/usb/gadget/atmel_usba_udc.c
drivers/usb/gadget/usbstring.c
drivers/usb/host/isp1760-hcd.c
drivers/usb/serial/ftdi_sio.c
drivers/usb/serial/ftdi_sio.h
drivers/usb/serial/usb-serial.c
drivers/usb/storage/unusual_devs.h
drivers/video/Kconfig
drivers/video/amba-clcd.c
drivers/video/atmel_lcdfb.c
drivers/video/gbefb.c
drivers/video/omap/dispc.c
drivers/video/omap/rfbi.c
drivers/video/s3c-fb.c
drivers/video/sh_mobile_lcdcfb.c
drivers/video/via/viafbdev.c
firmware/cis/.gitignore [new file with mode: 0644]
fs/9p/vfs_super.c
fs/affs/super.c
fs/afs/super.c
fs/autofs4/waitq.c
fs/binfmt_flat.c
fs/btrfs/ctree.c
fs/btrfs/disk-io.c
fs/btrfs/extent-tree.c
fs/btrfs/inode.c
fs/btrfs/ioctl.c
fs/btrfs/super.c
fs/btrfs/volumes.c
fs/buffer.c
fs/cachefiles/internal.h
fs/cifs/cifsfs.c
fs/cifs/cifssmb.c
fs/cifs/dir.c
fs/cifs/file.c
fs/cifs/link.c
fs/dcache.c
fs/devpts/inode.c
fs/ecryptfs/main.c
fs/eventpoll.c
fs/exec.c
fs/ext4/extents.c
fs/ext4/inode.c
fs/fcntl.c
fs/fscache/internal.h
fs/fuse/inode.c
fs/gfs2/glock.c
fs/gfs2/ops_fstype.c
fs/hpfs/super.c
fs/hugetlbfs/inode.c
fs/inode.c
fs/jbd/commit.c
fs/jffs2/erase.c
fs/libfs.c
fs/lockd/svc.c
fs/namei.c
fs/namespace.c
fs/nfs/dir.c
fs/nfs/nfs4proc.c
fs/nfs/nfsroot.c
fs/nfs/super.c
fs/nfsd/nfs4recover.c
fs/nfsd/nfs4state.c
fs/nfsd/nfs4xdr.c
fs/nfsd/vfs.c
fs/nilfs2/cpfile.c
fs/nilfs2/ioctl.c
fs/nilfs2/mdt.c
fs/nilfs2/nilfs.h
fs/nilfs2/page.c
fs/nilfs2/recovery.c
fs/nilfs2/segment.c
fs/nilfs2/segment.h
fs/ocfs2/symlink.c
fs/open.c
fs/proc/base.c
fs/proc/root.c
fs/reiserfs/dir.c
fs/reiserfs/namei.c
fs/reiserfs/super.c
fs/reiserfs/xattr.c
fs/reiserfs/xattr_security.c
fs/romfs/super.c
fs/squashfs/Makefile
fs/squashfs/cache.c
fs/squashfs/super.c
fs/super.c
fs/sysfs/file.c
fs/ubifs/super.c
fs/ufs/dir.c
fs/ufs/file.c
fs/ufs/ufs.h
fs/xfs/linux-2.6/kmem.h
fs/xfs/xfs_dfrag.c
fs/xfs/xfs_fsops.c
include/asm-generic/local.h
include/drm/drmP.h
include/drm/drm_crtc.h
include/drm/drm_crtc_helper.h
include/drm/i915_drm.h
include/linux/Kbuild
include/linux/amba/bus.h
include/linux/amba/serial.h
include/linux/ata.h
include/linux/auto_fs.h
include/linux/cpumask.h
include/linux/cred.h
include/linux/device.h
include/linux/dmaengine.h
include/linux/fs.h
include/linux/i7300_idle.h
include/linux/ide.h
include/linux/input.h
include/linux/mmzone.h
include/linux/namei.h
include/linux/net_dropmon.h
include/linux/netfilter/nf_conntrack_tcp.h
include/linux/netfilter/xt_LED.h
include/linux/netfilter/xt_cluster.h
include/linux/parport.h
include/linux/pci_ids.h
include/linux/platform_device.h
include/linux/reiserfs_fs_sb.h
include/linux/reiserfs_xattr.h
include/linux/romfs_fs.h
include/linux/swap.h
include/linux/syscalls.h
include/linux/tracehook.h
include/linux/writeback.h
include/scsi/scsi_transport_fc.h
include/sound/core.h
include/sound/driver.h [deleted file]
include/sound/pcm.h
include/sound/soc-dai.h
include/sound/soc-dapm.h
include/sound/soc.h
include/sound/version.h
include/sound/wm9081.h [new file with mode: 0644]
init/main.c
ipc/shm.c
kernel/async.c
kernel/cgroup.c
kernel/fork.c
kernel/futex.c
kernel/kexec.c
kernel/kgdb.c
kernel/kmod.c
kernel/lockdep_internals.h
kernel/panic.c
kernel/power/disk.c
kernel/power/main.c
kernel/ptrace.c
kernel/sched_clock.c
kernel/sched_cpupri.c
kernel/sched_rt.c
kernel/smp.c
kernel/sysctl.c
kernel/trace/trace.c
lib/Kconfig.debug
lib/cpumask.c
mm/filemap.c
mm/hugetlb.c
mm/madvise.c
mm/memcontrol.c
mm/mmzone.c
mm/oom_kill.c
mm/page-writeback.c
mm/pdflush.c
mm/rmap.c
mm/slob.c
mm/slub.c
mm/swap_state.c
mm/truncate.c
mm/vmscan.c
mm/vmstat.c
net/Kconfig
net/bluetooth/hci_conn.c
net/bluetooth/hci_event.c
net/bluetooth/hci_sysfs.c
net/bridge/br_input.c
net/bridge/br_stp.c
net/core/gen_estimator.c
net/core/netpoll.c
net/core/pktgen.c
net/core/skbuff.c
net/ipv4/Kconfig
net/ipv4/fib_trie.c
net/ipv4/ipconfig.c
net/ipv4/route.c
net/ipv4/tcp.c
net/ipv4/tcp_vegas.c
net/ipv6/netfilter/ip6t_ipv6header.c
net/ipv6/route.c
net/mac80211/rc80211_minstrel.c
net/mac80211/rc80211_pid_algo.c
net/mac80211/tx.c
net/netfilter/ipvs/ip_vs_conn.c
net/netfilter/ipvs/ip_vs_core.c
net/netfilter/nf_conntrack_netlink.c
net/netfilter/nf_conntrack_proto_dccp.c
net/netfilter/nf_conntrack_proto_tcp.c
net/netfilter/nfnetlink_log.c
net/netfilter/xt_cluster.c
net/netfilter/xt_hashlimit.c
net/rxrpc/ar-connection.c
net/sched/cls_api.c
net/sched/cls_cgroup.c
net/sched/sch_fifo.c
net/sched/sch_teql.c
net/sunrpc/svcsock.c
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
net/sunrpc/xprtrdma/svc_rdma_sendto.c
net/sunrpc/xprtrdma/svc_rdma_transport.c
net/sunrpc/xprtrdma/verbs.c
net/wimax/op-msg.c
net/wimax/stack.c
net/wireless/reg.c
net/wireless/scan.c
net/wireless/wext.c
scripts/setlocalversion
security/tomoyo/common.c
security/tomoyo/realpath.c
security/tomoyo/tomoyo.c
sound/aoa/fabrics/layout.c
sound/aoa/soundbus/i2sbus/core.c
sound/arm/aaci.c
sound/arm/pxa2xx-ac97-lib.c
sound/core/init.c
sound/core/oss/pcm_oss.c
sound/core/pcm_lib.c
sound/core/pcm_native.c
sound/drivers/pcsp/pcsp_mixer.c
sound/drivers/serial-u16550.c
sound/pci/Kconfig
sound/pci/Makefile
sound/pci/ac97/ac97_patch.c
sound/pci/au88x0/au88x0_core.c
sound/pci/ca0106/ca0106_mixer.c
sound/pci/ctxfi/Makefile [new file with mode: 0644]
sound/pci/ctxfi/ct20k1reg.h [new file with mode: 0644]
sound/pci/ctxfi/ct20k2reg.h [new file with mode: 0644]
sound/pci/ctxfi/ctamixer.c [new file with mode: 0644]
sound/pci/ctxfi/ctamixer.h [new file with mode: 0644]
sound/pci/ctxfi/ctatc.c [new file with mode: 0644]
sound/pci/ctxfi/ctatc.h [new file with mode: 0644]
sound/pci/ctxfi/ctdaio.c [new file with mode: 0644]
sound/pci/ctxfi/ctdaio.h [new file with mode: 0644]
sound/pci/ctxfi/cthardware.c [new file with mode: 0644]
sound/pci/ctxfi/cthardware.h [new file with mode: 0644]
sound/pci/ctxfi/cthw20k1.c [new file with mode: 0644]
sound/pci/ctxfi/cthw20k1.h [new file with mode: 0644]
sound/pci/ctxfi/cthw20k2.c [new file with mode: 0644]
sound/pci/ctxfi/cthw20k2.h [new file with mode: 0644]
sound/pci/ctxfi/ctimap.c [new file with mode: 0644]
sound/pci/ctxfi/ctimap.h [new file with mode: 0644]
sound/pci/ctxfi/ctmixer.c [new file with mode: 0644]
sound/pci/ctxfi/ctmixer.h [new file with mode: 0644]
sound/pci/ctxfi/ctpcm.c [new file with mode: 0644]
sound/pci/ctxfi/ctpcm.h [new file with mode: 0644]
sound/pci/ctxfi/ctresource.c [new file with mode: 0644]
sound/pci/ctxfi/ctresource.h [new file with mode: 0644]
sound/pci/ctxfi/ctsrc.c [new file with mode: 0644]
sound/pci/ctxfi/ctsrc.h [new file with mode: 0644]
sound/pci/ctxfi/cttimer.c [new file with mode: 0644]
sound/pci/ctxfi/cttimer.h [new file with mode: 0644]
sound/pci/ctxfi/ctvmem.c [new file with mode: 0644]
sound/pci/ctxfi/ctvmem.h [new file with mode: 0644]
sound/pci/ctxfi/xfi.c [new file with mode: 0644]
sound/pci/emu10k1/emupcm.c
sound/pci/hda/Kconfig
sound/pci/hda/Makefile
sound/pci/hda/hda_beep.c
sound/pci/hda/hda_beep.h
sound/pci/hda/hda_codec.c
sound/pci/hda/hda_codec.h
sound/pci/hda/hda_hwdep.c
sound/pci/hda/hda_intel.c
sound/pci/hda/hda_proc.c
sound/pci/hda/patch_ca0110.c [new file with mode: 0644]
sound/pci/hda/patch_conexant.c
sound/pci/hda/patch_nvhdmi.c
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_sigmatel.c
sound/pci/hda/patch_via.c
sound/pci/riptide/riptide.c
sound/pci/rme9652/hdsp.c
sound/pci/rme9652/hdspm.c
sound/pci/via82xx.c
sound/soc/Kconfig
sound/soc/Makefile
sound/soc/atmel/Kconfig
sound/soc/atmel/Makefile
sound/soc/atmel/playpaq_wm8510.c
sound/soc/atmel/snd-soc-afeb9260.c [new file with mode: 0644]
sound/soc/blackfin/bf5xx-ac97.c
sound/soc/blackfin/bf5xx-sport.c
sound/soc/codecs/Kconfig
sound/soc/codecs/Makefile
sound/soc/codecs/ac97.c
sound/soc/codecs/ad1980.c
sound/soc/codecs/cs4270.c
sound/soc/codecs/spdif_transciever.c [new file with mode: 0644]
sound/soc/codecs/spdif_transciever.h [new file with mode: 0644]
sound/soc/codecs/ssm2602.c
sound/soc/codecs/stac9766.c [new file with mode: 0644]
sound/soc/codecs/stac9766.h [new file with mode: 0644]
sound/soc/codecs/tlv320aic23.c
sound/soc/codecs/twl4030.c
sound/soc/codecs/twl4030.h
sound/soc/codecs/uda134x.c
sound/soc/codecs/wm8350.c
sound/soc/codecs/wm8350.h
sound/soc/codecs/wm8400.c
sound/soc/codecs/wm8510.c
sound/soc/codecs/wm8580.c
sound/soc/codecs/wm8731.c
sound/soc/codecs/wm8753.c
sound/soc/codecs/wm8900.c
sound/soc/codecs/wm8903.c
sound/soc/codecs/wm8940.c [new file with mode: 0644]
sound/soc/codecs/wm8940.h [new file with mode: 0644]
sound/soc/codecs/wm8960.c [new file with mode: 0644]
sound/soc/codecs/wm8960.h [new file with mode: 0644]
sound/soc/codecs/wm8988.c [new file with mode: 0644]
sound/soc/codecs/wm8988.h [new file with mode: 0644]
sound/soc/codecs/wm8990.c
sound/soc/codecs/wm9081.c [new file with mode: 0644]
sound/soc/codecs/wm9081.h [new file with mode: 0644]
sound/soc/codecs/wm9705.c
sound/soc/codecs/wm9712.c
sound/soc/codecs/wm9713.c
sound/soc/davinci/Kconfig
sound/soc/davinci/davinci-evm.c
sound/soc/davinci/davinci-i2s.c
sound/soc/davinci/davinci-pcm.c
sound/soc/fsl/Kconfig
sound/soc/fsl/Makefile
sound/soc/fsl/efika-audio-fabric.c [new file with mode: 0644]
sound/soc/fsl/fsl_ssi.c
sound/soc/fsl/mpc5200_dma.c [new file with mode: 0644]
sound/soc/fsl/mpc5200_dma.h [new file with mode: 0644]
sound/soc/fsl/mpc5200_psc_ac97.c [new file with mode: 0644]
sound/soc/fsl/mpc5200_psc_ac97.h [new file with mode: 0644]
sound/soc/fsl/mpc5200_psc_i2s.c
sound/soc/fsl/mpc5200_psc_i2s.h [new file with mode: 0644]
sound/soc/fsl/pcm030-audio-fabric.c [new file with mode: 0644]
sound/soc/omap/Kconfig
sound/soc/omap/Makefile
sound/soc/omap/n810.c
sound/soc/omap/omap-mcbsp.c
sound/soc/omap/omap-pcm.c
sound/soc/omap/omap2evm.c
sound/soc/omap/omap3beagle.c
sound/soc/omap/omap3evm.c [new file with mode: 0644]
sound/soc/omap/omap3pandora.c
sound/soc/omap/overo.c
sound/soc/omap/sdp3430.c
sound/soc/pxa/Kconfig
sound/soc/pxa/Makefile
sound/soc/pxa/em-x270.c
sound/soc/pxa/imote2.c [new file with mode: 0644]
sound/soc/pxa/magician.c
sound/soc/pxa/pxa-ssp.c
sound/soc/pxa/pxa2xx-i2s.c
sound/soc/s3c24xx/s3c-i2s-v2.c
sound/soc/s3c24xx/s3c2412-i2s.c
sound/soc/s3c24xx/s3c64xx-i2s.c
sound/soc/s3c24xx/s3c64xx-i2s.h
sound/soc/s6000/Kconfig [new file with mode: 0644]
sound/soc/s6000/Makefile [new file with mode: 0644]
sound/soc/s6000/s6000-i2s.c [new file with mode: 0644]
sound/soc/s6000/s6000-i2s.h [new file with mode: 0644]
sound/soc/s6000/s6000-pcm.c [new file with mode: 0644]
sound/soc/s6000/s6000-pcm.h [new file with mode: 0644]
sound/soc/s6000/s6105-ipcam.c [new file with mode: 0644]
sound/soc/sh/ssi.c
sound/soc/soc-core.c
sound/soc/soc-dapm.c
sound/soc/txx9/Kconfig [new file with mode: 0644]
sound/soc/txx9/Makefile [new file with mode: 0644]
sound/soc/txx9/txx9aclc-ac97.c [new file with mode: 0644]
sound/soc/txx9/txx9aclc-generic.c [new file with mode: 0644]
sound/soc/txx9/txx9aclc.c [new file with mode: 0644]
sound/soc/txx9/txx9aclc.h [new file with mode: 0644]
sound/usb/caiaq/audio.c
sound/usb/caiaq/device.c
sound/usb/caiaq/device.h
sound/usb/caiaq/midi.c
sound/usb/usbaudio.c
sound/usb/usbaudio.h
sound/usb/usbmidi.c
sound/usb/usbquirks.h
virt/kvm/kvm_main.c

diff --git a/Documentation/ABI/testing/sysfs-kernel-slab b/Documentation/ABI/testing/sysfs-kernel-slab
new file mode 100644 (file)
index 0000000..6dcf75e
--- /dev/null
@@ -0,0 +1,479 @@
+What:          /sys/kernel/slab
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The /sys/kernel/slab directory contains a snapshot of the
+               internal state of the SLUB allocator for each cache.  Certain
+               files may be modified to change the behavior of the cache (and
+               any cache it aliases, if any).
+Users:         kernel memory tuning tools
+
+What:          /sys/kernel/slab/cache/aliases
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The aliases file is read-only and specifies how many caches
+               have merged into this cache.
+
+What:          /sys/kernel/slab/cache/align
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The align file is read-only and specifies the cache's object
+               alignment in bytes.
+
+What:          /sys/kernel/slab/cache/alloc_calls
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The alloc_calls file is read-only and lists the kernel code
+               locations from which allocations for this cache were performed.
+               The alloc_calls file only contains information if debugging is
+               enabled for that cache (see Documentation/vm/slub.txt).
+
+What:          /sys/kernel/slab/cache/alloc_fastpath
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The alloc_fastpath file is read-only and specifies how many
+               objects have been allocated using the fast path.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/alloc_from_partial
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The alloc_from_partial file is read-only and specifies how
+               many times a cpu slab has been full and it has been refilled
+               by using a slab from the list of partially used slabs.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/alloc_refill
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The alloc_refill file is read-only and specifies how many
+               times the per-cpu freelist was empty but there were objects
+               available as the result of remote cpu frees.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/alloc_slab
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The alloc_slab file is read-only and specifies how many times
+               a new slab had to be allocated from the page allocator.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/alloc_slowpath
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The alloc_slowpath file is read-only and specifies how many
+               objects have been allocated using the slow path because of a
+               refill or allocation from a partial or new slab.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/cache_dma
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The cache_dma file is read-only and specifies whether objects
+               are from ZONE_DMA.
+               Available when CONFIG_ZONE_DMA is enabled.
+
+What:          /sys/kernel/slab/cache/cpu_slabs
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The cpu_slabs file is read-only and displays how many cpu slabs
+               are active and their NUMA locality.
+
+What:          /sys/kernel/slab/cache/cpuslab_flush
+Date:          April 2009
+KernelVersion: 2.6.31
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The file cpuslab_flush is read-only and specifies how many
+               times a cache's cpu slabs have been flushed as the result of
+               destroying or shrinking a cache, a cpu going offline, or as
+               the result of forcing an allocation from a certain node.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/ctor
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The ctor file is read-only and specifies the cache's object
+               constructor function, which is invoked for each object when a
+               new slab is allocated.
+
+What:          /sys/kernel/slab/cache/deactivate_empty
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The file deactivate_empty is read-only and specifies how many
+               times an empty cpu slab was deactivated.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/deactivate_full
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The file deactivate_full is read-only and specifies how many
+               times a full cpu slab was deactivated.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/deactivate_remote_frees
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The file deactivate_remote_frees is read-only and specifies how
+               many times a cpu slab has been deactivated and contained free
+               objects that were freed remotely.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/deactivate_to_head
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The file deactivate_to_head is read-only and specifies how
+               many times a partial cpu slab was deactivated and added to the
+               head of its node's partial list.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/deactivate_to_tail
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The file deactivate_to_tail is read-only and specifies how
+               many times a partial cpu slab was deactivated and added to the
+               tail of its node's partial list.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/destroy_by_rcu
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The destroy_by_rcu file is read-only and specifies whether
+               slabs (not objects) are freed by rcu.
+
+What:          /sys/kernel/slab/cache/free_add_partial
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The file free_add_partial is read-only and specifies how many
+               times an object has been freed in a full slab so that it had to
+               added to its node's partial list.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/free_calls
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The free_calls file is read-only and lists the locations of
+               object frees if slab debugging is enabled (see
+               Documentation/vm/slub.txt).
+
+What:          /sys/kernel/slab/cache/free_fastpath
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The free_fastpath file is read-only and specifies how many
+               objects have been freed using the fast path because it was an
+               object from the cpu slab.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/free_frozen
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The free_frozen file is read-only and specifies how many
+               objects have been freed to a frozen slab (i.e. a remote cpu
+               slab).
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/free_remove_partial
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The file free_remove_partial is read-only and specifies how
+               many times an object has been freed to a now-empty slab so
+               that it had to be removed from its node's partial list.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/free_slab
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The free_slab file is read-only and specifies how many times an
+               empty slab has been freed back to the page allocator.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/free_slowpath
+Date:          February 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The free_slowpath file is read-only and specifies how many
+               objects have been freed using the slow path (i.e. to a full or
+               partial slab).
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/hwcache_align
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The hwcache_align file is read-only and specifies whether
+               objects are aligned on cachelines.
+
+What:          /sys/kernel/slab/cache/min_partial
+Date:          February 2009
+KernelVersion: 2.6.30
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               David Rientjes <rientjes@google.com>
+Description:
+               The min_partial file specifies how many empty slabs shall
+               remain on a node's partial list to avoid the overhead of
+               allocating new slabs.  Such slabs may be reclaimed by utilizing
+               the shrink file.
+
+What:          /sys/kernel/slab/cache/object_size
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The object_size file is read-only and specifies the cache's
+               object size.
+
+What:          /sys/kernel/slab/cache/objects
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The objects file is read-only and displays how many objects are
+               active and from which nodes they are from.
+
+What:          /sys/kernel/slab/cache/objects_partial
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The objects_partial file is read-only and displays how many
+               objects are on partial slabs and from which nodes they are
+               from.
+
+What:          /sys/kernel/slab/cache/objs_per_slab
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The file objs_per_slab is read-only and specifies how many
+               objects may be allocated from a single slab of the order
+               specified in /sys/kernel/slab/cache/order.
+
+What:          /sys/kernel/slab/cache/order
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The order file specifies the page order at which new slabs are
+               allocated.  It is writable and can be changed to increase the
+               number of objects per slab.  If a slab cannot be allocated
+               because of fragmentation, SLUB will retry with the minimum order
+               possible depending on its characteristics.
+
+What:          /sys/kernel/slab/cache/order_fallback
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The file order_fallback is read-only and specifies how many
+               times an allocation of a new slab has not been possible at the
+               cache's order and instead fallen back to its minimum possible
+               order.
+               Available when CONFIG_SLUB_STATS is enabled.
+
+What:          /sys/kernel/slab/cache/partial
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The partial file is read-only and displays how long many
+               partial slabs there are and how long each node's list is.
+
+What:          /sys/kernel/slab/cache/poison
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The poison file specifies whether objects should be poisoned
+               when a new slab is allocated.
+
+What:          /sys/kernel/slab/cache/reclaim_account
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The reclaim_account file specifies whether the cache's objects
+               are reclaimable (and grouped by their mobility).
+
+What:          /sys/kernel/slab/cache/red_zone
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The red_zone file specifies whether the cache's objects are red
+               zoned.
+
+What:          /sys/kernel/slab/cache/remote_node_defrag_ratio
+Date:          January 2008
+KernelVersion: 2.6.25
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The file remote_node_defrag_ratio specifies the percentage of
+               times SLUB will attempt to refill the cpu slab with a partial
+               slab from a remote node as opposed to allocating a new slab on
+               the local node.  This reduces the amount of wasted memory over
+               the entire system but can be expensive.
+               Available when CONFIG_NUMA is enabled.
+
+What:          /sys/kernel/slab/cache/sanity_checks
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The sanity_checks file specifies whether expensive checks
+               should be performed on free and, at minimum, enables double free
+               checks.  Caches that enable sanity_checks cannot be merged with
+               caches that do not.
+
+What:          /sys/kernel/slab/cache/shrink
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The shrink file is written when memory should be reclaimed from
+               a cache.  Empty partial slabs are freed and the partial list is
+               sorted so the slabs with the fewest available objects are used
+               first.
+
+What:          /sys/kernel/slab/cache/slab_size
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The slab_size file is read-only and specifies the object size
+               with metadata (debugging information and alignment) in bytes.
+
+What:          /sys/kernel/slab/cache/slabs
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The slabs file is read-only and displays how long many slabs
+               there are (both cpu and partial) and from which nodes they are
+               from.
+
+What:          /sys/kernel/slab/cache/store_user
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The store_user file specifies whether the location of
+               allocation or free should be tracked for a cache.
+
+What:          /sys/kernel/slab/cache/total_objects
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The total_objects file is read-only and displays how many total
+               objects a cache has and from which nodes they are from.
+
+What:          /sys/kernel/slab/cache/trace
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               The trace file specifies whether object allocations and frees
+               should be traced.
+
+What:          /sys/kernel/slab/cache/validate
+Date:          May 2007
+KernelVersion: 2.6.22
+Contact:       Pekka Enberg <penberg@cs.helsinki.fi>,
+               Christoph Lameter <cl@linux-foundation.org>
+Description:
+               Writing to the validate file causes SLUB to traverse all of its
+               cache's objects and check the validity of metadata.
index 372dec20c8dab6db05fbbcd9e3cdef93f1e783a5..5cff41a5fa7c3746b97db6db8955cd06c895bc01 100644 (file)
     seriously wrong while debugging, it will most often be the case
     that you want to enable gdb to be verbose about its target
     communications.  You do this prior to issuing the <constant>target
-    remote</constant> command by typing in: <constant>set remote debug 1</constant>
+    remote</constant> command by typing in: <constant>set debug remote 1</constant>
     </para>
   </chapter>
   <chapter id="KGDBTestSuite">
index 222437efd75a8231751c83a9d68195364b22ad62..3015da0c6b2a253c4a1b65559a8a8ec82b24e3e9 100644 (file)
@@ -133,4 +133,4 @@ RAM/SWAP in 10240 inodes and it is only accessible by root.
 Author:
    Christoph Rohland <cr@sap.com>, 1.12.01
 Updated:
-   Hugh Dickins <hugh@veritas.com>, 4 June 2007
+   Hugh Dickins, 4 June 2007
index 2f10ce6a879f7276f635cd1ac51c03d8c004d8c1..004ee161721e9b3bd1aa213c174a594174b187c8 100644 (file)
@@ -150,6 +150,11 @@ fan[1-*]_min       Fan minimum value
                Unit: revolution/min (RPM)
                RW
 
+fan[1-*]_max   Fan maximum value
+               Unit: revolution/min (RPM)
+               Only rarely supported by the hardware.
+               RW
+
 fan[1-*]_input Fan input value.
                Unit: revolution/min (RPM)
                RO
@@ -390,6 +395,7 @@ OR
 in[0-*]_min_alarm
 in[0-*]_max_alarm
 fan[1-*]_min_alarm
+fan[1-*]_max_alarm
 temp[1-*]_min_alarm
 temp[1-*]_max_alarm
 temp[1-*]_crit_alarm
index 9f09557aea39c5e80b6b9810ab170fddd32b1c91..a12ea3b586e6e15ecb66322c78bf5d6cb3e03f79 100644 (file)
@@ -18,8 +18,12 @@ Usage
 Anonymous finger details are sent sequentially as separate packets of ABS
 events. Only the ABS_MT events are recognized as part of a finger
 packet. The end of a packet is marked by calling the input_mt_sync()
-function, which generates a SYN_MT_REPORT event. The end of multi-touch
-transfer is marked by calling the usual input_sync() function.
+function, which generates a SYN_MT_REPORT event. This instructs the
+receiver to accept the data for the current finger and prepare to receive
+another. The end of a multi-touch transfer is marked by calling the usual
+input_sync() function. This instructs the receiver to act upon events
+accumulated since last EV_SYN/SYN_REPORT and prepare to receive a new
+set of events/packets.
 
 A set of ABS_MT events with the desired properties is defined. The events
 are divided into categories, to allow for partial implementation.  The
@@ -27,11 +31,26 @@ minimum set consists of ABS_MT_TOUCH_MAJOR, ABS_MT_POSITION_X and
 ABS_MT_POSITION_Y, which allows for multiple fingers to be tracked.  If the
 device supports it, the ABS_MT_WIDTH_MAJOR may be used to provide the size
 of the approaching finger. Anisotropy and direction may be specified with
-ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MINOR and ABS_MT_ORIENTATION. Devices with
-more granular information may specify general shapes as blobs, i.e., as a
-sequence of rectangular shapes grouped together by an
-ABS_MT_BLOB_ID. Finally, the ABS_MT_TOOL_TYPE may be used to specify
-whether the touching tool is a finger or a pen or something else.
+ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MINOR and ABS_MT_ORIENTATION.  The
+ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a
+finger or a pen or something else.  Devices with more granular information
+may specify general shapes as blobs, i.e., as a sequence of rectangular
+shapes grouped together by an ABS_MT_BLOB_ID. Finally, for the few devices
+that currently support it, the ABS_MT_TRACKING_ID event may be used to
+report finger tracking from hardware [5].
+
+Here is what a minimal event sequence for a two-finger touch would look
+like:
+
+   ABS_MT_TOUCH_MAJOR
+   ABS_MT_POSITION_X
+   ABS_MT_POSITION_Y
+   SYN_MT_REPORT
+   ABS_MT_TOUCH_MAJOR
+   ABS_MT_POSITION_X
+   ABS_MT_POSITION_Y
+   SYN_MT_REPORT
+   SYN_REPORT
 
 
 Event Semantics
@@ -44,24 +63,24 @@ ABS_MT_TOUCH_MAJOR
 
 The length of the major axis of the contact. The length should be given in
 surface units. If the surface has an X times Y resolution, the largest
-possible value of ABS_MT_TOUCH_MAJOR is sqrt(X^2 + Y^2), the diagonal.
+possible value of ABS_MT_TOUCH_MAJOR is sqrt(X^2 + Y^2), the diagonal [4].
 
 ABS_MT_TOUCH_MINOR
 
 The length, in surface units, of the minor axis of the contact. If the
-contact is circular, this event can be omitted.
+contact is circular, this event can be omitted [4].
 
 ABS_MT_WIDTH_MAJOR
 
 The length, in surface units, of the major axis of the approaching
 tool. This should be understood as the size of the tool itself. The
 orientation of the contact and the approaching tool are assumed to be the
-same.
+same [4].
 
 ABS_MT_WIDTH_MINOR
 
 The length, in surface units, of the minor axis of the approaching
-tool. Omit if circular.
+tool. Omit if circular [4].
 
 The above four values can be used to derive additional information about
 the contact. The ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR approximates
@@ -70,14 +89,17 @@ different characteristic widths [1].
 
 ABS_MT_ORIENTATION
 
-The orientation of the ellipse. The value should describe half a revolution
-clockwise around the touch center. The scale of the value is arbitrary, but
-zero should be returned for an ellipse aligned along the Y axis of the
-surface. As an example, an index finger placed straight onto the axis could
-return zero orientation, something negative when twisted to the left, and
-something positive when twisted to the right. This value can be omitted if
-the touching object is circular, or if the information is not available in
-the kernel driver.
+The orientation of the ellipse. The value should describe a signed quarter
+of a revolution clockwise around the touch center. The signed value range
+is arbitrary, but zero should be returned for a finger aligned along the Y
+axis of the surface, a negative value when finger is turned to the left, and
+a positive value when finger turned to the right. When completely aligned with
+the X axis, the range max should be returned.  Orientation can be omitted
+if the touching object is circular, or if the information is not available
+in the kernel driver. Partial orientation support is possible if the device
+can distinguish between the two axis, but not (uniquely) any values in
+between. In such cases, the range of ABS_MT_ORIENTATION should be [0, 1]
+[4].
 
 ABS_MT_POSITION_X
 
@@ -98,8 +120,35 @@ ABS_MT_BLOB_ID
 
 The BLOB_ID groups several packets together into one arbitrarily shaped
 contact. This is a low-level anonymous grouping, and should not be confused
-with the high-level contactID, explained below. Most kernel drivers will
-not have this capability, and can safely omit the event.
+with the high-level trackingID [5]. Most kernel drivers will not have blob
+capability, and can safely omit the event.
+
+ABS_MT_TRACKING_ID
+
+The TRACKING_ID identifies an initiated contact throughout its life cycle
+[5]. There are currently only a few devices that support it, so this event
+should normally be omitted.
+
+
+Event Computation
+-----------------
+
+The flora of different hardware unavoidably leads to some devices fitting
+better to the MT protocol than others. To simplify and unify the mapping,
+this section gives recipes for how to compute certain events.
+
+For devices reporting contacts as rectangular shapes, signed orientation
+cannot be obtained. Assuming X and Y are the lengths of the sides of the
+touching rectangle, here is a simple formula that retains the most
+information possible:
+
+   ABS_MT_TOUCH_MAJOR := max(X, Y)
+   ABS_MT_TOUCH_MINOR := min(X, Y)
+   ABS_MT_ORIENTATION := bool(X > Y)
+
+The range of ABS_MT_ORIENTATION should be set to [0, 1], to indicate that
+the device can distinguish between a finger along the Y axis (0) and a
+finger along the X axis (1).
 
 
 Finger Tracking
@@ -109,14 +158,18 @@ The kernel driver should generate an arbitrary enumeration of the set of
 anonymous contacts currently on the surface. The order in which the packets
 appear in the event stream is not important.
 
-The process of finger tracking, i.e., to assign a unique contactID to each
+The process of finger tracking, i.e., to assign a unique trackingID to each
 initiated contact on the surface, is left to user space; preferably the
-multi-touch X driver [3]. In that driver, the contactID stays the same and
+multi-touch X driver [3]. In that driver, the trackingID stays the same and
 unique until the contact vanishes (when the finger leaves the surface). The
 problem of assigning a set of anonymous fingers to a set of identified
 fingers is a euclidian bipartite matching problem at each event update, and
 relies on a sufficiently rapid update rate.
 
+There are a few devices that support trackingID in hardware. User space can
+make use of these native identifiers to reduce bandwidth and cpu usage.
+
+
 Notes
 -----
 
@@ -136,5 +189,7 @@ could be used to derive tilt.
 time of writing (April 2009), the MT protocol is not yet merged, and the
 prototype implements finger matching, basic mouse support and two-finger
 scrolling. The project aims at improving the quality of current multi-touch
-functionality available in the synaptics X driver, and in addition
+functionality available in the Synaptics X driver, and in addition
 implement more advanced gestures.
+[4] See the section on event computation.
+[5] See the section on finger tracking.
index e87bdbfbcc75e236124a526d4456ddf3c6afc4e3..fd5cac013037defc68c3ef118ed70b476debee71 100644 (file)
@@ -1535,6 +1535,10 @@ and is between 256 and 4096 characters. It is defined in the file
                        register save and restore. The kernel will only save
                        legacy floating-point registers on task switch.
 
+       noxsave         [BUGS=X86] Disables x86 extended register state save
+                       and restore using xsave. The kernel will fallback to
+                       enabling legacy floating-point and sse state.
+
        nohlt           [BUGS=ARM,SH] Tells the kernel that the sleep(SH) or
                        wfi(ARM) instruction doesn't work correctly and not to
                        use it. This is also useful when using JTAG debugger.
index ec5de02f543f68c84b2f88712a478c827d033ffa..b121c5db707fcf8708533acd7b73a51cbd286296 100644 (file)
@@ -1266,13 +1266,22 @@ sctp_rmem - vector of 3 INTEGERs: min, default, max
 sctp_wmem  - vector of 3 INTEGERs: min, default, max
        See tcp_wmem for a description.
 
-UNDOCUMENTED:
 
 /proc/sys/net/core/*
-       dev_weight FIXME
+dev_weight - INTEGER
+       The maximum number of packets that kernel can handle on a NAPI
+       interrupt, it's a Per-CPU variable.
+
+       Default: 64
 
 /proc/sys/net/unix/*
-       max_dgram_qlen FIXME
+max_dgram_qlen - INTEGER
+       The maximum length of dgram socket receive queue
+
+       Default: 10
+
+
+UNDOCUMENTED:
 
 /proc/sys/net/irda/*
        fast_poll_increase FIXME
index 012858d2b11935aa711e4cf9d2d8fbe637403813..c903db869dd6582de23a8b053282da65e7afc91c 100644 (file)
@@ -460,6 +460,25 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
 
     The power-management is supported.
 
+  Module snd-ctxfi
+  ----------------
+
+    Module for Creative Sound Blaster X-Fi boards (20k1 / 20k2 chips)
+       * Creative Sound Blaster X-Fi Titanium Fatal1ty Champion Series
+       * Creative Sound Blaster X-Fi Titanium Fatal1ty Professional Series
+       * Creative Sound Blaster X-Fi Titanium Professional Audio
+       * Creative Sound Blaster X-Fi Titanium
+       * Creative Sound Blaster X-Fi Elite Pro
+       * Creative Sound Blaster X-Fi Platinum
+       * Creative Sound Blaster X-Fi Fatal1ty
+       * Creative Sound Blaster X-Fi XtremeGamer
+       * Creative Sound Blaster X-Fi XtremeMusic
+
+    reference_rate     - reference sample rate, 44100 or 48000 (default)
+    multiple           - multiple to ref. sample rate, 1 or 2 (default)
+
+    This module supports multiple cards.
+
   Module snd-darla20
   ------------------
 
index 8eec05bc079ebfcc0af9e030ceee652e0a9bf024..de8e10a94103008a6f92df4ad49539a2b81d4178 100644 (file)
@@ -36,6 +36,7 @@ ALC260
   acer         Acer TravelMate
   will         Will laptops (PB V7900)
   replacer     Replacer 672V
+  favorit100   Maxdata Favorit 100XS
   basic                fixed pin assignment (old default model)
   test         for testing/debugging purpose, almost all controls can
                adjusted.  Appearing only when compiled with
@@ -85,10 +86,11 @@ ALC269
   eeepc-p703   ASUS Eeepc P703 P900A
   eeepc-p901   ASUS Eeepc P901 S101
   fujitsu      FSC Amilo
+  lifebook     Fujitsu Lifebook S6420
   auto         auto-config reading BIOS (default)
 
-ALC662/663
-==========
+ALC662/663/272
+==============
   3stack-dig   3-stack (2-channel) with SPDIF
   3stack-6ch    3-stack (6-channel)
   3stack-6ch-dig 3-stack (6-channel) with SPDIF
@@ -107,6 +109,9 @@ ALC662/663
   asus-mode4   ASUS
   asus-mode5   ASUS
   asus-mode6   ASUS
+  dell         Dell with ALC272
+  dell-zm1     Dell ZM1 with ALC272
+  samsung-nc10 Samsung NC10 mini notebook
   auto         auto-config reading BIOS (default)
 
 ALC882/885
@@ -118,6 +123,7 @@ ALC882/885
   asus-a7j     ASUS A7J
   asus-a7m     ASUS A7M
   macpro       MacPro support
+  mb5          Macbook 5,1
   mbp3         Macbook Pro rev3
   imac24       iMac 24'' with jack detection
   w2jc         ASUS W2JC
@@ -133,10 +139,12 @@ ALC883/888
   acer         Acer laptops (Travelmate 3012WTMi, Aspire 5600, etc)
   acer-aspire  Acer Aspire 9810
   acer-aspire-4930g Acer Aspire 4930G
+  acer-aspire-8930g Acer Aspire 8930G
   medion       Medion Laptops
   medion-md2   Medion MD2
   targa-dig    Targa/MSI
-  targa-2ch-dig        Targs/MSI with 2-channel
+  targa-2ch-dig        Targa/MSI with 2-channel
+  targa-8ch-dig Targa/MSI with 8-channel (MSI GX620)
   laptop-eapd   3-jack with SPDIF I/O and EAPD (Clevo M540JE, M550JE)
   lenovo-101e  Lenovo 101E
   lenovo-nb0763        Lenovo NB0763
@@ -150,6 +158,9 @@ ALC883/888
   fujitsu-pi2515 Fujitsu AMILO Pi2515
   fujitsu-xa3530 Fujitsu AMILO XA3530
   3stack-6ch-intel Intel DG33* boards
+  asus-p5q     ASUS P5Q-EM boards
+  mb31         MacBook 3,1
+  sony-vaio-tt  Sony VAIO TT
   auto         auto-config reading BIOS (default)
 
 ALC861/660
@@ -334,6 +345,7 @@ STAC9227/9228/9229/927x
   ref-no-jd    Reference board without HP/Mic jack detection
   3stack       D965 3stack
   5stack       D965 5stack + SPDIF
+  5stack-no-fp D965 5stack without front panel
   dell-3stack  Dell Dimension E520
   dell-bios    Fixes with Dell BIOS setup
   auto         BIOS setup (default)
@@ -347,6 +359,7 @@ STAC92HD71B*
   hp-m4                HP mini 1000
   hp-dv5       HP dv series
   hp-hdx       HP HDX series
+  hp-dv4-1222nr        HP dv4-1222nr (with LED support)
   auto         BIOS setup (default)
 
 STAC92HD73*
index bba2dbb79d81c10d71bbc5b0879f6d3745d1543d..cfac20cf9e33fa150a6cf69f4e6d624e8116caa9 100644 (file)
@@ -104,6 +104,11 @@ card*/pcm*/xrun_debug
        When this value is greater than 1, the driver will show the
        stack trace additionally.  This may help the debugging.
 
+       Since 2.6.30, this option also enables the hwptr check using
+       jiffies.  This detects spontaneous invalid pointer callback
+       values, but can be lead to too much corrections for a (mostly
+       buggy) hardware that doesn't give smooth pointer updates.
+
 card*/pcm*/sub*/info
        The general information of this PCM sub-stream.
 
index 9e6763264a2ee1cb5b549cc27c51f47557d3ba0d..9ac842be9b4fccff2c2841d1fd88ab4be321d467 100644 (file)
@@ -62,6 +62,7 @@ Audio DAPM widgets fall into a number of types:-
  o Mic        - Mic (and optional Jack)
  o Line       - Line Input/Output (and optional Jack)
  o Speaker    - Speaker
+ o Supply     - Power or clock supply widget used by other widgets.
  o Pre        - Special PRE widget (exec before all others)
  o Post       - Special POST widget (exec after all others)
 
index b716d33912d8a02b219b6c39e0270c01b7b733a4..c302ddf629a0bef9d04014b7ee014acd2c092cb0 100644 (file)
@@ -39,8 +39,6 @@ Currently, these files are in /proc/sys/vm:
 - nr_hugepages
 - nr_overcommit_hugepages
 - nr_pdflush_threads
-- nr_pdflush_threads_min
-- nr_pdflush_threads_max
 - nr_trim_pages         (only if CONFIG_MMU=n)
 - numa_zonelist_order
 - oom_dump_tasks
@@ -469,32 +467,6 @@ The default value is 0.
 
 ==============================================================
 
-nr_pdflush_threads_min
-
-This value controls the minimum number of pdflush threads.
-
-At boot time, the kernel will create and maintain 'nr_pdflush_threads_min'
-threads for the kernel's lifetime.
-
-The default value is 2.  The minimum value you can specify is 1, and
-the maximum value is the current setting of 'nr_pdflush_threads_max'.
-
-See 'nr_pdflush_threads_max' below for more information.
-
-==============================================================
-
-nr_pdflush_threads_max
-
-This value controls the maximum number of pdflush threads that can be
-created.  The pdflush algorithm will create a new pdflush thread (up to
-this maximum) if no pdflush threads have been available for >= 1 second.
-
-The default value is 8.  The minimum value you can specify is the
-current value of 'nr_pdflush_threads_min' and the
-maximum is 1000.
-
-==============================================================
-
 overcommit_memory:
 
 This value contains a flag that enables memory overcommitment.
index 6049a2a84dda2111b9c35c628665566e0153b254..5d8bc2cd250c009ca69054d8a51139ca877dfaf3 100644 (file)
@@ -113,7 +113,7 @@ versions of the sysfs interface.
   "devices" directory at /sys/subsystem/<name>/devices.
 
   If /sys/subsystem exists, /sys/bus, /sys/class and /sys/block can be
-  ignored. If it does not exist, you have always to scan all three
+  ignored. If it does not exist, you always have to scan all three
   places, as the kernel is free to move a subsystem from one place to
   the other, as long as the devices are still reachable by the same
   subsystem name.
index 2b349ba4add49640a52d55a66203fba46cf748e0..e8cb115e33b89a4fd5df668951a40ffed827fafd 100644 (file)
@@ -434,7 +434,7 @@ F:  arch/alpha/
 
 AMD GEODE CS5536 USB DEVICE CONTROLLER DRIVER
 P:     Thomas Dahlmann
-M:     thomas.dahlmann@amd.com
+M:     dahlmann.thomas@arcor.de
 L:     linux-geode@lists.infradead.org (moderated for non-subscribers)
 S:     Supported
 F:     drivers/usb/gadget/amd5536udc.*
@@ -624,6 +624,7 @@ M:  paulius.zaleckas@teltonika.lt
 L:     linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
 T:     git git://gitorious.org/linux-gemini/mainline.git
 S:     Maintained
+F:     arch/arm/mach-gemini/
 
 ARM/EBSA110 MACHINE SUPPORT
 P:     Russell King
@@ -650,6 +651,7 @@ P:  Paulius Zaleckas
 M:     paulius.zaleckas@teltonika.lt
 L:     linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
 S:     Maintained
+F:     arch/arm/mm/*-fa*
 
 ARM/FOOTBRIDGE ARCHITECTURE
 P:     Russell King
@@ -1132,17 +1134,17 @@ F:      fs/bfs/
 F:     include/linux/bfs_fs.h
 
 BLACKFIN ARCHITECTURE
-P:     Bryan Wu
-M:     cooloney@kernel.org
+P:     Mike Frysinger
+M:     vapier@gentoo.org
 L:     uclinux-dist-devel@blackfin.uclinux.org
 W:     http://blackfin.uclinux.org
 S:     Supported
 F:     arch/blackfin/
 
 BLACKFIN EMAC DRIVER
-P:     Bryan Wu
-M:     cooloney@kernel.org
-L:     uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
+P:     Michael Hennerich
+M:     michael.hennerich@analog.com
+L:     uclinux-dist-devel@blackfin.uclinux.org
 W:     http://blackfin.uclinux.org
 S:     Supported
 F:     drivers/net/bfin_mac.*
@@ -1150,7 +1152,7 @@ F:        drivers/net/bfin_mac.*
 BLACKFIN RTC DRIVER
 P:     Mike Frysinger
 M:     vapier.adi@gmail.com
-L:     uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
+L:     uclinux-dist-devel@blackfin.uclinux.org
 W:     http://blackfin.uclinux.org
 S:     Supported
 F:     drivers/rtc/rtc-bfin.c
@@ -1158,7 +1160,7 @@ F:        drivers/rtc/rtc-bfin.c
 BLACKFIN SERIAL DRIVER
 P:     Sonic Zhang
 M:     sonic.zhang@analog.com
-L:     uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
+L:     uclinux-dist-devel@blackfin.uclinux.org
 W:     http://blackfin.uclinux.org
 S:     Supported
 F:     drivers/serial/bfin_5xx.c
@@ -1166,7 +1168,7 @@ F:        drivers/serial/bfin_5xx.c
 BLACKFIN WATCHDOG DRIVER
 P:     Mike Frysinger
 M:     vapier.adi@gmail.com
-L:     uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
+L:     uclinux-dist-devel@blackfin.uclinux.org
 W:     http://blackfin.uclinux.org
 S:     Supported
 F:     drivers/watchdog/bfin_wdt.c
@@ -1174,7 +1176,7 @@ F:        drivers/watchdog/bfin_wdt.c
 BLACKFIN I2C TWI DRIVER
 P:     Sonic Zhang
 M:     sonic.zhang@analog.com
-L:     uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
+L:     uclinux-dist-devel@blackfin.uclinux.org
 W:     http://blackfin.uclinux.org/
 S:     Supported
 F:     drivers/i2c/busses/i2c-bfin-twi.c
@@ -1431,6 +1433,14 @@ P:       Russell King
 M:     linux@arm.linux.org.uk
 F:     include/linux/clk.h
 
+CISCO FCOE HBA DRIVER
+P:     Abhijeet Joglekar
+M:     abjoglek@cisco.com
+P:     Joe Eykholt
+M:     jeykholt@cisco.com
+L:     linux-scsi@vger.kernel.org
+S:     Supported
+
 CODA FILE SYSTEM
 P:     Jan Harkes
 M:     jaharkes@cs.cmu.edu
@@ -1532,6 +1542,13 @@ W:       http://www.fi.muni.cz/~kas/cosa/
 S:     Maintained
 F:     drivers/net/wan/cosa*
 
+CPMAC ETHERNET DRIVER
+P:     Florian Fainelli
+M:     florian@openwrt.org
+L:     netdev@vger.kernel.org
+S:     Maintained
+F:     drivers/net/cpmac.c
+
 CPU FREQUENCY DRIVERS
 P:     Dave Jones
 M:     davej@redhat.com
@@ -1963,8 +1980,8 @@ F:        include/linux/edac.h
 
 EDAC-E752X
 P:     Mark Gross
-P:     Doug Thompson
 M:     mark.gross@intel.com
+P:     Doug Thompson
 M:     dougthompson@xmission.com
 L:     bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
 W:     bluesmoke.sourceforge.net
@@ -2241,7 +2258,7 @@ P:        Li Yang
 M:     leoli@freescale.com
 P:     Zhang Wei
 M:     zw@zh-kernel.org
-L:     linuxppc-embedded@ozlabs.org
+L:     linuxppc-dev@ozlabs.org
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
 F:     drivers/dma/fsldma.*
@@ -4557,7 +4574,8 @@ F:        drivers/pcmcia/pxa2xx*
 F:     drivers/spi/pxa2xx*
 F:     drivers/usb/gadget/pxa2*
 F:     include/sound/pxa2xx-lib.h
-F:     sound/soc/pxa/pxa2xx*
+F:     sound/arm/pxa*
+F:     sound/soc/pxa
 
 PXA168 SUPPORT
 P:     Eric Miao
@@ -5285,11 +5303,12 @@ P:      Liam Girdwood
 M:     lrg@slimlogic.co.uk
 P:     Mark Brown
 M:     broonie@opensource.wolfsonmicro.com
-T:     git git://opensource.wolfsonmicro.com/linux-2.6-asoc
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6.git
 L:     alsa-devel@alsa-project.org (subscribers-only)
 W:     http://alsa-project.org/main/index.php/ASoC
 S:     Supported
 F:     sound/soc/
+F:     include/sound/soc*
 
 SPARC + UltraSPARC (sparc/sparc64)
 P:     David S. Miller
@@ -5579,6 +5598,14 @@ M:       ian@mnementh.co.uk
 S:     Maintained
 F:     drivers/mmc/host/tmio_mmc.*
 
+TMPFS (SHMEM FILESYSTEM)
+P:     Hugh Dickins
+M:     hugh.dickins@tiscali.co.uk
+L:     linux-mm@kvack.org
+S:     Maintained
+F:     include/linux/shmem_fs.h
+F:     mm/shmem.c
+
 TPM DEVICE DRIVER
 P:     Debora Velarde
 M:     debora@linux.vnet.ibm.com
index 9b2b58c3b3dbcbfe62e354ce90f78d61cebc877d..03373bb703ca9cd4d8cde6403502357815b7e531 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
 VERSION = 2
 PATCHLEVEL = 6
 SUBLEVEL = 30
-EXTRAVERSION = -rc5
-NAME = Vindictive Armadillo
+EXTRAVERSION =
+NAME = Man-Eating Seals of Antiquity
 
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"
@@ -533,7 +533,7 @@ endif
 
 include $(srctree)/arch/$(SRCARCH)/Makefile
 
-ifneq (CONFIG_FRAME_WARN,0)
+ifneq ($(CONFIG_FRAME_WARN),0)
 KBUILD_CFLAGS += $(call cc-option,-Wframe-larger-than=${CONFIG_FRAME_WARN})
 endif
 
index e9e0bb5a23bf5687096cbd5460b8d138ed5f5534..06c5c7a4afd3f6617440cdbcf669d70d591a0d44 100644 (file)
@@ -1,7 +1,9 @@
 #ifndef __ALPHA_PERCPU_H
 #define __ALPHA_PERCPU_H
+
 #include <linux/compiler.h>
 #include <linux/threads.h>
+#include <linux/percpu-defs.h>
 
 /*
  * Determine the real variable name from the name visible in the
@@ -73,6 +75,28 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
 
 #endif /* SMP */
 
-#include <asm-generic/percpu.h>
+#ifdef CONFIG_SMP
+#define PER_CPU_BASE_SECTION ".data.percpu"
+#else
+#define PER_CPU_BASE_SECTION ".data"
+#endif
+
+#ifdef CONFIG_SMP
+
+#ifdef MODULE
+#define PER_CPU_SHARED_ALIGNED_SECTION ""
+#else
+#define PER_CPU_SHARED_ALIGNED_SECTION ".shared_aligned"
+#endif
+#define PER_CPU_FIRST_SECTION ".first"
+
+#else
+
+#define PER_CPU_SHARED_ALIGNED_SECTION ""
+#define PER_CPU_FIRST_SECTION ""
+
+#endif
+
+#define PER_CPU_ATTRIBUTES
 
 #endif /* __ALPHA_PERCPU_H */
index e60ec54df334fd5bcf072a225a1e8b95e046b63e..9d02cdb15b23dc6d4524cf61db4153c810639580 100644 (file)
@@ -273,6 +273,7 @@ config ARCH_EP93XX
        select HAVE_CLK
        select COMMON_CLKDEV
        select ARCH_REQUIRE_GPIOLIB
+       select ARCH_HAS_HOLES_MEMORYMODEL
        help
          This enables support for the Cirrus EP93xx series of CPUs.
 
@@ -976,10 +977,9 @@ config OABI_COMPAT
          UNPREDICTABLE (in fact it can be predicted that it won't work
          at all). If in doubt say Y.
 
-config ARCH_FLATMEM_HAS_HOLES
+config ARCH_HAS_HOLES_MEMORYMODEL
        bool
-       default y
-       depends on FLATMEM
+       default n
 
 # Discontigmem is deprecated
 config ARCH_DISCONTIGMEM_ENABLE
index c6884ba1d5ed0b91122f45072f97c99cda52a23d..3e1714c6523f06f4ab0572886edba151f21ffb8c 100644 (file)
@@ -253,9 +253,9 @@ void __cpuinit gic_cpu_init(unsigned int gic_nr, void __iomem *base)
 }
 
 #ifdef CONFIG_SMP
-void gic_raise_softirq(cpumask_t cpumask, unsigned int irq)
+void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
 {
-       unsigned long map = *cpus_addr(cpumask);
+       unsigned long map = *cpus_addr(*mask);
 
        /* this always happens on GIC0 */
        writel(map << 16 | irq, gic_data[0].dist_base + GIC_DIST_SOFTINT);
index 6116e4893c0ade4bc478996a82c316ce5c99a64e..15f8a092b700acc82754f9f9011524b068cb0db8 100644 (file)
        .align  3;                              \
        .long   9999b,9001f;                    \
        .previous
+
+/*
+ * SMP data memory barrier
+ */
+       .macro  smp_dmb
+#ifdef CONFIG_SMP
+#if __LINUX_ARM_ARCH__ >= 7
+       dmb
+#elif __LINUX_ARM_ARCH__ == 6
+       mcr     p15, 0, r0, c7, c10, 5  @ dmb
+#endif
+#endif
+       .endm
index ee99723b3a6c4899283a76ba26c7140c08a146dd..16b52f397983f7ead8079769a772265cab71657f 100644 (file)
@@ -44,11 +44,29 @@ static inline void atomic_set(atomic_t *v, int i)
        : "cc");
 }
 
+static inline void atomic_add(int i, atomic_t *v)
+{
+       unsigned long tmp;
+       int result;
+
+       __asm__ __volatile__("@ atomic_add\n"
+"1:    ldrex   %0, [%2]\n"
+"      add     %0, %0, %3\n"
+"      strex   %1, %0, [%2]\n"
+"      teq     %1, #0\n"
+"      bne     1b"
+       : "=&r" (result), "=&r" (tmp)
+       : "r" (&v->counter), "Ir" (i)
+       : "cc");
+}
+
 static inline int atomic_add_return(int i, atomic_t *v)
 {
        unsigned long tmp;
        int result;
 
+       smp_mb();
+
        __asm__ __volatile__("@ atomic_add_return\n"
 "1:    ldrex   %0, [%2]\n"
 "      add     %0, %0, %3\n"
@@ -59,14 +77,34 @@ static inline int atomic_add_return(int i, atomic_t *v)
        : "r" (&v->counter), "Ir" (i)
        : "cc");
 
+       smp_mb();
+
        return result;
 }
 
+static inline void atomic_sub(int i, atomic_t *v)
+{
+       unsigned long tmp;
+       int result;
+
+       __asm__ __volatile__("@ atomic_sub\n"
+"1:    ldrex   %0, [%2]\n"
+"      sub     %0, %0, %3\n"
+"      strex   %1, %0, [%2]\n"
+"      teq     %1, #0\n"
+"      bne     1b"
+       : "=&r" (result), "=&r" (tmp)
+       : "r" (&v->counter), "Ir" (i)
+       : "cc");
+}
+
 static inline int atomic_sub_return(int i, atomic_t *v)
 {
        unsigned long tmp;
        int result;
 
+       smp_mb();
+
        __asm__ __volatile__("@ atomic_sub_return\n"
 "1:    ldrex   %0, [%2]\n"
 "      sub     %0, %0, %3\n"
@@ -77,6 +115,8 @@ static inline int atomic_sub_return(int i, atomic_t *v)
        : "r" (&v->counter), "Ir" (i)
        : "cc");
 
+       smp_mb();
+
        return result;
 }
 
@@ -84,6 +124,8 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
 {
        unsigned long oldval, res;
 
+       smp_mb();
+
        do {
                __asm__ __volatile__("@ atomic_cmpxchg\n"
                "ldrex  %1, [%2]\n"
@@ -95,6 +137,8 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
                    : "cc");
        } while (res);
 
+       smp_mb();
+
        return oldval;
 }
 
@@ -135,6 +179,7 @@ static inline int atomic_add_return(int i, atomic_t *v)
 
        return val;
 }
+#define atomic_add(i, v)       (void) atomic_add_return(i, v)
 
 static inline int atomic_sub_return(int i, atomic_t *v)
 {
@@ -148,6 +193,7 @@ static inline int atomic_sub_return(int i, atomic_t *v)
 
        return val;
 }
+#define atomic_sub(i, v)       (void) atomic_sub_return(i, v)
 
 static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
 {
@@ -187,10 +233,8 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
 }
 #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
 
-#define atomic_add(i, v)       (void) atomic_add_return(i, v)
-#define atomic_inc(v)          (void) atomic_add_return(1, v)
-#define atomic_sub(i, v)       (void) atomic_sub_return(i, v)
-#define atomic_dec(v)          (void) atomic_sub_return(1, v)
+#define atomic_inc(v)          atomic_add(1, v)
+#define atomic_dec(v)          atomic_sub(1, v)
 
 #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0)
 #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0)
@@ -200,11 +244,10 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
 
 #define atomic_add_negative(i,v) (atomic_add_return(i, v) < 0)
 
-/* Atomic operations are already serializing on ARM */
-#define smp_mb__before_atomic_dec()    barrier()
-#define smp_mb__after_atomic_dec()     barrier()
-#define smp_mb__before_atomic_inc()    barrier()
-#define smp_mb__after_atomic_inc()     barrier()
+#define smp_mb__before_atomic_dec()    smp_mb()
+#define smp_mb__after_atomic_dec()     smp_mb()
+#define smp_mb__before_atomic_inc()    smp_mb()
+#define smp_mb__after_atomic_inc()     smp_mb()
 
 #include <asm-generic/atomic.h>
 #endif
index cb7a9e97fd7ef7807161f509e0260a6fa94233cc..feaa75f0013eafcfcf5323954ade694bc40e343f 100644 (file)
@@ -7,4 +7,20 @@
 #define L1_CACHE_SHIFT         5
 #define L1_CACHE_BYTES         (1 << L1_CACHE_SHIFT)
 
+/*
+ * Memory returned by kmalloc() may be used for DMA, so we must make
+ * sure that all such allocations are cache aligned. Otherwise,
+ * unrelated code may cause parts of the buffer to be read into the
+ * cache before the transfer is done, causing old data to be seen by
+ * the CPU.
+ */
+#define ARCH_KMALLOC_MINALIGN  L1_CACHE_BYTES
+
+/*
+ * With EABI on ARMv5 and above we must have 64-bit aligned slab pointers.
+ */
+#if defined(CONFIG_AEABI) && (__LINUX_ARM_ARCH__ >= 5)
+#define ARCH_SLAB_MINALIGN 8
+#endif
+
 #endif
index 1d77e51907f6ddb70f5aa8123583827bffaa676c..59426a4595c9cb90bcb765843f89295bd20f6797 100644 (file)
@@ -5,9 +5,6 @@
 #ifndef __ARM_FLAT_H__
 #define __ARM_FLAT_H__
 
-/* An odd number of words will be pushed after this alignment, so
-   deliberately misalign the value.  */
-#define        flat_stack_align(sp)    sp = (void *)(((unsigned long)(sp) - 4) | 4)
 #define        flat_argvp_envp_on_stack()              1
 #define        flat_old_ram_flag(flags)                (flags)
 #define        flat_reloc_valid(reloc, size)           ((reloc) <= (size))
index 4924914af1882afd80a31222cf858c1812d050fc..7f34333bb5455db6093e85f99ea3a8dd7d6d5fef 100644 (file)
@@ -36,7 +36,7 @@
 void gic_dist_init(unsigned int gic_nr, void __iomem *base, unsigned int irq_start);
 void gic_cpu_init(unsigned int gic_nr, void __iomem *base);
 void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);
-void gic_raise_softirq(cpumask_t cpumask, unsigned int irq);
+void gic_raise_softirq(const struct cpumask *mask, unsigned int irq);
 #endif
 
 #endif
index e6eb8a67b8071a49153e8f7daa03e733e8c710cf..7b522770f29dc6e967f3c719817925ebf753c6e1 100644 (file)
@@ -202,13 +202,6 @@ typedef struct page *pgtable_t;
        (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
         VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
 
-/*
- * With EABI on ARMv5 and above we must have 64-bit aligned slab pointers.
- */
-#if defined(CONFIG_AEABI) && (__LINUX_ARM_ARCH__ >= 5)
-#define ARCH_SLAB_MINALIGN 8
-#endif
-
 #include <asm-generic/page.h>
 
 #endif
index fad70da5911df7ad0283e330703b4584172048e4..5995935338e17f40d28d85ecf8488a9a63ed3244 100644 (file)
@@ -53,17 +53,12 @@ extern void smp_store_cpu_info(unsigned int cpuid);
 /*
  * Raise an IPI cross call on CPUs in callmap.
  */
-extern void smp_cross_call(cpumask_t callmap);
-
-/*
- * Broadcast a timer interrupt to the other CPUs.
- */
-extern void smp_send_timer(void);
+extern void smp_cross_call(const struct cpumask *mask);
 
 /*
  * Broadcast a clock event to other CPUs.
  */
-extern void smp_timer_broadcast(cpumask_t mask);
+extern void smp_timer_broadcast(const struct cpumask *mask);
 
 /*
  * Boot a secondary CPU, and assign it the specified idle task.
@@ -102,7 +97,8 @@ extern int platform_cpu_kill(unsigned int cpu);
 extern void platform_cpu_enable(unsigned int cpu);
 
 extern void arch_send_call_function_single_ipi(int cpu);
-extern void arch_send_call_function_ipi(cpumask_t mask);
+extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
+#define arch_send_call_function_ipi_mask arch_send_call_function_ipi_mask
 
 /*
  * Local timer interrupt handling function (can be IPI'ed).
index bd4dc8ed53d59ebbfb1ac4d6fa547a93874278f7..d65b2f5bf41f60cfd21163ef0e5b92e76bc58db8 100644 (file)
@@ -248,6 +248,8 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
        unsigned int tmp;
 #endif
 
+       smp_mb();
+
        switch (size) {
 #if __LINUX_ARM_ARCH__ >= 6
        case 1:
@@ -307,6 +309,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
                __bad_xchg(ptr, size), ret = 0;
                break;
        }
+       smp_mb();
 
        return ret;
 }
@@ -316,6 +319,12 @@ extern void enable_hlt(void);
 
 #include <asm-generic/cmpxchg-local.h>
 
+#if __LINUX_ARM_ARCH__ < 6
+
+#ifdef CONFIG_SMP
+#error "SMP is not supported on this platform"
+#endif
+
 /*
  * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make
  * them available.
@@ -329,6 +338,173 @@ extern void enable_hlt(void);
 #include <asm-generic/cmpxchg.h>
 #endif
 
+#else  /* __LINUX_ARM_ARCH__ >= 6 */
+
+extern void __bad_cmpxchg(volatile void *ptr, int size);
+
+/*
+ * cmpxchg only support 32-bits operands on ARMv6.
+ */
+
+static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
+                                     unsigned long new, int size)
+{
+       unsigned long oldval, res;
+
+       switch (size) {
+#ifdef CONFIG_CPU_32v6K
+       case 1:
+               do {
+                       asm volatile("@ __cmpxchg1\n"
+                       "       ldrexb  %1, [%2]\n"
+                       "       mov     %0, #0\n"
+                       "       teq     %1, %3\n"
+                       "       strexbeq %0, %4, [%2]\n"
+                               : "=&r" (res), "=&r" (oldval)
+                               : "r" (ptr), "Ir" (old), "r" (new)
+                               : "memory", "cc");
+               } while (res);
+               break;
+       case 2:
+               do {
+                       asm volatile("@ __cmpxchg1\n"
+                       "       ldrexh  %1, [%2]\n"
+                       "       mov     %0, #0\n"
+                       "       teq     %1, %3\n"
+                       "       strexheq %0, %4, [%2]\n"
+                               : "=&r" (res), "=&r" (oldval)
+                               : "r" (ptr), "Ir" (old), "r" (new)
+                               : "memory", "cc");
+               } while (res);
+               break;
+#endif /* CONFIG_CPU_32v6K */
+       case 4:
+               do {
+                       asm volatile("@ __cmpxchg4\n"
+                       "       ldrex   %1, [%2]\n"
+                       "       mov     %0, #0\n"
+                       "       teq     %1, %3\n"
+                       "       strexeq %0, %4, [%2]\n"
+                               : "=&r" (res), "=&r" (oldval)
+                               : "r" (ptr), "Ir" (old), "r" (new)
+                               : "memory", "cc");
+               } while (res);
+               break;
+       default:
+               __bad_cmpxchg(ptr, size);
+               oldval = 0;
+       }
+
+       return oldval;
+}
+
+static inline unsigned long __cmpxchg_mb(volatile void *ptr, unsigned long old,
+                                        unsigned long new, int size)
+{
+       unsigned long ret;
+
+       smp_mb();
+       ret = __cmpxchg(ptr, old, new, size);
+       smp_mb();
+
+       return ret;
+}
+
+#define cmpxchg(ptr,o,n)                                               \
+       ((__typeof__(*(ptr)))__cmpxchg_mb((ptr),                        \
+                                         (unsigned long)(o),           \
+                                         (unsigned long)(n),           \
+                                         sizeof(*(ptr))))
+
+static inline unsigned long __cmpxchg_local(volatile void *ptr,
+                                           unsigned long old,
+                                           unsigned long new, int size)
+{
+       unsigned long ret;
+
+       switch (size) {
+#ifndef CONFIG_CPU_32v6K
+       case 1:
+       case 2:
+               ret = __cmpxchg_local_generic(ptr, old, new, size);
+               break;
+#endif /* !CONFIG_CPU_32v6K */
+       default:
+               ret = __cmpxchg(ptr, old, new, size);
+       }
+
+       return ret;
+}
+
+#define cmpxchg_local(ptr,o,n)                                         \
+       ((__typeof__(*(ptr)))__cmpxchg_local((ptr),                     \
+                                      (unsigned long)(o),              \
+                                      (unsigned long)(n),              \
+                                      sizeof(*(ptr))))
+
+#ifdef CONFIG_CPU_32v6K
+
+/*
+ * Note : ARMv7-M (currently unsupported by Linux) does not support
+ * ldrexd/strexd. If ARMv7-M is ever supported by the Linux kernel, it should
+ * not be allowed to use __cmpxchg64.
+ */
+static inline unsigned long long __cmpxchg64(volatile void *ptr,
+                                            unsigned long long old,
+                                            unsigned long long new)
+{
+       register unsigned long long oldval asm("r0");
+       register unsigned long long __old asm("r2") = old;
+       register unsigned long long __new asm("r4") = new;
+       unsigned long res;
+
+       do {
+               asm volatile(
+               "       @ __cmpxchg8\n"
+               "       ldrexd  %1, %H1, [%2]\n"
+               "       mov     %0, #0\n"
+               "       teq     %1, %3\n"
+               "       teqeq   %H1, %H3\n"
+               "       strexdeq %0, %4, %H4, [%2]\n"
+                       : "=&r" (res), "=&r" (oldval)
+                       : "r" (ptr), "Ir" (__old), "r" (__new)
+                       : "memory", "cc");
+       } while (res);
+
+       return oldval;
+}
+
+static inline unsigned long long __cmpxchg64_mb(volatile void *ptr,
+                                               unsigned long long old,
+                                               unsigned long long new)
+{
+       unsigned long long ret;
+
+       smp_mb();
+       ret = __cmpxchg64(ptr, old, new);
+       smp_mb();
+
+       return ret;
+}
+
+#define cmpxchg64(ptr,o,n)                                             \
+       ((__typeof__(*(ptr)))__cmpxchg64_mb((ptr),                      \
+                                           (unsigned long long)(o),    \
+                                           (unsigned long long)(n)))
+
+#define cmpxchg64_local(ptr,o,n)                                       \
+       ((__typeof__(*(ptr)))__cmpxchg64((ptr),                         \
+                                        (unsigned long long)(o),       \
+                                        (unsigned long long)(n)))
+
+#else  /* !CONFIG_CPU_32v6K */
+
+#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
+
+#endif /* CONFIG_CPU_32v6K */
+
+#endif /* __LINUX_ARM_ARCH__ >= 6 */
+
 #endif /* __ASSEMBLY__ */
 
 #define arch_align_stack(x) (x)
index d4a0da1e48f40988bb7f92ce34664d86adb74a32..950391f194c4a9198927b4977fa49d52e08c80de 100644 (file)
@@ -78,6 +78,15 @@ int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack)
                return 1;
        if (cpu_architecture() < CPU_ARCH_ARMv6)
                return 1;
+#if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT)
+       /*
+        * If we have support for OABI programs, we can never allow NX
+        * support - our signal syscall restart mechanism relies upon
+        * being able to execute code placed on the user stack.
+        */
+       return 1;
+#else
        return 0;
+#endif
 }
 EXPORT_SYMBOL(arm_elf_read_implies_exec);
index d662a2f1fd85e20ec7fc1af48461689f86fe6745..83b1da6b7baaa44cbfd220876503b9d755c1acd3 100644 (file)
@@ -815,10 +815,7 @@ __kuser_helper_start:
  */
 
 __kuser_memory_barrier:                                @ 0xffff0fa0
-
-#if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_SMP)
-       mcr     p15, 0, r0, c7, c10, 5  @ dmb
-#endif
+       smp_dmb
        usr_ret lr
 
        .align  5
index 7801aac3c043f6354ec7fc0b82c909370e228a4c..6014dfd22af44a56270890726f63b565ac9620a4 100644 (file)
@@ -326,14 +326,14 @@ void __init smp_prepare_boot_cpu(void)
        per_cpu(cpu_data, cpu).idle = current;
 }
 
-static void send_ipi_message(cpumask_t callmap, enum ipi_msg_type msg)
+static void send_ipi_message(const struct cpumask *mask, enum ipi_msg_type msg)
 {
        unsigned long flags;
        unsigned int cpu;
 
        local_irq_save(flags);
 
-       for_each_cpu_mask(cpu, callmap) {
+       for_each_cpu(cpu, mask) {
                struct ipi_data *ipi = &per_cpu(ipi_data, cpu);
 
                spin_lock(&ipi->lock);
@@ -344,19 +344,19 @@ static void send_ipi_message(cpumask_t callmap, enum ipi_msg_type msg)
        /*
         * Call the platform specific cross-CPU call function.
         */
-       smp_cross_call(callmap);
+       smp_cross_call(mask);
 
        local_irq_restore(flags);
 }
 
-void arch_send_call_function_ipi(cpumask_t mask)
+void arch_send_call_function_ipi_mask(const struct cpumask *mask)
 {
        send_ipi_message(mask, IPI_CALL_FUNC);
 }
 
 void arch_send_call_function_single_ipi(int cpu)
 {
-       send_ipi_message(cpumask_of_cpu(cpu), IPI_CALL_FUNC_SINGLE);
+       send_ipi_message(cpumask_of(cpu), IPI_CALL_FUNC_SINGLE);
 }
 
 void show_ipi_list(struct seq_file *p)
@@ -498,17 +498,10 @@ asmlinkage void __exception do_IPI(struct pt_regs *regs)
 
 void smp_send_reschedule(int cpu)
 {
-       send_ipi_message(cpumask_of_cpu(cpu), IPI_RESCHEDULE);
+       send_ipi_message(cpumask_of(cpu), IPI_RESCHEDULE);
 }
 
-void smp_send_timer(void)
-{
-       cpumask_t mask = cpu_online_map;
-       cpu_clear(smp_processor_id(), mask);
-       send_ipi_message(mask, IPI_TIMER);
-}
-
-void smp_timer_broadcast(cpumask_t mask)
+void smp_timer_broadcast(const struct cpumask *mask)
 {
        send_ipi_message(mask, IPI_TIMER);
 }
@@ -517,7 +510,7 @@ void smp_send_stop(void)
 {
        cpumask_t mask = cpu_online_map;
        cpu_clear(smp_processor_id(), mask);
-       send_ipi_message(mask, IPI_CPU_STOP);
+       send_ipi_message(&mask, IPI_CPU_STOP);
 }
 
 /*
@@ -528,20 +521,17 @@ int setup_profiling_timer(unsigned int multiplier)
        return -EINVAL;
 }
 
-static int
-on_each_cpu_mask(void (*func)(void *), void *info, int wait, cpumask_t mask)
+static void
+on_each_cpu_mask(void (*func)(void *), void *info, int wait,
+               const struct cpumask *mask)
 {
-       int ret = 0;
-
        preempt_disable();
 
-       ret = smp_call_function_mask(mask, func, info, wait);
-       if (cpu_isset(smp_processor_id(), mask))
+       smp_call_function_many(mask, func, info, wait);
+       if (cpumask_test_cpu(smp_processor_id(), mask))
                func(info);
 
        preempt_enable();
-
-       return ret;
 }
 
 /**********************************************************************/
@@ -602,20 +592,17 @@ void flush_tlb_all(void)
 
 void flush_tlb_mm(struct mm_struct *mm)
 {
-       cpumask_t mask = mm->cpu_vm_mask;
-
-       on_each_cpu_mask(ipi_flush_tlb_mm, mm, 1, mask);
+       on_each_cpu_mask(ipi_flush_tlb_mm, mm, 1, &mm->cpu_vm_mask);
 }
 
 void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr)
 {
-       cpumask_t mask = vma->vm_mm->cpu_vm_mask;
        struct tlb_args ta;
 
        ta.ta_vma = vma;
        ta.ta_start = uaddr;
 
-       on_each_cpu_mask(ipi_flush_tlb_page, &ta, 1, mask);
+       on_each_cpu_mask(ipi_flush_tlb_page, &ta, 1, &vma->vm_mm->cpu_vm_mask);
 }
 
 void flush_tlb_kernel_page(unsigned long kaddr)
@@ -630,14 +617,13 @@ void flush_tlb_kernel_page(unsigned long kaddr)
 void flush_tlb_range(struct vm_area_struct *vma,
                      unsigned long start, unsigned long end)
 {
-       cpumask_t mask = vma->vm_mm->cpu_vm_mask;
        struct tlb_args ta;
 
        ta.ta_vma = vma;
        ta.ta_start = start;
        ta.ta_end = end;
 
-       on_each_cpu_mask(ipi_flush_tlb_range, &ta, 1, mask);
+       on_each_cpu_mask(ipi_flush_tlb_range, &ta, 1, &vma->vm_mm->cpu_vm_mask);
 }
 
 void flush_tlb_kernel_range(unsigned long start, unsigned long end)
index 2e787d40d59992c96bb6d546c2d31cc7a485c251..c7f2627385e719749a08241fcd0732e0d4e15996 100644 (file)
        mov     r2, #1
        add     r1, r1, r0, lsr #3      @ Get byte offset
        mov     r3, r2, lsl r3          @ create mask
+       smp_dmb
 1:     ldrexb  r2, [r1]
        ands    r0, r2, r3              @ save old value of bit
        \instr  r2, r2, r3                      @ toggle bit
        strexb  ip, r2, [r1]
        cmp     ip, #0
        bne     1b
+       smp_dmb
        cmp     r0, #0
        movne   r0, #1
 2:     mov     pc, lr
diff --git a/arch/arm/mach-davinci/include/mach/asp.h b/arch/arm/mach-davinci/include/mach/asp.h
new file mode 100644 (file)
index 0000000..e0abc43
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * <mach/asp.h> - DaVinci Audio Serial Port support
+ */
+#ifndef __ASM_ARCH_DAVINCI_ASP_H
+#define __ASM_ARCH_DAVINCI_ASP_H
+
+#include <mach/irqs.h>
+
+/* Bases of register banks */
+#define DAVINCI_ASP0_BASE      0x01E02000
+#define DAVINCI_ASP1_BASE      0x01E04000
+
+/* EDMA channels */
+#define DAVINCI_DMA_ASP0_TX    2
+#define DAVINCI_DMA_ASP0_RX    3
+#define DAVINCI_DMA_ASP1_TX    8
+#define DAVINCI_DMA_ASP1_RX    9
+
+/* Interrupts */
+#define DAVINCI_ASP0_RX_INT    IRQ_MBRINT
+#define DAVINCI_ASP0_TX_INT    IRQ_MBXINT
+#define DAVINCI_ASP1_RX_INT    IRQ_MBRINT
+#define DAVINCI_ASP1_TX_INT    IRQ_MBXINT
+
+#endif /* __ASM_ARCH_DAVINCI_ASP_H */
index e8ebeaea6c48c78ed9eda599e512d0d152c73349..b2eede5531c8fab5840e8e0bb75944f350773ced 100644 (file)
 #include <asm/div64.h>
 #include <mach/hardware.h>
 
+
+/*
+ * The EP93xx has two external crystal oscillators.  To generate the
+ * required high-frequency clocks, the processor uses two phase-locked-
+ * loops (PLLs) to multiply the incoming external clock signal to much
+ * higher frequencies that are then divided down by programmable dividers
+ * to produce the needed clocks.  The PLLs operate independently of one
+ * another.
+ */
+#define EP93XX_EXT_CLK_RATE    14745600
+#define EP93XX_EXT_RTC_RATE    32768
+
+
 struct clk {
        unsigned long   rate;
        int             users;
+       int             sw_locked;
        u32             enable_reg;
        u32             enable_mask;
+
+       unsigned long   (*get_rate)(struct clk *clk);
 };
 
-static struct clk clk_uart = {
-       .rate           = 14745600,
+
+static unsigned long get_uart_rate(struct clk *clk);
+
+
+static struct clk clk_uart1 = {
+       .sw_locked      = 1,
+       .enable_reg     = EP93XX_SYSCON_DEVICE_CONFIG,
+       .enable_mask    = EP93XX_SYSCON_DEVICE_CONFIG_U1EN,
+       .get_rate       = get_uart_rate,
+};
+static struct clk clk_uart2 = {
+       .sw_locked      = 1,
+       .enable_reg     = EP93XX_SYSCON_DEVICE_CONFIG,
+       .enable_mask    = EP93XX_SYSCON_DEVICE_CONFIG_U2EN,
+       .get_rate       = get_uart_rate,
+};
+static struct clk clk_uart3 = {
+       .sw_locked      = 1,
+       .enable_reg     = EP93XX_SYSCON_DEVICE_CONFIG,
+       .enable_mask    = EP93XX_SYSCON_DEVICE_CONFIG_U3EN,
+       .get_rate       = get_uart_rate,
 };
 static struct clk clk_pll1;
 static struct clk clk_f;
@@ -95,9 +130,9 @@ static struct clk clk_m2m1 = {
        { .dev_id = dev, .con_id = con, .clk = ck }
 
 static struct clk_lookup clocks[] = {
-       INIT_CK("apb:uart1", NULL, &clk_uart),
-       INIT_CK("apb:uart2", NULL, &clk_uart),
-       INIT_CK("apb:uart3", NULL, &clk_uart),
+       INIT_CK("apb:uart1", NULL, &clk_uart1),
+       INIT_CK("apb:uart2", NULL, &clk_uart2),
+       INIT_CK("apb:uart3", NULL, &clk_uart3),
        INIT_CK(NULL, "pll1", &clk_pll1),
        INIT_CK(NULL, "fclk", &clk_f),
        INIT_CK(NULL, "hclk", &clk_h),
@@ -125,6 +160,8 @@ int clk_enable(struct clk *clk)
                u32 value;
 
                value = __raw_readl(clk->enable_reg);
+               if (clk->sw_locked)
+                       __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
                __raw_writel(value | clk->enable_mask, clk->enable_reg);
        }
 
@@ -138,13 +175,29 @@ void clk_disable(struct clk *clk)
                u32 value;
 
                value = __raw_readl(clk->enable_reg);
+               if (clk->sw_locked)
+                       __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
                __raw_writel(value & ~clk->enable_mask, clk->enable_reg);
        }
 }
 EXPORT_SYMBOL(clk_disable);
 
+static unsigned long get_uart_rate(struct clk *clk)
+{
+       u32 value;
+
+       value = __raw_readl(EP93XX_SYSCON_CLOCK_CONTROL);
+       if (value & EP93XX_SYSCON_CLOCK_UARTBAUD)
+               return EP93XX_EXT_CLK_RATE;
+       else
+               return EP93XX_EXT_CLK_RATE / 2;
+}
+
 unsigned long clk_get_rate(struct clk *clk)
 {
+       if (clk->get_rate)
+               return clk->get_rate(clk);
+
        return clk->rate;
 }
 EXPORT_SYMBOL(clk_get_rate);
@@ -162,7 +215,7 @@ static unsigned