From 9ebc29685d9fded55ce14ea81d26c9f70d7cc7d2 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Wed, 2 Feb 2011 17:52:19 -0800 Subject: [PATCH] --- yaml --- r: 232759 b: refs/heads/master c: f2f1756d7de37cc8ca17705c5bc3dfcbfb589ab9 h: refs/heads/master i: 232757: 544875f9a5f6c9e9ce76e3467113b90ee21df842 232755: 44639b28cfcd4c8648b4976bfab36eed809e7cde 232751: c726a84c93451bcc02aff1b364bb9a21ed11824d v: v3 --- [refs] | 2 +- trunk/.mailmap | 1 + .../ABI/testing/sysfs-platform-at91 | 25 + .../Documentation/DocBook/device-drivers.tmpl | 4 +- .../feature-removal-schedule.txt | 16 + trunk/Documentation/filesystems/ntfs.txt | 2 + trunk/Documentation/kernel-parameters.txt | 4 +- trunk/Documentation/networking/bonding.txt | 83 +- trunk/MAINTAINERS | 53 +- trunk/Makefile | 2 +- trunk/arch/arm/include/asm/hardware/sp810.h | 6 + trunk/arch/arm/include/asm/io.h | 33 +- trunk/arch/arm/include/asm/memory.h | 2 +- trunk/arch/arm/kernel/head.S | 22 +- trunk/arch/arm/kernel/smp_twd.c | 7 +- trunk/arch/arm/mach-ep93xx/gpio.c | 7 + .../include/mach/debug-macro.S | 4 +- trunk/arch/arm/mach-omap1/Kconfig | 2 + trunk/arch/arm/mach-omap1/Makefile | 3 +- .../arm/mach-omap1/include/mach/entry-macro.S | 13 - trunk/arch/arm/mach-omap1/irq.c | 2 +- trunk/arch/arm/mach-omap1/time.c | 101 +- trunk/arch/arm/mach-omap1/timer32k.c | 13 +- trunk/arch/arm/mach-omap2/board-cm-t3517.c | 29 +- trunk/arch/arm/mach-omap2/board-devkit8000.c | 3 +- trunk/arch/arm/mach-omap2/clock44xx_data.c | 1 - trunk/arch/arm/mach-omap2/clockdomain.c | 30 +- .../arm/mach-omap2/clockdomains44xx_data.c | 2 - trunk/arch/arm/mach-omap2/dma.c | 2 +- .../arm/mach-omap2/include/mach/entry-macro.S | 14 - trunk/arch/arm/mach-omap2/io.c | 6 +- trunk/arch/arm/mach-omap2/mux.c | 2 +- trunk/arch/arm/mach-omap2/pm24xx.c | 4 +- trunk/arch/arm/mach-omap2/pm34xx.c | 4 +- .../arm/mach-omap2/powerdomain2xxx_3xxx.c | 1 - trunk/arch/arm/mach-omap2/serial.c | 4 +- trunk/arch/arm/mach-omap2/timer-gp.c | 10 +- trunk/arch/arm/mach-realview/Kconfig | 49 +- trunk/arch/arm/mach-realview/platsmp.c | 2 +- trunk/arch/arm/mach-shmobile/Kconfig | 2 + trunk/arch/arm/mach-shmobile/board-ag5evm.c | 180 +++- trunk/arch/arm/mach-shmobile/board-g3evm.c | 1 - trunk/arch/arm/mach-shmobile/board-mackerel.c | 5 +- trunk/arch/arm/mach-shmobile/clock-sh7372.c | 4 +- trunk/arch/arm/mach-shmobile/clock-sh73a0.c | 29 +- trunk/arch/arm/mach-shmobile/intc-sh7372.c | 11 +- trunk/arch/arm/mach-shmobile/intc-sh73a0.c | 5 +- trunk/arch/arm/mach-tegra/gpio.c | 4 +- trunk/arch/arm/mach-tegra/include/mach/clk.h | 2 + .../arch/arm/mach-tegra/include/mach/clkdev.h | 2 + trunk/arch/arm/mach-tegra/include/mach/kbc.h | 61 ++ trunk/arch/arm/mach-tegra/irq.c | 18 +- trunk/arch/arm/mach-versatile/Kconfig | 10 +- trunk/arch/arm/mach-vexpress/platsmp.c | 2 +- trunk/arch/arm/mach-vexpress/v2m.c | 9 + trunk/arch/arm/mm/init.c | 6 + trunk/arch/arm/plat-omap/Kconfig | 8 +- trunk/arch/arm/plat-omap/counter_32k.c | 22 +- trunk/arch/arm/plat-omap/dma.c | 7 +- .../arch/arm/plat-omap/include/plat/common.h | 3 + trunk/arch/avr32/include/asm/pgalloc.h | 1 + trunk/arch/m68k/amiga/config.c | 16 +- trunk/arch/m68k/atari/ataints.c | 4 +- trunk/arch/m68k/atari/config.c | 2 +- trunk/arch/m68k/atari/debug.c | 14 +- trunk/arch/m68k/include/asm/atarihw.h | 2 +- trunk/arch/m68k/include/asm/string.h | 12 - trunk/arch/microblaze/kernel/head.S | 14 +- .../microblaze/kernel/hw_exception_handler.S | 4 - trunk/arch/microblaze/lib/fastcopy.S | 4 + trunk/arch/parisc/kernel/pdc_cons.c | 4 +- .../arch/powerpc/kernel/perf_event_fsl_emb.c | 1 + trunk/arch/s390/Kconfig | 2 +- trunk/arch/s390/include/asm/cacheflush.h | 23 +- trunk/arch/s390/include/asm/tlb.h | 1 + trunk/arch/s390/lib/uaccess_std.c | 10 +- trunk/arch/s390/mm/pgtable.c | 3 +- trunk/arch/sh/Kconfig | 1 + trunk/arch/sh/Makefile | 3 +- trunk/arch/sh/boards/mach-ecovec24/setup.c | 2 + trunk/arch/sh/boot/Makefile | 11 +- trunk/arch/sh/boot/compressed/Makefile | 4 +- trunk/arch/sh/boot/compressed/misc.c | 4 + trunk/arch/sh/include/asm/pgtable.h | 1 + trunk/arch/sh/kernel/cpu/sh4/setup-sh7750.c | 6 +- trunk/arch/sh/kernel/topology.c | 1 + trunk/arch/x86/include/asm/cacheflush.h | 42 +- trunk/arch/x86/include/asm/cpu.h | 1 + trunk/arch/x86/include/asm/jump_label.h | 2 +- trunk/arch/x86/include/asm/paravirt.h | 5 +- trunk/arch/x86/include/asm/percpu.h | 24 +- trunk/arch/x86/include/asm/system_64.h | 22 - trunk/arch/x86/kernel/cpu/intel_cacheinfo.c | 3 + .../arch/x86/kernel/cpu/mcheck/therm_throt.c | 1 + trunk/arch/x86/kernel/dumpstack_64.c | 2 +- trunk/arch/x86/kernel/process.c | 3 +- trunk/arch/x86/kernel/smpboot.c | 3 +- trunk/arch/x86/xen/p2m.c | 18 +- trunk/arch/x86/xen/setup.c | 8 +- trunk/drivers/ata/ahci.c | 3 + trunk/drivers/ata/libata-core.c | 1 + trunk/drivers/ata/libata-scsi.c | 24 +- trunk/drivers/ata/pata_hpt366.c | 6 +- trunk/drivers/ata/pata_hpt37x.c | 112 ++- trunk/drivers/ata/pata_hpt3x2n.c | 12 +- trunk/drivers/ata/pata_mpc52xx.c | 2 +- trunk/drivers/atm/idt77105.c | 2 +- trunk/drivers/base/power/runtime.c | 9 +- trunk/drivers/bluetooth/ath3k.c | 75 +- trunk/drivers/char/agp/intel-gtt.c | 19 +- trunk/drivers/char/bfin_jtag_comm.c | 8 +- trunk/drivers/char/tpm/tpm.c | 10 +- trunk/drivers/char/tpm/tpm_tis.c | 6 +- trunk/drivers/clocksource/acpi_pm.c | 6 +- trunk/drivers/clocksource/tcb_clksrc.c | 4 +- trunk/drivers/gpio/langwell_gpio.c | 9 +- trunk/drivers/gpu/drm/Kconfig | 3 + trunk/drivers/gpu/drm/i915/i915_dma.c | 35 +- trunk/drivers/gpu/drm/i915/i915_drv.c | 5 +- trunk/drivers/gpu/drm/i915/i915_drv.h | 5 +- trunk/drivers/gpu/drm/i915/i915_gem.c | 12 +- .../gpu/drm/i915/i915_gem_execbuffer.c | 2 +- trunk/drivers/gpu/drm/i915/i915_gem_gtt.c | 4 + trunk/drivers/gpu/drm/i915/i915_irq.c | 37 +- trunk/drivers/gpu/drm/i915/i915_reg.h | 6 + trunk/drivers/gpu/drm/i915/intel_display.c | 25 +- trunk/drivers/gpu/drm/i915/intel_opregion.c | 3 +- trunk/drivers/gpu/drm/i915/intel_ringbuffer.c | 83 +- trunk/drivers/gpu/drm/i915/intel_ringbuffer.h | 3 + trunk/drivers/gpu/drm/nouveau/nouveau_bios.c | 15 + trunk/drivers/gpu/drm/nouveau/nouveau_drv.c | 8 +- trunk/drivers/gpu/drm/nouveau/nouveau_drv.h | 3 - trunk/drivers/gpu/drm/nouveau/nouveau_temp.c | 2 +- trunk/drivers/gpu/drm/nouveau/nv50_graph.c | 3 + trunk/drivers/gpu/drm/nouveau/nv50_vm.c | 5 - trunk/drivers/gpu/drm/nouveau/nvc0_graph.c | 23 +- trunk/drivers/gpu/drm/nouveau/nvc0_grctx.c | 2 +- trunk/drivers/gpu/drm/radeon/atombios_crtc.c | 39 +- trunk/drivers/gpu/drm/radeon/atombios_dp.c | 4 +- trunk/drivers/gpu/drm/radeon/evergreen.c | 3 + .../gpu/drm/radeon/evergreen_blit_kms.c | 39 +- trunk/drivers/gpu/drm/radeon/r100.c | 12 +- trunk/drivers/gpu/drm/radeon/r300.c | 7 +- trunk/drivers/gpu/drm/radeon/r420.c | 2 +- trunk/drivers/gpu/drm/radeon/r520.c | 4 +- trunk/drivers/gpu/drm/radeon/r600.c | 3 + trunk/drivers/gpu/drm/radeon/r600_reg.h | 6 +- .../drivers/gpu/drm/radeon/radeon_atombios.c | 14 +- trunk/drivers/gpu/drm/radeon/radeon_device.c | 10 +- trunk/drivers/gpu/drm/radeon/radeon_drv.c | 2 +- .../drivers/gpu/drm/radeon/radeon_encoders.c | 6 +- trunk/drivers/gpu/drm/radeon/radeon_irq_kms.c | 3 + trunk/drivers/gpu/drm/radeon/radeon_kms.c | 6 + trunk/drivers/gpu/drm/radeon/radeon_reg.h | 2 + trunk/drivers/gpu/drm/radeon/rs400.c | 15 +- trunk/drivers/gpu/drm/radeon/rv515.c | 10 +- trunk/drivers/gpu/stub/Kconfig | 2 + trunk/drivers/gpu/vga/vgaarb.c | 2 +- trunk/drivers/hwmon/applesmc.c | 1 + trunk/drivers/hwmon/asus_atk0110.c | 23 +- trunk/drivers/hwmon/lis3lv02d.c | 2 +- trunk/drivers/idle/intel_idle.c | 8 +- trunk/drivers/input/keyboard/Kconfig | 10 + trunk/drivers/input/keyboard/Makefile | 1 + trunk/drivers/input/keyboard/gpio_keys.c | 6 +- trunk/drivers/input/keyboard/tegra-kbc.c | 727 ++++++++++++++ .../drivers/input/keyboard/tnetv107x-keypad.c | 5 +- trunk/drivers/input/mouse/synaptics.c | 32 +- trunk/drivers/input/serio/ct82c710.c | 8 +- trunk/drivers/input/serio/serport.c | 24 +- trunk/drivers/input/sparse-keymap.c | 1 + trunk/drivers/input/tablet/wacom_wac.c | 27 +- trunk/drivers/input/touchscreen/bu21013_ts.c | 39 +- .../drivers/input/touchscreen/tnetv107x-ts.c | 5 +- trunk/drivers/leds/leds-pwm.c | 1 + trunk/drivers/media/rc/rc-main.c | 28 +- trunk/drivers/mmc/host/bfin_sdh.c | 2 +- trunk/drivers/mmc/host/jz4740_mmc.c | 5 +- trunk/drivers/mmc/host/mmci.c | 109 +-- trunk/drivers/mmc/host/mmci.h | 5 +- trunk/drivers/mmc/host/msm_sdcc.c | 52 +- trunk/drivers/mmc/host/sdhci-s3c.c | 36 + trunk/drivers/mmc/host/ushc.c | 1 - trunk/drivers/mtd/ubi/build.c | 28 +- trunk/drivers/net/arm/ks8695net.c | 2 +- trunk/drivers/net/bnx2.c | 21 +- trunk/drivers/net/bnx2.h | 1 + trunk/drivers/net/bonding/bond_3ad.c | 4 + trunk/drivers/net/bonding/bond_alb.c | 4 + trunk/drivers/net/bonding/bond_main.c | 4 + trunk/drivers/net/can/Kconfig | 2 + trunk/drivers/net/can/Makefile | 1 + trunk/drivers/net/can/at91_can.c | 138 ++- trunk/drivers/net/can/softing/Kconfig | 30 + trunk/drivers/net/can/softing/Makefile | 6 + trunk/drivers/net/can/softing/softing.h | 167 ++++ trunk/drivers/net/can/softing/softing_cs.c | 359 +++++++ trunk/drivers/net/can/softing/softing_fw.c | 691 ++++++++++++++ trunk/drivers/net/can/softing/softing_main.c | 893 ++++++++++++++++++ .../net/can/softing/softing_platform.h | 40 + trunk/drivers/net/cnic.c | 12 +- trunk/drivers/net/cxgb4/cxgb4_main.c | 3 +- trunk/drivers/net/pch_gbe/pch_gbe_main.c | 2 +- trunk/drivers/net/tg3.c | 95 +- trunk/drivers/net/tg3.h | 3 - trunk/drivers/net/usb/kaweth.c | 1 + trunk/drivers/net/wireless/ath/ath9k/hw.c | 6 +- trunk/drivers/net/wireless/ath/ath9k/hw.h | 1 + trunk/drivers/net/wireless/ath/ath9k/main.c | 8 +- trunk/drivers/net/wireless/ath/ath9k/xmit.c | 2 - trunk/drivers/net/wireless/iwlwifi/iwl-4965.c | 1 + .../net/wireless/iwlwifi/iwl-agn-eeprom.c | 11 +- trunk/drivers/net/wireless/rt2x00/rt73usb.c | 1 + trunk/drivers/net/wireless/rtlwifi/pci.c | 11 +- trunk/drivers/parport/share.c | 4 +- trunk/drivers/platform/x86/intel_scu_ipc.c | 8 +- .../drivers/platform/x86/intel_scu_ipcutil.c | 2 +- trunk/drivers/pps/clients/pps-ktimer.c | 2 - trunk/drivers/pps/clients/pps_parport.c | 2 +- .../drivers/pps/generators/pps_gen_parport.c | 2 +- trunk/drivers/rapidio/rio-scan.c | 2 + trunk/drivers/rtc/Kconfig | 12 - trunk/drivers/rtc/interface.c | 61 +- trunk/drivers/s390/block/dasd_alias.c | 6 + trunk/drivers/s390/cio/qdio_main.c | 4 +- trunk/drivers/sh/intc/chip.c | 6 +- .../ath6kl/miscdrv/ar3kps/ar3kpsconfig.c | 4 +- .../staging/brcm80211/sys/wl_mac80211.c | 45 +- .../staging/brcm80211/sys/wlc_mac80211.c | 1 - .../drivers/staging/comedi/drivers/ni_labpc.c | 3 +- trunk/drivers/staging/hv/blkvsc_drv.c | 1 + trunk/drivers/staging/hv/netvsc.c | 2 +- trunk/drivers/staging/hv/netvsc_drv.c | 1 - trunk/drivers/staging/iio/adc/ad7476_core.c | 2 +- trunk/drivers/staging/iio/adc/ad7887_core.c | 2 +- trunk/drivers/staging/iio/adc/ad799x_core.c | 2 +- trunk/drivers/staging/iio/dac/ad5446.c | 2 +- trunk/drivers/staging/msm/msm_fb.c | 8 +- trunk/drivers/staging/olpc_dcon/olpc_dcon.c | 10 +- trunk/drivers/staging/rt2860/rt_main_dev.c | 2 - trunk/drivers/staging/rt2860/usb_main_dev.c | 1 + trunk/drivers/staging/rtl8712/hal_init.c | 11 +- trunk/drivers/staging/rtl8712/usb_intf.c | 145 ++- trunk/drivers/staging/sm7xx/smtcfb.c | 8 +- trunk/drivers/staging/speakup/kobjects.c | 2 +- .../staging/ste_rmi4/synaptics_i2c_rmi4.c | 19 +- .../drivers/staging/tidspbridge/core/io_sm.c | 8 +- .../staging/tidspbridge/core/tiomap3430.c | 15 +- .../tidspbridge/include/dspbridge/io_sm.h | 21 +- trunk/drivers/staging/usbip/stub.h | 1 + trunk/drivers/staging/usbip/stub_dev.c | 18 +- trunk/drivers/staging/usbip/stub_rx.c | 4 +- trunk/drivers/staging/usbip/vhci.h | 6 +- trunk/drivers/staging/usbip/vhci_hcd.c | 54 +- trunk/drivers/staging/usbip/vhci_rx.c | 50 +- .../staging/vme/bridges/Module.symvers | 0 trunk/drivers/staging/xgifb/vb_setmode.c | 6 +- trunk/drivers/tty/n_hdlc.c | 90 +- trunk/drivers/tty/serial/8250.c | 3 +- trunk/drivers/tty/serial/Kconfig | 1 + trunk/drivers/tty/serial/sb1250-duart.c | 2 +- trunk/drivers/tty/sysrq.c | 2 +- trunk/drivers/tty/tty_io.c | 8 +- trunk/drivers/tty/vt/selection.c | 4 +- trunk/drivers/tty/vt/vc_screen.c | 16 +- trunk/drivers/tty/vt/vt.c | 135 +-- trunk/drivers/tty/vt/vt_ioctl.c | 60 +- trunk/drivers/usb/class/cdc-wdm.c | 2 +- trunk/drivers/usb/core/endpoint.c | 2 +- trunk/drivers/usb/core/hcd-pci.c | 7 +- trunk/drivers/usb/core/hub.c | 21 + trunk/drivers/usb/gadget/Kconfig | 7 +- trunk/drivers/usb/gadget/ci13xxx_udc.c | 268 +++--- trunk/drivers/usb/gadget/ci13xxx_udc.h | 9 +- trunk/drivers/usb/gadget/composite.c | 5 +- trunk/drivers/usb/gadget/pch_udc.c | 127 ++- trunk/drivers/usb/gadget/printer.c | 19 +- trunk/drivers/usb/host/ehci-fsl.c | 13 - trunk/drivers/usb/host/ehci-fsl.h | 3 - trunk/drivers/usb/host/ehci-hcd.c | 19 +- trunk/drivers/usb/host/ehci-mxc.c | 25 +- trunk/drivers/usb/host/ehci-pci.c | 33 +- trunk/drivers/usb/host/fsl-mph-dr-of.c | 11 +- trunk/drivers/usb/host/xhci-ring.c | 91 +- trunk/drivers/usb/host/xhci.c | 60 +- trunk/drivers/usb/host/xhci.h | 16 +- trunk/drivers/usb/misc/usbled.c | 2 +- trunk/drivers/usb/misc/uss720.c | 1 - trunk/drivers/usb/otg/nop-usb-xceiv.c | 2 + trunk/drivers/usb/otg/ulpi.c | 2 +- trunk/drivers/usb/serial/ch341.c | 10 + trunk/drivers/usb/serial/cp210x.c | 16 +- trunk/drivers/usb/serial/digi_acceleport.c | 10 - trunk/drivers/usb/serial/ftdi_sio.c | 12 +- trunk/drivers/usb/serial/ftdi_sio_ids.h | 22 +- trunk/drivers/usb/serial/generic.c | 20 + trunk/drivers/usb/serial/io_tables.h | 1 + trunk/drivers/usb/serial/iuu_phoenix.c | 1 + trunk/drivers/usb/serial/keyspan.h | 4 + trunk/drivers/usb/serial/keyspan_pda.c | 17 - trunk/drivers/usb/serial/moto_modem.c | 1 + trunk/drivers/usb/serial/option.c | 23 +- trunk/drivers/usb/serial/oti6858.c | 1 + trunk/drivers/usb/serial/pl2303.c | 12 + trunk/drivers/usb/serial/pl2303.h | 1 + trunk/drivers/usb/serial/qcaux.c | 3 + trunk/drivers/usb/serial/siemens_mpi.c | 1 + trunk/drivers/usb/serial/spcp8x5.c | 7 +- trunk/drivers/usb/serial/usb-serial.c | 8 +- trunk/drivers/usb/serial/usb_debug.c | 1 + trunk/drivers/usb/storage/unusual_cypress.h | 5 + trunk/drivers/usb/storage/unusual_devs.h | 18 + trunk/drivers/video/arkfb.c | 12 +- trunk/drivers/video/aty/aty128fb.c | 12 +- trunk/drivers/video/aty/atyfb_base.c | 10 +- trunk/drivers/video/aty/radeon_pm.c | 10 +- trunk/drivers/video/bf537-lq035.c | 58 +- trunk/drivers/video/chipsfb.c | 8 +- trunk/drivers/video/console/fbcon.c | 42 +- trunk/drivers/video/console/vgacon.c | 6 +- trunk/drivers/video/da8xx-fb.c | 11 +- trunk/drivers/video/fbmem.c | 12 +- trunk/drivers/video/fbsysfs.c | 20 +- trunk/drivers/video/geode/gxfb_core.c | 8 +- trunk/drivers/video/geode/lxfb_core.c | 8 +- trunk/drivers/video/i810/i810_main.c | 8 +- trunk/drivers/video/jz4740_fb.c | 8 +- trunk/drivers/video/mx3fb.c | 8 +- trunk/drivers/video/nuc900fb.c | 6 +- trunk/drivers/video/nvidia/nvidia.c | 8 +- trunk/drivers/video/ps3fb.c | 16 +- trunk/drivers/video/pxa168fb.c | 6 +- trunk/drivers/video/pxa3xx-gcu.c | 4 +- trunk/drivers/video/s3fb.c | 16 +- trunk/drivers/video/savage/savagefb_driver.c | 8 +- trunk/drivers/video/sh_mobile_hdmi.c | 8 +- trunk/drivers/video/sh_mobile_lcdcfb.c | 4 +- trunk/drivers/video/sm501fb.c | 8 +- trunk/drivers/video/tmiofb.c | 10 +- trunk/drivers/video/via/viafbdev.c | 8 +- trunk/drivers/video/vt8623fb.c | 12 +- trunk/drivers/video/xen-fbfront.c | 4 +- trunk/fs/ceph/caps.c | 43 +- trunk/fs/ceph/inode.c | 10 +- trunk/fs/ceph/mds_client.c | 10 +- trunk/fs/ceph/super.c | 2 + trunk/fs/ceph/xattr.c | 3 + trunk/fs/cifs/Kconfig | 1 + trunk/fs/cifs/Makefile | 2 +- trunk/fs/cifs/README | 5 + trunk/fs/cifs/cifs_dfs_ref.c | 10 +- trunk/fs/cifs/cifsencrypt.c | 38 +- trunk/fs/cifs/cifsencrypt.h | 33 - trunk/fs/cifs/cifsfs.c | 15 +- trunk/fs/cifs/cifsfs.h | 6 +- trunk/fs/cifs/cifsglob.h | 33 + trunk/fs/cifs/cifsproto.h | 11 +- trunk/fs/cifs/cifssmb.c | 3 - trunk/fs/cifs/connect.c | 23 +- trunk/fs/cifs/file.c | 208 +++- trunk/fs/cifs/link.c | 59 +- trunk/fs/cifs/md4.c | 205 ---- trunk/fs/cifs/md5.c | 366 ------- trunk/fs/cifs/md5.h | 38 - trunk/fs/cifs/misc.c | 116 ++- trunk/fs/cifs/readdir.c | 3 - trunk/fs/cifs/smbdes.c | 1 - trunk/fs/cifs/smbencrypt.c | 92 +- trunk/fs/cifs/transport.c | 62 +- trunk/fs/dcache.c | 4 +- trunk/fs/eventpoll.c | 16 +- trunk/fs/exec.c | 4 +- trunk/fs/fcntl.c | 2 +- trunk/fs/ioctl.c | 7 + trunk/fs/lockd/host.c | 9 +- trunk/fs/nfs/callback.c | 109 +-- trunk/fs/nfs/callback.h | 4 +- trunk/fs/nfs/callback_proc.c | 12 +- trunk/fs/nfs/callback_xdr.c | 5 +- trunk/fs/nfs/client.c | 15 +- trunk/fs/nfs/delegation.c | 6 +- trunk/fs/nfs/direct.c | 34 +- trunk/fs/nfs/inode.c | 26 +- trunk/fs/nfs/internal.h | 3 +- trunk/fs/nfs/nfs3acl.c | 4 +- trunk/fs/nfs/nfs3xdr.c | 5 +- trunk/fs/nfs/nfs4filelayoutdev.c | 9 +- trunk/fs/nfs/nfs4proc.c | 30 +- trunk/fs/nfs/nfs4state.c | 6 - trunk/fs/nfs/nfs4xdr.c | 9 +- trunk/fs/nfs/pnfs.c | 2 +- trunk/fs/nfs/write.c | 2 +- trunk/fs/nfs_common/nfsacl.c | 54 +- trunk/fs/nilfs2/super.c | 3 +- trunk/fs/ntfs/mft.c | 11 +- trunk/fs/posix_acl.c | 17 +- trunk/fs/proc/consoles.c | 4 +- trunk/fs/squashfs/block.c | 8 + trunk/fs/squashfs/xz_wrapper.c | 6 - trunk/fs/squashfs/zlib_wrapper.c | 6 - trunk/fs/xfs/linux-2.6/xfs_ioctl.c | 20 +- trunk/fs/xfs/quota/xfs_qm.c | 46 +- trunk/fs/xfs/xfs_alloc.h | 16 + trunk/fs/xfs/xfs_bmap.c | 61 +- trunk/fs/xfs/xfs_buf_item.c | 12 +- trunk/fs/xfs/xfs_extfree_item.c | 3 +- trunk/fs/xfs/xfs_iomap.c | 7 +- trunk/fs/xfs/xfs_log.h | 2 +- trunk/fs/xfs/xfs_log_cil.c | 15 +- trunk/fs/xfs/xfs_trans.c | 41 +- trunk/include/asm-generic/vmlinux.lds.h | 7 + trunk/include/drm/radeon_drm.h | 1 + trunk/include/linux/console.h | 6 +- trunk/include/linux/fs.h | 5 +- trunk/include/linux/gfp.h | 2 +- trunk/include/linux/input/bu21013.h | 4 - trunk/include/linux/kernel.h | 32 +- trunk/include/linux/kmemcheck.h | 2 +- trunk/include/linux/mmc/sh_mmcif.h | 4 +- trunk/include/linux/module.h | 27 + trunk/include/linux/moduleparam.h | 6 +- trunk/include/linux/nfsacl.h | 4 +- trunk/include/linux/posix_acl.h | 1 + trunk/include/linux/res_counter.h | 20 + trunk/include/linux/rtc.h | 4 - trunk/include/linux/sunrpc/bc_xprt.h | 13 - trunk/include/linux/sunrpc/svc_xprt.h | 1 - trunk/include/linux/sysrq.h | 3 + trunk/include/linux/usb/hcd.h | 1 + trunk/include/linux/usb/serial.h | 3 + trunk/include/linux/virtio_config.h | 5 +- trunk/include/net/bluetooth/hci_core.h | 1 + trunk/include/net/sch_generic.h | 8 +- trunk/kernel/params.c | 65 +- trunk/kernel/perf_event.c | 46 +- trunk/kernel/printk.c | 100 +- trunk/kernel/sched_fair.c | 91 +- trunk/kernel/sys.c | 3 +- trunk/kernel/sysctl.c | 3 +- trunk/kernel/time/tick-sched.c | 7 +- trunk/lib/radix-tree.c | 7 +- trunk/lib/rbtree.c | 3 + trunk/lib/textsearch.c | 10 +- trunk/mm/Kconfig | 2 +- trunk/mm/huge_memory.c | 7 +- trunk/mm/kmemleak-test.c | 6 +- trunk/mm/kmemleak.c | 13 +- trunk/mm/memcontrol.c | 98 +- trunk/mm/memory-failure.c | 94 +- trunk/mm/migrate.c | 9 +- trunk/mm/mlock.c | 7 + trunk/mm/page_alloc.c | 18 +- trunk/mm/pgtable-generic.c | 1 + trunk/mm/vmscan.c | 3 +- trunk/net/bluetooth/hci_conn.c | 16 +- trunk/net/bluetooth/hci_core.c | 4 + trunk/net/bluetooth/hci_event.c | 9 +- trunk/net/bluetooth/l2cap.c | 84 +- trunk/net/bluetooth/rfcomm/core.c | 3 +- trunk/net/core/dev.c | 3 +- trunk/net/core/ethtool.c | 2 +- trunk/net/core/skbuff.c | 8 +- trunk/net/dcb/dcbnl.c | 13 +- trunk/net/dsa/dsa.c | 2 +- trunk/net/ipv4/arp.c | 11 +- trunk/net/ipv4/inetpeer.c | 2 +- trunk/net/ipv4/tcp_input.c | 2 +- trunk/net/ipv4/tcp_ipv4.c | 1 - trunk/net/ipv6/addrconf.c | 81 +- trunk/net/ipv6/route.c | 9 +- trunk/net/ipv6/xfrm6_policy.c | 6 + trunk/net/mac80211/tx.c | 3 + trunk/net/sched/sch_cbq.c | 3 +- trunk/net/sched/sch_drr.c | 2 +- trunk/net/sched/sch_dsmark.c | 2 +- trunk/net/sched/sch_fifo.c | 5 +- trunk/net/sched/sch_hfsc.c | 2 +- trunk/net/sched/sch_htb.c | 12 +- trunk/net/sched/sch_multiq.c | 2 +- trunk/net/sched/sch_netem.c | 3 +- trunk/net/sched/sch_prio.c | 2 +- trunk/net/sched/sch_red.c | 11 +- trunk/net/sched/sch_sfq.c | 5 +- trunk/net/sched/sch_tbf.c | 2 +- trunk/net/sched/sch_teql.c | 3 +- trunk/net/sunrpc/svcsock.c | 4 +- trunk/security/keys/Makefile | 4 +- .../keys/{encrypted_defined.c => encrypted.c} | 3 +- .../keys/{encrypted_defined.h => encrypted.h} | 0 trunk/security/keys/internal.h | 6 +- trunk/security/keys/key.c | 8 +- trunk/security/keys/keyring.c | 31 +- trunk/security/keys/request_key.c | 2 +- .../keys/{trusted_defined.c => trusted.c} | 3 +- .../keys/{trusted_defined.h => trusted.h} | 0 trunk/security/selinux/ss/conditional.c | 2 +- trunk/security/selinux/ss/policydb.c | 4 +- trunk/sound/arm/aaci.c | 48 +- trunk/sound/atmel/ac97c.c | 5 +- trunk/sound/pci/azt3328.c | 38 +- trunk/sound/pci/hda/hda_eld.c | 2 +- trunk/sound/pci/hda/patch_realtek.c | 6 +- trunk/sound/pci/oxygen/xonar_cs43xx.c | 2 +- trunk/sound/soc/atmel/snd-soc-afeb9260.c | 2 +- trunk/sound/soc/blackfin/bf5xx-ssm2602.c | 2 +- trunk/sound/soc/codecs/wm8994.c | 2 +- trunk/sound/soc/codecs/wm8995.c | 2 +- trunk/sound/soc/codecs/wm_hubs.c | 15 +- trunk/sound/soc/davinci/davinci-evm.c | 2 +- trunk/sound/soc/pxa/corgi.c | 4 +- trunk/sound/soc/pxa/poodle.c | 2 +- trunk/sound/soc/pxa/spitz.c | 4 +- .../sound/soc/samsung/neo1973_gta02_wm8753.c | 6 +- trunk/sound/soc/samsung/neo1973_wm8753.c | 6 +- .../sound/soc/samsung/s3c24xx_simtec_hermes.c | 4 +- .../soc/samsung/s3c24xx_simtec_tlv320aic23.c | 4 +- trunk/sound/soc/samsung/s3c24xx_uda134x.c | 2 +- trunk/tools/perf/Makefile | 9 +- trunk/tools/perf/builtin-annotate.c | 6 +- trunk/tools/perf/builtin-kmem.c | 4 +- trunk/tools/perf/builtin-lock.c | 6 +- trunk/tools/perf/builtin-record.c | 2 +- trunk/tools/perf/builtin-report.c | 2 +- trunk/tools/perf/builtin-sched.c | 20 +- trunk/tools/perf/builtin-script.c | 6 +- trunk/tools/perf/builtin-stat.c | 4 +- trunk/tools/perf/builtin-test.c | 54 +- trunk/tools/perf/builtin-top.c | 9 +- trunk/tools/perf/util/event.c | 5 +- trunk/tools/perf/util/header.c | 4 +- trunk/tools/perf/util/hist.c | 17 +- trunk/tools/perf/util/include/linux/bitops.h | 1 + trunk/tools/perf/util/map.c | 3 +- trunk/tools/perf/util/parse-events.c | 2 +- trunk/tools/perf/util/parse-events.h | 2 +- trunk/tools/perf/util/probe-event.c | 2 +- trunk/tools/perf/util/session.c | 28 +- trunk/tools/perf/util/svghelper.c | 9 +- trunk/tools/perf/util/symbol.c | 16 +- trunk/tools/perf/util/types.h | 10 +- trunk/tools/perf/util/ui/browsers/hists.c | 2 +- trunk/tools/perf/util/ui/browsers/map.c | 5 +- trunk/tools/perf/util/values.c | 10 +- 543 files changed, 7868 insertions(+), 3632 deletions(-) create mode 100644 trunk/Documentation/ABI/testing/sysfs-platform-at91 create mode 100644 trunk/arch/arm/mach-tegra/include/mach/kbc.h delete mode 100644 trunk/arch/x86/include/asm/system_64.h create mode 100644 trunk/drivers/input/keyboard/tegra-kbc.c create mode 100644 trunk/drivers/net/can/softing/Kconfig create mode 100644 trunk/drivers/net/can/softing/Makefile create mode 100644 trunk/drivers/net/can/softing/softing.h create mode 100644 trunk/drivers/net/can/softing/softing_cs.c create mode 100644 trunk/drivers/net/can/softing/softing_fw.c create mode 100644 trunk/drivers/net/can/softing/softing_main.c create mode 100644 trunk/drivers/net/can/softing/softing_platform.h delete mode 100644 trunk/drivers/staging/vme/bridges/Module.symvers delete mode 100644 trunk/fs/cifs/cifsencrypt.h delete mode 100644 trunk/fs/cifs/md4.c delete mode 100644 trunk/fs/cifs/md5.c delete mode 100644 trunk/fs/cifs/md5.h rename trunk/security/keys/{encrypted_defined.c => encrypted.c} (99%) rename trunk/security/keys/{encrypted_defined.h => encrypted.h} (100%) rename trunk/security/keys/{trusted_defined.c => trusted.c} (99%) rename trunk/security/keys/{trusted_defined.h => trusted.h} (100%) diff --git a/[refs] b/[refs] index ce76da742437..e8f3ee666619 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bed3c1de66d04f9e5efcdfc5b8035f3354c4ffcc +refs/heads/master: f2f1756d7de37cc8ca17705c5bc3dfcbfb589ab9 diff --git a/trunk/.mailmap b/trunk/.mailmap index 581fd39193a2..1eba28acab64 100644 --- a/trunk/.mailmap +++ b/trunk/.mailmap @@ -23,6 +23,7 @@ Andy Adamson Arnaud Patard Arnd Bergmann Axel Dyks +Axel Lin Ben Gardner Ben M Cahill Björn Steinbrink diff --git a/trunk/Documentation/ABI/testing/sysfs-platform-at91 b/trunk/Documentation/ABI/testing/sysfs-platform-at91 new file mode 100644 index 000000000000..4cc6a865ae66 --- /dev/null +++ b/trunk/Documentation/ABI/testing/sysfs-platform-at91 @@ -0,0 +1,25 @@ +What: /sys/devices/platform/at91_can/net//mb0_id +Date: January 2011 +KernelVersion: 2.6.38 +Contact: Marc Kleine-Budde +Description: + Value representing the can_id of mailbox 0. + + Default: 0x7ff (standard frame) + + Due to a chip bug (errata 50.2.6.3 & 50.3.5.3 in + "AT91SAM9263 Preliminary 6249H-ATARM-27-Jul-09") the + contents of mailbox 0 may be send under certain + conditions (even if disabled or in rx mode). + + The workaround in the errata suggests not to use the + mailbox and load it with an unused identifier. + + In order to use an extended can_id add the + CAN_EFF_FLAG (0x80000000U) to the can_id. Example: + + - standard id 0x7ff: + echo 0x7ff > /sys/class/net/can0/mb0_id + + - extended id 0x1fffffff: + echo 0x9fffffff > /sys/class/net/can0/mb0_id diff --git a/trunk/Documentation/DocBook/device-drivers.tmpl b/trunk/Documentation/DocBook/device-drivers.tmpl index 35447e081736..36f63d4a0a06 100644 --- a/trunk/Documentation/DocBook/device-drivers.tmpl +++ b/trunk/Documentation/DocBook/device-drivers.tmpl @@ -217,8 +217,8 @@ X!Isound/sound_firmware.c 16x50 UART Driver !Iinclude/linux/serial_core.h -!Edrivers/serial/serial_core.c -!Edrivers/serial/8250.c +!Edrivers/tty/serial/serial_core.c +!Edrivers/tty/serial/8250.c diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index b959659c5df4..b3f35e5f9c95 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -603,3 +603,19 @@ Why: The adm9240, w83792d and w83793 hardware monitoring drivers have Who: Jean Delvare ---------------------------- + +What: noswapaccount kernel command line parameter +When: 2.6.40 +Why: The original implementation of memsw feature enabled by + CONFIG_CGROUP_MEM_RES_CTLR_SWAP could be disabled by the noswapaccount + kernel parameter (introduced in 2.6.29-rc1). Later on, this decision + turned out to be not ideal because we cannot have the feature compiled + in and disabled by default and let only interested to enable it + (e.g. general distribution kernels might need it). Therefore we have + added swapaccount[=0|1] parameter (introduced in 2.6.37) which provides + the both possibilities. If we remove noswapaccount we will have + less command line parameters with the same functionality and we + can also cleanup the parameter handling a bit (). +Who: Michal Hocko + +---------------------------- diff --git a/trunk/Documentation/filesystems/ntfs.txt b/trunk/Documentation/filesystems/ntfs.txt index 6ef8cf3bc9a3..933bc66ccff1 100644 --- a/trunk/Documentation/filesystems/ntfs.txt +++ b/trunk/Documentation/filesystems/ntfs.txt @@ -460,6 +460,8 @@ Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. 2.1.30: - Fix writev() (it kept writing the first segment over and over again instead of moving onto subsequent segments). + - Fix crash in ntfs_mft_record_alloc() when mapping the new extent mft + record failed. 2.1.29: - Fix a deadlock when mounting read-write. 2.1.28: diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index b72e071a3e5b..89835a4766a6 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -43,11 +43,11 @@ parameter is applicable: AVR32 AVR32 architecture is enabled. AX25 Appropriate AX.25 support is enabled. BLACKFIN Blackfin architecture is enabled. + DRM Direct Rendering Management support is enabled. + DYNAMIC_DEBUG Build in debug messages and enable them at runtime EDD BIOS Enhanced Disk Drive Services (EDD) is enabled EFI EFI Partitioning (GPT) is enabled EIDE EIDE/ATAPI support is enabled. - DRM Direct Rendering Management support is enabled. - DYNAMIC_DEBUG Build in debug messages and enable them at runtime FB The frame buffer device is enabled. GCOV GCOV profiling is enabled. HW Appropriate hardware is enabled. diff --git a/trunk/Documentation/networking/bonding.txt b/trunk/Documentation/networking/bonding.txt index 5dc638791d97..25d2f4141d27 100644 --- a/trunk/Documentation/networking/bonding.txt +++ b/trunk/Documentation/networking/bonding.txt @@ -49,7 +49,8 @@ Table of Contents 3.3 Configuring Bonding Manually with Ifenslave 3.3.1 Configuring Multiple Bonds Manually 3.4 Configuring Bonding Manually via Sysfs -3.5 Overriding Configuration for Special Cases +3.5 Configuration with Interfaces Support +3.6 Overriding Configuration for Special Cases 4. Querying Bonding Configuration 4.1 Bonding Configuration @@ -161,8 +162,8 @@ onwards) do not have /usr/include/linux symbolically linked to the default kernel source include directory. SECOND IMPORTANT NOTE: - If you plan to configure bonding using sysfs, you do not need -to use ifenslave. + If you plan to configure bonding using sysfs or using the +/etc/network/interfaces file, you do not need to use ifenslave. 2. Bonding Driver Options ========================= @@ -779,22 +780,26 @@ resend_igmp You can configure bonding using either your distro's network initialization scripts, or manually using either ifenslave or the -sysfs interface. Distros generally use one of two packages for the -network initialization scripts: initscripts or sysconfig. Recent -versions of these packages have support for bonding, while older +sysfs interface. Distros generally use one of three packages for the +network initialization scripts: initscripts, sysconfig or interfaces. +Recent versions of these packages have support for bonding, while older versions do not. We will first describe the options for configuring bonding for -distros using versions of initscripts and sysconfig with full or -partial support for bonding, then provide information on enabling +distros using versions of initscripts, sysconfig and interfaces with full +or partial support for bonding, then provide information on enabling bonding without support from the network initialization scripts (i.e., older versions of initscripts or sysconfig). - If you're unsure whether your distro uses sysconfig or -initscripts, or don't know if it's new enough, have no fear. + If you're unsure whether your distro uses sysconfig, +initscripts or interfaces, or don't know if it's new enough, have no fear. Determining this is fairly straightforward. - First, issue the command: + First, look for a file called interfaces in /etc/network directory. +If this file is present in your system, then your system use interfaces. See +Configuration with Interfaces Support. + + Else, issue the command: $ rpm -qf /sbin/ifup @@ -1327,8 +1332,62 @@ echo 2000 > /sys/class/net/bond1/bonding/arp_interval echo +eth2 > /sys/class/net/bond1/bonding/slaves echo +eth3 > /sys/class/net/bond1/bonding/slaves -3.5 Overriding Configuration for Special Cases +3.5 Configuration with Interfaces Support +----------------------------------------- + + This section applies to distros which use /etc/network/interfaces file +to describe network interface configuration, most notably Debian and it's +derivatives. + + The ifup and ifdown commands on Debian don't support bonding out of +the box. The ifenslave-2.6 package should be installed to provide bonding +support. Once installed, this package will provide bond-* options to be used +into /etc/network/interfaces. + + Note that ifenslave-2.6 package will load the bonding module and use +the ifenslave command when appropriate. + +Example Configurations +---------------------- + +In /etc/network/interfaces, the following stanza will configure bond0, in +active-backup mode, with eth0 and eth1 as slaves. + +auto bond0 +iface bond0 inet dhcp + bond-slaves eth0 eth1 + bond-mode active-backup + bond-miimon 100 + bond-primary eth0 eth1 + +If the above configuration doesn't work, you might have a system using +upstart for system startup. This is most notably true for recent +Ubuntu versions. The following stanza in /etc/network/interfaces will +produce the same result on those systems. + +auto bond0 +iface bond0 inet dhcp + bond-slaves none + bond-mode active-backup + bond-miimon 100 + +auto eth0 +iface eth0 inet manual + bond-master bond0 + bond-primary eth0 eth1 + +auto eth1 +iface eth1 inet manual + bond-master bond0 + bond-primary eth0 eth1 + +For a full list of bond-* supported options in /etc/network/interfaces and some +more advanced examples tailored to you particular distros, see the files in +/usr/share/doc/ifenslave-2.6. + +3.6 Overriding Configuration for Special Cases ---------------------------------------------- + When using the bonding driver, the physical port which transmits a frame is typically selected by the bonding driver, and is not relevant to the user or system administrator. The output port is simply selected using the policies of diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 55592f8b672c..9511bff301c9 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -978,6 +978,8 @@ S: Maintained F: arch/arm/plat-samsung/ F: arch/arm/plat-s3c24xx/ F: arch/arm/plat-s5p/ +F: drivers/*/*s3c2410* +F: drivers/*/*/*s3c2410* ARM/S3C2410 ARM ARCHITECTURE M: Ben Dooks @@ -3139,6 +3141,12 @@ S: Maintained F: net/ieee802154/ F: drivers/ieee802154/ +IKANOS/ADI EAGLE ADSL USB DRIVER +M: Matthieu Castet +M: Stanislaw Gruszka +S: Maintained +F: drivers/usb/atm/ueagle-atm.c + INTEGRITY MEASUREMENT ARCHITECTURE (IMA) M: Mimi Zohar S: Supported @@ -3327,7 +3335,6 @@ F: drivers/net/wimax/i2400m/ F: include/linux/wimax/i2400m.h INTEL WIRELESS WIFI LINK (iwlwifi) -M: Reinette Chatre M: Wey-Yi Guy M: Intel Linux Wireless L: linux-wireless@vger.kernel.org @@ -3674,6 +3681,28 @@ F: include/linux/key-type.h F: include/keys/ F: security/keys/ +KEYS-TRUSTED +M: David Safford +M: Mimi Zohar +L: linux-security-module@vger.kernel.org +L: keyrings@linux-nfs.org +S: Supported +F: Documentation/keys-trusted-encrypted.txt +F: include/keys/trusted-type.h +F: security/keys/trusted.c +F: security/keys/trusted.h + +KEYS-ENCRYPTED +M: Mimi Zohar +M: David Safford +L: linux-security-module@vger.kernel.org +L: keyrings@linux-nfs.org +S: Supported +F: Documentation/keys-trusted-encrypted.txt +F: include/keys/encrypted-type.h +F: security/keys/encrypted.c +F: security/keys/encrypted.h + KGDB / KDB /debug_core M: Jason Wessel W: http://kgdb.wiki.kernel.org/ @@ -5587,18 +5616,20 @@ F: include/linux/sfi*.h SIMTEC EB110ATX (Chalice CATS) P: Ben Dooks -M: Vincent Sanders +P: Vincent Sanders +M: Simtec Linux Team W: http://www.simtec.co.uk/products/EB110ATX/ S: Supported SIMTEC EB2410ITX (BAST) P: Ben Dooks -M: Vincent Sanders +P: Vincent Sanders +M: Simtec Linux Team W: http://www.simtec.co.uk/products/EB2410ITX/ S: Supported -F: arch/arm/mach-s3c2410/ -F: drivers/*/*s3c2410* -F: drivers/*/*/*s3c2410* +F: arch/arm/mach-s3c2410/mach-bast.c +F: arch/arm/mach-s3c2410/bast-ide.c +F: arch/arm/mach-s3c2410/bast-irq.c TI DAVINCI MACHINE SUPPORT M: Kevin Hilman @@ -6573,6 +6604,16 @@ S: Maintained F: drivers/char/virtio_console.c F: include/linux/virtio_console.h +VIRTIO CORE, NET AND BLOCK DRIVERS +M: Rusty Russell +M: "Michael S. Tsirkin" +L: virtualization@lists.linux-foundation.org +S: Maintained +F: drivers/virtio/ +F: drivers/net/virtio_net.c +F: drivers/block/virtio_blk.c +F: include/linux/virtio_*.h + VIRTIO HOST (VHOST) M: "Michael S. Tsirkin" L: kvm@vger.kernel.org diff --git a/trunk/Makefile b/trunk/Makefile index 1f474953427f..66e7e977ddc0 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 38 -EXTRAVERSION = -rc2 +EXTRAVERSION = -rc3 NAME = Flesh-Eating Bats with Fangs # *DOCUMENTATION* diff --git a/trunk/arch/arm/include/asm/hardware/sp810.h b/trunk/arch/arm/include/asm/hardware/sp810.h index a101f10bb5b1..721847dc68ab 100644 --- a/trunk/arch/arm/include/asm/hardware/sp810.h +++ b/trunk/arch/arm/include/asm/hardware/sp810.h @@ -50,6 +50,12 @@ #define SCPCELLID2 0xFF8 #define SCPCELLID3 0xFFC +#define SCCTRL_TIMEREN0SEL_REFCLK (0 << 15) +#define SCCTRL_TIMEREN0SEL_TIMCLK (1 << 15) + +#define SCCTRL_TIMEREN1SEL_REFCLK (0 << 17) +#define SCCTRL_TIMEREN1SEL_TIMCLK (1 << 17) + static inline void sysctl_soft_reset(void __iomem *base) { /* writing any value to SCSYSSTAT reg will reset system */ diff --git a/trunk/arch/arm/include/asm/io.h b/trunk/arch/arm/include/asm/io.h index 20e0f7c9e03e..d66605dea55a 100644 --- a/trunk/arch/arm/include/asm/io.h +++ b/trunk/arch/arm/include/asm/io.h @@ -95,6 +95,15 @@ static inline void __iomem *__typesafe_io(unsigned long addr) return (void __iomem *)addr; } +/* IO barriers */ +#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE +#define __iormb() rmb() +#define __iowmb() wmb() +#else +#define __iormb() do { } while (0) +#define __iowmb() do { } while (0) +#endif + /* * Now, pick up the machine-defined IO definitions */ @@ -125,17 +134,17 @@ static inline void __iomem *__typesafe_io(unsigned long addr) * The {in,out}[bwl] macros are for emulating x86-style PCI/ISA IO space. */ #ifdef __io -#define outb(v,p) __raw_writeb(v,__io(p)) -#define outw(v,p) __raw_writew((__force __u16) \ - cpu_to_le16(v),__io(p)) -#define outl(v,p) __raw_writel((__force __u32) \ - cpu_to_le32(v),__io(p)) +#define outb(v,p) ({ __iowmb(); __raw_writeb(v,__io(p)); }) +#define outw(v,p) ({ __iowmb(); __raw_writew((__force __u16) \ + cpu_to_le16(v),__io(p)); }) +#define outl(v,p) ({ __iowmb(); __raw_writel((__force __u32) \ + cpu_to_le32(v),__io(p)); }) -#define inb(p) ({ __u8 __v = __raw_readb(__io(p)); __v; }) +#define inb(p) ({ __u8 __v = __raw_readb(__io(p)); __iormb(); __v; }) #define inw(p) ({ __u16 __v = le16_to_cpu((__force __le16) \ - __raw_readw(__io(p))); __v; }) + __raw_readw(__io(p))); __iormb(); __v; }) #define inl(p) ({ __u32 __v = le32_to_cpu((__force __le32) \ - __raw_readl(__io(p))); __v; }) + __raw_readl(__io(p))); __iormb(); __v; }) #define outsb(p,d,l) __raw_writesb(__io(p),d,l) #define outsw(p,d,l) __raw_writesw(__io(p),d,l) @@ -192,14 +201,6 @@ extern void _memset_io(volatile void __iomem *, int, size_t); #define writel_relaxed(v,c) ((void)__raw_writel((__force u32) \ cpu_to_le32(v),__mem_pci(c))) -#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE -#define __iormb() rmb() -#define __iowmb() wmb() -#else -#define __iormb() do { } while (0) -#define __iowmb() do { } while (0) -#endif - #define readb(c) ({ u8 __v = readb_relaxed(c); __iormb(); __v; }) #define readw(c) ({ u16 __v = readw_relaxed(c); __iormb(); __v; }) #define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; }) diff --git a/trunk/arch/arm/include/asm/memory.h b/trunk/arch/arm/include/asm/memory.h index 23c2e8e5c0fa..d0ee74b7cf86 100644 --- a/trunk/arch/arm/include/asm/memory.h +++ b/trunk/arch/arm/include/asm/memory.h @@ -188,7 +188,7 @@ * translation for translating DMA addresses. Use the driver * DMA support - see dma-mapping.h. */ -static inline unsigned long virt_to_phys(void *x) +static inline unsigned long virt_to_phys(const volatile void *x) { return __virt_to_phys((unsigned long)(x)); } diff --git a/trunk/arch/arm/kernel/head.S b/trunk/arch/arm/kernel/head.S index f17d9a09e8fb..c0225da3fb21 100644 --- a/trunk/arch/arm/kernel/head.S +++ b/trunk/arch/arm/kernel/head.S @@ -392,24 +392,22 @@ ENDPROC(__turn_mmu_on) #ifdef CONFIG_SMP_ON_UP __fixup_smp: - mov r4, #0x00070000 - orr r3, r4, #0xff000000 @ mask 0xff070000 - orr r4, r4, #0x41000000 @ val 0x41070000 - and r0, r9, r3 - teq r0, r4 @ ARM CPU and ARMv6/v7? + and r3, r9, #0x000f0000 @ architecture version + teq r3, #0x000f0000 @ CPU ID supported? bne __fixup_smp_on_up @ no, assume UP - orr r3, r3, #0x0000ff00 - orr r3, r3, #0x000000f0 @ mask 0xff07fff0 + bic r3, r9, #0x00ff0000 + bic r3, r3, #0x0000000f @ mask 0xff00fff0 + mov r4, #0x41000000 orr r4, r4, #0x0000b000 - orr r4, r4, #0x00000020 @ val 0x4107b020 - and r0, r9, r3 - teq r0, r4 @ ARM 11MPCore? + orr r4, r4, #0x00000020 @ val 0x4100b020 + teq r3, r4 @ ARM 11MPCore? moveq pc, lr @ yes, assume SMP mrc p15, 0, r0, c0, c0, 5 @ read MPIDR - tst r0, #1 << 31 - movne pc, lr @ bit 31 => SMP + and r0, r0, #0xc0000000 @ multiprocessing extensions and + teq r0, #0x80000000 @ not part of a uniprocessor system? + moveq pc, lr @ yes, assume SMP __fixup_smp_on_up: adr r0, 1f diff --git a/trunk/arch/arm/kernel/smp_twd.c b/trunk/arch/arm/kernel/smp_twd.c index fd9156698ab9..60636f499cb3 100644 --- a/trunk/arch/arm/kernel/smp_twd.c +++ b/trunk/arch/arm/kernel/smp_twd.c @@ -36,6 +36,7 @@ static void twd_set_mode(enum clock_event_mode mode, /* timer load already set up */ ctrl = TWD_TIMER_CONTROL_ENABLE | TWD_TIMER_CONTROL_IT_ENABLE | TWD_TIMER_CONTROL_PERIODIC; + __raw_writel(twd_timer_rate / HZ, twd_base + TWD_TIMER_LOAD); break; case CLOCK_EVT_MODE_ONESHOT: /* period set, and timer enabled in 'next_event' hook */ @@ -81,7 +82,7 @@ int twd_timer_ack(void) static void __cpuinit twd_calibrate_rate(void) { - unsigned long load, count; + unsigned long count; u64 waitjiffies; /* @@ -116,10 +117,6 @@ static void __cpuinit twd_calibrate_rate(void) printk("%lu.%02luMHz.\n", twd_timer_rate / 1000000, (twd_timer_rate / 1000000) % 100); } - - load = twd_timer_rate / HZ; - - __raw_writel(load, twd_base + TWD_TIMER_LOAD); } /* diff --git a/trunk/arch/arm/mach-ep93xx/gpio.c b/trunk/arch/arm/mach-ep93xx/gpio.c index f3dc76fdcea8..bec34b834958 100644 --- a/trunk/arch/arm/mach-ep93xx/gpio.c +++ b/trunk/arch/arm/mach-ep93xx/gpio.c @@ -427,6 +427,13 @@ void __init ep93xx_gpio_init(void) { int i; + /* Set Ports C, D, E, G, and H for GPIO use */ + ep93xx_devcfg_set_bits(EP93XX_SYSCON_DEVCFG_KEYS | + EP93XX_SYSCON_DEVCFG_GONK | + EP93XX_SYSCON_DEVCFG_EONIDE | + EP93XX_SYSCON_DEVCFG_GONIDE | + EP93XX_SYSCON_DEVCFG_HONIDE); + for (i = 0; i < ARRAY_SIZE(ep93xx_gpio_banks); i++) gpiochip_add(&ep93xx_gpio_banks[i].chip); } diff --git a/trunk/arch/arm/mach-footbridge/include/mach/debug-macro.S b/trunk/arch/arm/mach-footbridge/include/mach/debug-macro.S index 3c9e0c40c679..30b971d65815 100644 --- a/trunk/arch/arm/mach-footbridge/include/mach/debug-macro.S +++ b/trunk/arch/arm/mach-footbridge/include/mach/debug-macro.S @@ -17,8 +17,8 @@ /* For NetWinder debugging */ .macro addruart, rp, rv mov \rp, #0x000003f8 - orr \rv, \rp, #0x7c000000 @ physical - orr \rp, \rp, #0xff000000 @ virtual + orr \rv, \rp, #0xff000000 @ virtual + orr \rp, \rp, #0x7c000000 @ physical .endm #define UART_SHIFT 0 diff --git a/trunk/arch/arm/mach-omap1/Kconfig b/trunk/arch/arm/mach-omap1/Kconfig index 8d2f2daba0c0..e0a028161dde 100644 --- a/trunk/arch/arm/mach-omap1/Kconfig +++ b/trunk/arch/arm/mach-omap1/Kconfig @@ -9,6 +9,7 @@ config ARCH_OMAP730 depends on ARCH_OMAP1 bool "OMAP730 Based System" select CPU_ARM926T + select OMAP_MPU_TIMER select ARCH_OMAP_OTG config ARCH_OMAP850 @@ -22,6 +23,7 @@ config ARCH_OMAP15XX default y bool "OMAP15xx Based System" select CPU_ARM925T + select OMAP_MPU_TIMER config ARCH_OMAP16XX depends on ARCH_OMAP1 diff --git a/trunk/arch/arm/mach-omap1/Makefile b/trunk/arch/arm/mach-omap1/Makefile index 6ee19504845f..ba6009f27677 100644 --- a/trunk/arch/arm/mach-omap1/Makefile +++ b/trunk/arch/arm/mach-omap1/Makefile @@ -3,12 +3,11 @@ # # Common support -obj-y := io.o id.o sram.o irq.o mux.o flash.o serial.o devices.o dma.o +obj-y := io.o id.o sram.o time.o irq.o mux.o flash.o serial.o devices.o dma.o obj-y += clock.o clock_data.o opp_data.o obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o -obj-$(CONFIG_OMAP_MPU_TIMER) += time.o obj-$(CONFIG_OMAP_32K_TIMER) += timer32k.o # Power Management diff --git a/trunk/arch/arm/mach-omap1/include/mach/entry-macro.S b/trunk/arch/arm/mach-omap1/include/mach/entry-macro.S index c9be6d4d83e2..bfb4fb1d7382 100644 --- a/trunk/arch/arm/mach-omap1/include/mach/entry-macro.S +++ b/trunk/arch/arm/mach-omap1/include/mach/entry-macro.S @@ -14,19 +14,6 @@ #include #include -/* - * We use __glue to avoid errors with multiple definitions of - * .globl omap_irq_flags as it's included from entry-armv.S but not - * from entry-common.S. - */ -#ifdef __glue - .pushsection .data - .globl omap_irq_flags -omap_irq_flags: - .word 0 - .popsection -#endif - .macro disable_fiq .endm diff --git a/trunk/arch/arm/mach-omap1/irq.c b/trunk/arch/arm/mach-omap1/irq.c index 47701584df35..731dd33bff51 100644 --- a/trunk/arch/arm/mach-omap1/irq.c +++ b/trunk/arch/arm/mach-omap1/irq.c @@ -57,6 +57,7 @@ struct omap_irq_bank { unsigned long wake_enable; }; +u32 omap_irq_flags; static unsigned int irq_bank_count; static struct omap_irq_bank *irq_banks; @@ -176,7 +177,6 @@ static struct irq_chip omap_irq_chip = { void __init omap_init_irq(void) { - extern unsigned int omap_irq_flags; int i, j; #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) diff --git a/trunk/arch/arm/mach-omap1/time.c b/trunk/arch/arm/mach-omap1/time.c index ed7a61ff916a..f83fc335c613 100644 --- a/trunk/arch/arm/mach-omap1/time.c +++ b/trunk/arch/arm/mach-omap1/time.c @@ -44,16 +44,21 @@ #include #include #include +#include #include #include #include #include +#include + #include #include #include +#ifdef CONFIG_OMAP_MPU_TIMER + #define OMAP_MPU_TIMER_BASE OMAP_MPU_TIMER1_BASE #define OMAP_MPU_TIMER_OFFSET 0x100 @@ -67,7 +72,7 @@ typedef struct { ((volatile omap_mpu_timer_regs_t*)OMAP1_IO_ADDRESS(OMAP_MPU_TIMER_BASE + \ (n)*OMAP_MPU_TIMER_OFFSET)) -static inline unsigned long omap_mpu_timer_read(int nr) +static inline unsigned long notrace omap_mpu_timer_read(int nr) { volatile omap_mpu_timer_regs_t* timer = omap_mpu_timer_base(nr); return timer->read_tim; @@ -212,6 +217,32 @@ static struct clocksource clocksource_mpu = { .flags = CLOCK_SOURCE_IS_CONTINUOUS, }; +static DEFINE_CLOCK_DATA(cd); + +static inline unsigned long long notrace _omap_mpu_sched_clock(void) +{ + u32 cyc = mpu_read(&clocksource_mpu); + return cyc_to_sched_clock(&cd, cyc, (u32)~0); +} + +#ifndef CONFIG_OMAP_32K_TIMER +unsigned long long notrace sched_clock(void) +{ + return _omap_mpu_sched_clock(); +} +#else +static unsigned long long notrace omap_mpu_sched_clock(void) +{ + return _omap_mpu_sched_clock(); +} +#endif + +static void notrace mpu_update_sched_clock(void) +{ + u32 cyc = mpu_read(&clocksource_mpu); + update_sched_clock(&cd, cyc, (u32)~0); +} + static void __init omap_init_clocksource(unsigned long rate) { static char err[] __initdata = KERN_ERR @@ -219,17 +250,13 @@ static void __init omap_init_clocksource(unsigned long rate) setup_irq(INT_TIMER2, &omap_mpu_timer2_irq); omap_mpu_timer_start(1, ~0, 1); + init_sched_clock(&cd, mpu_update_sched_clock, 32, rate); if (clocksource_register_hz(&clocksource_mpu, rate)) printk(err, clocksource_mpu.name); } -/* - * --------------------------------------------------------------------------- - * Timer initialization - * --------------------------------------------------------------------------- - */ -static void __init omap_timer_init(void) +static void __init omap_mpu_timer_init(void) { struct clk *ck_ref = clk_get(NULL, "ck_ref"); unsigned long rate; @@ -246,6 +273,66 @@ static void __init omap_timer_init(void) omap_init_clocksource(rate); } +#else +static inline void omap_mpu_timer_init(void) +{ + pr_err("Bogus timer, should not happen\n"); +} +#endif /* CONFIG_OMAP_MPU_TIMER */ + +#if defined(CONFIG_OMAP_MPU_TIMER) && defined(CONFIG_OMAP_32K_TIMER) +static unsigned long long (*preferred_sched_clock)(void); + +unsigned long long notrace sched_clock(void) +{ + if (!preferred_sched_clock) + return 0; + + return preferred_sched_clock(); +} + +static inline void preferred_sched_clock_init(bool use_32k_sched_clock) +{ + if (use_32k_sched_clock) + preferred_sched_clock = omap_32k_sched_clock; + else + preferred_sched_clock = omap_mpu_sched_clock; +} +#else +static inline void preferred_sched_clock_init(bool use_32k_sched_clcok) +{ +} +#endif + +static inline int omap_32k_timer_usable(void) +{ + int res = false; + + if (cpu_is_omap730() || cpu_is_omap15xx()) + return res; + +#ifdef CONFIG_OMAP_32K_TIMER + res = omap_32k_timer_init(); +#endif + + return res; +} + +/* + * --------------------------------------------------------------------------- + * Timer initialization + * --------------------------------------------------------------------------- + */ +static void __init omap_timer_init(void) +{ + if (omap_32k_timer_usable()) { + preferred_sched_clock_init(1); + } else { + omap_mpu_timer_init(); + preferred_sched_clock_init(0); + } +} + struct sys_timer omap_timer = { .init = omap_timer_init, }; diff --git a/trunk/arch/arm/mach-omap1/timer32k.c b/trunk/arch/arm/mach-omap1/timer32k.c index 20cfbcc6c60c..13d7b8f145bd 100644 --- a/trunk/arch/arm/mach-omap1/timer32k.c +++ b/trunk/arch/arm/mach-omap1/timer32k.c @@ -52,10 +52,9 @@ #include #include #include +#include #include -struct sys_timer omap_timer; - /* * --------------------------------------------------------------------------- * 32KHz OS timer @@ -181,14 +180,14 @@ static __init void omap_init_32k_timer(void) * Timer initialization * --------------------------------------------------------------------------- */ -static void __init omap_timer_init(void) +bool __init omap_32k_timer_init(void) { + omap_init_clocksource_32k(); + #ifdef CONFIG_OMAP_DM_TIMER omap_dm_timer_init(); #endif omap_init_32k_timer(); -} -struct sys_timer omap_timer = { - .init = omap_timer_init, -}; + return true; +} diff --git a/trunk/arch/arm/mach-omap2/board-cm-t3517.c b/trunk/arch/arm/mach-omap2/board-cm-t3517.c index 5b0c77732dfc..8f9a64d650ee 100644 --- a/trunk/arch/arm/mach-omap2/board-cm-t3517.c +++ b/trunk/arch/arm/mach-omap2/board-cm-t3517.c @@ -124,8 +124,9 @@ static inline void cm_t3517_init_hecc(void) {} #if defined(CONFIG_RTC_DRV_V3020) || defined(CONFIG_RTC_DRV_V3020_MODULE) #define RTC_IO_GPIO (153) #define RTC_WR_GPIO (154) -#define RTC_RD_GPIO (160) +#define RTC_RD_GPIO (53) #define RTC_CS_GPIO (163) +#define RTC_CS_EN_GPIO (160) struct v3020_platform_data cm_t3517_v3020_pdata = { .use_gpio = 1, @@ -145,6 +146,16 @@ static struct platform_device cm_t3517_rtc_device = { static void __init cm_t3517_init_rtc(void) { + int err; + + err = gpio_request(RTC_CS_EN_GPIO, "rtc cs en"); + if (err) { + pr_err("CM-T3517: rtc cs en gpio request failed: %d\n", err); + return; + } + + gpio_direction_output(RTC_CS_EN_GPIO, 1); + platform_device_register(&cm_t3517_rtc_device); } #else @@ -214,12 +225,12 @@ static struct mtd_partition cm_t3517_nand_partitions[] = { }, { .name = "linux", - .offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */ + .offset = MTDPART_OFS_APPEND, /* Offset = 0x2A0000 */ .size = 32 * NAND_BLOCK_SIZE, }, { .name = "rootfs", - .offset = MTDPART_OFS_APPEND, /* Offset = 0x680000 */ + .offset = MTDPART_OFS_APPEND, /* Offset = 0x6A0000 */ .size = MTDPART_SIZ_FULL, }, }; @@ -256,11 +267,19 @@ static void __init cm_t3517_init_irq(void) static struct omap_board_mux board_mux[] __initdata = { /* GPIO186 - Green LED */ OMAP3_MUX(SYS_CLKOUT2, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), - /* RTC GPIOs: IO, WR#, RD#, CS# */ + + /* RTC GPIOs: */ + /* IO - GPIO153 */ OMAP3_MUX(MCBSP4_DR, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), + /* WR# - GPIO154 */ OMAP3_MUX(MCBSP4_DX, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), - OMAP3_MUX(MCBSP_CLKS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), + /* RD# - GPIO53 */ + OMAP3_MUX(GPMC_NCS2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), + /* CS# - GPIO163 */ OMAP3_MUX(UART3_CTS_RCTX, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), + /* CS EN - GPIO160 */ + OMAP3_MUX(MCBSP_CLKS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), + /* HSUSB1 RESET */ OMAP3_MUX(UART2_TX, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), /* HSUSB2 RESET */ diff --git a/trunk/arch/arm/mach-omap2/board-devkit8000.c b/trunk/arch/arm/mach-omap2/board-devkit8000.c index 00bb1fc5e017..e906e05bb41b 100644 --- a/trunk/arch/arm/mach-omap2/board-devkit8000.c +++ b/trunk/arch/arm/mach-omap2/board-devkit8000.c @@ -275,8 +275,7 @@ static struct twl4030_gpio_platform_data devkit8000_gpio_data = { .irq_base = TWL4030_GPIO_IRQ_BASE, .irq_end = TWL4030_GPIO_IRQ_END, .use_leds = true, - .pullups = BIT(1), - .pulldowns = BIT(2) | BIT(6) | BIT(7) | BIT(8) | BIT(13) + .pulldowns = BIT(1) | BIT(2) | BIT(6) | BIT(8) | BIT(13) | BIT(15) | BIT(16) | BIT(17), .setup = devkit8000_twl_gpio_setup, }; diff --git a/trunk/arch/arm/mach-omap2/clock44xx_data.c b/trunk/arch/arm/mach-omap2/clock44xx_data.c index e8cb32fd7f13..de9ec8ddd2ae 100644 --- a/trunk/arch/arm/mach-omap2/clock44xx_data.c +++ b/trunk/arch/arm/mach-omap2/clock44xx_data.c @@ -34,7 +34,6 @@ #include "cm2_44xx.h" #include "cm-regbits-44xx.h" #include "prm44xx.h" -#include "prm44xx.h" #include "prm-regbits-44xx.h" #include "control.h" #include "scrm44xx.h" diff --git a/trunk/arch/arm/mach-omap2/clockdomain.c b/trunk/arch/arm/mach-omap2/clockdomain.c index e20b98636ab4..58e42f76603f 100644 --- a/trunk/arch/arm/mach-omap2/clockdomain.c +++ b/trunk/arch/arm/mach-omap2/clockdomain.c @@ -423,6 +423,12 @@ int clkdm_add_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) { struct clkdm_dep *cd; + if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { + pr_err("clockdomain: %s/%s: %s: not yet implemented\n", + clkdm1->name, clkdm2->name, __func__); + return -EINVAL; + } + if (!clkdm1 || !clkdm2) return -EINVAL; @@ -458,6 +464,12 @@ int clkdm_del_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) { struct clkdm_dep *cd; + if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { + pr_err("clockdomain: %s/%s: %s: not yet implemented\n", + clkdm1->name, clkdm2->name, __func__); + return -EINVAL; + } + if (!clkdm1 || !clkdm2) return -EINVAL; @@ -500,6 +512,12 @@ int clkdm_read_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) if (!clkdm1 || !clkdm2) return -EINVAL; + if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { + pr_err("clockdomain: %s/%s: %s: not yet implemented\n", + clkdm1->name, clkdm2->name, __func__); + return -EINVAL; + } + cd = _clkdm_deps_lookup(clkdm2, clkdm1->wkdep_srcs); if (IS_ERR(cd)) { pr_debug("clockdomain: hardware cannot set/clear wake up of " @@ -527,6 +545,12 @@ int clkdm_clear_all_wkdeps(struct clockdomain *clkdm) struct clkdm_dep *cd; u32 mask = 0; + if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { + pr_err("clockdomain: %s: %s: not yet implemented\n", + clkdm->name, __func__); + return -EINVAL; + } + if (!clkdm) return -EINVAL; @@ -830,8 +854,7 @@ void omap2_clkdm_allow_idle(struct clockdomain *clkdm) * dependency code and data for OMAP4. */ if (cpu_is_omap44xx()) { - WARN_ONCE(1, "clockdomain: OMAP4 wakeup/sleep dependency " - "support is not yet implemented\n"); + pr_err("clockdomain: %s: OMAP4 wakeup/sleep dependency support: not yet implemented\n", clkdm->name); } else { if (atomic_read(&clkdm->usecount) > 0) _clkdm_add_autodeps(clkdm); @@ -872,8 +895,7 @@ void omap2_clkdm_deny_idle(struct clockdomain *clkdm) * dependency code and data for OMAP4. */ if (cpu_is_omap44xx()) { - WARN_ONCE(1, "clockdomain: OMAP4 wakeup/sleep dependency " - "support is not yet implemented\n"); + pr_err("clockdomain: %s: OMAP4 wakeup/sleep dependency support: not yet implemented\n", clkdm->name); } else { if (atomic_read(&clkdm->usecount) > 0) _clkdm_del_autodeps(clkdm); diff --git a/trunk/arch/arm/mach-omap2/clockdomains44xx_data.c b/trunk/arch/arm/mach-omap2/clockdomains44xx_data.c index 51920fc7fc52..10622c914abc 100644 --- a/trunk/arch/arm/mach-omap2/clockdomains44xx_data.c +++ b/trunk/arch/arm/mach-omap2/clockdomains44xx_data.c @@ -30,8 +30,6 @@ #include "cm1_44xx.h" #include "cm2_44xx.h" -#include "cm1_44xx.h" -#include "cm2_44xx.h" #include "cm-regbits-44xx.h" #include "prm44xx.h" #include "prcm44xx.h" diff --git a/trunk/arch/arm/mach-omap2/dma.c b/trunk/arch/arm/mach-omap2/dma.c index d2f15f5cfd36..34922b2d2e3f 100644 --- a/trunk/arch/arm/mach-omap2/dma.c +++ b/trunk/arch/arm/mach-omap2/dma.c @@ -264,7 +264,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) if (IS_ERR(od)) { pr_err("%s: Cant build omap_device for %s:%s.\n", __func__, name, oh->name); - return IS_ERR(od); + return PTR_ERR(od); } mem = platform_get_resource(&od->pdev, IORESOURCE_MEM, 0); diff --git a/trunk/arch/arm/mach-omap2/include/mach/entry-macro.S b/trunk/arch/arm/mach-omap2/include/mach/entry-macro.S index befa321c4c13..81985a665cb3 100644 --- a/trunk/arch/arm/mach-omap2/include/mach/entry-macro.S +++ b/trunk/arch/arm/mach-omap2/include/mach/entry-macro.S @@ -38,20 +38,6 @@ */ #ifdef MULTI_OMAP2 - -/* - * We use __glue to avoid errors with multiple definitions of - * .globl omap_irq_base as it's included from entry-armv.S but not - * from entry-common.S. - */ -#ifdef __glue - .pushsection .data - .globl omap_irq_base -omap_irq_base: - .word 0 - .popsection -#endif - /* * Configure the interrupt base on the first interrupt. * See also omap_irq_base_init for setting omap_irq_base. diff --git a/trunk/arch/arm/mach-omap2/io.c b/trunk/arch/arm/mach-omap2/io.c index e66687b0b9de..c2032041d26f 100644 --- a/trunk/arch/arm/mach-omap2/io.c +++ b/trunk/arch/arm/mach-omap2/io.c @@ -314,14 +314,13 @@ static int _set_hwmod_postsetup_state(struct omap_hwmod *oh, void *data) return omap_hwmod_set_postsetup_state(oh, *(u8 *)data); } +void __iomem *omap_irq_base; + /* * Initialize asm_irq_base for entry-macro.S */ static inline void omap_irq_base_init(void) { - extern void __iomem *omap_irq_base; - -#ifdef MULTI_OMAP2 if (cpu_is_omap24xx()) omap_irq_base = OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE); else if (cpu_is_omap34xx()) @@ -330,7 +329,6 @@ static inline void omap_irq_base_init(void) omap_irq_base = OMAP2_L4_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE); else pr_err("Could not initialize omap_irq_base\n"); -#endif } void __init omap2_init_common_infrastructure(void) diff --git a/trunk/arch/arm/mach-omap2/mux.c b/trunk/arch/arm/mach-omap2/mux.c index df8d2f2872c6..fae49d12bc76 100644 --- a/trunk/arch/arm/mach-omap2/mux.c +++ b/trunk/arch/arm/mach-omap2/mux.c @@ -160,7 +160,7 @@ static int __init _omap_mux_get_by_name(struct omap_mux_partition *partition, struct omap_mux *mux = NULL; struct omap_mux_entry *e; const char *mode_name; - int found = 0, found_mode, mode0_len = 0; + int found = 0, found_mode = 0, mode0_len = 0; struct list_head *muxmodes = &partition->muxmodes; mode_name = strchr(muxname, '.'); diff --git a/trunk/arch/arm/mach-omap2/pm24xx.c b/trunk/arch/arm/mach-omap2/pm24xx.c index 9e5dc8ed51e9..97feb3ab6a69 100644 --- a/trunk/arch/arm/mach-omap2/pm24xx.c +++ b/trunk/arch/arm/mach-omap2/pm24xx.c @@ -134,7 +134,7 @@ static void omap2_enter_full_retention(void) /* Block console output in case it is on one of the OMAP UARTs */ if (!is_suspending()) - if (try_acquire_console_sem()) + if (!console_trylock()) goto no_sleep; omap_uart_prepare_idle(0); @@ -151,7 +151,7 @@ static void omap2_enter_full_retention(void) omap_uart_resume_idle(0); if (!is_suspending()) - release_console_sem(); + console_unlock(); no_sleep: if (omap2_pm_debug) { diff --git a/trunk/arch/arm/mach-omap2/pm34xx.c b/trunk/arch/arm/mach-omap2/pm34xx.c index 8cbbeade4b8a..a4aa1920a75c 100644 --- a/trunk/arch/arm/mach-omap2/pm34xx.c +++ b/trunk/arch/arm/mach-omap2/pm34xx.c @@ -398,7 +398,7 @@ void omap_sram_idle(void) if (!is_suspending()) if (per_next_state < PWRDM_POWER_ON || core_next_state < PWRDM_POWER_ON) - if (try_acquire_console_sem()) + if (!console_trylock()) goto console_still_active; /* PER */ @@ -481,7 +481,7 @@ void omap_sram_idle(void) } if (!is_suspending()) - release_console_sem(); + console_unlock(); console_still_active: /* Disable IO-PAD and IO-CHAIN wakeup */ diff --git a/trunk/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c b/trunk/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c index d5233890370c..cf600e22bf8e 100644 --- a/trunk/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c +++ b/trunk/arch/arm/mach-omap2/powerdomain2xxx_3xxx.c @@ -19,7 +19,6 @@ #include #include "powerdomain.h" -#include "prm-regbits-34xx.h" #include "prm.h" #include "prm-regbits-24xx.h" #include "prm-regbits-34xx.h" diff --git a/trunk/arch/arm/mach-omap2/serial.c b/trunk/arch/arm/mach-omap2/serial.c index 302da7403a10..32e91a9c8b6b 100644 --- a/trunk/arch/arm/mach-omap2/serial.c +++ b/trunk/arch/arm/mach-omap2/serial.c @@ -812,7 +812,7 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) oh->dev_attr = uart; - acquire_console_sem(); /* in case the earlycon is on the UART */ + console_lock(); /* in case the earlycon is on the UART */ /* * Because of early UART probing, UART did not get idled @@ -838,7 +838,7 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) omap_uart_block_sleep(uart); uart->timeout = DEFAULT_TIMEOUT; - release_console_sem(); + console_unlock(); if ((cpu_is_omap34xx() && uart->padconf) || (uart->wk_en && uart->wk_mask)) { diff --git a/trunk/arch/arm/mach-omap2/timer-gp.c b/trunk/arch/arm/mach-omap2/timer-gp.c index 4e48e786bec7..7b7c2683ae7b 100644 --- a/trunk/arch/arm/mach-omap2/timer-gp.c +++ b/trunk/arch/arm/mach-omap2/timer-gp.c @@ -42,6 +42,8 @@ #include "timer-gp.h" +#include + /* MAX_GPTIMER_ID: number of GPTIMERs on the chip */ #define MAX_GPTIMER_ID 12 @@ -176,10 +178,14 @@ static void __init omap2_gp_clockevent_init(void) /* * When 32k-timer is enabled, don't use GPTimer for clocksource * instead, just leave default clocksource which uses the 32k - * sync counter. See clocksource setup in see plat-omap/common.c. + * sync counter. See clocksource setup in plat-omap/counter_32k.c */ -static inline void __init omap2_gp_clocksource_init(void) {} +static void __init omap2_gp_clocksource_init(void) +{ + omap_init_clocksource_32k(); +} + #else /* * clocksource diff --git a/trunk/arch/arm/mach-realview/Kconfig b/trunk/arch/arm/mach-realview/Kconfig index b4575ae9648e..7ca138a943a9 100644 --- a/trunk/arch/arm/mach-realview/Kconfig +++ b/trunk/arch/arm/mach-realview/Kconfig @@ -2,52 +2,56 @@ menu "RealView platform type" depends on ARCH_REALVIEW config MACH_REALVIEW_EB - bool "Support RealView/EB platform" + bool "Support RealView(R) Emulation Baseboard" select ARM_GIC help - Include support for the ARM(R) RealView Emulation Baseboard platform. + Include support for the ARM(R) RealView(R) Emulation Baseboard + platform. config REALVIEW_EB_A9MP - bool "Support Multicore Cortex-A9" + bool "Support Multicore Cortex-A9 Tile" depends on MACH_REALVIEW_EB select CPU_V7 help - Enable support for the Cortex-A9MPCore tile on the Realview platform. + Enable support for the Cortex-A9MPCore tile fitted to the + Realview(R) Emulation Baseboard platform. config REALVIEW_EB_ARM11MP - bool "Support ARM11MPCore tile" + bool "Support ARM11MPCore Tile" depends on MACH_REALVIEW_EB select CPU_V6 select ARCH_HAS_BARRIERS if SMP help - Enable support for the ARM11MPCore tile on the Realview platform. + Enable support for the ARM11MPCore tile fitted to the Realview(R) + Emulation Baseboard platform. config REALVIEW_EB_ARM11MP_REVB - bool "Support ARM11MPCore RevB tile" + bool "Support ARM11MPCore RevB Tile" depends on REALVIEW_EB_ARM11MP help - Enable support for the ARM11MPCore RevB tile on the Realview - platform. Since there are device address differences, a - kernel built with this option enabled is not compatible with - other revisions of the ARM11MPCore tile. + Enable support for the ARM11MPCore Revision B tile on the + Realview(R) Emulation Baseboard platform. Since there are device + address differences, a kernel built with this option enabled is + not compatible with other revisions of the ARM11MPCore tile. config MACH_REALVIEW_PB11MP - bool "Support RealView/PB11MPCore platform" + bool "Support RealView(R) Platform Baseboard for ARM11MPCore" select CPU_V6 select ARM_GIC select HAVE_PATA_PLATFORM select ARCH_HAS_BARRIERS if SMP help - Include support for the ARM(R) RealView MPCore Platform Baseboard. - PB11MPCore is a platform with an on-board ARM11MPCore and has + Include support for the ARM(R) RealView(R) Platform Baseboard for + the ARM11MPCore. This platform has an on-board ARM11MPCore and has support for PCI-E and Compact Flash. config MACH_REALVIEW_PB1176 - bool "Support RealView/PB1176 platform" + bool "Support RealView(R) Platform Baseboard for ARM1176JZF-S" select CPU_V6 select ARM_GIC help - Include support for the ARM(R) RealView ARM1176 Platform Baseboard. + Include support for the ARM(R) RealView(R) Platform Baseboard for + ARM1176JZF-S. config REALVIEW_PB1176_SECURE_FLASH bool "Allow access to the secure flash memory block" @@ -59,23 +63,24 @@ config REALVIEW_PB1176_SECURE_FLASH block (64MB @ 0x3c000000) is required. config MACH_REALVIEW_PBA8 - bool "Support RealView/PB-A8 platform" + bool "Support RealView(R) Platform Baseboard for Cortex(tm)-A8 platform" select CPU_V7 select ARM_GIC select HAVE_PATA_PLATFORM help - Include support for the ARM(R) RealView Cortex-A8 Platform Baseboard. - PB-A8 is a platform with an on-board Cortex-A8 and has support for - PCI-E and Compact Flash. + Include support for the ARM(R) RealView Platform Baseboard for + Cortex(tm)-A8. This platform has an on-board Cortex-A8 and has + support for PCI-E and Compact Flash. config MACH_REALVIEW_PBX - bool "Support RealView/PBX platform" + bool "Support RealView(R) Platform Baseboard Explore" select ARM_GIC select HAVE_PATA_PLATFORM select ARCH_SPARSEMEM_ENABLE if CPU_V7 && !REALVIEW_HIGH_PHYS_OFFSET select ZONE_DMA if SPARSEMEM help - Include support for the ARM(R) RealView PBX platform. + Include support for the ARM(R) RealView(R) Platform Baseboard + Explore. config REALVIEW_HIGH_PHYS_OFFSET bool "High physical base address for the RealView platform" diff --git a/trunk/arch/arm/mach-realview/platsmp.c b/trunk/arch/arm/mach-realview/platsmp.c index a22bf67f2f78..6959d13d908a 100644 --- a/trunk/arch/arm/mach-realview/platsmp.c +++ b/trunk/arch/arm/mach-realview/platsmp.c @@ -41,7 +41,7 @@ volatile int __cpuinitdata pen_release = -1; * observers, irrespective of whether they're taking part in coherency * or not. This is necessary for the hotplug code to work reliably. */ -static void write_pen_release(int val) +static void __cpuinit write_pen_release(int val) { pen_release = val; smp_wmb(); diff --git a/trunk/arch/arm/mach-shmobile/Kconfig b/trunk/arch/arm/mach-shmobile/Kconfig index 4d1b4c5c9389..0c8f6cf3e948 100644 --- a/trunk/arch/arm/mach-shmobile/Kconfig +++ b/trunk/arch/arm/mach-shmobile/Kconfig @@ -60,6 +60,8 @@ endchoice config MACH_AG5EVM bool "AG5EVM board" + select ARCH_REQUIRE_GPIOLIB + select SH_LCD_MIPI_DSI depends on ARCH_SH73A0 config MACH_MACKEREL diff --git a/trunk/arch/arm/mach-shmobile/board-ag5evm.c b/trunk/arch/arm/mach-shmobile/board-ag5evm.c index c18a740a4159..2123b96b5638 100644 --- a/trunk/arch/arm/mach-shmobile/board-ag5evm.c +++ b/trunk/arch/arm/mach-shmobile/board-ag5evm.c @@ -34,9 +34,10 @@ #include #include #include - +#include +#include