aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/Makefile6
-rw-r--r--arch/arm/configs/realview-smp_defconfig994
-rw-r--r--arch/arm/kernel/smp.c20
-rw-r--r--arch/arm/kernel/time.c3
-rw-r--r--arch/arm/mach-iop32x/n2100.c2
-rw-r--r--arch/arm/mach-sa1100/cpu-sa1110.c2
-rw-r--r--arch/arm/vfp/vfpdouble.c2
-rw-r--r--arch/arm/vfp/vfpmodule.c1
-rw-r--r--drivers/i2c/busses/i2c-pxa.c8
-rw-r--r--drivers/pcmcia/pxa2xx_base.c41
-rw-r--r--drivers/pcmcia/pxa2xx_base.h2
-rw-r--r--drivers/pcmcia/pxa2xx_lubbock.c2
-rw-r--r--include/asm-arm/uaccess.h20
-rw-r--r--lib/Kconfig.debug2
14 files changed, 1064 insertions, 41 deletions
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 2a0b2c8a1fe0..6f4f8bf36071 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -174,11 +174,13 @@ libs-y := arch/arm/lib/ $(libs-y)
174 174
175# Default target when executing plain make 175# Default target when executing plain make
176ifeq ($(CONFIG_XIP_KERNEL),y) 176ifeq ($(CONFIG_XIP_KERNEL),y)
177all: xipImage 177KBUILD_IMAGE := xipImage
178else 178else
179all: zImage 179KBUILD_IMAGE := zImage
180endif 180endif
181 181
182all: $(KBUILD_IMAGE)
183
182boot := arch/arm/boot 184boot := arch/arm/boot
183 185
184# Update machine arch and proc symlinks if something which affects 186# Update machine arch and proc symlinks if something which affects
diff --git a/arch/arm/configs/realview-smp_defconfig b/arch/arm/configs/realview-smp_defconfig
new file mode 100644
index 000000000000..ffd905ff19f1
--- /dev/null
+++ b/arch/arm/configs/realview-smp_defconfig
@@ -0,0 +1,994 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.19-rc3
4# Wed Oct 25 14:12:00 2006
5#
6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set
8CONFIG_MMU=y
9CONFIG_GENERIC_HARDIRQS=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y
11CONFIG_HARDIRQS_SW_RESEND=y
12CONFIG_GENERIC_IRQ_PROBE=y
13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y
16CONFIG_VECTORS_BASE=0xffff0000
17CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
18
19#
20# Code maturity level options
21#
22CONFIG_EXPERIMENTAL=y
23CONFIG_LOCK_KERNEL=y
24CONFIG_INIT_ENV_ARG_LIMIT=32
25
26#
27# General setup
28#
29CONFIG_LOCALVERSION=""
30CONFIG_LOCALVERSION_AUTO=y
31# CONFIG_SWAP is not set
32CONFIG_SYSVIPC=y
33# CONFIG_IPC_NS is not set
34# CONFIG_POSIX_MQUEUE is not set
35# CONFIG_BSD_PROCESS_ACCT is not set
36# CONFIG_TASKSTATS is not set
37# CONFIG_UTS_NS is not set
38# CONFIG_AUDIT is not set
39# CONFIG_IKCONFIG is not set
40# CONFIG_CPUSETS is not set
41# CONFIG_RELAY is not set
42CONFIG_INITRAMFS_SOURCE=""
43CONFIG_CC_OPTIMIZE_FOR_SIZE=y
44CONFIG_SYSCTL=y
45# CONFIG_EMBEDDED is not set
46CONFIG_UID16=y
47# CONFIG_SYSCTL_SYSCALL is not set
48CONFIG_KALLSYMS=y
49CONFIG_KALLSYMS_ALL=y
50# CONFIG_KALLSYMS_EXTRA_PASS is not set
51CONFIG_HOTPLUG=y
52CONFIG_PRINTK=y
53CONFIG_BUG=y
54CONFIG_ELF_CORE=y
55CONFIG_BASE_FULL=y
56CONFIG_FUTEX=y
57CONFIG_EPOLL=y
58CONFIG_SHMEM=y
59CONFIG_SLAB=y
60CONFIG_VM_EVENT_COUNTERS=y
61CONFIG_RT_MUTEXES=y
62# CONFIG_TINY_SHMEM is not set
63CONFIG_BASE_SMALL=0
64# CONFIG_SLOB is not set
65
66#
67# Loadable module support
68#
69CONFIG_MODULES=y
70CONFIG_MODULE_UNLOAD=y
71# CONFIG_MODULE_FORCE_UNLOAD is not set
72# CONFIG_MODVERSIONS is not set
73# CONFIG_MODULE_SRCVERSION_ALL is not set
74# CONFIG_KMOD is not set
75CONFIG_STOP_MACHINE=y
76
77#
78# Block layer
79#
80CONFIG_BLOCK=y
81# CONFIG_BLK_DEV_IO_TRACE is not set
82
83#
84# IO Schedulers
85#
86CONFIG_IOSCHED_NOOP=y
87# CONFIG_IOSCHED_AS is not set
88CONFIG_IOSCHED_DEADLINE=y
89# CONFIG_IOSCHED_CFQ is not set
90# CONFIG_DEFAULT_AS is not set
91CONFIG_DEFAULT_DEADLINE=y
92# CONFIG_DEFAULT_CFQ is not set
93# CONFIG_DEFAULT_NOOP is not set
94CONFIG_DEFAULT_IOSCHED="deadline"
95
96#
97# System Type
98#
99# CONFIG_ARCH_AAEC2000 is not set
100# CONFIG_ARCH_INTEGRATOR is not set
101CONFIG_ARCH_REALVIEW=y
102# CONFIG_ARCH_VERSATILE is not set
103# CONFIG_ARCH_AT91 is not set
104# CONFIG_ARCH_CLPS7500 is not set
105# CONFIG_ARCH_CLPS711X is not set
106# CONFIG_ARCH_CO285 is not set
107# CONFIG_ARCH_EBSA110 is not set
108# CONFIG_ARCH_EP93XX is not set
109# CONFIG_ARCH_FOOTBRIDGE is not set
110# CONFIG_ARCH_NETX is not set
111# CONFIG_ARCH_H720X is not set
112# CONFIG_ARCH_IMX is not set
113# CONFIG_ARCH_IOP32X is not set
114# CONFIG_ARCH_IOP33X is not set
115# CONFIG_ARCH_IXP4XX is not set
116# CONFIG_ARCH_IXP2000 is not set
117# CONFIG_ARCH_IXP23XX is not set
118# CONFIG_ARCH_L7200 is not set
119# CONFIG_ARCH_PNX4008 is not set
120# CONFIG_ARCH_PXA is not set
121# CONFIG_ARCH_RPC is not set
122# CONFIG_ARCH_SA1100 is not set
123# CONFIG_ARCH_S3C2410 is not set
124# CONFIG_ARCH_SHARK is not set
125# CONFIG_ARCH_LH7A40X is not set
126# CONFIG_ARCH_OMAP is not set
127
128#
129# RealView platform type
130#
131CONFIG_MACH_REALVIEW_EB=y
132CONFIG_REALVIEW_MPCORE=y
133
134#
135# Processor Type
136#
137CONFIG_CPU_32=y
138# CONFIG_CPU_ARM926T is not set
139CONFIG_CPU_V6=y
140CONFIG_CPU_32v6K=y
141CONFIG_CPU_32v6=y
142CONFIG_CPU_ABRT_EV6=y
143CONFIG_CPU_CACHE_V6=y
144CONFIG_CPU_CACHE_VIPT=y
145CONFIG_CPU_COPY_V6=y
146CONFIG_CPU_TLB_V6=y
147CONFIG_CPU_CP15=y
148CONFIG_CPU_CP15_MMU=y
149
150#
151# Processor Features
152#
153CONFIG_ARM_THUMB=y
154# CONFIG_CPU_ICACHE_DISABLE is not set
155# CONFIG_CPU_DCACHE_DISABLE is not set
156# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
157# CONFIG_CPU_BPREDICT_DISABLE is not set
158CONFIG_HAS_TLS_REG=y
159CONFIG_ARM_GIC=y
160CONFIG_ICST307=y
161
162#
163# Bus support
164#
165CONFIG_ARM_AMBA=y
166
167#
168# PCCARD (PCMCIA/CardBus) support
169#
170# CONFIG_PCCARD is not set
171
172#
173# Kernel Features
174#
175CONFIG_SMP=y
176CONFIG_NR_CPUS=4
177CONFIG_HOTPLUG_CPU=y
178CONFIG_LOCAL_TIMERS=y
179# CONFIG_PREEMPT is not set
180# CONFIG_NO_IDLE_HZ is not set
181CONFIG_HZ=100
182# CONFIG_AEABI is not set
183# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
184CONFIG_SELECT_MEMORY_MODEL=y
185CONFIG_FLATMEM_MANUAL=y
186# CONFIG_DISCONTIGMEM_MANUAL is not set
187# CONFIG_SPARSEMEM_MANUAL is not set
188CONFIG_FLATMEM=y
189CONFIG_FLAT_NODE_MEM_MAP=y
190# CONFIG_SPARSEMEM_STATIC is not set
191CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193CONFIG_ALIGNMENT_TRAP=y
194
195#
196# Boot options
197#
198CONFIG_ZBOOT_ROM_TEXT=0x0
199CONFIG_ZBOOT_ROM_BSS=0x0
200CONFIG_CMDLINE="root=/dev/nfs nfsroot=10.1.69.3:/work/nfsroot ip=dhcp console=ttyAMA0 mem=128M"
201# CONFIG_XIP_KERNEL is not set
202
203#
204# Floating point emulation
205#
206
207#
208# At least one emulation must be selected
209#
210CONFIG_FPE_NWFPE=y
211# CONFIG_FPE_NWFPE_XP is not set
212# CONFIG_FPE_FASTFPE is not set
213CONFIG_VFP=y
214
215#
216# Userspace binary formats
217#
218CONFIG_BINFMT_ELF=y
219# CONFIG_BINFMT_AOUT is not set
220# CONFIG_BINFMT_MISC is not set
221# CONFIG_ARTHUR is not set
222
223#
224# Power management options
225#
226# CONFIG_PM is not set
227# CONFIG_APM is not set
228
229#
230# Networking
231#
232CONFIG_NET=y
233
234#
235# Networking options
236#
237# CONFIG_NETDEBUG is not set
238CONFIG_PACKET=y
239# CONFIG_PACKET_MMAP is not set
240CONFIG_UNIX=y
241# CONFIG_NET_KEY is not set
242CONFIG_INET=y
243# CONFIG_IP_MULTICAST is not set
244# CONFIG_IP_ADVANCED_ROUTER is not set
245CONFIG_IP_FIB_HASH=y
246CONFIG_IP_PNP=y
247CONFIG_IP_PNP_DHCP=y
248CONFIG_IP_PNP_BOOTP=y
249# CONFIG_IP_PNP_RARP is not set
250# CONFIG_NET_IPIP is not set
251# CONFIG_NET_IPGRE is not set
252# CONFIG_ARPD is not set
253# CONFIG_SYN_COOKIES is not set
254# CONFIG_INET_AH is not set
255# CONFIG_INET_ESP is not set
256# CONFIG_INET_IPCOMP is not set
257# CONFIG_INET_XFRM_TUNNEL is not set
258# CONFIG_INET_TUNNEL is not set
259# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
260# CONFIG_INET_XFRM_MODE_TUNNEL is not set
261# CONFIG_INET_XFRM_MODE_BEET is not set
262CONFIG_INET_DIAG=y
263CONFIG_INET_TCP_DIAG=y
264# CONFIG_TCP_CONG_ADVANCED is not set
265CONFIG_TCP_CONG_CUBIC=y
266CONFIG_DEFAULT_TCP_CONG="cubic"
267# CONFIG_IPV6 is not set
268# CONFIG_INET6_XFRM_TUNNEL is not set
269# CONFIG_INET6_TUNNEL is not set
270# CONFIG_NETWORK_SECMARK is not set
271# CONFIG_NETFILTER is not set
272
273#
274# DCCP Configuration (EXPERIMENTAL)
275#
276# CONFIG_IP_DCCP is not set
277
278#
279# SCTP Configuration (EXPERIMENTAL)
280#
281# CONFIG_IP_SCTP is not set
282
283#
284# TIPC Configuration (EXPERIMENTAL)
285#
286# CONFIG_TIPC is not set
287# CONFIG_ATM is not set
288# CONFIG_BRIDGE is not set
289# CONFIG_VLAN_8021Q is not set
290# CONFIG_DECNET is not set
291# CONFIG_LLC2 is not set
292# CONFIG_IPX is not set
293# CONFIG_ATALK is not set
294# CONFIG_X25 is not set
295# CONFIG_LAPB is not set
296# CONFIG_ECONET is not set
297# CONFIG_WAN_ROUTER is not set
298
299#
300# QoS and/or fair queueing
301#
302# CONFIG_NET_SCHED is not set
303
304#
305# Network testing
306#
307# CONFIG_NET_PKTGEN is not set
308# CONFIG_HAMRADIO is not set
309# CONFIG_IRDA is not set
310# CONFIG_BT is not set
311# CONFIG_IEEE80211 is not set
312
313#
314# Device Drivers
315#
316
317#
318# Generic Driver Options
319#
320CONFIG_STANDALONE=y
321CONFIG_PREVENT_FIRMWARE_BUILD=y
322# CONFIG_FW_LOADER is not set
323# CONFIG_DEBUG_DRIVER is not set
324# CONFIG_SYS_HYPERVISOR is not set
325
326#
327# Connector - unified userspace <-> kernelspace linker
328#
329# CONFIG_CONNECTOR is not set
330
331#
332# Memory Technology Devices (MTD)
333#
334CONFIG_MTD=y
335# CONFIG_MTD_DEBUG is not set
336# CONFIG_MTD_CONCAT is not set
337CONFIG_MTD_PARTITIONS=y
338# CONFIG_MTD_REDBOOT_PARTS is not set
339CONFIG_MTD_CMDLINE_PARTS=y
340# CONFIG_MTD_AFS_PARTS is not set
341
342#
343# User Modules And Translation Layers
344#
345CONFIG_MTD_CHAR=y
346CONFIG_MTD_BLOCK=y
347# CONFIG_FTL is not set
348# CONFIG_NFTL is not set
349# CONFIG_INFTL is not set
350# CONFIG_RFD_FTL is not set
351# CONFIG_SSFDC is not set
352
353#
354# RAM/ROM/Flash chip drivers
355#
356CONFIG_MTD_CFI=y
357# CONFIG_MTD_JEDECPROBE is not set
358CONFIG_MTD_GEN_PROBE=y
359# CONFIG_MTD_CFI_ADV_OPTIONS is not set
360CONFIG_MTD_MAP_BANK_WIDTH_1=y
361CONFIG_MTD_MAP_BANK_WIDTH_2=y
362CONFIG_MTD_MAP_BANK_WIDTH_4=y
363# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
364# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
365# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
366CONFIG_MTD_CFI_I1=y
367CONFIG_MTD_CFI_I2=y
368# CONFIG_MTD_CFI_I4 is not set
369# CONFIG_MTD_CFI_I8 is not set
370CONFIG_MTD_CFI_INTELEXT=y
371CONFIG_MTD_CFI_AMDSTD=y
372# CONFIG_MTD_CFI_STAA is not set
373CONFIG_MTD_CFI_UTIL=y
374# CONFIG_MTD_RAM is not set
375# CONFIG_MTD_ROM is not set
376# CONFIG_MTD_ABSENT is not set
377# CONFIG_MTD_OBSOLETE_CHIPS is not set
378
379#
380# Mapping drivers for chip access
381#
382# CONFIG_MTD_COMPLEX_MAPPINGS is not set
383# CONFIG_MTD_PHYSMAP is not set
384CONFIG_MTD_ARM_INTEGRATOR=y
385# CONFIG_MTD_PLATRAM is not set
386
387#
388# Self-contained MTD device drivers
389#
390# CONFIG_MTD_SLRAM is not set
391# CONFIG_MTD_PHRAM is not set
392# CONFIG_MTD_MTDRAM is not set
393# CONFIG_MTD_BLOCK2MTD is not set
394
395#
396# Disk-On-Chip Device Drivers
397#
398# CONFIG_MTD_DOC2000 is not set
399# CONFIG_MTD_DOC2001 is not set
400# CONFIG_MTD_DOC2001PLUS is not set
401
402#
403# NAND Flash Device Drivers
404#
405# CONFIG_MTD_NAND is not set
406
407#
408# OneNAND Flash Device Drivers
409#
410# CONFIG_MTD_ONENAND is not set
411
412#
413# Parallel port support
414#
415# CONFIG_PARPORT is not set
416
417#
418# Plug and Play support
419#
420
421#
422# Block devices
423#
424# CONFIG_BLK_DEV_COW_COMMON is not set
425# CONFIG_BLK_DEV_LOOP is not set
426# CONFIG_BLK_DEV_NBD is not set
427# CONFIG_BLK_DEV_RAM is not set
428CONFIG_BLK_DEV_INITRD=y
429# CONFIG_CDROM_PKTCDVD is not set
430# CONFIG_ATA_OVER_ETH is not set
431
432#
433# SCSI device support
434#
435# CONFIG_RAID_ATTRS is not set
436# CONFIG_SCSI is not set
437# CONFIG_SCSI_NETLINK is not set
438
439#
440# Multi-device support (RAID and LVM)
441#
442# CONFIG_MD is not set
443
444#
445# Fusion MPT device support
446#
447# CONFIG_FUSION is not set
448
449#
450# IEEE 1394 (FireWire) support
451#
452
453#
454# I2O device support
455#
456
457#
458# Network device support
459#
460CONFIG_NETDEVICES=y
461# CONFIG_DUMMY is not set
462# CONFIG_BONDING is not set
463# CONFIG_EQUALIZER is not set
464# CONFIG_TUN is not set
465
466#
467# PHY device support
468#
469# CONFIG_PHYLIB is not set
470
471#
472# Ethernet (10 or 100Mbit)
473#
474CONFIG_NET_ETHERNET=y
475CONFIG_MII=y
476CONFIG_SMC91X=y
477# CONFIG_DM9000 is not set
478
479#
480# Ethernet (1000 Mbit)
481#
482
483#
484# Ethernet (10000 Mbit)
485#
486
487#
488# Token Ring devices
489#
490
491#
492# Wireless LAN (non-hamradio)
493#
494# CONFIG_NET_RADIO is not set
495
496#
497# Wan interfaces
498#
499# CONFIG_WAN is not set
500# CONFIG_PPP is not set
501# CONFIG_SLIP is not set
502# CONFIG_SHAPER is not set
503# CONFIG_NETCONSOLE is not set
504# CONFIG_NETPOLL is not set
505# CONFIG_NET_POLL_CONTROLLER is not set
506
507#
508# ISDN subsystem
509#
510# CONFIG_ISDN is not set
511
512#
513# Input device support
514#
515CONFIG_INPUT=y
516# CONFIG_INPUT_FF_MEMLESS is not set
517
518#
519# Userland interfaces
520#
521CONFIG_INPUT_MOUSEDEV=y
522CONFIG_INPUT_MOUSEDEV_PSAUX=y
523CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
524CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
525# CONFIG_INPUT_JOYDEV is not set
526# CONFIG_INPUT_TSDEV is not set
527# CONFIG_INPUT_EVDEV is not set
528# CONFIG_INPUT_EVBUG is not set
529
530#
531# Input Device Drivers
532#
533CONFIG_INPUT_KEYBOARD=y
534CONFIG_KEYBOARD_ATKBD=y
535# CONFIG_KEYBOARD_SUNKBD is not set
536# CONFIG_KEYBOARD_LKKBD is not set
537# CONFIG_KEYBOARD_XTKBD is not set
538# CONFIG_KEYBOARD_NEWTON is not set
539# CONFIG_KEYBOARD_STOWAWAY is not set
540CONFIG_INPUT_MOUSE=y
541CONFIG_MOUSE_PS2=y
542# CONFIG_MOUSE_SERIAL is not set
543# CONFIG_MOUSE_VSXXXAA is not set
544# CONFIG_INPUT_JOYSTICK is not set
545# CONFIG_INPUT_TOUCHSCREEN is not set
546# CONFIG_INPUT_MISC is not set
547
548#
549# Hardware I/O ports
550#
551CONFIG_SERIO=y
552# CONFIG_SERIO_SERPORT is not set
553CONFIG_SERIO_AMBAKMI=y
554CONFIG_SERIO_LIBPS2=y
555# CONFIG_SERIO_RAW is not set
556# CONFIG_GAMEPORT is not set
557
558#
559# Character devices
560#
561CONFIG_VT=y
562CONFIG_VT_CONSOLE=y
563CONFIG_HW_CONSOLE=y
564# CONFIG_VT_HW_CONSOLE_BINDING is not set
565# CONFIG_SERIAL_NONSTANDARD is not set
566
567#
568# Serial drivers
569#
570# CONFIG_SERIAL_8250 is not set
571
572#
573# Non-8250 serial port support
574#
575# CONFIG_SERIAL_AMBA_PL010 is not set
576CONFIG_SERIAL_AMBA_PL011=y
577CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
578CONFIG_SERIAL_CORE=y
579CONFIG_SERIAL_CORE_CONSOLE=y
580CONFIG_UNIX98_PTYS=y
581CONFIG_LEGACY_PTYS=y
582CONFIG_LEGACY_PTY_COUNT=16
583
584#
585# IPMI
586#
587# CONFIG_IPMI_HANDLER is not set
588
589#
590# Watchdog Cards
591#
592# CONFIG_WATCHDOG is not set
593# CONFIG_HW_RANDOM is not set
594# CONFIG_NVRAM is not set
595# CONFIG_DTLK is not set
596# CONFIG_R3964 is not set
597
598#
599# Ftape, the floppy tape device driver
600#
601# CONFIG_RAW_DRIVER is not set
602
603#
604# TPM devices
605#
606# CONFIG_TCG_TPM is not set
607
608#
609# I2C support
610#
611# CONFIG_I2C is not set
612
613#
614# SPI support
615#
616# CONFIG_SPI is not set
617# CONFIG_SPI_MASTER is not set
618
619#
620# Dallas's 1-wire bus
621#
622# CONFIG_W1 is not set
623
624#
625# Hardware Monitoring support
626#
627# CONFIG_HWMON is not set
628# CONFIG_HWMON_VID is not set
629
630#
631# Misc devices
632#
633# CONFIG_SGI_IOC4 is not set
634# CONFIG_TIFM_CORE is not set
635
636#
637# LED devices
638#
639# CONFIG_NEW_LEDS is not set
640
641#
642# LED drivers
643#
644
645#
646# LED Triggers
647#
648
649#
650# Multimedia devices
651#
652# CONFIG_VIDEO_DEV is not set
653
654#
655# Digital Video Broadcasting Devices
656#
657# CONFIG_DVB is not set
658
659#
660# Graphics support
661#
662# CONFIG_FIRMWARE_EDID is not set
663CONFIG_FB=y
664CONFIG_FB_CFB_FILLRECT=y
665CONFIG_FB_CFB_COPYAREA=y
666CONFIG_FB_CFB_IMAGEBLIT=y
667# CONFIG_FB_MACMODES is not set
668# CONFIG_FB_BACKLIGHT is not set
669# CONFIG_FB_MODE_HELPERS is not set
670# CONFIG_FB_TILEBLITTING is not set
671CONFIG_FB_ARMCLCD=y
672# CONFIG_FB_S1D13XXX is not set
673# CONFIG_FB_VIRTUAL is not set
674
675#
676# Console display driver support
677#
678# CONFIG_VGA_CONSOLE is not set
679CONFIG_DUMMY_CONSOLE=y
680CONFIG_FRAMEBUFFER_CONSOLE=y
681# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
682# CONFIG_FONTS is not set
683CONFIG_FONT_8x8=y
684CONFIG_FONT_8x16=y
685
686#
687# Logo configuration
688#
689CONFIG_LOGO=y
690# CONFIG_LOGO_LINUX_MONO is not set
691# CONFIG_LOGO_LINUX_VGA16 is not set
692CONFIG_LOGO_LINUX_CLUT224=y
693# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
694
695#
696# Sound
697#
698CONFIG_SOUND=y
699
700#
701# Advanced Linux Sound Architecture
702#
703CONFIG_SND=y
704CONFIG_SND_TIMER=y
705CONFIG_SND_PCM=y
706# CONFIG_SND_SEQUENCER is not set
707CONFIG_SND_OSSEMUL=y
708CONFIG_SND_MIXER_OSS=y
709CONFIG_SND_PCM_OSS=y
710CONFIG_SND_PCM_OSS_PLUGINS=y
711# CONFIG_SND_DYNAMIC_MINORS is not set
712CONFIG_SND_SUPPORT_OLD_API=y
713CONFIG_SND_VERBOSE_PROCFS=y
714# CONFIG_SND_VERBOSE_PRINTK is not set
715# CONFIG_SND_DEBUG is not set
716
717#
718# Generic devices
719#
720CONFIG_SND_AC97_CODEC=m
721CONFIG_SND_AC97_BUS=m
722# CONFIG_SND_DUMMY is not set
723# CONFIG_SND_MTPAV is not set
724# CONFIG_SND_SERIAL_U16550 is not set
725# CONFIG_SND_MPU401 is not set
726
727#
728# ALSA ARM devices
729#
730CONFIG_SND_ARMAACI=m
731
732#
733# Open Sound System
734#
735# CONFIG_SOUND_PRIME is not set
736
737#
738# USB support
739#
740CONFIG_USB_ARCH_HAS_HCD=y
741# CONFIG_USB_ARCH_HAS_OHCI is not set
742# CONFIG_USB_ARCH_HAS_EHCI is not set
743# CONFIG_USB is not set
744
745#
746# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
747#
748
749#
750# USB Gadget Support
751#
752# CONFIG_USB_GADGET is not set
753
754#
755# MMC/SD Card support
756#
757CONFIG_MMC=y
758# CONFIG_MMC_DEBUG is not set
759CONFIG_MMC_BLOCK=y
760CONFIG_MMC_ARMMMCI=y
761# CONFIG_MMC_TIFM_SD is not set
762
763#
764# Real Time Clock
765#
766CONFIG_RTC_LIB=y
767CONFIG_RTC_CLASS=y
768CONFIG_RTC_HCTOSYS=y
769CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
770# CONFIG_RTC_DEBUG is not set
771
772#
773# RTC interfaces
774#
775CONFIG_RTC_INTF_SYSFS=y
776CONFIG_RTC_INTF_PROC=y
777CONFIG_RTC_INTF_DEV=y
778CONFIG_RTC_INTF_DEV_UIE_EMUL=y
779
780#
781# RTC drivers
782#
783# CONFIG_RTC_DRV_DS1553 is not set
784# CONFIG_RTC_DRV_DS1742 is not set
785# CONFIG_RTC_DRV_M48T86 is not set
786CONFIG_RTC_DRV_PL031=y
787# CONFIG_RTC_DRV_TEST is not set
788# CONFIG_RTC_DRV_V3020 is not set
789
790#
791# File systems
792#
793CONFIG_EXT2_FS=y
794# CONFIG_EXT2_FS_XATTR is not set
795# CONFIG_EXT2_FS_XIP is not set
796# CONFIG_EXT3_FS is not set
797# CONFIG_EXT4DEV_FS is not set
798# CONFIG_REISERFS_FS is not set
799# CONFIG_JFS_FS is not set
800# CONFIG_FS_POSIX_ACL is not set
801# CONFIG_XFS_FS is not set
802# CONFIG_GFS2_FS is not set
803# CONFIG_OCFS2_FS is not set
804# CONFIG_MINIX_FS is not set
805# CONFIG_ROMFS_FS is not set
806CONFIG_INOTIFY=y
807# CONFIG_INOTIFY_USER is not set
808# CONFIG_QUOTA is not set
809CONFIG_DNOTIFY=y
810# CONFIG_AUTOFS_FS is not set
811# CONFIG_AUTOFS4_FS is not set
812# CONFIG_FUSE_FS is not set
813
814#
815# CD-ROM/DVD Filesystems
816#
817# CONFIG_ISO9660_FS is not set
818# CONFIG_UDF_FS is not set
819
820#
821# DOS/FAT/NT Filesystems
822#
823CONFIG_FAT_FS=y
824# CONFIG_MSDOS_FS is not set
825CONFIG_VFAT_FS=y
826CONFIG_FAT_DEFAULT_CODEPAGE=437
827CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
828# CONFIG_NTFS_FS is not set
829
830#
831# Pseudo filesystems
832#
833CONFIG_PROC_FS=y
834CONFIG_PROC_SYSCTL=y
835CONFIG_SYSFS=y
836CONFIG_TMPFS=y
837# CONFIG_TMPFS_POSIX_ACL is not set
838# CONFIG_HUGETLB_PAGE is not set
839CONFIG_RAMFS=y
840# CONFIG_CONFIGFS_FS is not set
841
842#
843# Miscellaneous filesystems
844#
845# CONFIG_ADFS_FS is not set
846# CONFIG_AFFS_FS is not set
847# CONFIG_HFS_FS is not set
848# CONFIG_HFSPLUS_FS is not set
849# CONFIG_BEFS_FS is not set
850# CONFIG_BFS_FS is not set
851# CONFIG_EFS_FS is not set
852# CONFIG_JFFS_FS is not set
853# CONFIG_JFFS2_FS is not set
854CONFIG_CRAMFS=y
855# CONFIG_VXFS_FS is not set
856# CONFIG_HPFS_FS is not set
857# CONFIG_QNX4FS_FS is not set
858# CONFIG_SYSV_FS is not set
859# CONFIG_UFS_FS is not set
860
861#
862# Network File Systems
863#
864CONFIG_NFS_FS=y
865CONFIG_NFS_V3=y
866# CONFIG_NFS_V3_ACL is not set
867# CONFIG_NFS_V4 is not set
868# CONFIG_NFS_DIRECTIO is not set
869# CONFIG_NFSD is not set
870CONFIG_ROOT_NFS=y
871CONFIG_LOCKD=y
872CONFIG_LOCKD_V4=y
873CONFIG_NFS_COMMON=y
874CONFIG_SUNRPC=y
875# CONFIG_RPCSEC_GSS_KRB5 is not set
876# CONFIG_RPCSEC_GSS_SPKM3 is not set
877# CONFIG_SMB_FS is not set
878# CONFIG_CIFS is not set
879# CONFIG_NCP_FS is not set
880# CONFIG_CODA_FS is not set
881# CONFIG_AFS_FS is not set
882# CONFIG_9P_FS is not set
883
884#
885# Partition Types
886#
887# CONFIG_PARTITION_ADVANCED is not set
888CONFIG_MSDOS_PARTITION=y
889
890#
891# Native Language Support
892#
893CONFIG_NLS=y
894CONFIG_NLS_DEFAULT="iso8859-1"
895CONFIG_NLS_CODEPAGE_437=y
896# CONFIG_NLS_CODEPAGE_737 is not set
897# CONFIG_NLS_CODEPAGE_775 is not set
898# CONFIG_NLS_CODEPAGE_850 is not set
899# CONFIG_NLS_CODEPAGE_852 is not set
900# CONFIG_NLS_CODEPAGE_855 is not set
901# CONFIG_NLS_CODEPAGE_857 is not set
902# CONFIG_NLS_CODEPAGE_860 is not set
903# CONFIG_NLS_CODEPAGE_861 is not set
904# CONFIG_NLS_CODEPAGE_862 is not set
905# CONFIG_NLS_CODEPAGE_863 is not set
906# CONFIG_NLS_CODEPAGE_864 is not set
907# CONFIG_NLS_CODEPAGE_865 is not set
908# CONFIG_NLS_CODEPAGE_866 is not set
909# CONFIG_NLS_CODEPAGE_869 is not set
910# CONFIG_NLS_CODEPAGE_936 is not set
911# CONFIG_NLS_CODEPAGE_950 is not set
912# CONFIG_NLS_CODEPAGE_932 is not set
913# CONFIG_NLS_CODEPAGE_949 is not set
914# CONFIG_NLS_CODEPAGE_874 is not set
915# CONFIG_NLS_ISO8859_8 is not set
916# CONFIG_NLS_CODEPAGE_1250 is not set
917# CONFIG_NLS_CODEPAGE_1251 is not set
918# CONFIG_NLS_ASCII is not set
919CONFIG_NLS_ISO8859_1=y
920# CONFIG_NLS_ISO8859_2 is not set
921# CONFIG_NLS_ISO8859_3 is not set
922# CONFIG_NLS_ISO8859_4 is not set
923# CONFIG_NLS_ISO8859_5 is not set
924# CONFIG_NLS_ISO8859_6 is not set
925# CONFIG_NLS_ISO8859_7 is not set
926# CONFIG_NLS_ISO8859_9 is not set
927# CONFIG_NLS_ISO8859_13 is not set
928# CONFIG_NLS_ISO8859_14 is not set
929# CONFIG_NLS_ISO8859_15 is not set
930# CONFIG_NLS_KOI8_R is not set
931# CONFIG_NLS_KOI8_U is not set
932# CONFIG_NLS_UTF8 is not set
933
934#
935# Profiling support
936#
937# CONFIG_PROFILING is not set
938
939#
940# Kernel hacking
941#
942# CONFIG_PRINTK_TIME is not set
943# CONFIG_ENABLE_MUST_CHECK is not set
944CONFIG_MAGIC_SYSRQ=y
945# CONFIG_UNUSED_SYMBOLS is not set
946CONFIG_DEBUG_KERNEL=y
947CONFIG_LOG_BUF_SHIFT=14
948CONFIG_DETECT_SOFTLOCKUP=y
949# CONFIG_SCHEDSTATS is not set
950# CONFIG_DEBUG_SLAB is not set
951# CONFIG_DEBUG_RT_MUTEXES is not set
952# CONFIG_RT_MUTEX_TESTER is not set
953CONFIG_DEBUG_SPINLOCK=y
954CONFIG_DEBUG_MUTEXES=y
955CONFIG_DEBUG_RWSEMS=y
956# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
957# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
958# CONFIG_DEBUG_KOBJECT is not set
959CONFIG_DEBUG_BUGVERBOSE=y
960# CONFIG_DEBUG_INFO is not set
961# CONFIG_DEBUG_FS is not set
962# CONFIG_DEBUG_VM is not set
963# CONFIG_DEBUG_LIST is not set
964CONFIG_FRAME_POINTER=y
965# CONFIG_UNWIND_INFO is not set
966CONFIG_FORCED_INLINING=y
967# CONFIG_HEADERS_CHECK is not set
968# CONFIG_RCU_TORTURE_TEST is not set
969CONFIG_DEBUG_USER=y
970# CONFIG_DEBUG_WAITQ is not set
971CONFIG_DEBUG_ERRORS=y
972CONFIG_DEBUG_LL=y
973# CONFIG_DEBUG_ICEDCC is not set
974
975#
976# Security options
977#
978# CONFIG_KEYS is not set
979# CONFIG_SECURITY is not set
980
981#
982# Cryptographic options
983#
984# CONFIG_CRYPTO is not set
985
986#
987# Library routines
988#
989# CONFIG_CRC_CCITT is not set
990# CONFIG_CRC16 is not set
991CONFIG_CRC32=y
992# CONFIG_LIBCRC32C is not set
993CONFIG_ZLIB_INFLATE=y
994CONFIG_PLIST=y
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 421329f5e18e..a07d202143c3 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -7,6 +7,7 @@
7 * it under the terms of the GNU General Public License version 2 as 7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
9 */ 9 */
10#include <linux/module.h>
10#include <linux/delay.h> 11#include <linux/delay.h>
11#include <linux/init.h> 12#include <linux/init.h>
12#include <linux/spinlock.h> 13#include <linux/spinlock.h>
@@ -19,6 +20,7 @@
19#include <linux/cpu.h> 20#include <linux/cpu.h>
20#include <linux/smp.h> 21#include <linux/smp.h>
21#include <linux/seq_file.h> 22#include <linux/seq_file.h>
23#include <linux/irq.h>
22 24
23#include <asm/atomic.h> 25#include <asm/atomic.h>
24#include <asm/cacheflush.h> 26#include <asm/cacheflush.h>
@@ -474,25 +476,26 @@ void show_local_irqs(struct seq_file *p)
474 seq_putc(p, '\n'); 476 seq_putc(p, '\n');
475} 477}
476 478
477static void ipi_timer(struct pt_regs *regs) 479static void ipi_timer(void)
478{ 480{
479 int user = user_mode(regs);
480
481 irq_enter(); 481 irq_enter();
482 profile_tick(CPU_PROFILING, regs); 482 profile_tick(CPU_PROFILING);
483 update_process_times(user); 483 update_process_times(user_mode(get_irq_regs()));
484 irq_exit(); 484 irq_exit();
485} 485}
486 486
487#ifdef CONFIG_LOCAL_TIMERS 487#ifdef CONFIG_LOCAL_TIMERS
488asmlinkage void do_local_timer(struct pt_regs *regs) 488asmlinkage void do_local_timer(struct pt_regs *regs)
489{ 489{
490 struct pt_regs *old_regs = set_irq_regs(regs);
490 int cpu = smp_processor_id(); 491 int cpu = smp_processor_id();
491 492
492 if (local_timer_ack()) { 493 if (local_timer_ack()) {
493 irq_stat[cpu].local_timer_irqs++; 494 irq_stat[cpu].local_timer_irqs++;
494 ipi_timer(regs); 495 ipi_timer();
495 } 496 }
497
498 set_irq_regs(old_regs);
496} 499}
497#endif 500#endif
498 501
@@ -551,6 +554,7 @@ asmlinkage void do_IPI(struct pt_regs *regs)
551{ 554{
552 unsigned int cpu = smp_processor_id(); 555 unsigned int cpu = smp_processor_id();
553 struct ipi_data *ipi = &per_cpu(ipi_data, cpu); 556 struct ipi_data *ipi = &per_cpu(ipi_data, cpu);
557 struct pt_regs *old_regs = set_irq_regs(regs);
554 558
555 ipi->ipi_count++; 559 ipi->ipi_count++;
556 560
@@ -574,7 +578,7 @@ asmlinkage void do_IPI(struct pt_regs *regs)
574 578
575 switch (nextmsg) { 579 switch (nextmsg) {
576 case IPI_TIMER: 580 case IPI_TIMER:
577 ipi_timer(regs); 581 ipi_timer();
578 break; 582 break;
579 583
580 case IPI_RESCHEDULE: 584 case IPI_RESCHEDULE:
@@ -599,6 +603,8 @@ asmlinkage void do_IPI(struct pt_regs *regs)
599 } 603 }
600 } while (msgs); 604 } while (msgs);
601 } 605 }
606
607 set_irq_regs(old_regs);
602} 608}
603 609
604void smp_send_reschedule(int cpu) 610void smp_send_reschedule(int cpu)
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c
index c03cab5c4c79..0c5a6091a93c 100644
--- a/arch/arm/kernel/time.c
+++ b/arch/arm/kernel/time.c
@@ -327,13 +327,12 @@ EXPORT_SYMBOL(restore_time_delta);
327 */ 327 */
328void timer_tick(void) 328void timer_tick(void)
329{ 329{
330 struct pt_regs *regs = get_irq_regs();
331 profile_tick(CPU_PROFILING); 330 profile_tick(CPU_PROFILING);
332 do_leds(); 331 do_leds();
333 do_set_rtc(); 332 do_set_rtc();
334 do_timer(1); 333 do_timer(1);
335#ifndef CONFIG_SMP 334#ifndef CONFIG_SMP
336 update_process_times(user_mode(regs)); 335 update_process_times(user_mode(get_irq_regs()));
337#endif 336#endif
338} 337}
339 338
diff --git a/arch/arm/mach-iop32x/n2100.c b/arch/arm/mach-iop32x/n2100.c
index a2c94a47b2b2..2499a7707e3c 100644
--- a/arch/arm/mach-iop32x/n2100.c
+++ b/arch/arm/mach-iop32x/n2100.c
@@ -85,7 +85,7 @@ n2100_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
85 irq = IRQ_IOP32X_XINT0; 85 irq = IRQ_IOP32X_XINT0;
86 } else if (PCI_SLOT(dev->devfn) == 2) { 86 } else if (PCI_SLOT(dev->devfn) == 2) {
87 /* RTL8110SB #2 */ 87 /* RTL8110SB #2 */
88 irq = IRQ_IOP32X_XINT1; 88 irq = IRQ_IOP32X_XINT3;
89 } else if (PCI_SLOT(dev->devfn) == 3) { 89 } else if (PCI_SLOT(dev->devfn) == 3) {
90 /* Sil3512 */ 90 /* Sil3512 */
91 irq = IRQ_IOP32X_XINT2; 91 irq = IRQ_IOP32X_XINT2;
diff --git a/arch/arm/mach-sa1100/cpu-sa1110.c b/arch/arm/mach-sa1100/cpu-sa1110.c
index 90a4130114a6..78f4c1346044 100644
--- a/arch/arm/mach-sa1100/cpu-sa1110.c
+++ b/arch/arm/mach-sa1100/cpu-sa1110.c
@@ -83,7 +83,7 @@ static struct sdram_params sdram_tbl[] __initdata = {
83 .refresh = 64000, 83 .refresh = 64000,
84 .cas_latency = 3, 84 .cas_latency = 3,
85 }, { /* Samsung K4S281632B-1H */ 85 }, { /* Samsung K4S281632B-1H */
86 .name = "K4S281632b-1H", 86 .name = "K4S281632B-1H",
87 .rows = 12, 87 .rows = 12,
88 .tck = 10, 88 .tck = 10,
89 .trp = 20, 89 .trp = 20,
diff --git a/arch/arm/vfp/vfpdouble.c b/arch/arm/vfp/vfpdouble.c
index 4fc05ee0a2ef..e44b9ed0f81f 100644
--- a/arch/arm/vfp/vfpdouble.c
+++ b/arch/arm/vfp/vfpdouble.c
@@ -56,7 +56,7 @@ static void vfp_double_normalise_denormal(struct vfp_double *vd)
56{ 56{
57 int bits = 31 - fls(vd->significand >> 32); 57 int bits = 31 - fls(vd->significand >> 32);
58 if (bits == 31) 58 if (bits == 31)
59 bits = 62 - fls(vd->significand); 59 bits = 63 - fls(vd->significand);
60 60
61 vfp_double_dump("normalise_denormal: in", vd); 61 vfp_double_dump("normalise_denormal: in", vd);
62 62
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c
index a657a28f08db..f08eafbddcc1 100644
--- a/arch/arm/vfp/vfpmodule.c
+++ b/arch/arm/vfp/vfpmodule.c
@@ -148,6 +148,7 @@ static void vfp_raise_exceptions(u32 exceptions, u32 inst, u32 fpscr, struct pt_
148 /* 148 /*
149 * These are arranged in priority order, least to highest. 149 * These are arranged in priority order, least to highest.
150 */ 150 */
151 RAISE(FPSCR_DZC, FPSCR_DZE, FPE_FLTDIV);
151 RAISE(FPSCR_IXC, FPSCR_IXE, FPE_FLTRES); 152 RAISE(FPSCR_IXC, FPSCR_IXE, FPE_FLTRES);
152 RAISE(FPSCR_UFC, FPSCR_UFE, FPE_FLTUND); 153 RAISE(FPSCR_UFC, FPSCR_UFE, FPE_FLTUND);
153 RAISE(FPSCR_OFC, FPSCR_OFE, FPE_FLTOVF); 154 RAISE(FPSCR_OFC, FPSCR_OFE, FPE_FLTOVF);
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
index 81050d3c9b21..c95a6c154165 100644
--- a/drivers/i2c/busses/i2c-pxa.c
+++ b/drivers/i2c/busses/i2c-pxa.c
@@ -272,7 +272,8 @@ static int i2c_pxa_wait_slave(struct pxa_i2c *i2c)
272 dev_dbg(&i2c->adap.dev, "%s: %ld: ISR=%08x, ICR=%08x, IBMR=%02x\n", 272 dev_dbg(&i2c->adap.dev, "%s: %ld: ISR=%08x, ICR=%08x, IBMR=%02x\n",
273 __func__, (long)jiffies, ISR, ICR, IBMR); 273 __func__, (long)jiffies, ISR, ICR, IBMR);
274 274
275 if ((ISR & (ISR_UB|ISR_IBB|ISR_SAD)) == ISR_SAD || 275 if ((ISR & (ISR_UB|ISR_IBB)) == 0 ||
276 (ISR & ISR_SAD) != 0 ||
276 (ICR & ICR_SCLE) == 0) { 277 (ICR & ICR_SCLE) == 0) {
277 if (i2c_debug > 1) 278 if (i2c_debug > 1)
278 dev_dbg(&i2c->adap.dev, "%s: done\n", __func__); 279 dev_dbg(&i2c->adap.dev, "%s: done\n", __func__);
@@ -492,7 +493,10 @@ static void i2c_pxa_slave_txempty(struct pxa_i2c *i2c, u32 isr)
492 if (isr & ISR_BED) { 493 if (isr & ISR_BED) {
493 /* what should we do here? */ 494 /* what should we do here? */
494 } else { 495 } else {
495 int ret = i2c->slave->read(i2c->slave->data); 496 int ret = 0;
497
498 if (i2c->slave != NULL)
499 ret = i2c->slave->read(i2c->slave->data);
496 500
497 IDBR = ret; 501 IDBR = ret;
498 ICR |= ICR_TB; /* allow next byte */ 502 ICR |= ICR_TB; /* allow next byte */
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c
index b3518131ea0d..dca9f8549b32 100644
--- a/drivers/pcmcia/pxa2xx_base.c
+++ b/drivers/pcmcia/pxa2xx_base.c
@@ -166,7 +166,7 @@ pxa2xx_pcmcia_frequency_change(struct soc_pcmcia_socket *skt,
166} 166}
167#endif 167#endif
168 168
169int pxa2xx_drv_pcmcia_probe(struct device *dev) 169int __pxa2xx_drv_pcmcia_probe(struct device *dev)
170{ 170{
171 int ret; 171 int ret;
172 struct pcmcia_low_level *ops; 172 struct pcmcia_low_level *ops;
@@ -203,35 +203,52 @@ int pxa2xx_drv_pcmcia_probe(struct device *dev)
203 203
204 return ret; 204 return ret;
205} 205}
206EXPORT_SYMBOL(pxa2xx_drv_pcmcia_probe); 206EXPORT_SYMBOL(__pxa2xx_drv_pcmcia_probe);
207 207
208static int pxa2xx_drv_pcmcia_resume(struct device *dev) 208
209static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev)
210{
211 return __pxa2xx_drv_pcmcia_probe(&dev->dev);
212}
213
214static int pxa2xx_drv_pcmcia_remove(struct platform_device *dev)
215{
216 return soc_common_drv_pcmcia_remove(&dev->dev);
217}
218
219static int pxa2xx_drv_pcmcia_suspend(struct platform_device *dev, pm_message_t state)
220{
221 return pcmcia_socket_dev_suspend(&dev->dev, state);
222}
223
224static int pxa2xx_drv_pcmcia_resume(struct platform_device *dev)
209{ 225{
210 struct pcmcia_low_level *ops = dev->platform_data; 226 struct pcmcia_low_level *ops = dev->dev.platform_data;
211 int nr = ops ? ops->nr : 0; 227 int nr = ops ? ops->nr : 0;
212 228
213 MECR = nr > 1 ? MECR_CIT | MECR_NOS : (nr > 0 ? MECR_CIT : 0); 229 MECR = nr > 1 ? MECR_CIT | MECR_NOS : (nr > 0 ? MECR_CIT : 0);
214 230
215 return pcmcia_socket_dev_resume(dev); 231 return pcmcia_socket_dev_resume(&dev->dev);
216} 232}
217 233
218static struct device_driver pxa2xx_pcmcia_driver = { 234static struct platform_driver pxa2xx_pcmcia_driver = {
219 .probe = pxa2xx_drv_pcmcia_probe, 235 .probe = pxa2xx_drv_pcmcia_probe,
220 .remove = soc_common_drv_pcmcia_remove, 236 .remove = pxa2xx_drv_pcmcia_remove,
221 .suspend = pcmcia_socket_dev_suspend, 237 .suspend = pxa2xx_drv_pcmcia_suspend,
222 .resume = pxa2xx_drv_pcmcia_resume, 238 .resume = pxa2xx_drv_pcmcia_resume,
223 .name = "pxa2xx-pcmcia", 239 .driver = {
224 .bus = &platform_bus_type, 240 .name = "pxa2xx-pcmcia",
241 },
225}; 242};
226 243
227static int __init pxa2xx_pcmcia_init(void) 244static int __init pxa2xx_pcmcia_init(void)
228{ 245{
229 return driver_register(&pxa2xx_pcmcia_driver); 246 return platform_driver_register(&pxa2xx_pcmcia_driver);
230} 247}
231 248
232static void __exit pxa2xx_pcmcia_exit(void) 249static void __exit pxa2xx_pcmcia_exit(void)
233{ 250{
234 driver_unregister(&pxa2xx_pcmcia_driver); 251 platform_driver_unregister(&pxa2xx_pcmcia_driver);
235} 252}
236 253
237fs_initcall(pxa2xx_pcmcia_init); 254fs_initcall(pxa2xx_pcmcia_init);
diff --git a/drivers/pcmcia/pxa2xx_base.h b/drivers/pcmcia/pxa2xx_base.h
index e46cff345d47..235d681652c3 100644
--- a/drivers/pcmcia/pxa2xx_base.h
+++ b/drivers/pcmcia/pxa2xx_base.h
@@ -1,3 +1,3 @@
1/* temporary measure */ 1/* temporary measure */
2extern int pxa2xx_drv_pcmcia_probe(struct device *); 2extern int __pxa2xx_drv_pcmcia_probe(struct device *);
3 3
diff --git a/drivers/pcmcia/pxa2xx_lubbock.c b/drivers/pcmcia/pxa2xx_lubbock.c
index fd1f691c7c2c..a92f11143c43 100644
--- a/drivers/pcmcia/pxa2xx_lubbock.c
+++ b/drivers/pcmcia/pxa2xx_lubbock.c
@@ -260,7 +260,7 @@ int __init pcmcia_lubbock_init(struct sa1111_dev *sadev)
260 lubbock_set_misc_wr((1 << 15) | (1 << 14), 0); 260 lubbock_set_misc_wr((1 << 15) | (1 << 14), 0);
261 261
262 sadev->dev.platform_data = &lubbock_pcmcia_ops; 262 sadev->dev.platform_data = &lubbock_pcmcia_ops;
263 ret = pxa2xx_drv_pcmcia_probe(&sadev->dev); 263 ret = __pxa2xx_drv_pcmcia_probe(&sadev->dev);
264 } 264 }
265 265
266 return ret; 266 return ret;
diff --git a/include/asm-arm/uaccess.h b/include/asm-arm/uaccess.h
index 09ad0cab9014..5f420a0149f1 100644
--- a/include/asm-arm/uaccess.h
+++ b/include/asm-arm/uaccess.h
@@ -383,19 +383,19 @@ do { \
383 383
384 384
385#ifdef CONFIG_MMU 385#ifdef CONFIG_MMU
386extern unsigned long __copy_from_user(void *to, const void __user *from, unsigned long n); 386extern unsigned long __must_check __copy_from_user(void *to, const void __user *from, unsigned long n);
387extern unsigned long __copy_to_user(void __user *to, const void *from, unsigned long n); 387extern unsigned long __must_check __copy_to_user(void __user *to, const void *from, unsigned long n);
388extern unsigned long __clear_user(void __user *addr, unsigned long n); 388extern unsigned long __must_check __clear_user(void __user *addr, unsigned long n);
389#else 389#else
390#define __copy_from_user(to,from,n) (memcpy(to, (void __force *)from, n), 0) 390#define __copy_from_user(to,from,n) (memcpy(to, (void __force *)from, n), 0)
391#define __copy_to_user(to,from,n) (memcpy((void __force *)to, from, n), 0) 391#define __copy_to_user(to,from,n) (memcpy((void __force *)to, from, n), 0)
392#define __clear_user(addr,n) (memset((void __force *)addr, 0, n), 0) 392#define __clear_user(addr,n) (memset((void __force *)addr, 0, n), 0)
393#endif 393#endif
394 394
395extern unsigned long __strncpy_from_user(char *to, const char __user *from, unsigned long count); 395extern unsigned long __must_check __strncpy_from_user(char *to, const char __user *from, unsigned long count);
396extern unsigned long __strnlen_user(const char __user *s, long n); 396extern unsigned long __must_check __strnlen_user(const char __user *s, long n);
397 397
398static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n) 398static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
399{ 399{
400 if (access_ok(VERIFY_READ, from, n)) 400 if (access_ok(VERIFY_READ, from, n))
401 n = __copy_from_user(to, from, n); 401 n = __copy_from_user(to, from, n);
@@ -404,7 +404,7 @@ static inline unsigned long copy_from_user(void *to, const void __user *from, un
404 return n; 404 return n;
405} 405}
406 406
407static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n) 407static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
408{ 408{
409 if (access_ok(VERIFY_WRITE, to, n)) 409 if (access_ok(VERIFY_WRITE, to, n))
410 n = __copy_to_user(to, from, n); 410 n = __copy_to_user(to, from, n);
@@ -414,14 +414,14 @@ static inline unsigned long copy_to_user(void __user *to, const void *from, unsi
414#define __copy_to_user_inatomic __copy_to_user 414#define __copy_to_user_inatomic __copy_to_user
415#define __copy_from_user_inatomic __copy_from_user 415#define __copy_from_user_inatomic __copy_from_user
416 416
417static inline unsigned long clear_user(void __user *to, unsigned long n) 417static inline unsigned long __must_check clear_user(void __user *to, unsigned long n)
418{ 418{
419 if (access_ok(VERIFY_WRITE, to, n)) 419 if (access_ok(VERIFY_WRITE, to, n))
420 n = __clear_user(to, n); 420 n = __clear_user(to, n);
421 return n; 421 return n;
422} 422}
423 423
424static inline long strncpy_from_user(char *dst, const char __user *src, long count) 424static inline long __must_check strncpy_from_user(char *dst, const char __user *src, long count)
425{ 425{
426 long res = -EFAULT; 426 long res = -EFAULT;
427 if (access_ok(VERIFY_READ, src, 1)) 427 if (access_ok(VERIFY_READ, src, 1))
@@ -431,7 +431,7 @@ static inline long strncpy_from_user(char *dst, const char __user *src, long cou
431 431
432#define strlen_user(s) strnlen_user(s, ~0UL >> 1) 432#define strlen_user(s) strnlen_user(s, ~0UL >> 1)
433 433
434static inline long strnlen_user(const char __user *s, long n) 434static inline long __must_check strnlen_user(const char __user *s, long n)
435{ 435{
436 unsigned long res = 0; 436 unsigned long res = 0;
437 437
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 77491e311791..d3679103a8e4 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -341,7 +341,7 @@ config FRAME_POINTER
341 341
342config UNWIND_INFO 342config UNWIND_INFO
343 bool "Compile the kernel with frame unwind information" 343 bool "Compile the kernel with frame unwind information"
344 depends on !IA64 && !PARISC 344 depends on !IA64 && !PARISC && !ARM
345 depends on !MODULES || !(MIPS || PPC || SUPERH || V850) 345 depends on !MODULES || !(MIPS || PPC || SUPERH || V850)
346 help 346 help
347 If you say Y here the resulting kernel image will be slightly larger 347 If you say Y here the resulting kernel image will be slightly larger