From cc03d13a6b617b85a76222f680d529a2086accfc Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Thu, 8 Apr 2010 14:05:50 +0200 Subject: [PATCH] --- yaml --- r: 190047 b: refs/heads/master c: ab285f2b5290d92b7ec1a6f9aad54308dadf6157 h: refs/heads/master i: 190045: 97d701d098484568a9cf55b85cff0a193dfba1f3 190043: 18fb4baaba1c8cca28ddf04a165b5f51247b6d44 190039: 942af4247020bb6c67e78dfa97357c5f7b271894 190031: 9c4be43c4c42f16a8720b0faf5c8b7a26aadcb6b 190015: 26aae71c3cc69fd8a5fe48bcbcf0c6fa64d06af5 v: v3 --- [refs] | 2 +- trunk/Documentation/DocBook/tracepoint.tmpl | 13 - trunk/Documentation/RCU/NMI-RCU.txt | 39 +- trunk/Documentation/RCU/checklist.txt | 7 +- trunk/Documentation/RCU/lockdep.txt | 28 +- trunk/Documentation/RCU/whatisRCU.txt | 6 - trunk/Documentation/block/biodoc.txt | 4 +- .../fb/{efifb.txt => imacfb.txt} | 14 +- .../input/multi-touch-protocol.txt | 23 +- trunk/Documentation/kernel-parameters.txt | 5 + trunk/Documentation/networking/stmmac.txt | 143 - .../Documentation/networking/timestamping.txt | 76 +- trunk/Documentation/sound/alsa/HD-Audio.txt | 16 +- .../watchdog/src/watchdog-simple.c | 3 + .../watchdog/src/watchdog-test.c | 8 +- trunk/Documentation/watchdog/watchdog-api.txt | 5 +- trunk/MAINTAINERS | 27 +- trunk/Makefile | 4 +- trunk/arch/arm/boot/compressed/head.S | 2 +- trunk/arch/arm/include/asm/highmem.h | 15 +- trunk/arch/arm/include/asm/kmap_types.h | 1 - trunk/arch/arm/include/asm/ucontext.h | 23 +- trunk/arch/arm/include/asm/user.h | 12 +- trunk/arch/arm/kernel/signal.c | 93 +- trunk/arch/arm/mach-at91/Makefile | 4 +- trunk/arch/arm/mach-at91/pm_slowclock.S | 16 +- trunk/arch/arm/mach-bcmring/dma.c | 13 +- trunk/arch/arm/mach-davinci/dm365.c | 1 + trunk/arch/arm/mach-davinci/dma.c | 3 +- .../arm/mach-davinci/include/mach/da8xx.h | 8 +- trunk/arch/arm/mach-davinci/time.c | 6 +- trunk/arch/arm/mach-ep93xx/gpio.c | 6 +- trunk/arch/arm/mach-mx3/Kconfig | 10 - trunk/arch/arm/mach-mx3/clock-imx31.c | 5 +- trunk/arch/arm/mach-mx3/devices.c | 19 +- trunk/arch/arm/mach-mx3/devices.h | 3 +- trunk/arch/arm/mach-mx3/mach-armadillo5x0.c | 166 - trunk/arch/arm/mach-mx3/mach-mx31_3ds.c | 116 +- trunk/arch/arm/mach-mx3/mach-pcm037.c | 1 + trunk/arch/arm/mach-mx3/mx31lite-db.c | 2 +- trunk/arch/arm/mach-mx5/clock-mx51.c | 2 +- trunk/arch/arm/mach-mx5/cpu.c | 53 - trunk/arch/arm/mach-mx5/mm.c | 32 +- trunk/arch/arm/mm/copypage-v6.c | 9 +- trunk/arch/arm/mm/dma-mapping.c | 5 - trunk/arch/arm/mm/flush.c | 25 +- trunk/arch/arm/mm/highmem.c | 87 +- trunk/arch/arm/mm/mmu.c | 14 +- .../{board-mx31_3ds.h => board-mx31pdk.h} | 6 +- trunk/arch/arm/plat-mxc/include/mach/mx51.h | 33 +- .../arm/plat-mxc/include/mach/uncompress.h | 4 - trunk/arch/arm/vfp/vfpmodule.c | 31 +- trunk/arch/frv/include/asm/segment.h | 6 +- trunk/arch/frv/include/asm/uaccess.h | 2 + trunk/arch/m68k/include/asm/atomic_mm.h | 8 +- trunk/arch/m68k/include/asm/sigcontext.h | 4 +- trunk/arch/microblaze/include/asm/futex.h | 2 +- trunk/arch/microblaze/include/asm/io.h | 5 - trunk/arch/microblaze/kernel/ftrace.c | 12 +- trunk/arch/microblaze/kernel/ptrace.c | 1 + .../mips/alchemy/devboards/db1200/setup.c | 40 + trunk/arch/mips/ar7/platform.c | 3 +- .../arch/mips/bcm63xx/boards/board_bcm963xx.c | 231 +- trunk/arch/mips/bcm63xx/cpu.c | 5 - trunk/arch/mips/bcm63xx/dev-uart.c | 66 +- trunk/arch/mips/bcm63xx/gpio.c | 4 +- trunk/arch/mips/cavium-octeon/setup.c | 82 +- trunk/arch/mips/cavium-octeon/smp.c | 8 + trunk/arch/mips/configs/bigsur_defconfig | 680 +--- trunk/arch/mips/include/asm/abi.h | 6 +- trunk/arch/mips/include/asm/elf.h | 5 - trunk/arch/mips/include/asm/fpu_emulator.h | 6 +- .../include/asm/mach-bcm63xx/bcm63xx_cpu.h | 15 - .../asm/mach-bcm63xx/bcm63xx_dev_uart.h | 6 - .../include/asm/mach-bcm63xx/bcm63xx_gpio.h | 4 - .../include/asm/mach-bcm63xx/board_bcm963xx.h | 2 - .../asm/mach-bcm63xx/cpu-feature-overrides.h | 2 +- trunk/arch/mips/include/asm/mach-sibyte/war.h | 6 +- trunk/arch/mips/include/asm/mmu.h | 5 +- trunk/arch/mips/include/asm/mmu_context.h | 2 +- trunk/arch/mips/include/asm/page.h | 6 +- trunk/arch/mips/include/asm/processor.h | 11 +- trunk/arch/mips/include/asm/stackframe.h | 19 - trunk/arch/mips/include/asm/uasm.h | 2 - trunk/arch/mips/include/asm/vdso.h | 29 - trunk/arch/mips/kernel/Makefile | 2 +- .../mips/kernel/cpufreq/loongson2_clock.c | 4 - trunk/arch/mips/kernel/process.c | 7 +- trunk/arch/mips/kernel/signal-common.h | 5 + trunk/arch/mips/kernel/signal.c | 86 +- trunk/arch/mips/kernel/signal32.c | 55 +- trunk/arch/mips/kernel/signal_n32.c | 26 +- trunk/arch/mips/kernel/smtc.c | 2 +- trunk/arch/mips/kernel/syscall.c | 6 +- trunk/arch/mips/kernel/traps.c | 2 +- trunk/arch/mips/kernel/vdso.c | 112 - trunk/arch/mips/lib/delay.c | 4 +- trunk/arch/mips/lib/libgcc.h | 3 +- trunk/arch/mips/mm/cache.c | 2 +- trunk/arch/mips/mm/tlbex.c | 22 +- trunk/arch/mips/mm/uasm.c | 23 +- trunk/arch/mips/pci/ops-loongson2.c | 10 - trunk/arch/mips/sibyte/sb1250/setup.c | 15 - trunk/arch/s390/defconfig | 40 +- trunk/arch/s390/include/asm/pgtable.h | 6 +- trunk/arch/s390/kernel/early.c | 3 +- trunk/arch/s390/kernel/entry.S | 8 +- trunk/arch/s390/kernel/entry64.S | 8 +- trunk/arch/s390/kernel/topology.c | 3 +- trunk/arch/s390/mm/vmem.c | 11 +- trunk/arch/sparc/Kconfig | 3 - trunk/arch/sparc/Kconfig.debug | 5 +- trunk/arch/sparc/include/asm/cpudata_64.h | 2 +- trunk/arch/sparc/include/asm/irqflags_64.h | 23 +- trunk/arch/sparc/kernel/Makefile | 10 +- trunk/arch/sparc/kernel/ftrace.c | 60 +- trunk/arch/sparc/kernel/irq_64.c | 11 +- trunk/arch/sparc/kernel/kgdb_64.c | 3 +- trunk/arch/sparc/kernel/nmi.c | 3 +- trunk/arch/sparc/kernel/pci_common.c | 11 +- trunk/arch/sparc/kernel/pcr.c | 3 +- trunk/arch/sparc/kernel/smp_64.c | 11 +- trunk/arch/sparc/kernel/time_64.c | 4 +- trunk/arch/sparc/kernel/traps_64.c | 26 +- trunk/arch/sparc/kernel/vmlinux.lds.S | 5 - trunk/arch/sparc/lib/mcount.S | 159 +- trunk/arch/x86/Kconfig | 4 +- trunk/arch/x86/ia32/ia32entry.S | 2 +- trunk/arch/x86/include/asm/amd_iommu_types.h | 3 - trunk/arch/x86/include/asm/lguest_hcall.h | 29 +- trunk/arch/x86/kernel/amd_iommu.c | 20 +- trunk/arch/x86/kernel/amd_iommu_init.c | 48 +- trunk/arch/x86/kernel/aperture_64.c | 15 +- trunk/arch/x86/kernel/apic/apic.c | 2 - trunk/arch/x86/kernel/crash.c | 6 + trunk/arch/x86/kernel/dumpstack.h | 8 +- trunk/arch/x86/kernel/e820.c | 24 +- trunk/arch/x86/kernel/hpet.c | 9 +- trunk/arch/x86/kernel/mpparse.c | 4 +- trunk/arch/x86/kernel/pci-gart_64.c | 3 - trunk/arch/x86/kernel/setup.c | 14 +- trunk/arch/x86/lguest/boot.c | 61 +- trunk/arch/x86/lguest/i386_head.S | 2 +- trunk/arch/x86/power/hibernate_asm_32.S | 15 +- trunk/block/Kconfig | 3 +- trunk/block/blk-settings.c | 11 +- trunk/block/blk-sysfs.c | 25 - trunk/block/cfq-iosched.c | 41 +- trunk/block/elevator.c | 2 +- trunk/drivers/acpi/acpica/evgpe.c | 19 +- trunk/drivers/acpi/acpica/exprep.c | 17 - trunk/drivers/acpi/battery.c | 6 +- trunk/drivers/acpi/dock.c | 7 +- trunk/drivers/acpi/ec.c | 35 +- trunk/drivers/acpi/numa.c | 6 +- trunk/drivers/acpi/osl.c | 23 +- trunk/drivers/acpi/scan.c | 12 +- trunk/drivers/acpi/video.c | 67 +- trunk/drivers/ata/libata-core.c | 77 +- trunk/drivers/ata/libata-sff.c | 4 + trunk/drivers/base/memory.c | 2 +- trunk/drivers/base/node.c | 2 +- trunk/drivers/block/DAC960.c | 1 + trunk/drivers/block/cciss.c | 1 - trunk/drivers/block/drbd/drbd_actlog.c | 19 +- trunk/drivers/block/drbd/drbd_bitmap.c | 10 +- trunk/drivers/block/drbd/drbd_int.h | 12 +- trunk/drivers/block/drbd/drbd_main.c | 20 +- trunk/drivers/block/drbd/drbd_nl.c | 44 +- trunk/drivers/block/drbd/drbd_receiver.c | 34 +- trunk/drivers/block/drbd/drbd_worker.c | 18 +- trunk/drivers/block/loop.c | 2 - trunk/drivers/block/paride/pcd.c | 4 +- trunk/drivers/block/paride/pf.c | 4 +- trunk/drivers/block/paride/pt.c | 4 +- trunk/drivers/block/virtio_blk.c | 5 +- trunk/drivers/char/agp/intel-agp.c | 3 + trunk/drivers/char/amiserial.c | 4 +- trunk/drivers/char/hvc_console.c | 4 + trunk/drivers/char/mem.c | 10 +- trunk/drivers/char/mxser.c | 6 +- trunk/drivers/char/raw.c | 1 - trunk/drivers/char/virtio_console.c | 65 +- trunk/drivers/firewire/core-cdev.c | 23 +- trunk/drivers/firmware/iscsi_ibft_find.c | 11 +- trunk/drivers/gpio/timbgpio.c | 12 +- trunk/drivers/gpu/drm/drm_edid.c | 2 - trunk/drivers/gpu/drm/drm_stub.c | 4 +- trunk/drivers/gpu/drm/i915/i915_debugfs.c | 2 +- trunk/drivers/gpu/drm/i915/i915_drv.c | 6 +- trunk/drivers/gpu/drm/i915/i915_drv.h | 4 - trunk/drivers/gpu/drm/i915/i915_gem.c | 132 +- trunk/drivers/gpu/drm/i915/i915_gem_debug.c | 4 +- trunk/drivers/gpu/drm/i915/i915_gem_tiling.c | 10 +- trunk/drivers/gpu/drm/i915/i915_irq.c | 8 +- trunk/drivers/gpu/drm/i915/intel_crt.c | 68 +- trunk/drivers/gpu/drm/i915/intel_display.c | 96 +- trunk/drivers/gpu/drm/i915/intel_dp.c | 256 +- trunk/drivers/gpu/drm/i915/intel_drv.h | 18 +- trunk/drivers/gpu/drm/i915/intel_dvo.c | 92 +- trunk/drivers/gpu/drm/i915/intel_fb.c | 2 +- trunk/drivers/gpu/drm/i915/intel_hdmi.c | 86 +- trunk/drivers/gpu/drm/i915/intel_lvds.c | 81 +- trunk/drivers/gpu/drm/i915/intel_modes.c | 22 +- trunk/drivers/gpu/drm/i915/intel_overlay.c | 6 +- trunk/drivers/gpu/drm/i915/intel_sdvo.c | 731 ++-- trunk/drivers/gpu/drm/i915/intel_tv.c | 96 +- trunk/drivers/gpu/drm/nouveau/Makefile | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_bios.c | 127 +- trunk/drivers/gpu/drm/nouveau/nouveau_bios.h | 4 +- trunk/drivers/gpu/drm/nouveau/nouveau_bo.c | 67 +- .../drivers/gpu/drm/nouveau/nouveau_channel.c | 2 + .../drivers/gpu/drm/nouveau/nouveau_debugfs.c | 5 +- trunk/drivers/gpu/drm/nouveau/nouveau_dp.c | 8 +- trunk/drivers/gpu/drm/nouveau/nouveau_drv.h | 40 +- .../drivers/gpu/drm/nouveau/nouveau_encoder.h | 1 - trunk/drivers/gpu/drm/nouveau/nouveau_gem.c | 55 +- trunk/drivers/gpu/drm/nouveau/nouveau_irq.c | 1 - trunk/drivers/gpu/drm/nouveau/nouveau_mem.c | 124 +- trunk/drivers/gpu/drm/nouveau/nouveau_sgdma.c | 18 - trunk/drivers/gpu/drm/nouveau/nouveau_state.c | 14 +- trunk/drivers/gpu/drm/nouveau/nv40_fifo.c | 2 +- trunk/drivers/gpu/drm/nouveau/nv40_graph.c | 21 - trunk/drivers/gpu/drm/nouveau/nv50_display.c | 22 +- trunk/drivers/gpu/drm/nouveau/nv50_display.h | 1 - trunk/drivers/gpu/drm/nouveau/nv50_fbcon.c | 13 +- trunk/drivers/gpu/drm/nouveau/nv50_gpio.c | 76 - trunk/drivers/gpu/drm/nouveau/nv50_graph.c | 7 +- trunk/drivers/gpu/drm/nouveau/nv50_grctx.c | 19 +- trunk/drivers/gpu/drm/nouveau/nv50_instmem.c | 16 +- trunk/drivers/gpu/drm/nouveau/nv50_sor.c | 25 +- trunk/drivers/gpu/drm/radeon/atom.c | 17 +- trunk/drivers/gpu/drm/radeon/atombios_crtc.c | 4 - trunk/drivers/gpu/drm/radeon/r100.c | 21 +- trunk/drivers/gpu/drm/radeon/r100_track.h | 1 - trunk/drivers/gpu/drm/radeon/r300.c | 20 +- trunk/drivers/gpu/drm/radeon/r600_audio.c | 2 +- trunk/drivers/gpu/drm/radeon/r600_hdmi.c | 9 - .../drivers/gpu/drm/radeon/radeon_atombios.c | 11 +- trunk/drivers/gpu/drm/radeon/radeon_combios.c | 20 +- .../gpu/drm/radeon/radeon_connectors.c | 15 +- trunk/drivers/gpu/drm/radeon/radeon_cp.c | 10 +- trunk/drivers/gpu/drm/radeon/radeon_device.c | 53 +- trunk/drivers/gpu/drm/radeon/radeon_drv.c | 3 +- .../drivers/gpu/drm/radeon/radeon_encoders.c | 33 +- trunk/drivers/gpu/drm/radeon/radeon_family.h | 3 +- .../gpu/drm/radeon/radeon_legacy_encoders.c | 58 +- trunk/drivers/gpu/drm/radeon/reg_srcs/r300 | 2 - trunk/drivers/gpu/drm/radeon/reg_srcs/r420 | 2 - trunk/drivers/gpu/drm/radeon/reg_srcs/rs600 | 2 - trunk/drivers/gpu/drm/radeon/reg_srcs/rv515 | 3 - trunk/drivers/gpu/drm/radeon/rs600.c | 2 +- trunk/drivers/hwmon/applesmc.c | 18 - trunk/drivers/hwmon/it87.c | 32 +- trunk/drivers/hwmon/sht15.c | 13 +- trunk/drivers/ide/ide-atapi.c | 2 +- trunk/drivers/ide/ide-dma.c | 1 - trunk/drivers/ide/ide-io.c | 2 +- trunk/drivers/ide/ide-taskfile.c | 6 +- trunk/drivers/infiniband/core/cm.c | 2 +- trunk/drivers/infiniband/core/cma.c | 1 - trunk/drivers/infiniband/hw/mlx4/mr.c | 2 +- trunk/drivers/infiniband/hw/nes/nes_verbs.c | 9 +- trunk/drivers/input/input.c | 9 +- trunk/drivers/input/keyboard/matrix_keypad.c | 4 +- trunk/drivers/input/mouse/alps.c | 1 - trunk/drivers/input/mouse/bcm5974.c | 1 + trunk/drivers/input/serio/i8042.c | 2 +- trunk/drivers/input/sparse-keymap.c | 52 +- trunk/drivers/input/tablet/wacom_sys.c | 12 +- trunk/drivers/input/tablet/wacom_wac.c | 163 +- trunk/drivers/isdn/gigaset/bas-gigaset.c | 5 + trunk/drivers/isdn/gigaset/capi.c | 2 + trunk/drivers/isdn/gigaset/common.c | 2 + trunk/drivers/isdn/gigaset/gigaset.h | 3 +- trunk/drivers/isdn/gigaset/i4l.c | 1 + trunk/drivers/isdn/gigaset/interface.c | 1 + trunk/drivers/isdn/gigaset/proc.c | 1 + trunk/drivers/isdn/gigaset/ser-gigaset.c | 3 + trunk/drivers/isdn/gigaset/usb-gigaset.c | 4 + trunk/drivers/lguest/lguest_device.c | 4 +- trunk/drivers/lguest/x86/core.c | 12 - trunk/drivers/macintosh/windfarm_core.c | 1 - .../media/video/pvrusb2/pvrusb2-sysfs.c | 8 - trunk/drivers/mmc/host/omap_hsmmc.c | 9 +- trunk/drivers/net/Kconfig | 25 - trunk/drivers/net/Makefile | 1 - trunk/drivers/net/benet/be_cmds.c | 4 +- trunk/drivers/net/benet/be_main.c | 21 +- trunk/drivers/net/bonding/bond_main.c | 28 +- trunk/drivers/net/cnic.c | 10 +- trunk/drivers/net/cxgb4/Makefile | 7 - trunk/drivers/net/cxgb4/cxgb4.h | 741 ---- trunk/drivers/net/cxgb4/cxgb4_main.c | 3388 ----------------- trunk/drivers/net/cxgb4/cxgb4_uld.h | 239 -- trunk/drivers/net/cxgb4/l2t.c | 624 --- trunk/drivers/net/cxgb4/l2t.h | 110 - trunk/drivers/net/cxgb4/sge.c | 2431 ------------ trunk/drivers/net/cxgb4/t4_hw.c | 3131 --------------- trunk/drivers/net/cxgb4/t4_hw.h | 100 - trunk/drivers/net/cxgb4/t4_msg.h | 664 ---- trunk/drivers/net/cxgb4/t4_regs.h | 878 ----- trunk/drivers/net/cxgb4/t4fw_api.h | 1580 -------- trunk/drivers/net/e1000e/netdev.c | 2 - trunk/drivers/net/forcedeth.c | 2 +- trunk/drivers/net/gianfar.c | 12 +- trunk/drivers/net/igb/igb_ethtool.c | 1 - trunk/drivers/net/igb/igb_main.c | 1 - trunk/drivers/net/myri10ge/myri10ge.c | 2 +- trunk/drivers/net/pcmcia/smc91c92_cs.c | 25 +- trunk/drivers/net/qlcnic/qlcnic_hw.c | 3 - trunk/drivers/net/r6040.c | 11 +- trunk/drivers/net/r8169.c | 4 +- trunk/drivers/net/sgiseeq.c | 4 +- trunk/drivers/net/stmmac/Kconfig | 1 - trunk/drivers/net/stmmac/stmmac_main.c | 10 +- trunk/drivers/net/tun.c | 4 - trunk/drivers/net/virtio_net.c | 2 - trunk/drivers/net/wan/hdlc_ppp.c | 6 - trunk/drivers/net/wireless/ath/ar9170/usb.c | 4 +- trunk/drivers/net/wireless/ath/ath9k/main.c | 3 +- trunk/drivers/net/wireless/iwlwifi/iwl-4965.c | 9 +- .../drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 55 +- trunk/drivers/net/wireless/iwlwifi/iwl-agn.c | 12 +- .../drivers/net/wireless/iwlwifi/iwl-calib.c | 12 - trunk/drivers/net/wireless/iwlwifi/iwl-core.c | 11 +- trunk/drivers/net/wireless/iwlwifi/iwl-core.h | 5 +- trunk/drivers/net/wireless/iwlwifi/iwl-tx.c | 107 +- .../net/wireless/iwlwifi/iwl3945-base.c | 4 +- trunk/drivers/net/wireless/libertas/cfg.c | 8 +- trunk/drivers/net/wireless/libertas/dev.h | 1 - trunk/drivers/net/wireless/mwl8k.c | 1 - trunk/drivers/net/wireless/p54/p54usb.c | 1 - trunk/drivers/net/wireless/rt2x00/rt2500usb.c | 5 - trunk/drivers/net/wireless/rt2x00/rt2800lib.c | 4 +- trunk/drivers/pcmcia/rsrc_nonstatic.c | 31 +- trunk/drivers/platform/x86/intel_menlow.c | 1 - trunk/drivers/pnp/pnpacpi/rsparser.c | 42 +- trunk/drivers/rtc/rtc-mxc.c | 26 +- trunk/drivers/s390/char/sclp_async.c | 2 +- trunk/drivers/scsi/sd.c | 2 +- trunk/drivers/ssb/driver_pcicore.c | 29 + trunk/drivers/thermal/thermal_sys.c | 3 - trunk/drivers/vhost/vhost.c | 4 - trunk/drivers/video/fsl-diu-fb.c | 1 - trunk/drivers/video/mb862xx/mb862xxfb_accel.c | 5 +- trunk/drivers/video/vesafb.c | 26 +- trunk/drivers/watchdog/Kconfig | 17 +- trunk/drivers/watchdog/booke_wdt.c | 2 +- trunk/drivers/watchdog/hpwdt.c | 2 +- trunk/drivers/watchdog/iTCO_wdt.c | 99 +- trunk/drivers/watchdog/max63xx_wdt.c | 7 +- trunk/drivers/watchdog/pika_wdt.c | 2 +- trunk/fs/bio.c | 4 +- trunk/fs/block_dev.c | 5 +- trunk/fs/btrfs/extent-tree.c | 20 +- trunk/fs/btrfs/volumes.c | 6 - trunk/fs/ceph/addr.c | 62 +- trunk/fs/ceph/caps.c | 42 +- trunk/fs/ceph/dir.c | 7 +- trunk/fs/ceph/inode.c | 10 +- trunk/fs/ceph/messenger.c | 9 - trunk/fs/ceph/osdmap.c | 180 +- trunk/fs/ceph/osdmap.h | 1 - trunk/fs/ceph/rados.h | 6 +- trunk/fs/ceph/snap.c | 26 +- trunk/fs/ceph/super.h | 3 +- trunk/fs/cifs/cifsfs.c | 1 - trunk/fs/cifs/cifssmb.c | 34 +- trunk/fs/cifs/file.c | 28 +- trunk/fs/ecryptfs/crypto.c | 37 +- trunk/fs/ecryptfs/ecryptfs_kernel.h | 13 +- trunk/fs/ecryptfs/inode.c | 129 +- trunk/fs/ecryptfs/mmap.c | 38 +- trunk/fs/ecryptfs/super.c | 1 + trunk/fs/ext2/symlink.c | 2 - trunk/fs/ext3/symlink.c | 2 - trunk/fs/fs-writeback.c | 133 +- trunk/fs/fscache/stats.c | 4 +- trunk/fs/nfs/client.c | 3 +- trunk/fs/nfs/dir.c | 2 +- trunk/fs/nfs/inode.c | 8 +- trunk/fs/nfs/nfs4proc.c | 7 +- trunk/fs/nfs/write.c | 44 +- trunk/fs/nilfs2/alloc.c | 2 +- trunk/fs/nilfs2/btree.c | 2 +- trunk/fs/nilfs2/ioctl.c | 2 +- trunk/fs/proc/task_mmu.c | 29 +- trunk/fs/quota/dquot.c | 18 +- trunk/fs/udf/balloc.c | 10 +- trunk/fs/udf/file.c | 2 +- trunk/fs/udf/inode.c | 2 +- trunk/fs/udf/namei.c | 9 +- trunk/fs/udf/udfdecl.h | 3 +- trunk/fs/xfs/linux-2.6/xfs_sync.c | 4 +- trunk/fs/xfs/xfs_log.c | 38 +- trunk/include/drm/drm_pciids.h | 1 - trunk/include/linux/ata.h | 4 +- trunk/include/linux/bitops.h | 3 + trunk/include/linux/blkdev.h | 35 +- trunk/include/linux/drbd.h | 2 +- trunk/include/linux/drbd_nl.h | 3 +- trunk/include/linux/firewire-cdev.h | 78 +- trunk/include/linux/firewire-constants.h | 29 +- trunk/include/linux/fs.h | 1 - trunk/include/linux/genhd.h | 2 +- trunk/include/linux/i2o.h | 1 + trunk/include/linux/ide.h | 1 - trunk/include/linux/input/matrix_keypad.h | 2 - trunk/include/linux/iscsi_ibft.h | 8 +- trunk/include/linux/kernel.h | 2 +- trunk/include/linux/kfifo.h | 3 +- trunk/include/linux/lcm.h | 8 - trunk/include/linux/libata.h | 1 - trunk/include/linux/mm.h | 4 +- trunk/include/linux/module.h | 14 +- trunk/include/linux/nfs_fs_sb.h | 1 - trunk/include/linux/page_cgroup.h | 6 - trunk/include/linux/radix-tree.h | 7 - trunk/include/linux/rcupdate.h | 65 +- trunk/include/linux/slab.h | 1 - trunk/include/linux/virtio_console.h | 23 + trunk/include/linux/writeback.h | 3 - trunk/include/net/x25.h | 4 - trunk/include/sound/ak4113.h | 2 +- trunk/include/sound/soc-dai.h | 18 +- trunk/include/sound/soc.h | 1 - trunk/include/trace/events/block.h | 164 - trunk/kernel/exit.c | 3 +- trunk/kernel/fork.c | 3 - trunk/kernel/irq/manage.c | 10 - trunk/kernel/module.c | 35 +- trunk/kernel/power/user.c | 2 +- trunk/kernel/rcupdate.c | 7 - trunk/kernel/sched.c | 2 +- trunk/lib/Kconfig.debug | 2 +- trunk/lib/Makefile | 2 +- trunk/lib/dma-debug.c | 2 +- trunk/lib/lcm.c | 15 - trunk/lib/radix-tree.c | 12 +- trunk/lib/ratelimit.c | 11 +- trunk/lib/rwsem-spinlock.c | 14 +- trunk/lib/vsprintf.c | 10 +- trunk/mm/backing-dev.c | 3 - trunk/mm/bootmem.c | 17 +- trunk/mm/memcontrol.c | 18 +- trunk/mm/memory.c | 3 +- trunk/mm/mmap.c | 110 +- trunk/mm/pagewalk.c | 47 +- trunk/mm/readahead.c | 2 +- trunk/mm/rmap.c | 24 +- trunk/mm/slab.c | 13 +- trunk/mm/slub.c | 3 - trunk/mm/util.c | 21 - trunk/mm/vmscan.c | 23 +- trunk/net/bluetooth/l2cap.c | 3 +- trunk/net/bluetooth/rfcomm/sock.c | 3 +- trunk/net/bluetooth/sco.c | 3 +- trunk/net/bridge/br_multicast.c | 2 +- trunk/net/can/bcm.c | 3 - trunk/net/can/raw.c | 2 +- trunk/net/core/dev.c | 8 +- trunk/net/ieee802154/af_ieee802154.c | 3 - trunk/net/ipv4/af_inet.c | 5 - trunk/net/ipv4/fib_trie.c | 4 +- trunk/net/ipv4/ip_output.c | 2 +- trunk/net/ipv4/tcp.c | 1 - trunk/net/ipv4/udp.c | 4 +- trunk/net/ipv6/ip6_output.c | 2 +- trunk/net/ipv6/udp.c | 4 +- trunk/net/mac80211/main.c | 4 +- trunk/net/mac80211/mesh.c | 3 + trunk/net/mac80211/mesh_hwmp.c | 4 +- trunk/net/mac80211/rx.c | 5 - trunk/net/mac80211/sta_info.c | 20 +- trunk/net/mac80211/tx.c | 6 - trunk/net/mac80211/util.c | 18 +- trunk/net/netlabel/netlabel_domainhash.c | 28 +- trunk/net/netlabel/netlabel_unlabeled.c | 66 +- trunk/net/netlink/af_netlink.c | 3 - trunk/net/packet/af_packet.c | 2 + .../net/sunrpc/xprtrdma/svc_rdma_transport.c | 5 +- trunk/net/wireless/reg.c | 12 +- trunk/net/x25/af_x25.c | 67 +- trunk/net/x25/x25_facilities.c | 27 +- trunk/net/x25/x25_in.c | 15 +- trunk/security/selinux/ss/avtab.h | 2 +- trunk/sound/arm/aaci.c | 7 +- trunk/sound/i2c/other/ak4113.c | 2 +- trunk/sound/pci/echoaudio/echoaudio.c | 5 +- trunk/sound/pci/hda/hda_intel.c | 2 - trunk/sound/pci/hda/patch_analog.c | 8 - trunk/sound/pci/hda/patch_realtek.c | 334 +- trunk/sound/pci/hda/patch_via.c | 41 +- trunk/sound/pci/mixart/mixart.c | 24 +- trunk/sound/soc/atmel/atmel-pcm.c | 2 +- trunk/sound/soc/atmel/atmel_ssc_dai.c | 6 +- trunk/sound/soc/codecs/ac97.c | 15 +- trunk/sound/soc/codecs/wm2000.c | 1 + trunk/sound/soc/codecs/wm8994.c | 58 +- trunk/sound/soc/codecs/wm_hubs.c | 83 +- trunk/sound/soc/codecs/wm_hubs.h | 1 - trunk/sound/soc/davinci/davinci-i2s.c | 3 +- trunk/sound/soc/davinci/davinci-mcasp.c | 3 +- trunk/sound/soc/davinci/davinci-pcm.c | 4 +- trunk/sound/soc/imx/imx-pcm-dma-mx2.c | 23 +- trunk/sound/soc/imx/imx-pcm-fiq.c | 55 +- trunk/sound/soc/imx/imx-ssi.c | 10 +- trunk/sound/soc/omap/omap-mcbsp.c | 4 +- trunk/sound/soc/omap/omap-mcpdm.c | 3 +- trunk/sound/soc/omap/omap-pcm.c | 21 +- trunk/sound/soc/pxa/pxa-ssp.c | 23 +- trunk/sound/soc/pxa/pxa2xx-ac97.c | 17 +- trunk/sound/soc/pxa/pxa2xx-i2s.c | 7 +- trunk/sound/soc/pxa/pxa2xx-pcm.c | 4 +- trunk/sound/soc/s3c24xx/s3c-ac97.c | 21 +- trunk/sound/soc/s3c24xx/s3c-dma.c | 4 +- trunk/sound/soc/s3c24xx/s3c-i2s-v2.c | 13 +- trunk/sound/soc/s3c24xx/s3c-pcm.c | 7 +- trunk/sound/soc/s3c24xx/s3c24xx-i2s.c | 19 +- trunk/sound/soc/s6000/s6000-i2s.c | 3 +- trunk/sound/soc/s6000/s6000-pcm.c | 40 +- trunk/sound/soc/soc-core.c | 3 +- trunk/sound/usb/usbmidi.c | 24 +- 524 files changed, 3923 insertions(+), 21185 deletions(-) rename trunk/Documentation/fb/{efifb.txt => imacfb.txt} (66%) delete mode 100644 trunk/Documentation/networking/stmmac.txt rename trunk/arch/arm/plat-mxc/include/mach/{board-mx31_3ds.h => board-mx31pdk.h} (93%) delete mode 100644 trunk/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h delete mode 100644 trunk/arch/mips/include/asm/vdso.h delete mode 100644 trunk/arch/mips/kernel/vdso.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_gpio.c delete mode 100644 trunk/drivers/net/cxgb4/Makefile delete mode 100644 trunk/drivers/net/cxgb4/cxgb4.h delete mode 100644 trunk/drivers/net/cxgb4/cxgb4_main.c delete mode 100644 trunk/drivers/net/cxgb4/cxgb4_uld.h delete mode 100644 trunk/drivers/net/cxgb4/l2t.c delete mode 100644 trunk/drivers/net/cxgb4/l2t.h delete mode 100644 trunk/drivers/net/cxgb4/sge.c delete mode 100644 trunk/drivers/net/cxgb4/t4_hw.c delete mode 100644 trunk/drivers/net/cxgb4/t4_hw.h delete mode 100644 trunk/drivers/net/cxgb4/t4_msg.h delete mode 100644 trunk/drivers/net/cxgb4/t4_regs.h delete mode 100644 trunk/drivers/net/cxgb4/t4fw_api.h delete mode 100644 trunk/include/linux/lcm.h delete mode 100644 trunk/lib/lcm.c diff --git a/[refs] b/[refs] index 7abf756721fe..a03dba74e795 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 186837ca3a6dd6b422a5ea316ed38eea183dca5d +refs/heads/master: ab285f2b5290d92b7ec1a6f9aad54308dadf6157 diff --git a/trunk/Documentation/DocBook/tracepoint.tmpl b/trunk/Documentation/DocBook/tracepoint.tmpl index e8473eae2a20..8bca1d5cec09 100644 --- a/trunk/Documentation/DocBook/tracepoint.tmpl +++ b/trunk/Documentation/DocBook/tracepoint.tmpl @@ -16,15 +16,6 @@ - - William - Cohen - -
- wcohen@redhat.com -
-
-
@@ -100,8 +91,4 @@ !Iinclude/trace/events/signal.h - - Block IO -!Iinclude/trace/events/block.h - diff --git a/trunk/Documentation/RCU/NMI-RCU.txt b/trunk/Documentation/RCU/NMI-RCU.txt index a8536cb88091..a6d32e65d222 100644 --- a/trunk/Documentation/RCU/NMI-RCU.txt +++ b/trunk/Documentation/RCU/NMI-RCU.txt @@ -34,7 +34,7 @@ NMI handler. cpu = smp_processor_id(); ++nmi_count(cpu); - if (!rcu_dereference_sched(nmi_callback)(regs, cpu)) + if (!rcu_dereference(nmi_callback)(regs, cpu)) default_do_nmi(regs); nmi_exit(); @@ -47,13 +47,12 @@ function pointer. If this handler returns zero, do_nmi() invokes the default_do_nmi() function to handle a machine-specific NMI. Finally, preemption is restored. -In theory, rcu_dereference_sched() is not needed, since this code runs -only on i386, which in theory does not need rcu_dereference_sched() -anyway. However, in practice it is a good documentation aid, particularly -for anyone attempting to do something similar on Alpha or on systems -with aggressive optimizing compilers. +Strictly speaking, rcu_dereference() is not needed, since this code runs +only on i386, which does not need rcu_dereference() anyway. However, +it is a good documentation aid, particularly for anyone attempting to +do something similar on Alpha. -Quick Quiz: Why might the rcu_dereference_sched() be necessary on Alpha, +Quick Quiz: Why might the rcu_dereference() be necessary on Alpha, given that the code referenced by the pointer is read-only? @@ -100,21 +99,17 @@ invoke irq_enter() and irq_exit() on NMI entry and exit, respectively. Answer to Quick Quiz - Why might the rcu_dereference_sched() be necessary on Alpha, given + Why might the rcu_dereference() be necessary on Alpha, given that the code referenced by the pointer is read-only? Answer: The caller to set_nmi_callback() might well have - initialized some data that is to be used by the new NMI - handler. In this case, the rcu_dereference_sched() would - be needed, because otherwise a CPU that received an NMI - just after the new handler was set might see the pointer - to the new NMI handler, but the old pre-initialized - version of the handler's data. - - This same sad story can happen on other CPUs when using - a compiler with aggressive pointer-value speculation - optimizations. - - More important, the rcu_dereference_sched() makes it - clear to someone reading the code that the pointer is - being protected by RCU-sched. + initialized some data that is to be used by the + new NMI handler. In this case, the rcu_dereference() + would be needed, because otherwise a CPU that received + an NMI just after the new handler was set might see + the pointer to the new NMI handler, but the old + pre-initialized version of the handler's data. + + More important, the rcu_dereference() makes it clear + to someone reading the code that the pointer is being + protected by RCU. diff --git a/trunk/Documentation/RCU/checklist.txt b/trunk/Documentation/RCU/checklist.txt index 790d1a812376..cbc180f90194 100644 --- a/trunk/Documentation/RCU/checklist.txt +++ b/trunk/Documentation/RCU/checklist.txt @@ -260,8 +260,7 @@ over a rather long period of time, but improvements are always welcome! The reason that it is permissible to use RCU list-traversal primitives when the update-side lock is held is that doing so can be quite helpful in reducing code bloat when common code is - shared between readers and updaters. Additional primitives - are provided for this case, as discussed in lockdep.txt. + shared between readers and updaters. 10. Conversely, if you are in an RCU read-side critical section, and you don't hold the appropriate update-side lock, you -must- @@ -345,8 +344,8 @@ over a rather long period of time, but improvements are always welcome! requiring SRCU's read-side deadlock immunity or low read-side realtime latency. - Note that, rcu_assign_pointer() relates to SRCU just as they do - to other forms of RCU. + Note that, rcu_assign_pointer() and rcu_dereference() relate to + SRCU just as they do to other forms of RCU. 15. The whole point of call_rcu(), synchronize_rcu(), and friends is to wait until all pre-existing readers have finished before diff --git a/trunk/Documentation/RCU/lockdep.txt b/trunk/Documentation/RCU/lockdep.txt index d7a49b2f6994..fe24b58627bd 100644 --- a/trunk/Documentation/RCU/lockdep.txt +++ b/trunk/Documentation/RCU/lockdep.txt @@ -32,20 +32,9 @@ checking of rcu_dereference() primitives: srcu_dereference(p, sp): Check for SRCU read-side critical section. rcu_dereference_check(p, c): - Use explicit check expression "c". This is useful in - code that is invoked by both readers and updaters. + Use explicit check expression "c". rcu_dereference_raw(p) Don't check. (Use sparingly, if at all.) - rcu_dereference_protected(p, c): - Use explicit check expression "c", and omit all barriers - and compiler constraints. This is useful when the data - structure cannot change, for example, in code that is - invoked only by updaters. - rcu_access_pointer(p): - Return the value of the pointer and omit all barriers, - but retain the compiler constraints that prevent duplicating - or coalescsing. This is useful when when testing the - value of the pointer itself, for example, against NULL. The rcu_dereference_check() check expression can be any boolean expression, but would normally include one of the rcu_read_lock_held() @@ -70,20 +59,7 @@ In case (1), the pointer is picked up in an RCU-safe manner for vanilla RCU read-side critical sections, in case (2) the ->file_lock prevents any change from taking place, and finally, in case (3) the current task is the only task accessing the file_struct, again preventing any change -from taking place. If the above statement was invoked only from updater -code, it could instead be written as follows: - - file = rcu_dereference_protected(fdt->fd[fd], - lockdep_is_held(&files->file_lock) || - atomic_read(&files->count) == 1); - -This would verify cases #2 and #3 above, and furthermore lockdep would -complain if this was used in an RCU read-side critical section unless one -of these two cases held. Because rcu_dereference_protected() omits all -barriers and compiler constraints, it generates better code than do the -other flavors of rcu_dereference(). On the other hand, it is illegal -to use rcu_dereference_protected() if either the RCU-protected pointer -or the RCU-protected data that it points to can change concurrently. +from taking place. There are currently only "universal" versions of the rcu_assign_pointer() and RCU list-/tree-traversal primitives, which do not (yet) check for diff --git a/trunk/Documentation/RCU/whatisRCU.txt b/trunk/Documentation/RCU/whatisRCU.txt index cfaac34c4557..1dc00ee97163 100644 --- a/trunk/Documentation/RCU/whatisRCU.txt +++ b/trunk/Documentation/RCU/whatisRCU.txt @@ -840,12 +840,6 @@ SRCU: Initialization/cleanup init_srcu_struct cleanup_srcu_struct -All: lockdep-checked RCU-protected pointer access - - rcu_dereference_check - rcu_dereference_protected - rcu_access_pointer - See the comment headers in the source code (or the docbook generated from them) for more information. diff --git a/trunk/Documentation/block/biodoc.txt b/trunk/Documentation/block/biodoc.txt index 508b5b2b0289..6fab97ea7e6b 100644 --- a/trunk/Documentation/block/biodoc.txt +++ b/trunk/Documentation/block/biodoc.txt @@ -1162,8 +1162,8 @@ where a driver received a request ala this before: As mentioned, there is no virtual mapping of a bio. For DMA, this is not a problem as the driver probably never will need a virtual mapping. -Instead it needs a bus mapping (dma_map_page for a single segment or -use dma_map_sg for scatter gather) to be able to ship it to the driver. For +Instead it needs a bus mapping (pci_map_page for a single segment or +use blk_rq_map_sg for scatter gather) to be able to ship it to the driver. For PIO drivers (or drivers that need to revert to PIO transfer once in a while (IDE for example)), where the CPU is doing the actual data transfer a virtual mapping is needed. If the driver supports highmem I/O, diff --git a/trunk/Documentation/fb/efifb.txt b/trunk/Documentation/fb/imacfb.txt similarity index 66% rename from trunk/Documentation/fb/efifb.txt rename to trunk/Documentation/fb/imacfb.txt index a59916c29b33..316ec9bb7deb 100644 --- a/trunk/Documentation/fb/efifb.txt +++ b/trunk/Documentation/fb/imacfb.txt @@ -1,9 +1,9 @@ -What is efifb? +What is imacfb? =============== This is a generic EFI platform driver for Intel based Apple computers. -efifb is only for EFI booted Intel Macs. +Imacfb is only for EFI booted Intel Macs. Supported Hardware ================== @@ -16,16 +16,16 @@ MacMini How to use it? ============== -efifb does not have any kind of autodetection of your machine. +Imacfb does not have any kind of autodetection of your machine. You have to add the following kernel parameters in your elilo.conf: Macbook : - video=efifb:macbook + video=imacfb:macbook MacMini : - video=efifb:mini + video=imacfb:mini Macbook Pro 15", iMac 17" : - video=efifb:i17 + video=imacfb:i17 Macbook Pro 17", iMac 20" : - video=efifb:i20 + video=imacfb:i20 -- Edgar Hucek diff --git a/trunk/Documentation/input/multi-touch-protocol.txt b/trunk/Documentation/input/multi-touch-protocol.txt index c0fc1c75fd88..8490480ce432 100644 --- a/trunk/Documentation/input/multi-touch-protocol.txt +++ b/trunk/Documentation/input/multi-touch-protocol.txt @@ -68,22 +68,6 @@ like: SYN_MT_REPORT SYN_REPORT -Here is the sequence after lifting one of the fingers: - - ABS_MT_POSITION_X - ABS_MT_POSITION_Y - SYN_MT_REPORT - SYN_REPORT - -And here is the sequence after lifting the remaining finger: - - SYN_MT_REPORT - SYN_REPORT - -If the driver reports one of BTN_TOUCH or ABS_PRESSURE in addition to the -ABS_MT events, the last SYN_MT_REPORT event may be omitted. Otherwise, the -last SYN_REPORT will be dropped by the input core, resulting in no -zero-finger event reaching userland. Event Semantics --------------- @@ -233,6 +217,11 @@ where examples can be found. difference between the contact position and the approaching tool position could be used to derive tilt. [2] The list can of course be extended. -[3] Multitouch X driver project: http://bitmath.org/code/multitouch/. +[3] The multi-touch X driver is currently in the prototyping stage. At the +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 +implement more advanced gestures. [4] See the section on event computation. [5] See the section on finger tracking. diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index e2202e93b148..e4cbca58536c 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -320,6 +320,11 @@ and is between 256 and 4096 characters. It is defined in the file amd_iommu= [HW,X86-84] Pass parameters to the AMD IOMMU driver in the system. Possible values are: + isolate - enable device isolation (each device, as far + as possible, will get its own protection + domain) [default] + share - put every device behind one IOMMU into the + same protection domain fullflush - enable flushing of IO/TLB entries when they are unmapped. Otherwise they are flushed before they will be reused, which diff --git a/trunk/Documentation/networking/stmmac.txt b/trunk/Documentation/networking/stmmac.txt deleted file mode 100644 index 7ee770b5ef5f..000000000000 --- a/trunk/Documentation/networking/stmmac.txt +++ /dev/null @@ -1,143 +0,0 @@ - STMicroelectronics 10/100/1000 Synopsys Ethernet driver - -Copyright (C) 2007-2010 STMicroelectronics Ltd -Author: Giuseppe Cavallaro - -This is the driver for the MAC 10/100/1000 on-chip Ethernet controllers -(Synopsys IP blocks); it has been fully tested on STLinux platforms. - -Currently this network device driver is for all STM embedded MAC/GMAC -(7xxx SoCs). - -DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/100 -Universal version 4.0 have been used for developing the first code -implementation. - -Please, for more information also visit: www.stlinux.com - -1) Kernel Configuration -The kernel configuration option is STMMAC_ETH: - Device Drivers ---> Network device support ---> Ethernet (1000 Mbit) ---> - STMicroelectronics 10/100/1000 Ethernet driver (STMMAC_ETH) - -2) Driver parameters list: - debug: message level (0: no output, 16: all); - phyaddr: to manually provide the physical address to the PHY device; - dma_rxsize: DMA rx ring size; - dma_txsize: DMA tx ring size; - buf_sz: DMA buffer size; - tc: control the HW FIFO threshold; - tx_coe: Enable/Disable Tx Checksum Offload engine; - watchdog: transmit timeout (in milliseconds); - flow_ctrl: Flow control ability [on/off]; - pause: Flow Control Pause Time; - tmrate: timer period (only if timer optimisation is configured). - -3) Command line options -Driver parameters can be also passed in command line by using: - stmmaceth=dma_rxsize:128,dma_txsize:512 - -4) Driver information and notes - -4.1) Transmit process -The xmit method is invoked when the kernel needs to transmit a packet; it sets -the descriptors in the ring and informs the DMA engine that there is a packet -ready to be transmitted. -Once the controller has finished transmitting the packet, an interrupt is -triggered; So the driver will be able to release the socket buffers. -By default, the driver sets the NETIF_F_SG bit in the features field of the -net_device structure enabling the scatter/gather feature. - -4.2) Receive process -When one or more packets are received, an interrupt happens. The interrupts -are not queued so the driver has to scan all the descriptors in the ring during -the receive process. -This is based on NAPI so the interrupt handler signals only if there is work to be -done, and it exits. -Then the poll method will be scheduled at some future point. -The incoming packets are stored, by the DMA, in a list of pre-allocated socket -buffers in order to avoid the memcpy (Zero-copy). - -4.3) Timer-Driver Interrupt -Instead of having the device that asynchronously notifies the frame receptions, the -driver configures a timer to generate an interrupt at regular intervals. -Based on the granularity of the timer, the frames that are received by the device -will experience different levels of latency. Some NICs have dedicated timer -device to perform this task. STMMAC can use either the RTC device or the TMU -channel 2 on STLinux platforms. -The timers frequency can be passed to the driver as parameter; when change it, -take care of both hardware capability and network stability/performance impact. -Several performance tests on STM platforms showed this optimisation allows to spare -the CPU while having the maximum throughput. - -4.4) WOL -Wake up on Lan feature through Magic Frame is only supported for the GMAC -core. - -4.5) DMA descriptors -Driver handles both normal and enhanced descriptors. The latter has been only -tested on DWC Ether MAC 10/100/1000 Universal version 3.41a. - -4.6) Ethtool support -Ethtool is supported. Driver statistics and internal errors can be taken using: -ethtool -S ethX command. It is possible to dump registers etc. - -4.7) Jumbo and Segmentation Offloading -Jumbo frames are supported and tested for the GMAC. -The GSO has been also added but it's performed in software. -LRO is not supported. - -4.8) Physical -The driver is compatible with PAL to work with PHY and GPHY devices. - -4.9) Platform information -Several information came from the platform; please refer to the -driver's Header file in include/linux directory. - -struct plat_stmmacenet_data { - int bus_id; - int pbl; - int has_gmac; - void (*fix_mac_speed)(void *priv, unsigned int speed); - void (*bus_setup)(unsigned long ioaddr); -#ifdef CONFIG_STM_DRIVERS - struct stm_pad_config *pad_config; -#endif - void *bsp_priv; -}; - -Where: -- pbl (Programmable Burst Length) is maximum number of - beats to be transferred in one DMA transaction. - GMAC also enables the 4xPBL by default. -- fix_mac_speed and bus_setup are used to configure internal target - registers (on STM platforms); -- has_gmac: GMAC core is on board (get it at run-time in the next step); -- bus_id: bus identifier. - -struct plat_stmmacphy_data { - int bus_id; - int phy_addr; - unsigned int phy_mask; - int interface; - int (*phy_reset)(void *priv); - void *priv; -}; - -Where: -- bus_id: bus identifier; -- phy_addr: physical address used for the attached phy device; - set it to -1 to get it at run-time; -- interface: physical MII interface mode; -- phy_reset: hook to reset HW function. - -TODO: -- Continue to make the driver more generic and suitable for other Synopsys - Ethernet controllers used on other architectures (i.e. ARM). -- 10G controllers are not supported. -- MAC uses Normal descriptors and GMAC uses enhanced ones. - This is a limit that should be reviewed. MAC could want to - use the enhanced structure. -- Checksumming: Rx/Tx csum is done in HW in case of GMAC only. -- Review the timer optimisation code to use an embedded device that seems to be - available in new chip generations. diff --git a/trunk/Documentation/networking/timestamping.txt b/trunk/Documentation/networking/timestamping.txt index e8c8f4f06c67..0e58b4539176 100644 --- a/trunk/Documentation/networking/timestamping.txt +++ b/trunk/Documentation/networking/timestamping.txt @@ -41,12 +41,11 @@ SOF_TIMESTAMPING_SOFTWARE: return system time stamp generated in SOF_TIMESTAMPING_TX/RX determine how time stamps are generated. SOF_TIMESTAMPING_RAW/SYS determine how they are reported in the following control message: - -struct scm_timestamping { - struct timespec systime; - struct timespec hwtimetrans; - struct timespec hwtimeraw; -}; + struct scm_timestamping { + struct timespec systime; + struct timespec hwtimetrans; + struct timespec hwtimeraw; + }; recvmsg() can be used to get this control message for regular incoming packets. For send time stamps the outgoing packet is looped back to @@ -88,13 +87,12 @@ by the network device and will be empty without that support. SIOCSHWTSTAMP: Hardware time stamping must also be initialized for each device driver -that is expected to do hardware time stamping. The parameter is defined in -/include/linux/net_tstamp.h as: +that is expected to do hardware time stamping. The parameter is: struct hwtstamp_config { - int flags; /* no flags defined right now, must be zero */ - int tx_type; /* HWTSTAMP_TX_* */ - int rx_filter; /* HWTSTAMP_FILTER_* */ + int flags; /* no flags defined right now, must be zero */ + int tx_type; /* HWTSTAMP_TX_* */ + int rx_filter; /* HWTSTAMP_FILTER_* */ }; Desired behavior is passed into the kernel and to a specific device by @@ -141,56 +139,42 @@ enum { /* time stamp any incoming packet */ HWTSTAMP_FILTER_ALL, - /* return value: time stamp all packets requested plus some others */ - HWTSTAMP_FILTER_SOME, + /* return value: time stamp all packets requested plus some others */ + HWTSTAMP_FILTER_SOME, /* PTP v1, UDP, any kind of event packet */ HWTSTAMP_FILTER_PTP_V1_L4_EVENT, - /* for the complete list of values, please check - * the include file /include/linux/net_tstamp.h - */ + ... }; DEVICE IMPLEMENTATION A driver which supports hardware time stamping must support the -SIOCSHWTSTAMP ioctl and update the supplied struct hwtstamp_config with -the actual values as described in the section on SIOCSHWTSTAMP. - -Time stamps for received packets must be stored in the skb. To get a pointer -to the shared time stamp structure of the skb call skb_hwtstamps(). Then -set the time stamps in the structure: - -struct skb_shared_hwtstamps { - /* hardware time stamp transformed into duration - * since arbitrary point in time - */ - ktime_t hwtstamp; - ktime_t syststamp; /* hwtstamp transformed to system time base */ -}; +SIOCSHWTSTAMP ioctl. Time stamps for received packets must be stored +in the skb with skb_hwtstamp_set(). Time stamps for outgoing packets are to be generated as follows: -- In hard_start_xmit(), check if skb_tx(skb)->hardware is set no-zero. - If yes, then the driver is expected to do hardware time stamping. +- In hard_start_xmit(), check if skb_hwtstamp_check_tx_hardware() + returns non-zero. If yes, then the driver is expected + to do hardware time stamping. - If this is possible for the skb and requested, then declare - that the driver is doing the time stamping by setting the field - skb_tx(skb)->in_progress non-zero. You might want to keep a pointer - to the associated skb for the next step and not free the skb. A driver - not supporting hardware time stamping doesn't do that. A driver must - never touch sk_buff::tstamp! It is used to store software generated - time stamps by the network subsystem. + that the driver is doing the time stamping by calling + skb_hwtstamp_tx_in_progress(). A driver not supporting + hardware time stamping doesn't do that. A driver must never + touch sk_buff::tstamp! It is used to store how time stamping + for an outgoing packets is to be done. - As soon as the driver has sent the packet and/or obtained a hardware time stamp for it, it passes the time stamp back by calling skb_hwtstamp_tx() with the original skb, the raw - hardware time stamp. skb_hwtstamp_tx() clones the original skb and - adds the timestamps, therefore the original skb has to be freed now. - If obtaining the hardware time stamp somehow fails, then the driver - should not fall back to software time stamping. The rationale is that - this would occur at a later time in the processing pipeline than other - software time stamping and therefore could lead to unexpected deltas - between time stamps. -- If the driver did not call set skb_tx(skb)->in_progress, then + hardware time stamp and a handle to the device (necessary + to convert the hardware time stamp to system time). If obtaining + the hardware time stamp somehow fails, then the driver should + not fall back to software time stamping. The rationale is that + this would occur at a later time in the processing pipeline + than other software time stamping and therefore could lead + to unexpected deltas between time stamps. +- If the driver did not call skb_hwtstamp_tx_in_progress(), then dev_hard_start_xmit() checks whether software time stamping is wanted as fallback and potentially generates the time stamp. diff --git a/trunk/Documentation/sound/alsa/HD-Audio.txt b/trunk/Documentation/sound/alsa/HD-Audio.txt index 98d14cb8a85d..f4dd3bf99d12 100644 --- a/trunk/Documentation/sound/alsa/HD-Audio.txt +++ b/trunk/Documentation/sound/alsa/HD-Audio.txt @@ -119,18 +119,10 @@ the codec slots 0 and 1 no matter what the hardware reports. Interrupt Handling ~~~~~~~~~~~~~~~~~~ -HD-audio driver uses MSI as default (if available) since 2.6.33 -kernel as MSI works better on some machines, and in general, it's -better for performance. However, Nvidia controllers showed bad -regressions with MSI (especially in a combination with AMD chipset), -thus we disabled MSI for them. - -There seem also still other devices that don't work with MSI. If you -see a regression wrt the sound quality (stuttering, etc) or a lock-up -in the recent kernel, try to pass `enable_msi=0` option to disable -MSI. If it works, you can add the known bad device to the blacklist -defined in hda_intel.c. In such a case, please report and give the -patch back to the upstream developer. +In rare but some cases, the interrupt isn't properly handled as +default. You would notice this by the DMA transfer error reported by +ALSA PCM core, for example. Using MSI might help in such a case. +Pass `enable_msi=1` option for enabling MSI. HD-AUDIO CODEC diff --git a/trunk/Documentation/watchdog/src/watchdog-simple.c b/trunk/Documentation/watchdog/src/watchdog-simple.c index ba45803a2216..4cf72f3fa8e9 100644 --- a/trunk/Documentation/watchdog/src/watchdog-simple.c +++ b/trunk/Documentation/watchdog/src/watchdog-simple.c @@ -17,6 +17,9 @@ int main(void) ret = -1; break; } + ret = fsync(fd); + if (ret) + break; sleep(10); } close(fd); diff --git a/trunk/Documentation/watchdog/src/watchdog-test.c b/trunk/Documentation/watchdog/src/watchdog-test.c index 63fdc34ceb98..a750532ffcf8 100644 --- a/trunk/Documentation/watchdog/src/watchdog-test.c +++ b/trunk/Documentation/watchdog/src/watchdog-test.c @@ -31,8 +31,6 @@ static void keep_alive(void) */ int main(int argc, char *argv[]) { - int flags; - fd = open("/dev/watchdog", O_WRONLY); if (fd == -1) { @@ -43,14 +41,12 @@ int main(int argc, char *argv[]) if (argc > 1) { if (!strncasecmp(argv[1], "-d", 2)) { - flags = WDIOS_DISABLECARD; - ioctl(fd, WDIOC_SETOPTIONS, &flags); + ioctl(fd, WDIOC_SETOPTIONS, WDIOS_DISABLECARD); fprintf(stderr, "Watchdog card disabled.\n"); fflush(stderr); exit(0); } else if (!strncasecmp(argv[1], "-e", 2)) { - flags = WDIOS_ENABLECARD; - ioctl(fd, WDIOC_SETOPTIONS, &flags); + ioctl(fd, WDIOC_SETOPTIONS, WDIOS_ENABLECARD); fprintf(stderr, "Watchdog card enabled.\n"); fflush(stderr); exit(0); diff --git a/trunk/Documentation/watchdog/watchdog-api.txt b/trunk/Documentation/watchdog/watchdog-api.txt index eb7132ed8bbc..4cc4ba9d7150 100644 --- a/trunk/Documentation/watchdog/watchdog-api.txt +++ b/trunk/Documentation/watchdog/watchdog-api.txt @@ -222,10 +222,11 @@ returned value is the temperature in degrees fahrenheit. ioctl(fd, WDIOC_GETTEMP, &temperature); Finally the SETOPTIONS ioctl can be used to control some aspects of -the cards operation. +the cards operation; right now the pcwd driver is the only one +supporting this ioctl. int options = 0; - ioctl(fd, WDIOC_SETOPTIONS, &options); + ioctl(fd, WDIOC_SETOPTIONS, options); The following options are available: diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index a0e3c3a47a51..3d29fa389888 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -485,8 +485,8 @@ S: Maintained F: drivers/input/mouse/bcm5974.c APPLE SMC DRIVER -M: Henrik Rydberg -L: lm-sensors@lm-sensors.org +M: Nicolas Boichat +L: mactel-linux-devel@lists.sourceforge.net S: Maintained F: drivers/hwmon/applesmc.c @@ -971,16 +971,6 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) W: http://www.mcuos.com S: Maintained -ARM/U300 MACHINE SUPPORT -M: Linus Walleij -L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) -S: Supported -F: arch/arm/mach-u300/ -F: drivers/i2c/busses/i2c-stu300.c -F: drivers/rtc/rtc-coh901331.c -F: drivers/watchdog/coh901327_wdt.c -F: drivers/dma/coh901318* - ARM/U8500 ARM ARCHITECTURE M: Srinidhi Kasagar L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) @@ -2484,6 +2474,12 @@ L: linuxppc-dev@ozlabs.org S: Odd Fixes F: drivers/char/hvc_* +VIRTIO CONSOLE DRIVER +M: Amit Shah +L: virtualization@lists.linux-foundation.org +S: Maintained +F: drivers/char/virtio_console.c + iSCSI BOOT FIRMWARE TABLE (iBFT) DRIVER M: Peter Jones M: Konrad Rzeszutek Wilk @@ -5975,13 +5971,6 @@ S: Maintained F: Documentation/filesystems/vfat.txt F: fs/fat/ -VIRTIO CONSOLE DRIVER -M: Amit Shah -L: virtualization@lists.linux-foundation.org -S: Maintained -F: drivers/char/virtio_console.c -F: include/linux/virtio_console.h - VIRTIO HOST (VHOST) M: "Michael S. Tsirkin" L: kvm@vger.kernel.org diff --git a/trunk/Makefile b/trunk/Makefile index fa1db9001754..67c1001cfbf5 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,8 +1,8 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 34 -EXTRAVERSION = -rc5 -NAME = Sheep on Meth +EXTRAVERSION = -rc3 +NAME = Man-Eating Seals of Antiquity # *DOCUMENTATION* # To see a list of typical targets execute "make help" diff --git a/trunk/arch/arm/boot/compressed/head.S b/trunk/arch/arm/boot/compressed/head.S index 6ab6b337a913..0f23009170a1 100644 --- a/trunk/arch/arm/boot/compressed/head.S +++ b/trunk/arch/arm/boot/compressed/head.S @@ -172,7 +172,7 @@ not_angel: adr r0, LC0 ARM( ldmia r0, {r1, r2, r3, r4, r5, r6, r11, ip, sp}) THUMB( ldmia r0, {r1, r2, r3, r4, r5, r6, r11, ip} ) - THUMB( ldr sp, [r0, #32] ) + THUMB( ldr sp, [r0, #28] ) subs r0, r0, r1 @ calculate the delta offset @ if delta is zero, we are diff --git a/trunk/arch/arm/include/asm/highmem.h b/trunk/arch/arm/include/asm/highmem.h index feb988a7ec37..7f36d00600b4 100644 --- a/trunk/arch/arm/include/asm/highmem.h +++ b/trunk/arch/arm/include/asm/highmem.h @@ -11,11 +11,7 @@ #define kmap_prot PAGE_KERNEL -#define flush_cache_kmaps() \ - do { \ - if (cache_is_vivt()) \ - flush_cache_all(); \ - } while (0) +#define flush_cache_kmaps() flush_cache_all() extern pte_t *pkmap_page_table; @@ -25,20 +21,11 @@ extern void *kmap_high(struct page *page); extern void *kmap_high_get(struct page *page); extern void kunmap_high(struct page *page); -extern void *kmap_high_l1_vipt(struct page *page, pte_t *saved_pte); -extern void kunmap_high_l1_vipt(struct page *page, pte_t saved_pte); - -/* - * The following functions are already defined by - * when CONFIG_HIGHMEM is not set. - */ -#ifdef CONFIG_HIGHMEM extern void *kmap(struct page *page); extern void kunmap(struct page *page); extern void *kmap_atomic(struct page *page, enum km_type type); extern void kunmap_atomic(void *kvaddr, enum km_type type); extern void *kmap_atomic_pfn(unsigned long pfn, enum km_type type); extern struct page *kmap_atomic_to_page(const void *ptr); -#endif #endif diff --git a/trunk/arch/arm/include/asm/kmap_types.h b/trunk/arch/arm/include/asm/kmap_types.h index c4b2ea3fbe42..c019949a5189 100644 --- a/trunk/arch/arm/include/asm/kmap_types.h +++ b/trunk/arch/arm/include/asm/kmap_types.h @@ -18,7 +18,6 @@ enum km_type { KM_IRQ1, KM_SOFTIRQ0, KM_SOFTIRQ1, - KM_L1_CACHE, KM_L2_CACHE, KM_TYPE_NR }; diff --git a/trunk/arch/arm/include/asm/ucontext.h b/trunk/arch/arm/include/asm/ucontext.h index 47f023aa8495..bf65e9f4525d 100644 --- a/trunk/arch/arm/include/asm/ucontext.h +++ b/trunk/arch/arm/include/asm/ucontext.h @@ -59,22 +59,23 @@ struct iwmmxt_sigframe { #endif /* CONFIG_IWMMXT */ #ifdef CONFIG_VFP +#if __LINUX_ARM_ARCH__ < 6 +/* For ARM pre-v6, we use fstmiax and fldmiax. This adds one extra + * word after the registers, and a word of padding at the end for + * alignment. */ #define VFP_MAGIC 0x56465001 +#define VFP_STORAGE_SIZE 152 +#else +#define VFP_MAGIC 0x56465002 +#define VFP_STORAGE_SIZE 144 +#endif struct vfp_sigframe { unsigned long magic; unsigned long size; - struct user_vfp ufp; - struct user_vfp_exc ufp_exc; -} __attribute__((__aligned__(8))); - -/* - * 8 byte for magic and size, 264 byte for ufp, 12 bytes for ufp_exc, - * 4 bytes padding. - */ -#define VFP_STORAGE_SIZE sizeof(struct vfp_sigframe) - + union vfp_state storage; +}; #endif /* CONFIG_VFP */ /* @@ -90,7 +91,7 @@ struct aux_sigframe { #ifdef CONFIG_IWMMXT struct iwmmxt_sigframe iwmmxt; #endif -#ifdef CONFIG_VFP +#if 0 && defined CONFIG_VFP /* Not yet saved. */ struct vfp_sigframe vfp; #endif /* Something that isn't a valid magic number for any coprocessor. */ diff --git a/trunk/arch/arm/include/asm/user.h b/trunk/arch/arm/include/asm/user.h index 05ac4b06876a..df95e050f9dd 100644 --- a/trunk/arch/arm/include/asm/user.h +++ b/trunk/arch/arm/include/asm/user.h @@ -83,21 +83,11 @@ struct user{ /* * User specific VFP registers. If only VFPv2 is present, registers 16 to 31 - * are ignored by the ptrace system call and the signal handler. + * are ignored by the ptrace system call. */ struct user_vfp { unsigned long long fpregs[32]; unsigned long fpscr; }; -/* - * VFP exception registers exposed to user space during signal delivery. - * Fields not relavant to the current VFP architecture are ignored. - */ -struct user_vfp_exc { - unsigned long fpexc; - unsigned long fpinst; - unsigned long fpinst2; -}; - #endif /* _ARM_USER_H */ diff --git a/trunk/arch/arm/kernel/signal.c b/trunk/arch/arm/kernel/signal.c index 907d5a620bca..e7714f367eb8 100644 --- a/trunk/arch/arm/kernel/signal.c +++ b/trunk/arch/arm/kernel/signal.c @@ -18,7 +18,6 @@ #include #include #include -#include #include "ptrace.h" #include "signal.h" @@ -176,90 +175,6 @@ static int restore_iwmmxt_context(struct iwmmxt_sigframe *frame) #endif -#ifdef CONFIG_VFP - -static int preserve_vfp_context(struct vfp_sigframe __user *frame) -{ - struct thread_info *thread = current_thread_info(); - struct vfp_hard_struct *h = &thread->vfpstate.hard; - const unsigned long magic = VFP_MAGIC; - const unsigned long size = VFP_STORAGE_SIZE; - int err = 0; - - vfp_sync_hwstate(thread); - __put_user_error(magic, &frame->magic, err); - __put_user_error(size, &frame->size, err); - - /* - * Copy the floating point registers. There can be unused - * registers see asm/hwcap.h for details. - */ - err |= __copy_to_user(&frame->ufp.fpregs, &h->fpregs, - sizeof(h->fpregs)); - /* - * Copy the status and control register. - */ - __put_user_error(h->fpscr, &frame->ufp.fpscr, err); - - /* - * Copy the exception registers. - */ - __put_user_error(h->fpexc, &frame->ufp_exc.fpexc, err); - __put_user_error(h->fpinst, &frame->ufp_exc.fpinst, err); - __put_user_error(h->fpinst2, &frame->ufp_exc.fpinst2, err); - - return err ? -EFAULT : 0; -} - -static int restore_vfp_context(struct vfp_sigframe __user *frame) -{ - struct thread_info *thread = current_thread_info(); - struct vfp_hard_struct *h = &thread->vfpstate.hard; - unsigned long magic; - unsigned long size; - unsigned long fpexc; - int err = 0; - - __get_user_error(magic, &frame->magic, err); - __get_user_error(size, &frame->size, err); - - if (err) - return -EFAULT; - if (magic != VFP_MAGIC || size != VFP_STORAGE_SIZE) - return -EINVAL; - - /* - * Copy the floating point registers. There can be unused - * registers see asm/hwcap.h for details. - */ - err |= __copy_from_user(&h->fpregs, &frame->ufp.fpregs, - sizeof(h->fpregs)); - /* - * Copy the status and control register. - */ - __get_user_error(h->fpscr, &frame->ufp.fpscr, err); - - /* - * Sanitise and restore the exception registers. - */ - __get_user_error(fpexc, &frame->ufp_exc.fpexc, err); - /* Ensure the VFP is enabled. */ - fpexc |= FPEXC_EN; - /* Ensure FPINST2 is invalid and the exception flag is cleared. */ - fpexc &= ~(FPEXC_EX | FPEXC_FP2V); - h->fpexc = fpexc; - - __get_user_error(h->fpinst, &frame->ufp_exc.fpinst, err); - __get_user_error(h->fpinst2, &frame->ufp_exc.fpinst2, err); - - if (!err) - vfp_flush_hwstate(thread); - - return err ? -EFAULT : 0; -} - -#endif - /* * Do a signal return; undo the signal stack. These are aligned to 64-bit. */ @@ -318,8 +233,8 @@ static int restore_sigframe(struct pt_regs *regs, struct sigframe __user *sf) err |= restore_iwmmxt_context(&aux->iwmmxt); #endif #ifdef CONFIG_VFP - if (err == 0) - err |= restore_vfp_context(&aux->vfp); +// if (err == 0) +// err |= vfp_restore_state(&sf->aux.vfp); #endif return err; @@ -433,8 +348,8 @@ setup_sigframe(struct sigframe __user *sf, struct pt_regs *regs, sigset_t *set) err |= preserve_iwmmxt_context(&aux->iwmmxt); #endif #ifdef CONFIG_VFP - if (err == 0) - err |= preserve_vfp_context(&aux->vfp); +// if (err == 0) +// err |= vfp_save_state(&sf->aux.vfp); #endif __put_user_error(0, &aux->end_magic, err); diff --git a/trunk/arch/arm/mach-at91/Makefile b/trunk/arch/arm/mach-at91/Makefile index d4004557532a..027dd570dcc3 100644 --- a/trunk/arch/arm/mach-at91/Makefile +++ b/trunk/arch/arm/mach-at91/Makefile @@ -16,8 +16,8 @@ obj-$(CONFIG_ARCH_AT91SAM9261) += at91sam9261.o at91sam926x_time.o at91sam9261_d obj-$(CONFIG_ARCH_AT91SAM9G10) += at91sam9261.o at91sam926x_time.o at91sam9261_devices.o sam9_smc.o obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263.o at91sam926x_time.o at91sam9263_devices.o sam9_smc.o obj-$(CONFIG_ARCH_AT91SAM9RL) += at91sam9rl.o at91sam926x_time.o at91sam9rl_devices.o sam9_smc.o -obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o sam9_smc.o -obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45.o at91sam926x_time.o at91sam9g45_devices.o sam9_smc.o +obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o sam9_smc.o + obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45.o at91sam926x_time.o at91sam9g45_devices.o sam9_smc.o obj-$(CONFIG_ARCH_AT91CAP9) += at91cap9.o at91sam926x_time.o at91cap9_devices.o sam9_smc.o obj-$(CONFIG_ARCH_AT572D940HF) += at572d940hf.o at91sam926x_time.o at572d940hf_devices.o sam9_smc.o obj-$(CONFIG_ARCH_AT91X40) += at91x40.o at91x40_time.o diff --git a/trunk/arch/arm/mach-at91/pm_slowclock.S b/trunk/arch/arm/mach-at91/pm_slowclock.S index 9c5b48e68a71..987fab3d846a 100644 --- a/trunk/arch/arm/mach-at91/pm_slowclock.S +++ b/trunk/arch/arm/mach-at91/pm_slowclock.S @@ -175,6 +175,8 @@ ENTRY(at91_slow_clock) orr r3, r3, #(1 << 29) /* bit 29 always set */ str r3, [r1, #(AT91_CKGR_PLLAR - AT91_PMC)] + wait_pllalock + /* Save PLLB setting and disable it */ ldr r3, [r1, #(AT91_CKGR_PLLBR - AT91_PMC)] str r3, .saved_pllbr @@ -182,6 +184,8 @@ ENTRY(at91_slow_clock) mov r3, #AT91_PMC_PLLCOUNT str r3, [r1, #(AT91_CKGR_PLLBR - AT91_PMC)] + wait_pllblock + /* Turn off the main oscillator */ ldr r3, [r1, #(AT91_CKGR_MOR - AT91_PMC)] bic r3, r3, #AT91_PMC_MOSCEN @@ -201,25 +205,13 @@ ENTRY(at91_slow_clock) ldr r3, .saved_pllbr str r3, [r1, #(AT91_CKGR_PLLBR - AT91_PMC)] - tst r3, #(AT91_PMC_MUL & 0xff0000) - bne 1f - tst r3, #(AT91_PMC_MUL & ~0xff0000) - beq 2f -1: wait_pllblock -2: /* Restore PLLA setting */ ldr r3, .saved_pllar str r3, [r1, #(AT91_CKGR_PLLAR - AT91_PMC)] - tst r3, #(AT91_PMC_MUL & 0xff0000) - bne 3f - tst r3, #(AT91_PMC_MUL & ~0xff0000) - beq 4f -3: wait_pllalock -4: #ifdef SLOWDOWN_MASTER_CLOCK /* diff --git a/trunk/arch/arm/mach-bcmring/dma.c b/trunk/arch/arm/mach-bcmring/dma.c index 29c0a911df26..2ccf670ce1ac 100644 --- a/trunk/arch/arm/mach-bcmring/dma.c +++ b/trunk/arch/arm/mach-bcmring/dma.c @@ -2221,15 +2221,11 @@ EXPORT_SYMBOL(dma_map_create_descriptor_ring); int dma_unmap(DMA_MemMap_t *memMap, /* Stores state information about the map */ int dirtied /* non-zero if any of the pages were modified */ ) { - - int rc = 0; int regionIdx; int segmentIdx; DMA_Region_t *region; DMA_Segment_t *segment; - down(&memMap->lock); - for (regionIdx = 0; regionIdx < memMap->numRegionsUsed; regionIdx++) { region = &memMap->region[regionIdx]; @@ -2243,8 +2239,7 @@ int dma_unmap(DMA_MemMap_t *memMap, /* Stores state information about the map */ printk(KERN_ERR "%s: vmalloc'd pages are not yet supported\n", __func__); - rc = -EINVAL; - goto out; + return -EINVAL; } case DMA_MEM_TYPE_KMALLOC: @@ -2281,8 +2276,7 @@ int dma_unmap(DMA_MemMap_t *memMap, /* Stores state information about the map */ printk(KERN_ERR "%s: Unsupported memory type: %d\n", __func__, region->memType); - rc = -EINVAL; - goto out; + return -EINVAL; } } @@ -2320,10 +2314,9 @@ int dma_unmap(DMA_MemMap_t *memMap, /* Stores state information about the map */ memMap->numRegionsUsed = 0; memMap->inUse = 0; -out: up(&memMap->lock); - return rc; + return 0; } EXPORT_SYMBOL(dma_unmap); diff --git a/trunk/arch/arm/mach-davinci/dm365.c b/trunk/arch/arm/mach-davinci/dm365.c index 0d6ee583f65c..27772e18e45b 100644 --- a/trunk/arch/arm/mach-davinci/dm365.c +++ b/trunk/arch/arm/mach-davinci/dm365.c @@ -758,6 +758,7 @@ static u8 dm365_default_priorities[DAVINCI_N_AINTC_IRQ] = { [IRQ_MMCINT] = 7, [IRQ_DM365_MMCINT1] = 7, [IRQ_DM365_PWMINT3] = 7, + [IRQ_DDRINT] = 4, [IRQ_AEMIFINT] = 2, [IRQ_DM365_SDIOINT1] = 2, [IRQ_TINT0_TINT12] = 7, diff --git a/trunk/arch/arm/mach-davinci/dma.c b/trunk/arch/arm/mach-davinci/dma.c index 53137387aee1..02d939853b88 100644 --- a/trunk/arch/arm/mach-davinci/dma.c +++ b/trunk/arch/arm/mach-davinci/dma.c @@ -1267,8 +1267,7 @@ int edma_start(unsigned channel) /* EDMA channel with event association */ pr_debug("EDMA: ER%d %08x\n", j, edma_shadow0_read_array(ctlr, SH_ER, j)); - /* Clear any pending event or error */ - edma_write_array(ctlr, EDMA_ECR, j, mask); + /* Clear any pending error */ edma_write_array(ctlr, EDMA_EMCR, j, mask); /* Clear any SER */ edma_shadow0_write_array(ctlr, SH_SECR, j, mask); diff --git a/trunk/arch/arm/mach-davinci/include/mach/da8xx.h b/trunk/arch/arm/mach-davinci/include/mach/da8xx.h index 03acfd39042b..cc9be7fee627 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/da8xx.h +++ b/trunk/arch/arm/mach-davinci/include/mach/da8xx.h @@ -3,7 +3,7 @@ * * Author: Mark A. Greer * - * 2007, 2009-2010 (c) MontaVista Software, Inc. This file is licensed under + * 2007, 2009 (c) MontaVista Software, Inc. This file is licensed under * the terms of the GNU General Public License version 2. This program * is licensed "as is" without any warranty of any kind, whether express * or implied. @@ -13,9 +13,7 @@ #include