aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/configs/omap_h2_1610_defconfig71
-rw-r--r--arch/arm/configs/omap_osk_5912_defconfig123
-rw-r--r--arch/arm/mach-omap1/board-h2.c4
-rw-r--r--arch/arm/mach-omap1/board-h3.c22
-rw-r--r--arch/arm/mach-omap1/pm.c2
-rw-r--r--arch/arm/mach-omap2/io.c6
-rw-r--r--arch/arm/plat-omap/cpu-omap.c32
-rw-r--r--arch/arm/plat-omap/devices.c63
-rw-r--r--arch/arm/plat-omap/dma.c10
-rw-r--r--arch/arm/plat-omap/gpio.c65
10 files changed, 229 insertions, 169 deletions
diff --git a/arch/arm/configs/omap_h2_1610_defconfig b/arch/arm/configs/omap_h2_1610_defconfig
index c2345af3707a..323c1deeb953 100644
--- a/arch/arm/configs/omap_h2_1610_defconfig
+++ b/arch/arm/configs/omap_h2_1610_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc5 3# Linux kernel version: 2.6.25-rc3
4# Mon Dec 17 20:04:38 2007 4# Mon Mar 3 03:39:48 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -21,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y 22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
24CONFIG_ZONE_DMA=y 25CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000 26CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -40,17 +41,22 @@ CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set 41# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set 42# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set 43# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_PID_NS is not set
45# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
46# CONFIG_IKCONFIG is not set 45# CONFIG_IKCONFIG is not set
47CONFIG_LOG_BUF_SHIFT=14 46CONFIG_LOG_BUF_SHIFT=14
48# CONFIG_CGROUPS is not set 47# CONFIG_CGROUPS is not set
48CONFIG_GROUP_SCHED=y
49CONFIG_FAIR_GROUP_SCHED=y 49CONFIG_FAIR_GROUP_SCHED=y
50CONFIG_FAIR_USER_SCHED=y 50# CONFIG_RT_GROUP_SCHED is not set
51# CONFIG_FAIR_CGROUP_SCHED is not set 51CONFIG_USER_SCHED=y
52# CONFIG_CGROUP_SCHED is not set
52# CONFIG_SYSFS_DEPRECATED is not set 53# CONFIG_SYSFS_DEPRECATED is not set
53# CONFIG_RELAY is not set 54# CONFIG_RELAY is not set
55CONFIG_NAMESPACES=y
56# CONFIG_UTS_NS is not set
57# CONFIG_IPC_NS is not set
58# CONFIG_USER_NS is not set
59# CONFIG_PID_NS is not set
54CONFIG_BLK_DEV_INITRD=y 60CONFIG_BLK_DEV_INITRD=y
55CONFIG_INITRAMFS_SOURCE="" 61CONFIG_INITRAMFS_SOURCE=""
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y 62CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -64,17 +70,26 @@ CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 70CONFIG_PRINTK=y
65CONFIG_BUG=y 71CONFIG_BUG=y
66CONFIG_ELF_CORE=y 72CONFIG_ELF_CORE=y
73CONFIG_COMPAT_BRK=y
67CONFIG_BASE_FULL=y 74CONFIG_BASE_FULL=y
68CONFIG_FUTEX=y 75CONFIG_FUTEX=y
69CONFIG_ANON_INODES=y 76CONFIG_ANON_INODES=y
70CONFIG_EPOLL=y 77CONFIG_EPOLL=y
71CONFIG_SIGNALFD=y 78CONFIG_SIGNALFD=y
79CONFIG_TIMERFD=y
72CONFIG_EVENTFD=y 80CONFIG_EVENTFD=y
73CONFIG_SHMEM=y 81CONFIG_SHMEM=y
74CONFIG_VM_EVENT_COUNTERS=y 82CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_SLAB=y 83CONFIG_SLAB=y
76# CONFIG_SLUB is not set 84# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 85# CONFIG_SLOB is not set
86# CONFIG_PROFILING is not set
87# CONFIG_MARKERS is not set
88CONFIG_HAVE_OPROFILE=y
89# CONFIG_KPROBES is not set
90CONFIG_HAVE_KPROBES=y
91CONFIG_PROC_PAGE_MONITOR=y
92CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set 94# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
@@ -102,6 +117,8 @@ CONFIG_DEFAULT_AS=y
102# CONFIG_DEFAULT_CFQ is not set 117# CONFIG_DEFAULT_CFQ is not set
103# CONFIG_DEFAULT_NOOP is not set 118# CONFIG_DEFAULT_NOOP is not set
104CONFIG_DEFAULT_IOSCHED="anticipatory" 119CONFIG_DEFAULT_IOSCHED="anticipatory"
120CONFIG_CLASSIC_RCU=y
121# CONFIG_PREEMPT_RCU is not set
105 122
106# 123#
107# System Type 124# System Type
@@ -130,6 +147,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
130# CONFIG_ARCH_KS8695 is not set 147# CONFIG_ARCH_KS8695 is not set
131# CONFIG_ARCH_NS9XXX is not set 148# CONFIG_ARCH_NS9XXX is not set
132# CONFIG_ARCH_MXC is not set 149# CONFIG_ARCH_MXC is not set
150# CONFIG_ARCH_ORION is not set
133# CONFIG_ARCH_PNX4008 is not set 151# CONFIG_ARCH_PNX4008 is not set
134# CONFIG_ARCH_PXA is not set 152# CONFIG_ARCH_PXA is not set
135# CONFIG_ARCH_RPC is not set 153# CONFIG_ARCH_RPC is not set
@@ -139,6 +157,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
139# CONFIG_ARCH_LH7A40X is not set 157# CONFIG_ARCH_LH7A40X is not set
140# CONFIG_ARCH_DAVINCI is not set 158# CONFIG_ARCH_DAVINCI is not set
141CONFIG_ARCH_OMAP=y 159CONFIG_ARCH_OMAP=y
160# CONFIG_ARCH_MSM7X00A is not set
142 161
143# 162#
144# TI OMAP Implementations 163# TI OMAP Implementations
@@ -155,6 +174,7 @@ CONFIG_OMAP_MUX=y
155# CONFIG_OMAP_MUX_DEBUG is not set 174# CONFIG_OMAP_MUX_DEBUG is not set
156CONFIG_OMAP_MUX_WARNINGS=y 175CONFIG_OMAP_MUX_WARNINGS=y
157CONFIG_OMAP_MCBSP=y 176CONFIG_OMAP_MCBSP=y
177# CONFIG_OMAP_MMU_FWK is not set
158# CONFIG_OMAP_MPU_TIMER is not set 178# CONFIG_OMAP_MPU_TIMER is not set
159CONFIG_OMAP_32K_TIMER=y 179CONFIG_OMAP_32K_TIMER=y
160CONFIG_OMAP_32K_TIMER_HZ=128 180CONFIG_OMAP_32K_TIMER_HZ=128
@@ -266,6 +286,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0
266CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh" 286CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh"
267# CONFIG_XIP_KERNEL is not set 287# CONFIG_XIP_KERNEL is not set
268# CONFIG_KEXEC is not set 288# CONFIG_KEXEC is not set
289# CONFIG_ATAGS_PROC is not set
269 290
270# 291#
271# CPU Frequency scaling 292# CPU Frequency scaling
@@ -311,9 +332,10 @@ CONFIG_PM=y
311# CONFIG_PM_LEGACY is not set 332# CONFIG_PM_LEGACY is not set
312# CONFIG_PM_DEBUG is not set 333# CONFIG_PM_DEBUG is not set
313CONFIG_PM_SLEEP=y 334CONFIG_PM_SLEEP=y
314CONFIG_SUSPEND_UP_POSSIBLE=y
315CONFIG_SUSPEND=y 335CONFIG_SUSPEND=y
336CONFIG_SUSPEND_FREEZER=y
316# CONFIG_APM_EMULATION is not set 337# CONFIG_APM_EMULATION is not set
338CONFIG_ARCH_SUSPEND_POSSIBLE=y
317 339
318# 340#
319# Networking 341# Networking
@@ -330,6 +352,7 @@ CONFIG_XFRM=y
330# CONFIG_XFRM_USER is not set 352# CONFIG_XFRM_USER is not set
331# CONFIG_XFRM_SUB_POLICY is not set 353# CONFIG_XFRM_SUB_POLICY is not set
332# CONFIG_XFRM_MIGRATE is not set 354# CONFIG_XFRM_MIGRATE is not set
355# CONFIG_XFRM_STATISTICS is not set
333# CONFIG_NET_KEY is not set 356# CONFIG_NET_KEY is not set
334CONFIG_INET=y 357CONFIG_INET=y
335# CONFIG_IP_MULTICAST is not set 358# CONFIG_IP_MULTICAST is not set
@@ -384,6 +407,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
384# 407#
385# CONFIG_NET_PKTGEN is not set 408# CONFIG_NET_PKTGEN is not set
386# CONFIG_HAMRADIO is not set 409# CONFIG_HAMRADIO is not set
410# CONFIG_CAN is not set
387# CONFIG_IRDA is not set 411# CONFIG_IRDA is not set
388# CONFIG_BT is not set 412# CONFIG_BT is not set
389# CONFIG_AF_RXRPC is not set 413# CONFIG_AF_RXRPC is not set
@@ -421,11 +445,13 @@ CONFIG_BLK_DEV_LOOP=y
421CONFIG_BLK_DEV_RAM=y 445CONFIG_BLK_DEV_RAM=y
422CONFIG_BLK_DEV_RAM_COUNT=16 446CONFIG_BLK_DEV_RAM_COUNT=16
423CONFIG_BLK_DEV_RAM_SIZE=8192 447CONFIG_BLK_DEV_RAM_SIZE=8192
424CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 448# CONFIG_BLK_DEV_XIP is not set
425# CONFIG_CDROM_PKTCDVD is not set 449# CONFIG_CDROM_PKTCDVD is not set
426CONFIG_ATA_OVER_ETH=m 450CONFIG_ATA_OVER_ETH=m
427CONFIG_MISC_DEVICES=y 451CONFIG_MISC_DEVICES=y
428# CONFIG_EEPROM_93CX6 is not set 452# CONFIG_EEPROM_93CX6 is not set
453# CONFIG_ENCLOSURE_SERVICES is not set
454# CONFIG_HAVE_IDE is not set
429 455
430# 456#
431# SCSI device support 457# SCSI device support
@@ -489,6 +515,7 @@ CONFIG_SMC91X=y
489# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 515# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
490# CONFIG_B44 is not set 516# CONFIG_B44 is not set
491CONFIG_NETDEV_1000=y 517CONFIG_NETDEV_1000=y
518# CONFIG_E1000E_ENABLED is not set
492CONFIG_NETDEV_10000=y 519CONFIG_NETDEV_10000=y
493 520
494# 521#
@@ -512,7 +539,6 @@ CONFIG_SLIP_COMPRESSED=y
512CONFIG_SLHC=y 539CONFIG_SLHC=y
513# CONFIG_SLIP_SMART is not set 540# CONFIG_SLIP_SMART is not set
514# CONFIG_SLIP_MODE_SLIP6 is not set 541# CONFIG_SLIP_MODE_SLIP6 is not set
515# CONFIG_SHAPER is not set
516# CONFIG_NETCONSOLE is not set 542# CONFIG_NETCONSOLE is not set
517# CONFIG_NETPOLL is not set 543# CONFIG_NETPOLL is not set
518# CONFIG_NET_POLL_CONTROLLER is not set 544# CONFIG_NET_POLL_CONTROLLER is not set
@@ -616,12 +642,10 @@ CONFIG_I2C_OMAP=y
616# 642#
617# Miscellaneous I2C Chip support 643# Miscellaneous I2C Chip support
618# 644#
619# CONFIG_SENSORS_DS1337 is not set
620# CONFIG_SENSORS_DS1374 is not set
621# CONFIG_DS1682 is not set 645# CONFIG_DS1682 is not set
622# CONFIG_SENSORS_EEPROM is not set 646# CONFIG_SENSORS_EEPROM is not set
623# CONFIG_SENSORS_PCF8574 is not set 647# CONFIG_SENSORS_PCF8574 is not set
624# CONFIG_SENSORS_PCA9539 is not set 648# CONFIG_PCF8575 is not set
625# CONFIG_SENSORS_PCF8591 is not set 649# CONFIG_SENSORS_PCF8591 is not set
626# CONFIG_ISP1301_OMAP is not set 650# CONFIG_ISP1301_OMAP is not set
627CONFIG_TPS65010=y 651CONFIG_TPS65010=y
@@ -649,6 +673,7 @@ CONFIG_HWMON=y
649# CONFIG_SENSORS_ADM1031 is not set 673# CONFIG_SENSORS_ADM1031 is not set
650# CONFIG_SENSORS_ADM9240 is not set 674# CONFIG_SENSORS_ADM9240 is not set
651# CONFIG_SENSORS_ADT7470 is not set 675# CONFIG_SENSORS_ADT7470 is not set
676# CONFIG_SENSORS_ADT7473 is not set
652# CONFIG_SENSORS_ATXP1 is not set 677# CONFIG_SENSORS_ATXP1 is not set
653# CONFIG_SENSORS_DS1621 is not set 678# CONFIG_SENSORS_DS1621 is not set
654# CONFIG_SENSORS_F71805F is not set 679# CONFIG_SENSORS_F71805F is not set
@@ -676,6 +701,7 @@ CONFIG_HWMON=y
676# CONFIG_SENSORS_SMSC47M1 is not set 701# CONFIG_SENSORS_SMSC47M1 is not set
677# CONFIG_SENSORS_SMSC47M192 is not set 702# CONFIG_SENSORS_SMSC47M192 is not set
678# CONFIG_SENSORS_SMSC47B397 is not set 703# CONFIG_SENSORS_SMSC47B397 is not set
704# CONFIG_SENSORS_ADS7828 is not set
679# CONFIG_SENSORS_THMC50 is not set 705# CONFIG_SENSORS_THMC50 is not set
680# CONFIG_SENSORS_VT1211 is not set 706# CONFIG_SENSORS_VT1211 is not set
681# CONFIG_SENSORS_W83781D is not set 707# CONFIG_SENSORS_W83781D is not set
@@ -683,6 +709,7 @@ CONFIG_HWMON=y
683# CONFIG_SENSORS_W83792D is not set 709# CONFIG_SENSORS_W83792D is not set
684# CONFIG_SENSORS_W83793 is not set 710# CONFIG_SENSORS_W83793 is not set
685# CONFIG_SENSORS_W83L785TS is not set 711# CONFIG_SENSORS_W83L785TS is not set
712# CONFIG_SENSORS_W83L786NG is not set
686# CONFIG_SENSORS_W83627HF is not set 713# CONFIG_SENSORS_W83627HF is not set
687# CONFIG_SENSORS_W83627EHF is not set 714# CONFIG_SENSORS_W83627EHF is not set
688# CONFIG_HWMON_DEBUG_CHIP is not set 715# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -705,6 +732,7 @@ CONFIG_SSB_POSSIBLE=y
705# Multifunction device drivers 732# Multifunction device drivers
706# 733#
707# CONFIG_MFD_SM501 is not set 734# CONFIG_MFD_SM501 is not set
735# CONFIG_MFD_ASIC3 is not set
708 736
709# 737#
710# Multimedia devices 738# Multimedia devices
@@ -802,10 +830,6 @@ CONFIG_USB_ARCH_HAS_OHCI=y
802# 830#
803# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 831# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
804# 832#
805
806#
807# USB Gadget Support
808#
809# CONFIG_USB_GADGET is not set 833# CONFIG_USB_GADGET is not set
810# CONFIG_MMC is not set 834# CONFIG_MMC is not set
811# CONFIG_NEW_LEDS is not set 835# CONFIG_NEW_LEDS is not set
@@ -826,12 +850,10 @@ CONFIG_EXT2_FS=y
826# CONFIG_XFS_FS is not set 850# CONFIG_XFS_FS is not set
827# CONFIG_GFS2_FS is not set 851# CONFIG_GFS2_FS is not set
828# CONFIG_OCFS2_FS is not set 852# CONFIG_OCFS2_FS is not set
829# CONFIG_MINIX_FS is not set 853CONFIG_DNOTIFY=y
830CONFIG_ROMFS_FS=y
831CONFIG_INOTIFY=y 854CONFIG_INOTIFY=y
832CONFIG_INOTIFY_USER=y 855CONFIG_INOTIFY_USER=y
833# CONFIG_QUOTA is not set 856# CONFIG_QUOTA is not set
834CONFIG_DNOTIFY=y
835# CONFIG_AUTOFS_FS is not set 857# CONFIG_AUTOFS_FS is not set
836# CONFIG_AUTOFS4_FS is not set 858# CONFIG_AUTOFS4_FS is not set
837# CONFIG_FUSE_FS is not set 859# CONFIG_FUSE_FS is not set
@@ -874,8 +896,10 @@ CONFIG_SYSFS=y
874# CONFIG_EFS_FS is not set 896# CONFIG_EFS_FS is not set
875CONFIG_CRAMFS=y 897CONFIG_CRAMFS=y
876# CONFIG_VXFS_FS is not set 898# CONFIG_VXFS_FS is not set
899# CONFIG_MINIX_FS is not set
877# CONFIG_HPFS_FS is not set 900# CONFIG_HPFS_FS is not set
878# CONFIG_QNX4FS_FS is not set 901# CONFIG_QNX4FS_FS is not set
902CONFIG_ROMFS_FS=y
879# CONFIG_SYSV_FS is not set 903# CONFIG_SYSV_FS is not set
880# CONFIG_UFS_FS is not set 904# CONFIG_UFS_FS is not set
881CONFIG_NETWORK_FILESYSTEMS=y 905CONFIG_NETWORK_FILESYSTEMS=y
@@ -946,9 +970,6 @@ CONFIG_NLS_ISO8859_1=y
946# CONFIG_NLS_KOI8_U is not set 970# CONFIG_NLS_KOI8_U is not set
947# CONFIG_NLS_UTF8 is not set 971# CONFIG_NLS_UTF8 is not set
948# CONFIG_DLM is not set 972# CONFIG_DLM is not set
949CONFIG_INSTRUMENTATION=y
950# CONFIG_PROFILING is not set
951# CONFIG_MARKERS is not set
952 973
953# 974#
954# Kernel hacking 975# Kernel hacking
@@ -975,6 +996,7 @@ CONFIG_FRAME_POINTER=y
975CONFIG_CRYPTO=y 996CONFIG_CRYPTO=y
976CONFIG_CRYPTO_ALGAPI=y 997CONFIG_CRYPTO_ALGAPI=y
977CONFIG_CRYPTO_BLKCIPHER=y 998CONFIG_CRYPTO_BLKCIPHER=y
999# CONFIG_CRYPTO_SEQIV is not set
978CONFIG_CRYPTO_MANAGER=y 1000CONFIG_CRYPTO_MANAGER=y
979# CONFIG_CRYPTO_HMAC is not set 1001# CONFIG_CRYPTO_HMAC is not set
980# CONFIG_CRYPTO_XCBC is not set 1002# CONFIG_CRYPTO_XCBC is not set
@@ -992,6 +1014,9 @@ CONFIG_CRYPTO_CBC=y
992CONFIG_CRYPTO_PCBC=m 1014CONFIG_CRYPTO_PCBC=m
993# CONFIG_CRYPTO_LRW is not set 1015# CONFIG_CRYPTO_LRW is not set
994# CONFIG_CRYPTO_XTS is not set 1016# CONFIG_CRYPTO_XTS is not set
1017# CONFIG_CRYPTO_CTR is not set
1018# CONFIG_CRYPTO_GCM is not set
1019# CONFIG_CRYPTO_CCM is not set
995# CONFIG_CRYPTO_CRYPTD is not set 1020# CONFIG_CRYPTO_CRYPTD is not set
996CONFIG_CRYPTO_DES=y 1021CONFIG_CRYPTO_DES=y
997# CONFIG_CRYPTO_FCRYPT is not set 1022# CONFIG_CRYPTO_FCRYPT is not set
@@ -1006,12 +1031,14 @@ CONFIG_CRYPTO_DES=y
1006# CONFIG_CRYPTO_KHAZAD is not set 1031# CONFIG_CRYPTO_KHAZAD is not set
1007# CONFIG_CRYPTO_ANUBIS is not set 1032# CONFIG_CRYPTO_ANUBIS is not set
1008# CONFIG_CRYPTO_SEED is not set 1033# CONFIG_CRYPTO_SEED is not set
1034# CONFIG_CRYPTO_SALSA20 is not set
1009# CONFIG_CRYPTO_DEFLATE is not set 1035# CONFIG_CRYPTO_DEFLATE is not set
1010# CONFIG_CRYPTO_MICHAEL_MIC is not set 1036# CONFIG_CRYPTO_MICHAEL_MIC is not set
1011# CONFIG_CRYPTO_CRC32C is not set 1037# CONFIG_CRYPTO_CRC32C is not set
1012# CONFIG_CRYPTO_CAMELLIA is not set 1038# CONFIG_CRYPTO_CAMELLIA is not set
1013# CONFIG_CRYPTO_TEST is not set 1039# CONFIG_CRYPTO_TEST is not set
1014# CONFIG_CRYPTO_AUTHENC is not set 1040# CONFIG_CRYPTO_AUTHENC is not set
1041# CONFIG_CRYPTO_LZO is not set
1015CONFIG_CRYPTO_HW=y 1042CONFIG_CRYPTO_HW=y
1016 1043
1017# 1044#
diff --git a/arch/arm/configs/omap_osk_5912_defconfig b/arch/arm/configs/omap_osk_5912_defconfig
index d592a6487114..d4ca5e6e4ffa 100644
--- a/arch/arm/configs/omap_osk_5912_defconfig
+++ b/arch/arm/configs/omap_osk_5912_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc5 3# Linux kernel version: 2.6.25-rc3
4# Mon Dec 17 21:12:45 2007 4# Mon Mar 3 03:35:17 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -21,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y 22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
24CONFIG_ZONE_DMA=y 25CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000 26CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -39,17 +40,22 @@ CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_POSIX_MQUEUE is not set 40# CONFIG_POSIX_MQUEUE is not set
40# CONFIG_BSD_PROCESS_ACCT is not set 41# CONFIG_BSD_PROCESS_ACCT is not set
41# CONFIG_TASKSTATS is not set 42# CONFIG_TASKSTATS is not set
42# CONFIG_USER_NS is not set
43# CONFIG_PID_NS is not set
44# CONFIG_AUDIT is not set 43# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set 44# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14 45CONFIG_LOG_BUF_SHIFT=14
47# CONFIG_CGROUPS is not set 46# CONFIG_CGROUPS is not set
47CONFIG_GROUP_SCHED=y
48CONFIG_FAIR_GROUP_SCHED=y 48CONFIG_FAIR_GROUP_SCHED=y
49CONFIG_FAIR_USER_SCHED=y 49# CONFIG_RT_GROUP_SCHED is not set
50# CONFIG_FAIR_CGROUP_SCHED is not set 50CONFIG_USER_SCHED=y
51# CONFIG_CGROUP_SCHED is not set
51# CONFIG_SYSFS_DEPRECATED is not set 52# CONFIG_SYSFS_DEPRECATED is not set
52# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
54CONFIG_NAMESPACES=y
55# CONFIG_UTS_NS is not set
56# CONFIG_IPC_NS is not set
57# CONFIG_USER_NS is not set
58# CONFIG_PID_NS is not set
53CONFIG_BLK_DEV_INITRD=y 59CONFIG_BLK_DEV_INITRD=y
54CONFIG_INITRAMFS_SOURCE="" 60CONFIG_INITRAMFS_SOURCE=""
55CONFIG_CC_OPTIMIZE_FOR_SIZE=y 61CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -63,17 +69,26 @@ CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y 69CONFIG_PRINTK=y
64CONFIG_BUG=y 70CONFIG_BUG=y
65CONFIG_ELF_CORE=y 71CONFIG_ELF_CORE=y
72CONFIG_COMPAT_BRK=y
66CONFIG_BASE_FULL=y 73CONFIG_BASE_FULL=y
67CONFIG_FUTEX=y 74CONFIG_FUTEX=y
68CONFIG_ANON_INODES=y 75CONFIG_ANON_INODES=y
69CONFIG_EPOLL=y 76CONFIG_EPOLL=y
70CONFIG_SIGNALFD=y 77CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y
71CONFIG_EVENTFD=y 79CONFIG_EVENTFD=y
72CONFIG_SHMEM=y 80CONFIG_SHMEM=y
73CONFIG_VM_EVENT_COUNTERS=y 81CONFIG_VM_EVENT_COUNTERS=y
74CONFIG_SLAB=y 82CONFIG_SLAB=y
75# CONFIG_SLUB is not set 83# CONFIG_SLUB is not set
76# CONFIG_SLOB is not set 84# CONFIG_SLOB is not set
85# CONFIG_PROFILING is not set
86# CONFIG_MARKERS is not set
87CONFIG_HAVE_OPROFILE=y
88# CONFIG_KPROBES is not set
89CONFIG_HAVE_KPROBES=y
90CONFIG_PROC_PAGE_MONITOR=y
91CONFIG_SLABINFO=y
77CONFIG_RT_MUTEXES=y 92CONFIG_RT_MUTEXES=y
78# CONFIG_TINY_SHMEM is not set 93# CONFIG_TINY_SHMEM is not set
79CONFIG_BASE_SMALL=0 94CONFIG_BASE_SMALL=0
@@ -101,6 +116,8 @@ CONFIG_IOSCHED_CFQ=y
101CONFIG_DEFAULT_CFQ=y 116CONFIG_DEFAULT_CFQ=y
102# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
103CONFIG_DEFAULT_IOSCHED="cfq" 118CONFIG_DEFAULT_IOSCHED="cfq"
119CONFIG_CLASSIC_RCU=y
120# CONFIG_PREEMPT_RCU is not set
104 121
105# 122#
106# System Type 123# System Type
@@ -129,6 +146,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
129# CONFIG_ARCH_KS8695 is not set 146# CONFIG_ARCH_KS8695 is not set
130# CONFIG_ARCH_NS9XXX is not set 147# CONFIG_ARCH_NS9XXX is not set
131# CONFIG_ARCH_MXC is not set 148# CONFIG_ARCH_MXC is not set
149# CONFIG_ARCH_ORION is not set
132# CONFIG_ARCH_PNX4008 is not set 150# CONFIG_ARCH_PNX4008 is not set
133# CONFIG_ARCH_PXA is not set 151# CONFIG_ARCH_PXA is not set
134# CONFIG_ARCH_RPC is not set 152# CONFIG_ARCH_RPC is not set
@@ -138,6 +156,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
138# CONFIG_ARCH_LH7A40X is not set 156# CONFIG_ARCH_LH7A40X is not set
139# CONFIG_ARCH_DAVINCI is not set 157# CONFIG_ARCH_DAVINCI is not set
140CONFIG_ARCH_OMAP=y 158CONFIG_ARCH_OMAP=y
159# CONFIG_ARCH_MSM7X00A is not set
141 160
142# 161#
143# TI OMAP Implementations 162# TI OMAP Implementations
@@ -154,6 +173,7 @@ CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set 173# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y 174CONFIG_OMAP_MUX_WARNINGS=y
156CONFIG_OMAP_MCBSP=y 175CONFIG_OMAP_MCBSP=y
176# CONFIG_OMAP_MMU_FWK is not set
157# CONFIG_OMAP_MPU_TIMER is not set 177# CONFIG_OMAP_MPU_TIMER is not set
158CONFIG_OMAP_32K_TIMER=y 178CONFIG_OMAP_32K_TIMER=y
159CONFIG_OMAP_32K_TIMER_HZ=128 179CONFIG_OMAP_32K_TIMER_HZ=128
@@ -173,13 +193,13 @@ CONFIG_ARCH_OMAP16XX=y
173# 193#
174# OMAP Board Type 194# OMAP Board Type
175# 195#
176# CONFIG_MACH_OMAP_INNOVATOR is not set 196CONFIG_MACH_OMAP_INNOVATOR=y
177# CONFIG_MACH_OMAP_H2 is not set 197CONFIG_MACH_OMAP_H2=y
178# CONFIG_MACH_OMAP_H3 is not set 198CONFIG_MACH_OMAP_H3=y
179CONFIG_MACH_OMAP_OSK=y 199CONFIG_MACH_OMAP_OSK=y
180# CONFIG_OMAP_OSK_MISTRAL is not set 200# CONFIG_OMAP_OSK_MISTRAL is not set
181# CONFIG_MACH_NOKIA770 is not set 201CONFIG_MACH_NOKIA770=y
182# CONFIG_MACH_OMAP_GENERIC is not set 202CONFIG_MACH_OMAP_GENERIC=y
183 203
184# 204#
185# OMAP CPU Speed 205# OMAP CPU Speed
@@ -275,6 +295,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0
275CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw" 295CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw"
276# CONFIG_XIP_KERNEL is not set 296# CONFIG_XIP_KERNEL is not set
277# CONFIG_KEXEC is not set 297# CONFIG_KEXEC is not set
298# CONFIG_ATAGS_PROC is not set
278 299
279# 300#
280# CPU Frequency scaling 301# CPU Frequency scaling
@@ -307,9 +328,10 @@ CONFIG_PM=y
307# CONFIG_PM_LEGACY is not set 328# CONFIG_PM_LEGACY is not set
308# CONFIG_PM_DEBUG is not set 329# CONFIG_PM_DEBUG is not set
309CONFIG_PM_SLEEP=y 330CONFIG_PM_SLEEP=y
310CONFIG_SUSPEND_UP_POSSIBLE=y
311CONFIG_SUSPEND=y 331CONFIG_SUSPEND=y
332CONFIG_SUSPEND_FREEZER=y
312# CONFIG_APM_EMULATION is not set 333# CONFIG_APM_EMULATION is not set
334CONFIG_ARCH_SUSPEND_POSSIBLE=y
313 335
314# 336#
315# Networking 337# Networking
@@ -326,6 +348,7 @@ CONFIG_XFRM=y
326# CONFIG_XFRM_USER is not set 348# CONFIG_XFRM_USER is not set
327# CONFIG_XFRM_SUB_POLICY is not set 349# CONFIG_XFRM_SUB_POLICY is not set
328# CONFIG_XFRM_MIGRATE is not set 350# CONFIG_XFRM_MIGRATE is not set
351# CONFIG_XFRM_STATISTICS is not set
329# CONFIG_NET_KEY is not set 352# CONFIG_NET_KEY is not set
330CONFIG_INET=y 353CONFIG_INET=y
331CONFIG_IP_MULTICAST=y 354CONFIG_IP_MULTICAST=y
@@ -381,6 +404,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
381# 404#
382# CONFIG_NET_PKTGEN is not set 405# CONFIG_NET_PKTGEN is not set
383# CONFIG_HAMRADIO is not set 406# CONFIG_HAMRADIO is not set
407# CONFIG_CAN is not set
384# CONFIG_IRDA is not set 408# CONFIG_IRDA is not set
385# CONFIG_BT is not set 409# CONFIG_BT is not set
386# CONFIG_AF_RXRPC is not set 410# CONFIG_AF_RXRPC is not set
@@ -493,11 +517,13 @@ CONFIG_BLK_DEV_LOOP=y
493CONFIG_BLK_DEV_RAM=y 517CONFIG_BLK_DEV_RAM=y
494CONFIG_BLK_DEV_RAM_COUNT=16 518CONFIG_BLK_DEV_RAM_COUNT=16
495CONFIG_BLK_DEV_RAM_SIZE=8192 519CONFIG_BLK_DEV_RAM_SIZE=8192
496CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 520# CONFIG_BLK_DEV_XIP is not set
497# CONFIG_CDROM_PKTCDVD is not set 521# CONFIG_CDROM_PKTCDVD is not set
498# CONFIG_ATA_OVER_ETH is not set 522# CONFIG_ATA_OVER_ETH is not set
499CONFIG_MISC_DEVICES=y 523CONFIG_MISC_DEVICES=y
500# CONFIG_EEPROM_93CX6 is not set 524# CONFIG_EEPROM_93CX6 is not set
525# CONFIG_ENCLOSURE_SERVICES is not set
526CONFIG_HAVE_IDE=y
501CONFIG_IDE=m 527CONFIG_IDE=m
502CONFIG_BLK_DEV_IDE=m 528CONFIG_BLK_DEV_IDE=m
503 529
@@ -519,7 +545,6 @@ CONFIG_IDE_PROC_FS=y
519# 545#
520# CONFIG_IDE_GENERIC is not set 546# CONFIG_IDE_GENERIC is not set
521# CONFIG_BLK_DEV_PLATFORM is not set 547# CONFIG_BLK_DEV_PLATFORM is not set
522# CONFIG_IDE_ARM is not set
523# CONFIG_BLK_DEV_IDEDMA is not set 548# CONFIG_BLK_DEV_IDEDMA is not set
524CONFIG_IDE_ARCH_OBSOLETE_INIT=y 549CONFIG_IDE_ARCH_OBSOLETE_INIT=y
525# CONFIG_BLK_DEV_HD is not set 550# CONFIG_BLK_DEV_HD is not set
@@ -553,6 +578,7 @@ CONFIG_SMC91X=y
553# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 578# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
554# CONFIG_B44 is not set 579# CONFIG_B44 is not set
555CONFIG_NETDEV_1000=y 580CONFIG_NETDEV_1000=y
581# CONFIG_E1000E_ENABLED is not set
556CONFIG_NETDEV_10000=y 582CONFIG_NETDEV_10000=y
557 583
558# 584#
@@ -574,7 +600,6 @@ CONFIG_PPP_MULTILINK=y
574# CONFIG_PPPOL2TP is not set 600# CONFIG_PPPOL2TP is not set
575# CONFIG_SLIP is not set 601# CONFIG_SLIP is not set
576CONFIG_SLHC=y 602CONFIG_SLHC=y
577# CONFIG_SHAPER is not set
578# CONFIG_NETCONSOLE is not set 603# CONFIG_NETCONSOLE is not set
579# CONFIG_NETPOLL is not set 604# CONFIG_NETPOLL is not set
580# CONFIG_NET_POLL_CONTROLLER is not set 605# CONFIG_NET_POLL_CONTROLLER is not set
@@ -671,6 +696,7 @@ CONFIG_HW_RANDOM_OMAP=m
671# CONFIG_SYNCLINK_CS is not set 696# CONFIG_SYNCLINK_CS is not set
672# CONFIG_CARDMAN_4000 is not set 697# CONFIG_CARDMAN_4000 is not set
673# CONFIG_CARDMAN_4040 is not set 698# CONFIG_CARDMAN_4040 is not set
699# CONFIG_IPWIRELESS is not set
674# CONFIG_RAW_DRIVER is not set 700# CONFIG_RAW_DRIVER is not set
675# CONFIG_TCG_TPM is not set 701# CONFIG_TCG_TPM is not set
676CONFIG_I2C=y 702CONFIG_I2C=y
@@ -698,12 +724,10 @@ CONFIG_I2C_OMAP=y
698# 724#
699# Miscellaneous I2C Chip support 725# Miscellaneous I2C Chip support
700# 726#
701# CONFIG_SENSORS_DS1337 is not set
702# CONFIG_SENSORS_DS1374 is not set
703# CONFIG_DS1682 is not set 727# CONFIG_DS1682 is not set
704# CONFIG_SENSORS_EEPROM is not set 728# CONFIG_SENSORS_EEPROM is not set
705# CONFIG_SENSORS_PCF8574 is not set 729# CONFIG_SENSORS_PCF8574 is not set
706# CONFIG_SENSORS_PCA9539 is not set 730# CONFIG_PCF8575 is not set
707# CONFIG_SENSORS_PCF8591 is not set 731# CONFIG_SENSORS_PCF8591 is not set
708# CONFIG_ISP1301_OMAP is not set 732# CONFIG_ISP1301_OMAP is not set
709CONFIG_TPS65010=y 733CONFIG_TPS65010=y
@@ -731,6 +755,7 @@ CONFIG_HWMON=y
731# CONFIG_SENSORS_ADM1031 is not set 755# CONFIG_SENSORS_ADM1031 is not set
732# CONFIG_SENSORS_ADM9240 is not set 756# CONFIG_SENSORS_ADM9240 is not set
733# CONFIG_SENSORS_ADT7470 is not set 757# CONFIG_SENSORS_ADT7470 is not set
758# CONFIG_SENSORS_ADT7473 is not set
734# CONFIG_SENSORS_ATXP1 is not set 759# CONFIG_SENSORS_ATXP1 is not set
735# CONFIG_SENSORS_DS1621 is not set 760# CONFIG_SENSORS_DS1621 is not set
736# CONFIG_SENSORS_F71805F is not set 761# CONFIG_SENSORS_F71805F is not set
@@ -758,6 +783,7 @@ CONFIG_HWMON=y
758# CONFIG_SENSORS_SMSC47M1 is not set 783# CONFIG_SENSORS_SMSC47M1 is not set
759# CONFIG_SENSORS_SMSC47M192 is not set 784# CONFIG_SENSORS_SMSC47M192 is not set
760# CONFIG_SENSORS_SMSC47B397 is not set 785# CONFIG_SENSORS_SMSC47B397 is not set
786# CONFIG_SENSORS_ADS7828 is not set
761# CONFIG_SENSORS_THMC50 is not set 787# CONFIG_SENSORS_THMC50 is not set
762# CONFIG_SENSORS_VT1211 is not set 788# CONFIG_SENSORS_VT1211 is not set
763# CONFIG_SENSORS_W83781D is not set 789# CONFIG_SENSORS_W83781D is not set
@@ -765,6 +791,7 @@ CONFIG_HWMON=y
765# CONFIG_SENSORS_W83792D is not set 791# CONFIG_SENSORS_W83792D is not set
766# CONFIG_SENSORS_W83793 is not set 792# CONFIG_SENSORS_W83793 is not set
767# CONFIG_SENSORS_W83L785TS is not set 793# CONFIG_SENSORS_W83L785TS is not set
794# CONFIG_SENSORS_W83L786NG is not set
768# CONFIG_SENSORS_W83627HF is not set 795# CONFIG_SENSORS_W83627HF is not set
769# CONFIG_SENSORS_W83627EHF is not set 796# CONFIG_SENSORS_W83627EHF is not set
770# CONFIG_HWMON_DEBUG_CHIP is not set 797# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -780,6 +807,7 @@ CONFIG_SSB_POSSIBLE=y
780# Multifunction device drivers 807# Multifunction device drivers
781# 808#
782# CONFIG_MFD_SM501 is not set 809# CONFIG_MFD_SM501 is not set
810# CONFIG_MFD_ASIC3 is not set
783 811
784# 812#
785# Multimedia devices 813# Multimedia devices
@@ -865,10 +893,6 @@ CONFIG_USB_ARCH_HAS_OHCI=y
865# 893#
866# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 894# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
867# 895#
868
869#
870# USB Gadget Support
871#
872# CONFIG_USB_GADGET is not set 896# CONFIG_USB_GADGET is not set
873# CONFIG_MMC is not set 897# CONFIG_MMC is not set
874# CONFIG_NEW_LEDS is not set 898# CONFIG_NEW_LEDS is not set
@@ -889,12 +913,10 @@ CONFIG_EXT2_FS=y
889# CONFIG_XFS_FS is not set 913# CONFIG_XFS_FS is not set
890# CONFIG_GFS2_FS is not set 914# CONFIG_GFS2_FS is not set
891# CONFIG_OCFS2_FS is not set 915# CONFIG_OCFS2_FS is not set
892# CONFIG_MINIX_FS is not set 916CONFIG_DNOTIFY=y
893# CONFIG_ROMFS_FS is not set
894CONFIG_INOTIFY=y 917CONFIG_INOTIFY=y
895CONFIG_INOTIFY_USER=y 918CONFIG_INOTIFY_USER=y
896# CONFIG_QUOTA is not set 919# CONFIG_QUOTA is not set
897CONFIG_DNOTIFY=y
898CONFIG_AUTOFS_FS=y 920CONFIG_AUTOFS_FS=y
899CONFIG_AUTOFS4_FS=y 921CONFIG_AUTOFS4_FS=y
900# CONFIG_FUSE_FS is not set 922# CONFIG_FUSE_FS is not set
@@ -948,8 +970,10 @@ CONFIG_JFFS2_RTIME=y
948# CONFIG_JFFS2_RUBIN is not set 970# CONFIG_JFFS2_RUBIN is not set
949# CONFIG_CRAMFS is not set 971# CONFIG_CRAMFS is not set
950# CONFIG_VXFS_FS is not set 972# CONFIG_VXFS_FS is not set
973# CONFIG_MINIX_FS is not set
951# CONFIG_HPFS_FS is not set 974# CONFIG_HPFS_FS is not set
952# CONFIG_QNX4FS_FS is not set 975# CONFIG_QNX4FS_FS is not set
976# CONFIG_ROMFS_FS is not set
953# CONFIG_SYSV_FS is not set 977# CONFIG_SYSV_FS is not set
954# CONFIG_UFS_FS is not set 978# CONFIG_UFS_FS is not set
955CONFIG_NETWORK_FILESYSTEMS=y 979CONFIG_NETWORK_FILESYSTEMS=y
@@ -1019,9 +1043,6 @@ CONFIG_NLS_ISO8859_1=m
1019# CONFIG_NLS_KOI8_U is not set 1043# CONFIG_NLS_KOI8_U is not set
1020# CONFIG_NLS_UTF8 is not set 1044# CONFIG_NLS_UTF8 is not set
1021# CONFIG_DLM is not set 1045# CONFIG_DLM is not set
1022CONFIG_INSTRUMENTATION=y
1023# CONFIG_PROFILING is not set
1024# CONFIG_MARKERS is not set
1025 1046
1026# 1047#
1027# Kernel hacking 1048# Kernel hacking
@@ -1045,7 +1066,51 @@ CONFIG_FRAME_POINTER=y
1045# CONFIG_KEYS is not set 1066# CONFIG_KEYS is not set
1046# CONFIG_SECURITY is not set 1067# CONFIG_SECURITY is not set
1047# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1068# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1048# CONFIG_CRYPTO is not set 1069CONFIG_CRYPTO=y
1070# CONFIG_CRYPTO_SEQIV is not set
1071# CONFIG_CRYPTO_MANAGER is not set
1072# CONFIG_CRYPTO_HMAC is not set
1073# CONFIG_CRYPTO_XCBC is not set
1074# CONFIG_CRYPTO_NULL is not set
1075# CONFIG_CRYPTO_MD4 is not set
1076# CONFIG_CRYPTO_MD5 is not set
1077# CONFIG_CRYPTO_SHA1 is not set
1078# CONFIG_CRYPTO_SHA256 is not set
1079# CONFIG_CRYPTO_SHA512 is not set
1080# CONFIG_CRYPTO_WP512 is not set
1081# CONFIG_CRYPTO_TGR192 is not set
1082# CONFIG_CRYPTO_GF128MUL is not set
1083# CONFIG_CRYPTO_ECB is not set
1084# CONFIG_CRYPTO_CBC is not set
1085# CONFIG_CRYPTO_PCBC is not set
1086# CONFIG_CRYPTO_LRW is not set
1087# CONFIG_CRYPTO_XTS is not set
1088# CONFIG_CRYPTO_CTR is not set
1089# CONFIG_CRYPTO_GCM is not set
1090# CONFIG_CRYPTO_CCM is not set
1091# CONFIG_CRYPTO_CRYPTD is not set
1092# CONFIG_CRYPTO_DES is not set
1093# CONFIG_CRYPTO_FCRYPT is not set
1094# CONFIG_CRYPTO_BLOWFISH is not set
1095# CONFIG_CRYPTO_TWOFISH is not set
1096# CONFIG_CRYPTO_SERPENT is not set
1097# CONFIG_CRYPTO_AES is not set
1098# CONFIG_CRYPTO_CAST5 is not set
1099# CONFIG_CRYPTO_CAST6 is not set
1100# CONFIG_CRYPTO_TEA is not set
1101# CONFIG_CRYPTO_ARC4 is not set
1102# CONFIG_CRYPTO_KHAZAD is not set
1103# CONFIG_CRYPTO_ANUBIS is not set
1104# CONFIG_CRYPTO_SEED is not set
1105# CONFIG_CRYPTO_SALSA20 is not set
1106# CONFIG_CRYPTO_DEFLATE is not set
1107# CONFIG_CRYPTO_MICHAEL_MIC is not set
1108# CONFIG_CRYPTO_CRC32C is not set
1109# CONFIG_CRYPTO_CAMELLIA is not set
1110# CONFIG_CRYPTO_TEST is not set
1111# CONFIG_CRYPTO_AUTHENC is not set
1112# CONFIG_CRYPTO_LZO is not set
1113CONFIG_CRYPTO_HW=y
1049 1114
1050# 1115#
1051# Library routines 1116# Library routines
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c
index 070345ee39a5..507987720015 100644
--- a/arch/arm/mach-omap1/board-h2.c
+++ b/arch/arm/mach-omap1/board-h2.c
@@ -350,6 +350,10 @@ static void __init h2_init_smc91x(void)
350 350
351static struct i2c_board_info __initdata h2_i2c_board_info[] = { 351static struct i2c_board_info __initdata h2_i2c_board_info[] = {
352 { 352 {
353 I2C_BOARD_INFO("tps65010", 0x48),
354 .type = "tps65010",
355 .irq = OMAP_GPIO_IRQ(58),
356 }, {
353 I2C_BOARD_INFO("isp1301_omap", 0x2d), 357 I2C_BOARD_INFO("isp1301_omap", 0x2d),
354 .type = "isp1301_omap", 358 .type = "isp1301_omap",
355 .irq = OMAP_GPIO_IRQ(2), 359 .irq = OMAP_GPIO_IRQ(2),
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c
index 6fc516855a8c..c3ef1ee5f77b 100644
--- a/arch/arm/mach-omap1/board-h3.c
+++ b/arch/arm/mach-omap1/board-h3.c
@@ -26,6 +26,7 @@
26#include <linux/mtd/nand.h> 26#include <linux/mtd/nand.h>
27#include <linux/mtd/partitions.h> 27#include <linux/mtd/partitions.h>
28#include <linux/input.h> 28#include <linux/input.h>
29#include <linux/spi/spi.h>
29#include <linux/i2c/tps65010.h> 30#include <linux/i2c/tps65010.h>
30 31
31#include <asm/setup.h> 32#include <asm/setup.h>
@@ -51,6 +52,8 @@
51#include <asm/arch/mcbsp.h> 52#include <asm/arch/mcbsp.h>
52#include <asm/arch/omap-alsa.h> 53#include <asm/arch/omap-alsa.h>
53 54
55#define H3_TS_GPIO 48
56
54static int h3_keymap[] = { 57static int h3_keymap[] = {
55 KEY(0, 0, KEY_LEFT), 58 KEY(0, 0, KEY_LEFT),
56 KEY(0, 1, KEY_RIGHT), 59 KEY(0, 1, KEY_RIGHT),
@@ -373,6 +376,17 @@ static struct platform_device h3_lcd_device = {
373 .id = -1, 376 .id = -1,
374}; 377};
375 378
379static struct spi_board_info h3_spi_board_info[] __initdata = {
380 [0] = {
381 .modalias = "tsc2101",
382 .bus_num = 2,
383 .chip_select = 0,
384 .irq = OMAP_GPIO_IRQ(H3_TS_GPIO),
385 .max_speed_hz = 16000000,
386 /* .platform_data = &tsc_platform_data, */
387 },
388};
389
376static struct omap_mcbsp_reg_cfg mcbsp_regs = { 390static struct omap_mcbsp_reg_cfg mcbsp_regs = {
377 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3), 391 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
378 .spcr1 = RINTM(3) | RRST, 392 .spcr1 = RINTM(3) | RRST,
@@ -457,6 +471,14 @@ static struct omap_board_config_kernel h3_config[] __initdata = {
457 { OMAP_TAG_LCD, &h3_lcd_config }, 471 { OMAP_TAG_LCD, &h3_lcd_config },
458}; 472};
459 473
474static struct i2c_board_info __initdata h3_i2c_board_info[] = {
475 {
476 I2C_BOARD_INFO("tps65010", 0x48),
477 .type = "tps65013",
478 /* .irq = OMAP_GPIO_IRQ(??), */
479 },
480};
481
460static struct omap_gpio_switch h3_gpio_switches[] __initdata = { 482static struct omap_gpio_switch h3_gpio_switches[] __initdata = {
461 { 483 {
462 .name = "mmc_slot", 484 .name = "mmc_slot",
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
index 8eb5dcdaead2..e6c64e10b7ec 100644
--- a/arch/arm/mach-omap1/pm.c
+++ b/arch/arm/mach-omap1/pm.c
@@ -717,7 +717,7 @@ static int __init omap_pm_init(void)
717#endif 717#endif
718 718
719#ifdef CONFIG_OMAP_32K_TIMER 719#ifdef CONFIG_OMAP_32K_TIMER
720 error = sysfs_create_file(power_kobj, &sleep_while_idle_attr); 720 error = sysfs_create_file(power_kobj, &sleep_while_idle_attr.attr);
721 if (error) 721 if (error)
722 printk(KERN_ERR "sysfs_create_file failed: %d\n", error); 722 printk(KERN_ERR "sysfs_create_file failed: %d\n", error);
723#endif 723#endif
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 5a4091f582ed..69c8174f3aac 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -42,6 +42,12 @@ static struct map_desc omap2_io_desc[] __initdata = {
42 .length = L3_24XX_SIZE, 42 .length = L3_24XX_SIZE,
43 .type = MT_DEVICE 43 .type = MT_DEVICE
44 }, 44 },
45 {
46 .virtual = L4_24XX_VIRT,
47 .pfn = __phys_to_pfn(L4_24XX_PHYS),
48 .length = L4_24XX_SIZE,
49 .type = MT_DEVICE
50 },
45#ifdef CONFIG_ARCH_OMAP2430 51#ifdef CONFIG_ARCH_OMAP2430
46 { 52 {
47 .virtual = L4_WK_243X_VIRT, 53 .virtual = L4_WK_243X_VIRT,
diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c
index c0d63b0c61c9..d719c15daa55 100644
--- a/arch/arm/plat-omap/cpu-omap.c
+++ b/arch/arm/plat-omap/cpu-omap.c
@@ -33,43 +33,33 @@
33#define MPU_CLK "virt_prcm_set" 33#define MPU_CLK "virt_prcm_set"
34#endif 34#endif
35 35
36static struct clk *mpu_clk;
37
36/* TODO: Add support for SDRAM timing changes */ 38/* TODO: Add support for SDRAM timing changes */
37 39
38int omap_verify_speed(struct cpufreq_policy *policy) 40int omap_verify_speed(struct cpufreq_policy *policy)
39{ 41{
40 struct clk * mpu_clk;
41
42 if (policy->cpu) 42 if (policy->cpu)
43 return -EINVAL; 43 return -EINVAL;
44 44
45 cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq, 45 cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
46 policy->cpuinfo.max_freq); 46 policy->cpuinfo.max_freq);
47 mpu_clk = clk_get(NULL, MPU_CLK); 47
48 if (IS_ERR(mpu_clk))
49 return PTR_ERR(mpu_clk);
50 policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000; 48 policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000;
51 policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000; 49 policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000;
52 cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq, 50 cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
53 policy->cpuinfo.max_freq); 51 policy->cpuinfo.max_freq);
54 clk_put(mpu_clk);
55
56 return 0; 52 return 0;
57} 53}
58 54
59unsigned int omap_getspeed(unsigned int cpu) 55unsigned int omap_getspeed(unsigned int cpu)
60{ 56{
61 struct clk * mpu_clk;
62 unsigned long rate; 57 unsigned long rate;
63 58
64 if (cpu) 59 if (cpu)
65 return 0; 60 return 0;
66 61
67 mpu_clk = clk_get(NULL, MPU_CLK);
68 if (IS_ERR(mpu_clk))
69 return 0;
70 rate = clk_get_rate(mpu_clk) / 1000; 62 rate = clk_get_rate(mpu_clk) / 1000;
71 clk_put(mpu_clk);
72
73 return rate; 63 return rate;
74} 64}
75 65
@@ -77,14 +67,9 @@ static int omap_target(struct cpufreq_policy *policy,
77 unsigned int target_freq, 67 unsigned int target_freq,
78 unsigned int relation) 68 unsigned int relation)
79{ 69{
80 struct clk * mpu_clk;
81 struct cpufreq_freqs freqs; 70 struct cpufreq_freqs freqs;
82 int ret = 0; 71 int ret = 0;
83 72
84 mpu_clk = clk_get(NULL, MPU_CLK);
85 if (IS_ERR(mpu_clk))
86 return PTR_ERR(mpu_clk);
87
88 freqs.old = omap_getspeed(0); 73 freqs.old = omap_getspeed(0);
89 freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000; 74 freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
90 freqs.cpu = 0; 75 freqs.cpu = 0;
@@ -92,15 +77,12 @@ static int omap_target(struct cpufreq_policy *policy,
92 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); 77 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
93 ret = clk_set_rate(mpu_clk, target_freq * 1000); 78 ret = clk_set_rate(mpu_clk, target_freq * 1000);
94 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); 79 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
95 clk_put(mpu_clk);
96 80
97 return ret; 81 return ret;
98} 82}
99 83
100static int __init omap_cpu_init(struct cpufreq_policy *policy) 84static int __init omap_cpu_init(struct cpufreq_policy *policy)
101{ 85{
102 struct clk * mpu_clk;
103
104 mpu_clk = clk_get(NULL, MPU_CLK); 86 mpu_clk = clk_get(NULL, MPU_CLK);
105 if (IS_ERR(mpu_clk)) 87 if (IS_ERR(mpu_clk))
106 return PTR_ERR(mpu_clk); 88 return PTR_ERR(mpu_clk);
@@ -111,17 +93,23 @@ static int __init omap_cpu_init(struct cpufreq_policy *policy)
111 policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) / 1000; 93 policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) / 1000;
112 policy->cpuinfo.max_freq = clk_round_rate(mpu_clk, VERY_HI_RATE) / 1000; 94 policy->cpuinfo.max_freq = clk_round_rate(mpu_clk, VERY_HI_RATE) / 1000;
113 policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; 95 policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
114 clk_put(mpu_clk);
115 96
116 return 0; 97 return 0;
117} 98}
118 99
100static int omap_cpu_exit(struct cpufreq_policy *policy)
101{
102 clk_put(mpu_clk);
103 return 0;
104}
105
119static struct cpufreq_driver omap_driver = { 106static struct cpufreq_driver omap_driver = {
120 .flags = CPUFREQ_STICKY, 107 .flags = CPUFREQ_STICKY,
121 .verify = omap_verify_speed, 108 .verify = omap_verify_speed,
122 .target = omap_target, 109 .target = omap_target,
123 .get = omap_getspeed, 110 .get = omap_getspeed,
124 .init = omap_cpu_init, 111 .init = omap_cpu_init,
112 .exit = omap_cpu_exit,
125 .name = "omap", 113 .name = "omap",
126}; 114};
127 115
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
index c5dab1d6417e..4a53f9ba6c43 100644
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -89,68 +89,6 @@ static inline void omap_init_dsp(void) { }
89#endif /* CONFIG_OMAP_DSP */ 89#endif /* CONFIG_OMAP_DSP */
90 90
91/*-------------------------------------------------------------------------*/ 91/*-------------------------------------------------------------------------*/
92#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
93
94#define OMAP1_I2C_BASE 0xfffb3800
95#define OMAP2_I2C_BASE1 0x48070000
96#define OMAP_I2C_SIZE 0x3f
97#define OMAP1_I2C_INT INT_I2C
98#define OMAP2_I2C_INT1 56
99
100static struct resource i2c_resources1[] = {
101 {
102 .start = 0,
103 .end = 0,
104 .flags = IORESOURCE_MEM,
105 },
106 {
107 .start = 0,
108 .flags = IORESOURCE_IRQ,
109 },
110};
111
112/* DMA not used; works around erratum writing to non-empty i2c fifo */
113
114static struct platform_device omap_i2c_device1 = {
115 .name = "i2c_omap",
116 .id = 1,
117 .num_resources = ARRAY_SIZE(i2c_resources1),
118 .resource = i2c_resources1,
119};
120
121/* See also arch/arm/mach-omap2/devices.c for second I2C on 24xx */
122static void omap_init_i2c(void)
123{
124 if (cpu_is_omap24xx()) {
125 i2c_resources1[0].start = OMAP2_I2C_BASE1;
126 i2c_resources1[0].end = OMAP2_I2C_BASE1 + OMAP_I2C_SIZE;
127 i2c_resources1[1].start = OMAP2_I2C_INT1;
128 } else {
129 i2c_resources1[0].start = OMAP1_I2C_BASE;
130 i2c_resources1[0].end = OMAP1_I2C_BASE + OMAP_I2C_SIZE;
131 i2c_resources1[1].start = OMAP1_I2C_INT;
132 }
133
134 /* FIXME define and use a boot tag, in case of boards that
135 * either don't wire up I2C, or chips that mux it differently...
136 * it can include clocking and address info, maybe more.
137 */
138 if (cpu_is_omap24xx()) {
139 omap_cfg_reg(M19_24XX_I2C1_SCL);
140 omap_cfg_reg(L15_24XX_I2C1_SDA);
141 } else {
142 omap_cfg_reg(I2C_SCL);
143 omap_cfg_reg(I2C_SDA);
144 }
145
146 (void) platform_device_register(&omap_i2c_device1);
147}
148
149#else
150static inline void omap_init_i2c(void) {}
151#endif
152
153/*-------------------------------------------------------------------------*/
154#if defined(CONFIG_KEYBOARD_OMAP) || defined(CONFIG_KEYBOARD_OMAP_MODULE) 92#if defined(CONFIG_KEYBOARD_OMAP) || defined(CONFIG_KEYBOARD_OMAP_MODULE)
155 93
156static void omap_init_kp(void) 94static void omap_init_kp(void)
@@ -501,7 +439,6 @@ static int __init omap_init_devices(void)
501 * in alphabetical order so they're easier to sort through. 439 * in alphabetical order so they're easier to sort through.
502 */ 440 */
503 omap_init_dsp(); 441 omap_init_dsp();
504 omap_init_i2c();
505 omap_init_kp(); 442 omap_init_kp();
506 omap_init_mmc(); 443 omap_init_mmc();
507 omap_init_uwire(); 444 omap_init_uwire();
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 9255a4598c71..91004a3c4794 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -1705,14 +1705,8 @@ static int omap2_dma_handle_ch(int ch)
1705 status = OMAP_DMA_CSR_REG(ch); 1705 status = OMAP_DMA_CSR_REG(ch);
1706 } 1706 }
1707 1707
1708 if (likely(dma_chan[ch].callback != NULL)) { 1708 if (likely(dma_chan[ch].callback != NULL))
1709 if (dma_chan[ch].chain_id != -1) 1709 dma_chan[ch].callback(ch, status, dma_chan[ch].data);
1710 dma_chan[ch].callback(dma_chan[ch].chain_id, status,
1711 dma_chan[ch].data);
1712 else
1713 dma_chan[ch].callback(ch, status, dma_chan[ch].data);
1714
1715 }
1716 1710
1717 OMAP_DMA_CSR_REG(ch) = status; 1711 OMAP_DMA_CSR_REG(ch) = status;
1718 1712
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 56f4d1394d56..66a1455595f4 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -333,13 +333,14 @@ static void _set_gpio_direction(struct gpio_bank *bank, int gpio, int is_input)
333void omap_set_gpio_direction(int gpio, int is_input) 333void omap_set_gpio_direction(int gpio, int is_input)
334{ 334{
335 struct gpio_bank *bank; 335 struct gpio_bank *bank;
336 unsigned long flags;
336 337
337 if (check_gpio(gpio) < 0) 338 if (check_gpio(gpio) < 0)
338 return; 339 return;
339 bank = get_gpio_bank(gpio); 340 bank = get_gpio_bank(gpio);
340 spin_lock(&bank->lock); 341 spin_lock_irqsave(&bank->lock, flags);
341 _set_gpio_direction(bank, get_gpio_index(gpio), is_input); 342 _set_gpio_direction(bank, get_gpio_index(gpio), is_input);
342 spin_unlock(&bank->lock); 343 spin_unlock_irqrestore(&bank->lock, flags);
343} 344}
344 345
345static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable) 346static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable)
@@ -406,13 +407,14 @@ static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable)
406void omap_set_gpio_dataout(int gpio, int enable) 407void omap_set_gpio_dataout(int gpio, int enable)
407{ 408{
408 struct gpio_bank *bank; 409 struct gpio_bank *bank;
410 unsigned long flags;
409 411
410 if (check_gpio(gpio) < 0) 412 if (check_gpio(gpio) < 0)
411 return; 413 return;
412 bank = get_gpio_bank(gpio); 414 bank = get_gpio_bank(gpio);
413 spin_lock(&bank->lock); 415 spin_lock_irqsave(&bank->lock, flags);
414 _set_gpio_dataout(bank, get_gpio_index(gpio), enable); 416 _set_gpio_dataout(bank, get_gpio_index(gpio), enable);
415 spin_unlock(&bank->lock); 417 spin_unlock_irqrestore(&bank->lock, flags);
416} 418}
417 419
418int omap_get_gpio_datain(int gpio) 420int omap_get_gpio_datain(int gpio)
@@ -624,6 +626,7 @@ static int gpio_irq_type(unsigned irq, unsigned type)
624 struct gpio_bank *bank; 626 struct gpio_bank *bank;
625 unsigned gpio; 627 unsigned gpio;
626 int retval; 628 int retval;
629 unsigned long flags;
627 630
628 if (!cpu_class_is_omap2() && irq > IH_MPUIO_BASE) 631 if (!cpu_class_is_omap2() && irq > IH_MPUIO_BASE)
629 gpio = OMAP_MPUIO(irq - IH_MPUIO_BASE); 632 gpio = OMAP_MPUIO(irq - IH_MPUIO_BASE);
@@ -642,13 +645,13 @@ static int gpio_irq_type(unsigned irq, unsigned type)
642 return -EINVAL; 645 return -EINVAL;
643 646
644 bank = get_irq_chip_data(irq); 647 bank = get_irq_chip_data(irq);
645 spin_lock(&bank->lock); 648 spin_lock_irqsave(&bank->lock, flags);
646 retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type); 649 retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type);
647 if (retval == 0) { 650 if (retval == 0) {
648 irq_desc[irq].status &= ~IRQ_TYPE_SENSE_MASK; 651 irq_desc[irq].status &= ~IRQ_TYPE_SENSE_MASK;
649 irq_desc[irq].status |= type; 652 irq_desc[irq].status |= type;
650 } 653 }
651 spin_unlock(&bank->lock); 654 spin_unlock_irqrestore(&bank->lock, flags);
652 return retval; 655 return retval;
653} 656}
654 657
@@ -830,11 +833,13 @@ static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int ena
830 */ 833 */
831static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) 834static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
832{ 835{
836 unsigned long flags;
837
833 switch (bank->method) { 838 switch (bank->method) {
834#ifdef CONFIG_ARCH_OMAP16XX 839#ifdef CONFIG_ARCH_OMAP16XX
835 case METHOD_MPUIO: 840 case METHOD_MPUIO:
836 case METHOD_GPIO_1610: 841 case METHOD_GPIO_1610:
837 spin_lock(&bank->lock); 842 spin_lock_irqsave(&bank->lock, flags);
838 if (enable) { 843 if (enable) {
839 bank->suspend_wakeup |= (1 << gpio); 844 bank->suspend_wakeup |= (1 << gpio);
840 enable_irq_wake(bank->irq); 845 enable_irq_wake(bank->irq);
@@ -842,7 +847,7 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
842 disable_irq_wake(bank->irq); 847 disable_irq_wake(bank->irq);
843 bank->suspend_wakeup &= ~(1 << gpio); 848 bank->suspend_wakeup &= ~(1 << gpio);
844 } 849 }
845 spin_unlock(&bank->lock); 850 spin_unlock_irqrestore(&bank->lock, flags);
846 return 0; 851 return 0;
847#endif 852#endif
848#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) 853#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
@@ -853,7 +858,7 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
853 (bank - gpio_bank) * 32 + gpio); 858 (bank - gpio_bank) * 32 + gpio);
854 return -EINVAL; 859 return -EINVAL;
855 } 860 }
856 spin_lock(&bank->lock); 861 spin_lock_irqsave(&bank->lock, flags);
857 if (enable) { 862 if (enable) {
858 bank->suspend_wakeup |= (1 << gpio); 863 bank->suspend_wakeup |= (1 << gpio);
859 enable_irq_wake(bank->irq); 864 enable_irq_wake(bank->irq);
@@ -861,7 +866,7 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
861 disable_irq_wake(bank->irq); 866 disable_irq_wake(bank->irq);
862 bank->suspend_wakeup &= ~(1 << gpio); 867 bank->suspend_wakeup &= ~(1 << gpio);
863 } 868 }
864 spin_unlock(&bank->lock); 869 spin_unlock_irqrestore(&bank->lock, flags);
865 return 0; 870 return 0;
866#endif 871#endif
867 default: 872 default:
@@ -897,16 +902,17 @@ static int gpio_wake_enable(unsigned int irq, unsigned int enable)
897int omap_request_gpio(int gpio) 902int omap_request_gpio(int gpio)
898{ 903{
899 struct gpio_bank *bank; 904 struct gpio_bank *bank;
905 unsigned long flags;
900 906
901 if (check_gpio(gpio) < 0) 907 if (check_gpio(gpio) < 0)
902 return -EINVAL; 908 return -EINVAL;
903 909
904 bank = get_gpio_bank(gpio); 910 bank = get_gpio_bank(gpio);
905 spin_lock(&bank->lock); 911 spin_lock_irqsave(&bank->lock, flags);
906 if (unlikely(bank->reserved_map & (1 << get_gpio_index(gpio)))) { 912 if (unlikely(bank->reserved_map & (1 << get_gpio_index(gpio)))) {
907 printk(KERN_ERR "omap-gpio: GPIO %d is already reserved!\n", gpio); 913 printk(KERN_ERR "omap-gpio: GPIO %d is already reserved!\n", gpio);
908 dump_stack(); 914 dump_stack();
909 spin_unlock(&bank->lock); 915 spin_unlock_irqrestore(&bank->lock, flags);
910 return -1; 916 return -1;
911 } 917 }
912 bank->reserved_map |= (1 << get_gpio_index(gpio)); 918 bank->reserved_map |= (1 << get_gpio_index(gpio));
@@ -925,7 +931,7 @@ int omap_request_gpio(int gpio)
925 __raw_writel(__raw_readl(reg) | (1 << get_gpio_index(gpio)), reg); 931 __raw_writel(__raw_readl(reg) | (1 << get_gpio_index(gpio)), reg);
926 } 932 }
927#endif 933#endif
928 spin_unlock(&bank->lock); 934 spin_unlock_irqrestore(&bank->lock, flags);
929 935
930 return 0; 936 return 0;
931} 937}
@@ -933,15 +939,16 @@ int omap_request_gpio(int gpio)
933void omap_free_gpio(int gpio) 939void omap_free_gpio(int gpio)
934{ 940{
935 struct gpio_bank *bank; 941 struct gpio_bank *bank;
942 unsigned long flags;
936 943
937 if (check_gpio(gpio) < 0) 944 if (check_gpio(gpio) < 0)
938 return; 945 return;
939 bank = get_gpio_bank(gpio); 946 bank = get_gpio_bank(gpio);
940 spin_lock(&bank->lock); 947 spin_lock_irqsave(&bank->lock, flags);
941 if (unlikely(!(bank->reserved_map & (1 << get_gpio_index(gpio))))) { 948 if (unlikely(!(bank->reserved_map & (1 << get_gpio_index(gpio))))) {
942 printk(KERN_ERR "omap-gpio: GPIO %d wasn't reserved!\n", gpio); 949 printk(KERN_ERR "omap-gpio: GPIO %d wasn't reserved!\n", gpio);
943 dump_stack(); 950 dump_stack();
944 spin_unlock(&bank->lock); 951 spin_unlock_irqrestore(&bank->lock, flags);
945 return; 952 return;
946 } 953 }
947#ifdef CONFIG_ARCH_OMAP16XX 954#ifdef CONFIG_ARCH_OMAP16XX
@@ -960,7 +967,7 @@ void omap_free_gpio(int gpio)
960#endif 967#endif
961 bank->reserved_map &= ~(1 << get_gpio_index(gpio)); 968 bank->reserved_map &= ~(1 << get_gpio_index(gpio));
962 _reset_gpio(bank, gpio); 969 _reset_gpio(bank, gpio);
963 spin_unlock(&bank->lock); 970 spin_unlock_irqrestore(&bank->lock, flags);
964} 971}
965 972
966/* 973/*
@@ -1194,11 +1201,12 @@ static int omap_mpuio_suspend_late(struct platform_device *pdev, pm_message_t me
1194{ 1201{
1195 struct gpio_bank *bank = platform_get_drvdata(pdev); 1202 struct gpio_bank *bank = platform_get_drvdata(pdev);
1196 void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; 1203 void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT;
1204 unsigned long flags;
1197 1205
1198 spin_lock(&bank->lock); 1206 spin_lock_irqsave(&bank->lock, flags);
1199 bank->saved_wakeup = __raw_readl(mask_reg); 1207 bank->saved_wakeup = __raw_readl(mask_reg);
1200 __raw_writel(0xffff & ~bank->suspend_wakeup, mask_reg); 1208 __raw_writel(0xffff & ~bank->suspend_wakeup, mask_reg);
1201 spin_unlock(&bank->lock); 1209 spin_unlock_irqrestore(&bank->lock, flags);
1202 1210
1203 return 0; 1211 return 0;
1204} 1212}
@@ -1207,10 +1215,11 @@ static int omap_mpuio_resume_early(struct platform_device *pdev)
1207{ 1215{
1208 struct gpio_bank *bank = platform_get_drvdata(pdev); 1216 struct gpio_bank *bank = platform_get_drvdata(pdev);
1209 void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; 1217 void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT;
1218 unsigned long flags;
1210 1219
1211 spin_lock(&bank->lock); 1220 spin_lock_irqsave(&bank->lock, flags);
1212 __raw_writel(bank->saved_wakeup, mask_reg); 1221 __raw_writel(bank->saved_wakeup, mask_reg);
1213 spin_unlock(&bank->lock); 1222 spin_unlock_irqrestore(&bank->lock, flags);
1214 1223
1215 return 0; 1224 return 0;
1216} 1225}
@@ -1277,6 +1286,11 @@ static struct clk *gpio_fclks[OMAP34XX_NR_GPIOS];
1277static struct clk *gpio_iclks[OMAP34XX_NR_GPIOS]; 1286static struct clk *gpio_iclks[OMAP34XX_NR_GPIOS];
1278#endif 1287#endif
1279 1288
1289/* This lock class tells lockdep that GPIO irqs are in a different
1290 * category than their parents, so it won't report false recursion.
1291 */
1292static struct lock_class_key gpio_lock_class;
1293
1280static int __init _omap_gpio_init(void) 1294static int __init _omap_gpio_init(void)
1281{ 1295{
1282 int i; 1296 int i;
@@ -1450,6 +1464,7 @@ static int __init _omap_gpio_init(void)
1450#endif 1464#endif
1451 for (j = bank->virtual_irq_start; 1465 for (j = bank->virtual_irq_start;
1452 j < bank->virtual_irq_start + gpio_count; j++) { 1466 j < bank->virtual_irq_start + gpio_count; j++) {
1467 lockdep_set_class(&irq_desc[j].lock, &gpio_lock_class);
1453 set_irq_chip_data(j, bank); 1468 set_irq_chip_data(j, bank);
1454 if (bank_is_mpuio(bank)) 1469 if (bank_is_mpuio(bank))
1455 set_irq_chip(j, &mpuio_irq_chip); 1470 set_irq_chip(j, &mpuio_irq_chip);
@@ -1489,6 +1504,7 @@ static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg)
1489 void __iomem *wake_status; 1504 void __iomem *wake_status;
1490 void __iomem *wake_clear; 1505 void __iomem *wake_clear;
1491 void __iomem *wake_set; 1506 void __iomem *wake_set;
1507 unsigned long flags;
1492 1508
1493 switch (bank->method) { 1509 switch (bank->method) {
1494#ifdef CONFIG_ARCH_OMAP16XX 1510#ifdef CONFIG_ARCH_OMAP16XX
@@ -1509,11 +1525,11 @@ static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg)
1509 continue; 1525 continue;
1510 } 1526 }
1511 1527
1512 spin_lock(&bank->lock); 1528 spin_lock_irqsave(&bank->lock, flags);
1513 bank->saved_wakeup = __raw_readl(wake_status); 1529 bank->saved_wakeup = __raw_readl(wake_status);
1514 __raw_writel(0xffffffff, wake_clear); 1530 __raw_writel(0xffffffff, wake_clear);
1515 __raw_writel(bank->suspend_wakeup, wake_set); 1531 __raw_writel(bank->suspend_wakeup, wake_set);
1516 spin_unlock(&bank->lock); 1532 spin_unlock_irqrestore(&bank->lock, flags);
1517 } 1533 }
1518 1534
1519 return 0; 1535 return 0;
@@ -1530,6 +1546,7 @@ static int omap_gpio_resume(struct sys_device *dev)
1530 struct gpio_bank *bank = &gpio_bank[i]; 1546 struct gpio_bank *bank = &gpio_bank[i];
1531 void __iomem *wake_clear; 1547 void __iomem *wake_clear;
1532 void __iomem *wake_set; 1548 void __iomem *wake_set;
1549 unsigned long flags;
1533 1550
1534 switch (bank->method) { 1551 switch (bank->method) {
1535#ifdef CONFIG_ARCH_OMAP16XX 1552#ifdef CONFIG_ARCH_OMAP16XX
@@ -1548,10 +1565,10 @@ static int omap_gpio_resume(struct sys_device *dev)
1548 continue; 1565 continue;
1549 } 1566 }
1550 1567
1551 spin_lock(&bank->lock); 1568 spin_lock_irqsave(&bank->lock, flags);
1552 __raw_writel(0xffffffff, wake_clear); 1569 __raw_writel(0xffffffff, wake_clear);
1553 __raw_writel(bank->saved_wakeup, wake_set); 1570 __raw_writel(bank->saved_wakeup, wake_set);
1554 spin_unlock(&bank->lock); 1571 spin_unlock_irqrestore(&bank->lock, flags);
1555 } 1572 }
1556 1573
1557 return 0; 1574 return 0;