From c1532c205a37e6003ff738db17ef4da02e0dbee2 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Thu, 10 Feb 2011 12:05:09 -0800 Subject: [PATCH] --- yaml --- r: 233098 b: refs/heads/master c: e128c5e26bd474a2a56b96ec7c8967aff347b763 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/.mailmap | 1 + .../feature-removal-schedule.txt | 16 + trunk/Documentation/filesystems/ntfs.txt | 2 + trunk/Documentation/kernel-parameters.txt | 4 +- trunk/Documentation/scheduler/sched-stats.txt | 33 +- .../sound/alsa/HD-Audio-Models.txt | 1 + trunk/MAINTAINERS | 30 +- 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/core.c | 2 +- trunk/arch/arm/mach-ep93xx/gpio.c | 7 + .../include/mach/debug-macro.S | 4 +- trunk/arch/arm/mach-imx/mach-mx25_3ds.c | 2 +- trunk/arch/arm/mach-ixp4xx/common.c | 4 +- .../arch/arm/mach-ixp4xx/include/mach/timex.h | 5 +- trunk/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c | 9 +- trunk/arch/arm/mach-mxs/clock-mx23.c | 4 +- trunk/arch/arm/mach-mxs/clock-mx28.c | 7 +- trunk/arch/arm/mach-mxs/clock.c | 2 - trunk/arch/arm/mach-mxs/gpio.c | 2 + trunk/arch/arm/mach-mxs/include/mach/clock.h | 2 - .../arm/mach-omap1/include/mach/entry-macro.S | 13 - trunk/arch/arm/mach-omap1/irq.c | 2 +- trunk/arch/arm/mach-omap1/lcd_dma.c | 24 +- trunk/arch/arm/mach-omap1/time.c | 1 - trunk/arch/arm/mach-omap2/board-devkit8000.c | 27 +- trunk/arch/arm/mach-omap2/board-omap4panda.c | 2 - trunk/arch/arm/mach-omap2/board-rm680.c | 3 - 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 | 3 +- trunk/arch/arm/mach-omap2/pm24xx.c | 4 +- trunk/arch/arm/mach-omap2/pm34xx.c | 11 +- trunk/arch/arm/mach-omap2/serial.c | 4 +- trunk/arch/arm/mach-omap2/smartreflex.c | 11 +- trunk/arch/arm/mach-omap2/voltage.c | 1 + 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 + .../arm/plat-mxc/include/mach/uncompress.h | 2 + trunk/arch/arm/tools/mach-types | 105 ++- trunk/arch/avr32/include/asm/pgalloc.h | 1 + trunk/arch/m32r/kernel/irq.c | 2 +- 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 +- trunk/arch/powerpc/include/asm/mmu-book3e.h | 8 +- trunk/arch/powerpc/include/asm/page.h | 2 +- trunk/arch/powerpc/kernel/cpu_setup_6xx.S | 40 +- trunk/arch/powerpc/kernel/cputable.c | 4 +- trunk/arch/powerpc/mm/numa.c | 55 +- trunk/arch/powerpc/platforms/pseries/lpar.c | 37 + 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/mmu_context.h | 5 +- trunk/arch/x86/include/asm/paravirt.h | 5 +- trunk/arch/x86/include/asm/percpu.h | 24 +- trunk/arch/x86/include/asm/smp.h | 5 +- trunk/arch/x86/include/asm/system_64.h | 22 - trunk/arch/x86/kernel/acpi/sleep.c | 15 +- trunk/arch/x86/kernel/cpu/mtrr/main.c | 10 +- trunk/arch/x86/kernel/cpu/perf_event_p4.c | 12 +- trunk/arch/x86/kernel/dumpstack_64.c | 2 +- trunk/arch/x86/kernel/head_32.S | 30 +- trunk/arch/x86/kernel/smpboot.c | 4 +- trunk/arch/x86/mm/pageattr.c | 8 - trunk/arch/x86/xen/p2m.c | 18 +- trunk/arch/x86/xen/setup.c | 8 +- trunk/block/blk-throttle.c | 10 +- trunk/block/cfq-iosched.c | 10 +- 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/base/power/runtime.c | 9 +- trunk/drivers/block/Makefile | 2 +- trunk/drivers/block/aoe/Makefile | 2 +- trunk/drivers/block/cciss.c | 2 +- trunk/drivers/block/loop.c | 3 + trunk/drivers/cdrom/cdrom.c | 3 +- trunk/drivers/char/agp/Kconfig | 2 +- trunk/drivers/char/agp/amd-k7-agp.c | 19 - trunk/drivers/char/agp/intel-agp.c | 27 +- trunk/drivers/char/agp/intel-gtt.c | 19 +- trunk/drivers/char/bfin_jtag_comm.c | 8 +- trunk/drivers/clocksource/tcb_clksrc.c | 4 +- trunk/drivers/gpio/langwell_gpio.c | 9 +- trunk/drivers/gpu/drm/Kconfig | 3 + trunk/drivers/gpu/drm/drm_crtc.c | 20 + trunk/drivers/gpu/drm/drm_crtc_helper.c | 33 +- trunk/drivers/gpu/drm/drm_irq.c | 7 +- trunk/drivers/gpu/drm/i915/i915_dma.c | 35 +- trunk/drivers/gpu/drm/i915/i915_drv.c | 15 +- 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 | 45 +- trunk/drivers/gpu/drm/i915/i915_reg.h | 6 + trunk/drivers/gpu/drm/i915/intel_crt.c | 10 + trunk/drivers/gpu/drm/i915/intel_display.c | 42 +- 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/i915/intel_sdvo.c | 46 +- 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_pm.c | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_temp.c | 2 +- trunk/drivers/gpu/drm/nouveau/nv50_evo.c | 3 +- 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 | 57 +- trunk/drivers/gpu/drm/radeon/atombios_dp.c | 4 +- trunk/drivers/gpu/drm/radeon/evergreen.c | 44 +- .../gpu/drm/radeon/evergreen_blit_kms.c | 43 +- trunk/drivers/gpu/drm/radeon/evergreend.h | 2 + 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 | 11 +- trunk/drivers/gpu/drm/radeon/r600_reg.h | 6 +- trunk/drivers/gpu/drm/radeon/radeon.h | 11 +- trunk/drivers/gpu/drm/radeon/radeon_asic.c | 6 +- trunk/drivers/gpu/drm/radeon/radeon_asic.h | 1 + .../drivers/gpu/drm/radeon/radeon_atombios.c | 73 +- trunk/drivers/gpu/drm/radeon/radeon_combios.c | 11 + trunk/drivers/gpu/drm/radeon/radeon_device.c | 10 +- trunk/drivers/gpu/drm/radeon/radeon_display.c | 132 +++- trunk/drivers/gpu/drm/radeon/radeon_drv.c | 2 +- .../drivers/gpu/drm/radeon/radeon_encoders.c | 8 +- trunk/drivers/gpu/drm/radeon/radeon_irq_kms.c | 3 + trunk/drivers/gpu/drm/radeon/radeon_kms.c | 6 + .../gpu/drm/radeon/radeon_legacy_crtc.c | 6 +- trunk/drivers/gpu/drm/radeon/radeon_mode.h | 23 +- trunk/drivers/gpu/drm/radeon/radeon_pm.c | 5 +- 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/drm/radeon/rv770.c | 23 +- 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/infiniband/core/sa_query.c | 2 +- trunk/drivers/infiniband/core/ucma.c | 22 +- trunk/drivers/infiniband/hw/amso1100/c2_vq.c | 6 +- trunk/drivers/infiniband/hw/cxgb4/cm.c | 2 +- trunk/drivers/infiniband/hw/cxgb4/qp.c | 4 +- trunk/drivers/infiniband/hw/qib/qib_iba7322.c | 30 +- 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/misc/ixp4xx-beeper.c | 6 +- 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/md/md.c | 47 +- trunk/drivers/md/md.h | 2 - trunk/drivers/md/raid0.c | 40 + trunk/drivers/md/raid10.c | 6 +- trunk/drivers/md/raid5.c | 60 +- trunk/drivers/media/rc/ir-lirc-codec.c | 6 +- trunk/drivers/media/rc/keymaps/rc-rc6-mce.c | 6 + trunk/drivers/media/rc/mceusb.c | 9 +- trunk/drivers/media/rc/nuvoton-cir.c | 6 +- trunk/drivers/media/rc/rc-main.c | 28 +- trunk/drivers/media/rc/streamzap.c | 14 +- trunk/drivers/media/video/gspca/zc3xx.c | 31 +- trunk/drivers/media/video/hdpvr/hdpvr-core.c | 24 +- trunk/drivers/media/video/hdpvr/hdpvr-i2c.c | 30 +- trunk/drivers/media/video/hdpvr/hdpvr.h | 3 +- trunk/drivers/media/video/ir-kbd-i2c.c | 13 + .../media/video/pvrusb2/pvrusb2-i2c-core.c | 1 - trunk/drivers/media/video/saa7115.c | 2 +- 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/mlx4/main.c | 15 + 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/rtc/class.c | 1 + trunk/drivers/rtc/interface.c | 3 + trunk/drivers/s390/block/dasd_alias.c | 6 + trunk/drivers/s390/cio/qdio_main.c | 4 +- trunk/drivers/scsi/arcmsr/arcmsr.h | 11 +- trunk/drivers/scsi/arcmsr/arcmsr_attr.c | 2 +- trunk/drivers/scsi/arcmsr/arcmsr_hba.c | 114 +-- trunk/drivers/scsi/libsas/sas_scsi_host.c | 1 + trunk/drivers/scsi/mpt2sas/mpt2sas_base.c | 19 +- trunk/drivers/scsi/mpt2sas/mpt2sas_scsih.c | 64 +- 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/lirc/lirc_zilog.c | 32 +- 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/hvc/virtio_console.c | 18 +- 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/btrfs/acl.c | 6 + trunk/fs/btrfs/compression.c | 27 +- trunk/fs/btrfs/disk-io.c | 7 + trunk/fs/btrfs/export.c | 2 + trunk/fs/btrfs/extent-tree.c | 98 ++- trunk/fs/btrfs/extent_io.c | 6 +- trunk/fs/btrfs/file-item.c | 5 + trunk/fs/btrfs/file.c | 20 +- trunk/fs/btrfs/free-space-cache.c | 162 ++-- trunk/fs/btrfs/inode.c | 35 +- trunk/fs/btrfs/ioctl.c | 19 +- trunk/fs/btrfs/ordered-data.c | 2 +- trunk/fs/btrfs/print-tree.c | 1 + trunk/fs/btrfs/relocation.c | 29 +- trunk/fs/btrfs/super.c | 9 +- trunk/fs/btrfs/transaction.c | 5 + trunk/fs/btrfs/tree-log.c | 35 +- trunk/fs/btrfs/volumes.c | 19 +- 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/cifsacl.c | 4 + 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 | 8 +- trunk/fs/cifs/connect.c | 45 +- trunk/fs/cifs/file.c | 211 ++++- 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 | 66 +- trunk/fs/eventpoll.c | 16 +- trunk/fs/exec.c | 4 +- trunk/fs/exofs/inode.c | 2 - trunk/fs/fcntl.c | 2 +- trunk/fs/file_table.c | 2 +- trunk/fs/hfsplus/extents.c | 4 +- trunk/fs/hfsplus/part_tbl.c | 4 +- trunk/fs/hfsplus/super.c | 106 +-- trunk/fs/hfsplus/wrapper.c | 4 +- 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 | 24 +- trunk/include/drm/drmP.h | 2 +- trunk/include/drm/drm_crtc.h | 7 + trunk/include/drm/drm_pciids.h | 1 - trunk/include/drm/radeon_drm.h | 1 + trunk/include/linux/console.h | 6 +- trunk/include/linux/fs.h | 5 +- trunk/include/linux/input/bu21013.h | 4 - trunk/include/linux/irq.h | 3 +- trunk/include/linux/kernel.h | 2 +- trunk/include/linux/mmc/sh_mmcif.h | 4 +- trunk/include/linux/module.h | 4 +- trunk/include/linux/nfsacl.h | 4 +- trunk/include/linux/posix_acl.h | 1 + trunk/include/linux/res_counter.h | 20 + trunk/include/linux/sunrpc/bc_xprt.h | 13 - trunk/include/linux/sunrpc/svc_xprt.h | 1 - trunk/include/linux/syscalls.h | 28 +- trunk/include/linux/sysrq.h | 3 + trunk/include/linux/tracepoint.h | 35 +- trunk/include/linux/usb/hcd.h | 1 + trunk/include/linux/usb/serial.h | 3 + trunk/include/linux/virtio_console.h | 3 +- trunk/include/scsi/scsi.h | 1 + trunk/include/trace/ftrace.h | 24 +- trunk/init/calibrate.c | 6 +- trunk/kernel/cred.c | 16 +- trunk/kernel/irq/migration.c | 14 +- trunk/kernel/module.c | 16 +- trunk/kernel/perf_event.c | 10 +- trunk/kernel/printk.c | 100 +-- trunk/kernel/sched_fair.c | 13 +- trunk/kernel/sched_rt.c | 2 +- trunk/kernel/sys.c | 3 +- trunk/kernel/sysctl.c | 3 +- trunk/kernel/timer.c | 6 +- trunk/kernel/trace/blktrace.c | 7 + trunk/kernel/trace/trace_events.c | 12 +- trunk/kernel/trace/trace_export.c | 6 +- trunk/kernel/trace/trace_syscalls.c | 19 +- trunk/kernel/tracepoint.c | 31 +- trunk/kernel/watchdog.c | 43 +- trunk/lib/radix-tree.c | 7 +- trunk/lib/rbtree.c | 3 + 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/sunrpc/svcsock.c | 4 +- trunk/scripts/package/builddeb | 6 +- 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 +- trunk/security/selinux/hooks.c | 6 +- trunk/sound/arm/aaci.c | 56 +- trunk/sound/atmel/ac97c.c | 5 +- trunk/sound/drivers/mtpav.c | 3 +- trunk/sound/oss/Makefile | 4 +- trunk/sound/pci/azt3328.c | 38 +- trunk/sound/pci/hda/hda_eld.c | 2 +- trunk/sound/pci/hda/patch_conexant.c | 149 ++-- trunk/sound/pci/hda/patch_realtek.c | 6 +- trunk/sound/pci/oxygen/oxygen.h | 2 + trunk/sound/pci/oxygen/oxygen_mixer.c | 2 + trunk/sound/pci/oxygen/xonar_cs43xx.c | 2 +- trunk/sound/pci/oxygen/xonar_dg.c | 36 + trunk/sound/pcmcia/pdaudiocf/pdaudiocf.h | 2 +- trunk/sound/pcmcia/vx/vxp_ops.c | 2 +- trunk/sound/soc/atmel/snd-soc-afeb9260.c | 2 +- trunk/sound/soc/blackfin/bf5xx-ssm2602.c | 2 +- trunk/sound/soc/codecs/cq93vc.c | 2 +- trunk/sound/soc/codecs/cx20442.c | 3 + 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/omap/ams-delta.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/sound/soc/soc-core.c | 3 - trunk/sound/soc/soc-dapm.c | 6 +- trunk/tools/perf/util/evsel.c | 2 +- 563 files changed, 6551 insertions(+), 3891 deletions(-) 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 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 diff --git a/[refs] b/[refs] index ccc2dea12c20..d8256ee28720 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3e9d08ec0a68f6faf718d5a7e050fe5ca0ba004f +refs/heads/master: e128c5e26bd474a2a56b96ec7c8967aff347b763 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/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/scheduler/sched-stats.txt b/trunk/Documentation/scheduler/sched-stats.txt index 01e69404ee5e..1cd5d51bc761 100644 --- a/trunk/Documentation/scheduler/sched-stats.txt +++ b/trunk/Documentation/scheduler/sched-stats.txt @@ -1,3 +1,7 @@ +Version 15 of schedstats dropped counters for some sched_yield: +yld_exp_empty, yld_act_empty and yld_both_empty. Otherwise, it is +identical to version 14. + Version 14 of schedstats includes support for sched_domains, which hit the mainline kernel in 2.6.20 although it is identical to the stats from version 12 which was in the kernel from 2.6.13-2.6.19 (version 13 never saw a kernel @@ -28,32 +32,25 @@ to write their own scripts, the fields are described here. CPU statistics -------------- -cpu 1 2 3 4 5 6 7 8 9 10 11 12 - -NOTE: In the sched_yield() statistics, the active queue is considered empty - if it has only one process in it, since obviously the process calling - sched_yield() is that process. +cpu 1 2 3 4 5 6 7 8 9 -First four fields are sched_yield() statistics: - 1) # of times both the active and the expired queue were empty - 2) # of times just the active queue was empty - 3) # of times just the expired queue was empty - 4) # of times sched_yield() was called +First field is a sched_yield() statistic: + 1) # of times sched_yield() was called Next three are schedule() statistics: - 5) # of times we switched to the expired queue and reused it - 6) # of times schedule() was called - 7) # of times schedule() left the processor idle + 2) # of times we switched to the expired queue and reused it + 3) # of times schedule() was called + 4) # of times schedule() left the processor idle Next two are try_to_wake_up() statistics: - 8) # of times try_to_wake_up() was called - 9) # of times try_to_wake_up() was called to wake up the local cpu + 5) # of times try_to_wake_up() was called + 6) # of times try_to_wake_up() was called to wake up the local cpu Next three are statistics describing scheduling latency: - 10) sum of all time spent running by tasks on this processor (in jiffies) - 11) sum of all time spent waiting to run by tasks on this processor (in + 7) sum of all time spent running by tasks on this processor (in jiffies) + 8) sum of all time spent waiting to run by tasks on this processor (in jiffies) - 12) # of timeslices run on this cpu + 9) # of timeslices run on this cpu Domain statistics diff --git a/trunk/Documentation/sound/alsa/HD-Audio-Models.txt b/trunk/Documentation/sound/alsa/HD-Audio-Models.txt index 16ae4300c747..0caf77e59be4 100644 --- a/trunk/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/trunk/Documentation/sound/alsa/HD-Audio-Models.txt @@ -296,6 +296,7 @@ Conexant 5066 ============= laptop Basic Laptop config (default) hp-laptop HP laptops, e g G60 + asus Asus K52JU, Lenovo G560 dell-laptop Dell laptops dell-vostro Dell Vostro olpc-xo-1_5 OLPC XO 1.5 diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 190c2a4c4824..531c5cf150ba 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 @@ -5607,18 +5615,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 @@ -6593,6 +6603,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..c9c8c8fd2591 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 38 -EXTRAVERSION = -rc2 +EXTRAVERSION = -rc4 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/core.c b/trunk/arch/arm/mach-ep93xx/core.c index ffdf87be2958..82079545adc4 100644 --- a/trunk/arch/arm/mach-ep93xx/core.c +++ b/trunk/arch/arm/mach-ep93xx/core.c @@ -838,7 +838,7 @@ EXPORT_SYMBOL(ep93xx_i2s_release); static struct resource ep93xx_ac97_resources[] = { { .start = EP93XX_AAC_PHYS_BASE, - .end = EP93XX_AAC_PHYS_BASE + 0xb0 - 1, + .end = EP93XX_AAC_PHYS_BASE + 0xac - 1, .flags = IORESOURCE_MEM, }, { 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-imx/mach-mx25_3ds.c b/trunk/arch/arm/mach-imx/mach-mx25_3ds.c index aa76cfd9f348..8382e7902078 100644 --- a/trunk/arch/arm/mach-imx/mach-mx25_3ds.c +++ b/trunk/arch/arm/mach-imx/mach-mx25_3ds.c @@ -180,7 +180,7 @@ static const uint32_t mx25pdk_keymap[] = { KEY(3, 3, KEY_POWER), }; -static const struct matrix_keymap_data mx25pdk_keymap_data __initdata = { +static const struct matrix_keymap_data mx25pdk_keymap_data __initconst = { .keymap = mx25pdk_keymap, .keymap_size = ARRAY_SIZE(mx25pdk_keymap), }; diff --git a/trunk/arch/arm/mach-ixp4xx/common.c b/trunk/arch/arm/mach-ixp4xx/common.c index 4dc68d6bb6be..9fd894271d5d 100644 --- a/trunk/arch/arm/mach-ixp4xx/common.c +++ b/trunk/arch/arm/mach-ixp4xx/common.c @@ -432,7 +432,7 @@ static struct clocksource clocksource_ixp4xx = { .flags = CLOCK_SOURCE_IS_CONTINUOUS, }; -unsigned long ixp4xx_timer_freq = FREQ; +unsigned long ixp4xx_timer_freq = IXP4XX_TIMER_FREQ; EXPORT_SYMBOL(ixp4xx_timer_freq); static void __init ixp4xx_clocksource_init(void) { @@ -496,7 +496,7 @@ static struct clock_event_device clockevent_ixp4xx = { static void __init ixp4xx_clockevent_init(void) { - clockevent_ixp4xx.mult = div_sc(FREQ, NSEC_PER_SEC, + clockevent_ixp4xx.mult = div_sc(IXP4XX_TIMER_FREQ, NSEC_PER_SEC, clockevent_ixp4xx.shift); clockevent_ixp4xx.max_delta_ns = clockevent_delta2ns(0xfffffffe, &clockevent_ixp4xx); diff --git a/trunk/arch/arm/mach-ixp4xx/include/mach/timex.h b/trunk/arch/arm/mach-ixp4xx/include/mach/timex.h index 2c3f93c3eb79..c9e930f29339 100644 --- a/trunk/arch/arm/mach-ixp4xx/include/mach/timex.h +++ b/trunk/arch/arm/mach-ixp4xx/include/mach/timex.h @@ -10,6 +10,7 @@ * 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the * timer register ignores the bottom 2 bits of the LATCH value. */ -#define FREQ 66666000 -#define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ) +#define IXP4XX_TIMER_FREQ 66666000 +#define CLOCK_TICK_RATE \ + (((IXP4XX_TIMER_FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ) diff --git a/trunk/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c b/trunk/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c index bfdbe4b5a3cc..852f7c9f87d0 100644 --- a/trunk/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c +++ b/trunk/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c @@ -265,6 +265,11 @@ void qmgr_release_queue(unsigned int queue) qmgr_queue_descs[queue], queue); qmgr_queue_descs[queue][0] = '\x0'; #endif + + while ((addr = qmgr_get_entry(queue))) + printk(KERN_ERR "qmgr: released queue %i not empty: 0x%08X\n", + queue, addr); + __raw_writel(0, &qmgr_regs->sram[queue]); used_sram_bitmap[0] &= ~mask[0]; @@ -275,10 +280,6 @@ void qmgr_release_queue(unsigned int queue) spin_unlock_irq(&qmgr_lock); module_put(THIS_MODULE); - - while ((addr = qmgr_get_entry(queue))) - printk(KERN_ERR "qmgr: released queue %i not empty: 0x%08X\n", - queue, addr); } static int qmgr_init(void) diff --git a/trunk/arch/arm/mach-mxs/clock-mx23.c b/trunk/arch/arm/mach-mxs/clock-mx23.c index b1a362ebfded..ca72a05ed9c1 100644 --- a/trunk/arch/arm/mach-mxs/clock-mx23.c +++ b/trunk/arch/arm/mach-mxs/clock-mx23.c @@ -304,7 +304,7 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \ reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_##dr); \ reg &= ~BM_CLKCTRL_##dr##_DIV; \ reg |= div << BP_CLKCTRL_##dr##_DIV; \ - if (reg | (1 << clk->enable_shift)) { \ + if (reg & (1 << clk->enable_shift)) { \ pr_err("%s: clock is gated\n", __func__); \ return -EINVAL; \ } \ @@ -347,7 +347,7 @@ static int name##_set_parent(struct clk *clk, struct clk *parent) \ { \ if (parent != clk->parent) { \ __raw_writel(BM_CLKCTRL_CLKSEQ_BYPASS_##bit, \ - HW_CLKCTRL_CLKSEQ_TOG); \ + CLKCTRL_BASE_ADDR + HW_CLKCTRL_CLKSEQ_TOG); \ clk->parent = parent; \ } \ \ diff --git a/trunk/arch/arm/mach-mxs/clock-mx28.c b/trunk/arch/arm/mach-mxs/clock-mx28.c index 56312c092a9e..fd1c4c54b8e5 100644 --- a/trunk/arch/arm/mach-mxs/clock-mx28.c +++ b/trunk/arch/arm/mach-mxs/clock-mx28.c @@ -355,12 +355,12 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \ } else { \ reg &= ~BM_CLKCTRL_##dr##_DIV; \ reg |= div << BP_CLKCTRL_##dr##_DIV; \ - if (reg | (1 << clk->enable_shift)) { \ + if (reg & (1 << clk->enable_shift)) { \ pr_err("%s: clock is gated\n", __func__); \ return -EINVAL; \ } \ } \ - __raw_writel(reg, CLKCTRL_BASE_ADDR + HW_CLKCTRL_CPU); \ + __raw_writel(reg, CLKCTRL_BASE_ADDR + HW_CLKCTRL_##dr); \ \ for (i = 10000; i; i--) \ if (!(__raw_readl(CLKCTRL_BASE_ADDR + \ @@ -483,7 +483,7 @@ static int name##_set_parent(struct clk *clk, struct clk *parent) \ { \ if (parent != clk->parent) { \ __raw_writel(BM_CLKCTRL_CLKSEQ_BYPASS_##bit, \ - HW_CLKCTRL_CLKSEQ_TOG); \ + CLKCTRL_BASE_ADDR + HW_CLKCTRL_CLKSEQ_TOG); \ clk->parent = parent; \ } \ \ @@ -609,7 +609,6 @@ static struct clk_lookup lookups[] = { _REGISTER_CLOCK("duart", NULL, uart_clk) _REGISTER_CLOCK("imx28-fec.0", NULL, fec_clk) _REGISTER_CLOCK("imx28-fec.1", NULL, fec_clk) - _REGISTER_CLOCK("fec.0", NULL, fec_clk) _REGISTER_CLOCK("rtc", NULL, rtc_clk) _REGISTER_CLOCK("pll2", NULL, pll2_clk) _REGISTER_CLOCK(NULL, "hclk", hbus_clk) diff --git a/trunk/arch/arm/mach-mxs/clock.c b/trunk/arch/arm/mach-mxs/clock.c index e7d2269cf70e..a7093c88e6a6 100644 --- a/trunk/arch/arm/mach-mxs/clock.c +++ b/trunk/arch/arm/mach-mxs/clock.c @@ -57,7 +57,6 @@ static void __clk_disable(struct clk *clk) if (clk->disable) clk->disable(clk); __clk_disable(clk->parent); - __clk_disable(clk->secondary); } } @@ -68,7 +67,6 @@ static int __clk_enable(struct clk *clk) if (clk->usecount++ == 0) { __clk_enable(clk->parent); - __clk_enable(clk->secondary); if (clk->enable) clk->enable(clk); diff --git a/trunk/arch/arm/mach-mxs/gpio.c b/trunk/arch/arm/mach-mxs/gpio.c index d7ad7a61366d..cb0c0e83a527 100644 --- a/trunk/arch/arm/mach-mxs/gpio.c +++ b/trunk/arch/arm/mach-mxs/gpio.c @@ -139,6 +139,8 @@ static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc) struct mxs_gpio_port *port = (struct mxs_gpio_port *)get_irq_data(irq); u32 gpio_irq_no_base = port->virtual_irq_start; + desc->irq_data.chip->irq_ack(&desc->irq_data); + irq_stat = __raw_readl(port->base + PINCTRL_IRQSTAT(port->id)) & __raw_readl(port->base + PINCTRL_IRQEN(port->id)); diff --git a/trunk/arch/arm/mach-mxs/include/mach/clock.h b/trunk/arch/arm/mach-mxs/include/mach/clock.h index 041e276d8a32..592c9ab5d760 100644 --- a/trunk/arch/arm/mach-mxs/include/mach/clock.h +++ b/trunk/arch/arm/mach-mxs/include/mach/clock.h @@ -29,8 +29,6 @@ struct clk { int id; /* Source clock this clk depends on */ struct clk *parent; - /* Secondary clock to enable/disable with this clock */ - struct clk *secondary; /* Reference count of clock enable/disable */ __s8 usecount; /* Register bit position for clock's enable/disable control. */ 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/lcd_dma.c b/trunk/arch/arm/mach-omap1/lcd_dma.c index c9088d85da04..453809359ba6 100644 --- a/trunk/arch/arm/mach-omap1/lcd_dma.c +++ b/trunk/arch/arm/mach-omap1/lcd_dma.c @@ -37,7 +37,7 @@ int omap_lcd_dma_running(void) * On OMAP1510, internal LCD controller will start the transfer * when it gets enabled, so assume DMA running if LCD enabled. */ - if (cpu_is_omap1510()) + if (cpu_is_omap15xx()) if (omap_readw(OMAP_LCDC_CONTROL) & OMAP_LCDC_CTRL_LCD_EN) return 1; @@ -95,7 +95,7 @@ EXPORT_SYMBOL(omap_set_lcd_dma_single_transfer); void omap_set_lcd_dma_b1_rotation(int rotate) { - if (cpu_is_omap1510()) { + if (cpu_is_omap15xx()) { printk(KERN_ERR "DMA rotation is not supported in 1510 mode\n"); BUG(); return; @@ -106,7 +106,7 @@ EXPORT_SYMBOL(omap_set_lcd_dma_b1_rotation); void omap_set_lcd_dma_b1_mirror(int mirror) { - if (cpu_is_omap1510()) { + if (cpu_is_omap15xx()) { printk(KERN_ERR "DMA mirror is not supported in 1510 mode\n"); BUG(); } @@ -116,7 +116,7 @@ EXPORT_SYMBOL(omap_set_lcd_dma_b1_mirror); void omap_set_lcd_dma_b1_vxres(unsigned long vxres) { - if (cpu_is_omap1510()) { + if (cpu_is_omap15xx()) { printk(KERN_ERR "DMA virtual resulotion is not supported " "in 1510 mode\n"); BUG(); @@ -127,7 +127,7 @@ EXPORT_SYMBOL(omap_set_lcd_dma_b1_vxres); void omap_set_lcd_dma_b1_scale(unsigned int xscale, unsigned int yscale) { - if (cpu_is_omap1510()) { + if (cpu_is_omap15xx()) { printk(KERN_ERR "DMA scale is not supported in 1510 mode\n"); BUG(); } @@ -177,7 +177,7 @@ static void set_b1_regs(void) bottom = PIXADDR(lcd_dma.xres - 1, lcd_dma.yres - 1); /* 1510 DMA requires the bottom address to be 2 more * than the actual last memory access location. */ - if (cpu_is_omap1510() && + if (cpu_is_omap15xx() && lcd_dma.data_type == OMAP_DMA_DATA_TYPE_S32) bottom += 2; ei = PIXSTEP(0, 0, 1, 0); @@ -241,7 +241,7 @@ static void set_b1_regs(void) return; /* Suppress warning about uninitialized vars */ } - if (cpu_is_omap1510()) { + if (cpu_is_omap15xx()) { omap_writew(top >> 16, OMAP1510_DMA_LCD_TOP_F1_U); omap_writew(top, OMAP1510_DMA_LCD_TOP_F1_L); omap_writew(bottom >> 16, OMAP1510_DMA_LCD_BOT_F1_U); @@ -343,7 +343,7 @@ void omap_free_lcd_dma(void) BUG(); return; } - if (!cpu_is_omap1510()) + if (!cpu_is_omap15xx()) omap_writew(omap_readw(OMAP1610_DMA_LCD_CCR) & ~1, OMAP1610_DMA_LCD_CCR); lcd_dma.reserved = 0; @@ -360,7 +360,7 @@ void omap_enable_lcd_dma(void) * connected. Otherwise the OMAP internal controller will * start the transfer when it gets enabled. */ - if (cpu_is_omap1510() || !lcd_dma.ext_ctrl) + if (cpu_is_omap15xx() || !lcd_dma.ext_ctrl) return; w = omap_readw(OMAP1610_DMA_LCD_CTRL); @@ -378,14 +378,14 @@ EXPORT_SYMBOL(omap_enable_lcd_dma); void omap_setup_lcd_dma(void) { BUG_ON(lcd_dma.active); - if (!cpu_is_omap1510()) { + if (!cpu_is_omap15xx()) { /* Set some reasonable defaults */ omap_writew(0x5440, OMAP1610_DMA_LCD_CCR); omap_writew(0x9102, OMAP1610_DMA_LCD_CSDP); omap_writew(0x0004, OMAP1610_DMA_LCD_LCH_CTRL); } set_b1_regs(); - if (!cpu_is_omap1510()) { + if (!cpu_is_omap15xx()) { u16 w; w = omap_readw(OMAP1610_DMA_LCD_CCR); @@ -407,7 +407,7 @@ void omap_stop_lcd_dma(void) u16 w; lcd_dma.active = 0; - if (cpu_is_omap1510() || !lcd_dma.ext_ctrl) + if (cpu_is_omap15xx() || !lcd_dma.ext_ctrl) return; w = omap_readw(OMAP1610_DMA_LCD_CCR); diff --git a/trunk/arch/arm/mach-omap1/time.c b/trunk/arch/arm/mach-omap1/time.c index f83fc335c613..6885d2fac183 100644 --- a/trunk/arch/arm/mach-omap1/time.c +++ b/trunk/arch/arm/mach-omap1/time.c @@ -44,7 +44,6 @@ #include #include #include -#include #include #include diff --git a/trunk/arch/arm/mach-omap2/board-devkit8000.c b/trunk/arch/arm/mach-omap2/board-devkit8000.c index e906e05bb41b..9a2a31e011ce 100644 --- a/trunk/arch/arm/mach-omap2/board-devkit8000.c +++ b/trunk/arch/arm/mach-omap2/board-devkit8000.c @@ -115,9 +115,6 @@ static struct omap2_hsmmc_info mmc[] = { static int devkit8000_panel_enable_lcd(struct omap_dss_device *dssdev) { - twl_i2c_write_u8(TWL4030_MODULE_GPIO, 0x80, REG_GPIODATADIR1); - twl_i2c_write_u8(TWL4030_MODULE_LED, 0x0, 0x0); - if (gpio_is_valid(dssdev->reset_gpio)) gpio_set_value_cansleep(dssdev->reset_gpio, 1); return 0; @@ -247,6 +244,8 @@ static struct gpio_led gpio_leds[]; static int devkit8000_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { + int ret; + omap_mux_init_gpio(29, OMAP_PIN_INPUT); /* gpio + 0 is "mmc0_cd" (input/IRQ) */ mmc[0].gpio_cd = gpio + 0; @@ -255,17 +254,23 @@ static int devkit8000_twl_gpio_setup(struct device *dev, /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; - /* gpio + 1 is "LCD_PWREN" (out, active high) */ - devkit8000_lcd_device.reset_gpio = gpio + 1; - gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN"); - /* Disable until needed */ - gpio_direction_output(devkit8000_lcd_device.reset_gpio, 0); + /* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */ + devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0; + ret = gpio_request_one(devkit8000_lcd_device.reset_gpio, + GPIOF_DIR_OUT | GPIOF_INIT_LOW, "LCD_PWREN"); + if (ret < 0) { + devkit8000_lcd_device.reset_gpio = -EINVAL; + printk(KERN_ERR "Failed to request GPIO for LCD_PWRN\n"); + } /* gpio + 7 is "DVI_PD" (out, active low) */ devkit8000_dvi_device.reset_gpio = gpio + 7; - gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown"); - /* Disable until needed */ - gpio_direction_output(devkit8000_dvi_device.reset_gpio, 0); + ret = gpio_request_one(devkit8000_dvi_device.reset_gpio, + GPIOF_DIR_OUT | GPIOF_INIT_LOW, "DVI PowerDown"); + if (ret < 0) { + devkit8000_dvi_device.reset_gpio = -EINVAL; + printk(KERN_ERR "Failed to request GPIO for DVI PowerDown\n"); + } return 0; } diff --git a/trunk/arch/arm/mach-omap2/board-omap4panda.c b/trunk/arch/arm/mach-omap2/board-omap4panda.c index e001a048dc0c..e944025d5ef8 100644 --- a/trunk/arch/arm/mach-omap2/board-omap4panda.c +++ b/trunk/arch/arm/mach-omap2/board-omap4panda.c @@ -409,8 +409,6 @@ static void __init omap4_panda_init(void) platform_add_devices(panda_devices, ARRAY_SIZE(panda_devices)); omap_serial_init(); omap4_twl6030_hsmmc_init(mmc); - /* OMAP4 Panda uses internal transceiver so register nop transceiver */ - usb_nop_xceiv_register(); omap4_ehci_init(); usb_musb_init(&musb_board_data); } diff --git a/trunk/arch/arm/mach-omap2/board-rm680.c b/trunk/arch/arm/mach-omap2/board-rm680.c index cb77be7ac44f..39a71bb8a308 100644 --- a/trunk/arch/arm/mach-omap2/board-rm680.c +++ b/trunk/arch/arm/mach-omap2/board-rm680.c @@ -40,9 +40,6 @@ static struct regulator_consumer_supply rm680_vemmc_consumers[] = { static struct regulator_init_data rm680_vemmc = { .constraints = { .name = "rm680_vemmc", - .min_uV = 2900000, - .max_uV = 2900000, - .apply_uV = 1, .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, .valid_ops_mask = REGULATOR_CHANGE_STATUS 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..98148b6c36e9 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, '.'); @@ -1000,6 +1000,7 @@ int __init omap_mux_init(const char *name, u32 flags, if (!partition->base) { pr_err("%s: Could not ioremap mux partition at 0x%08x\n", __func__, partition->phys); + kfree(partition); return -ENODEV; } 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..2f864e4b085d 100644 --- a/trunk/arch/arm/mach-omap2/pm34xx.c +++ b/trunk/arch/arm/mach-omap2/pm34xx.c @@ -168,9 +168,10 @@ static void omap3_core_restore_context(void) * once during boot sequence, but this works as we are not using secure * services. */ -static void omap3_save_secure_ram_context(u32 target_mpu_state) +static void omap3_save_secure_ram_context(void) { u32 ret; + int mpu_next_state = pwrdm_read_next_pwrst(mpu_pwrdm); if (omap_type() != OMAP2_DEVICE_TYPE_GP) { /* @@ -181,7 +182,7 @@ static void omap3_save_secure_ram_context(u32 target_mpu_state) pwrdm_set_next_pwrst(mpu_pwrdm, PWRDM_POWER_ON); ret = _omap_save_secure_sram((u32 *) __pa(omap3_secure_ram_storage)); - pwrdm_set_next_pwrst(mpu_pwrdm, target_mpu_state); + pwrdm_set_next_pwrst(mpu_pwrdm, mpu_next_state); /* Following is for error tracking, it should not happen */ if (ret) { printk(KERN_ERR "save_secure_sram() returns %08x\n", @@ -398,7 +399,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 +482,7 @@ void omap_sram_idle(void) } if (!is_suspending()) - release_console_sem(); + console_unlock(); console_still_active: /* Disable IO-PAD and IO-CHAIN wakeup */ @@ -1094,7 +1095,7 @@ static int __init omap3_pm_init(void) local_fiq_disable(); omap_dma_global_context_save(); - omap3_save_secure_ram_context(PWRDM_POWER_ON); + omap3_save_secure_ram_context(); omap_dma_global_context_restore(); local_irq_enable(); 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/smartreflex.c b/trunk/arch/arm/mach-omap2/smartreflex.c index 77ecebf3fae2..c37e823266d3 100644 --- a/trunk/arch/arm/mach-omap2/smartreflex.c +++ b/trunk/arch/arm/mach-omap2/smartreflex.c @@ -780,8 +780,7 @@ static int omap_sr_autocomp_show(void *data, u64 *val) struct omap_sr *sr_info = (struct omap_sr *) data; if (!sr_info) { - pr_warning("%s: omap_sr struct for sr_%s not found\n", - __func__, sr_info->voltdm->name); + pr_warning("%s: omap_sr struct not found\n", __func__); return -EINVAL; } @@ -795,8 +794,7 @@ static int omap_sr_autocomp_store(void *data, u64 val) struct omap_sr *sr_info = (struct omap_sr *) data; if (!sr_info) { - pr_warning("%s: omap_sr struct for sr_%s not found\n", - __func__, sr_info->voltdm->name); + pr_warning("%s: omap_sr struct not found\n", __func__); return -EINVAL; } @@ -834,7 +832,8 @@ static int __init omap_sr_probe(struct platform_device *pdev) if (!pdata) { dev_err(&pdev->dev, "%s: platform data missing\n", __func__); - return -EINVAL; + ret = -EINVAL; + goto err_free_devinfo; } mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -966,7 +965,7 @@ static int __devexit omap_sr_remove(struct platform_device *pdev) } sr_info = _sr_lookup(pdata->voltdm); - if (!sr_info) { + if (IS_ERR(sr_info)) { dev_warn(&pdev->dev, "%s: omap_sr struct not found\n", __func__); return -EINVAL; diff --git a/trunk/arch/arm/mach-omap2/voltage.c b/trunk/arch/arm/mach-omap2/voltage.c index ed6079c94c57..12be525b8df4 100644 --- a/trunk/arch/arm/mach-omap2/voltage.c +++ b/trunk/arch/arm/mach-omap2/voltage.c @@ -471,6 +471,7 @@ static void __init vdd_debugfs_init(struct omap_vdd_info *vdd) strcat(name, vdd->voltdm.name); vdd->debug_dir = debugfs_create_dir(name, voltage_dir); + kfree(name); if (IS_ERR(vdd->debug_dir)) { pr_warning("%s: Unable to create debugfs directory for" " vdd_%s\n", __func__, vdd->voltdm.name); 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