diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-08-05 03:41:46 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-08-05 03:41:46 -0700 |
commit | 8c17e55a1d557810a427cc0f4f0bb3fa5c3b108e (patch) | |
tree | 422ce7058c25149d0c02afadef50b1e03746e1a4 /arch | |
parent | 65d33ad6e2e36e893079523114d1d579ad96ab76 (diff) | |
parent | 537971960539a5be5478cad247204bf490d8adf5 (diff) | |
download | history-8c17e55a1d557810a427cc0f4f0bb3fa5c3b108e.tar.gz |
Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk
into ppc970.osdl.org:/home/torvalds/v2.6/linux
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boot/compressed/head-clps7500.S | 4 | ||||
-rw-r--r-- | arch/arm/configs/bast_defconfig | 255 | ||||
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 16 | ||||
-rw-r--r-- | arch/arm/kernel/entry-common.S | 2 | ||||
-rw-r--r-- | arch/arm/kernel/entry-header.S | 6 | ||||
-rw-r--r-- | arch/arm/lib/ecard.S | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/gpio.c | 98 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-h1940.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/s3c2410.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/collie.c | 1 | ||||
-rw-r--r-- | arch/arm/mm/blockops.c | 5 |
12 files changed, 249 insertions, 150 deletions
diff --git a/arch/arm/boot/compressed/head-clps7500.S b/arch/arm/boot/compressed/head-clps7500.S index a1a0c847dda2d3..4a8a689d15e61c 100644 --- a/arch/arm/boot/compressed/head-clps7500.S +++ b/arch/arm/boot/compressed/head-clps7500.S @@ -34,7 +34,7 @@ mov r0, #0x30 mcr p15, 0, r0, c1, c0, 0 mov r0, #0x13 - msr cpsr, r0 + msr cpsr_cxsf, r0 mov r12, #0x03000000 @ point to LEDs orr r12, r12, #0x00020000 orr r12, r12, #0xba00 @@ -71,7 +71,7 @@ /* Ensure all interrupts are off and MMU disabled */ mrs r0, cpsr orr r0, r0, #0xc0 - msr cpsr, r0 + msr cpsr_cxsf, r0 adr lr, 1b orr lr, lr, #0x10000000 diff --git a/arch/arm/configs/bast_defconfig b/arch/arm/configs/bast_defconfig index 32be42cf24953a..3235a0678e4e6f 100644 --- a/arch/arm/configs/bast_defconfig +++ b/arch/arm/configs/bast_defconfig @@ -20,17 +20,24 @@ CONFIG_BROKEN_ON_SMP=y # CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y -CONFIG_LOG_BUF_SHIFT=16 +# CONFIG_AUDIT is not set +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y # # Loadable module support @@ -44,57 +51,32 @@ CONFIG_KMOD=y # # System Type # -# CONFIG_ARCH_ADIFCC is not set -# CONFIG_ARCH_ANAKIN is not set # CONFIG_ARCH_CLPS7500 is not set # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_PXA is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_PXA is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_SHARK is not set CONFIG_ARCH_S3C2410=y - -# -# CLPS711X/EP721X Implementations -# - -# -# Epxa10db -# - -# -# Footbridge Implementations -# - -# -# IOP3xx Implementation Options -# -# CONFIG_ARCH_IOP310 is not set -# CONFIG_ARCH_IOP321 is not set - -# -# IOP3xx Chipset Features -# - -# -# Intel PXA250/210 Implementations -# - -# -# SA11x0 Implementations -# +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_VERSATILE_PB is not set # # S3C2410 Implementations # CONFIG_ARCH_BAST=y +# CONFIG_ARCH_H1940 is not set +# CONFIG_ARCH_SMDK2410 is not set +CONFIG_MACH_VR1000=y # # Processor Type @@ -119,9 +101,8 @@ CONFIG_CPU_TLB_V4WBI=y # General setup # # CONFIG_ZBOOT_ROM is not set -CONFIG_ZBOOT_ROM_TEXT=0 -CONFIG_ZBOOT_ROM_BSS=0 -# CONFIG_HOTPLUG is not set +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 # # At least one math emulation must be selected @@ -129,6 +110,7 @@ CONFIG_ZBOOT_ROM_BSS=0 CONFIG_FPE_NWFPE=y CONFIG_FPE_NWFPE_XP=y # CONFIG_FPE_FASTFPE is not set +# CONFIG_VFP is not set CONFIG_BINFMT_ELF=y CONFIG_BINFMT_AOUT=y # CONFIG_BINFMT_MISC is not set @@ -136,9 +118,13 @@ CONFIG_BINFMT_AOUT=y # # Generic Driver Options # +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_DEBUG_DRIVER is not set # CONFIG_PM is not set # CONFIG_PREEMPT is not set # CONFIG_ARTHUR is not set +CONFIG_S3C2410_DMA=y +# CONFIG_S3C2410_DMA_DEBUG is not set CONFIG_CMDLINE="root=/dev/hda1 ro init=/bin/bash console=ttySAC0" CONFIG_ALIGNMENT_TRAP=y @@ -148,7 +134,6 @@ CONFIG_ALIGNMENT_TRAP=y CONFIG_PARPORT=y CONFIG_PARPORT_PC=y CONFIG_PARPORT_PC_CML1=y -# CONFIG_PARPORT_SERIAL is not set CONFIG_PARPORT_PC_FIFO=y CONFIG_PARPORT_PC_SUPERIO=y # CONFIG_PARPORT_ARC is not set @@ -217,7 +202,6 @@ CONFIG_MTD_CFI_INTELEXT=y # # Plug and Play support # -# CONFIG_PNP is not set # # Block devices @@ -258,23 +242,21 @@ CONFIG_IP_PNP_BOOTP=y # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_ARPD is not set -# CONFIG_INET_ECN is not set # CONFIG_SYN_COOKIES is not set # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_IPV6 is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set # # SCTP Configuration (EXPERIMENTAL) # -CONFIG_IPV6_SCTP__=y # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +# CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -290,11 +272,17 @@ CONFIG_IPV6_SCTP__=y # QoS and/or fair queueing # # CONFIG_NET_SCHED is not set +# CONFIG_NET_CLS_ROUTE is not set # # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set @@ -315,40 +303,25 @@ CONFIG_NET_ETHERNET=y # # Ethernet (10000 Mbit) # -# CONFIG_PLIP is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set # -# Wireless LAN (non-hamradio) +# Token Ring devices # -# CONFIG_NET_RADIO is not set -# CONFIG_HOSTAP is not set # -# Token Ring devices +# Wireless LAN (non-hamradio) # -# CONFIG_SHAPER is not set +# CONFIG_NET_RADIO is not set # # Wan interfaces # # CONFIG_WAN is not set - -# -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support -# -# CONFIG_BT is not set +# CONFIG_PLIP is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # # ATA/ATAPI/MFM/RLL support @@ -359,9 +332,9 @@ CONFIG_BLK_DEV_IDE=y # # Please see Documentation/ide.txt for help/info on IDE drives # +# CONFIG_BLK_DEV_IDE_SATA is not set CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set CONFIG_BLK_DEV_IDECD=y CONFIG_BLK_DEV_IDETAPE=m CONFIG_BLK_DEV_IDEFLOPPY=m @@ -371,10 +344,10 @@ CONFIG_BLK_DEV_IDEFLOPPY=m # # IDE chipset support/bugfixes # -CONFIG_BLK_DEV_IDE_BAST=y +CONFIG_IDE_GENERIC=y +# CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set -# CONFIG_DMA_NONPCI is not set # CONFIG_BLK_DEV_HD is not set # @@ -383,13 +356,22 @@ CONFIG_BLK_DEV_IDE_BAST=y # CONFIG_SCSI is not set # +# Fusion MPT device support +# + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_IEEE1394 is not set + +# # I2O device support # # # ISDN subsystem # -# CONFIG_ISDN_BOOL is not set +# CONFIG_ISDN is not set # # Input device support @@ -405,7 +387,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_TSDEV is not set -# CONFIG_INPUT_TSLIBDEV is not set # CONFIG_INPUT_EVDEV is not set # CONFIG_INPUT_EVBUG is not set @@ -415,7 +396,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_GAMEPORT is not set CONFIG_SOUND_GAMEPORT=y CONFIG_SERIO=y -CONFIG_SERIO_I8042=y +# CONFIG_SERIO_I8042 is not set CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PARKBD is not set @@ -424,14 +405,15 @@ CONFIG_SERIO_SERPORT=y # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_ATKBD is not set # CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=y -# CONFIG_MOUSE_PS2_SYNAPTICS is not set # CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_VSXXXAA is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set @@ -478,15 +460,40 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_S3C2410=y CONFIG_SERIAL_S3C2410_CONSOLE=y -# CONFIG_SERIAL_DZ is not set +# CONFIG_SERIAL_BAST_SIO is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y -CONFIG_UNIX98_PTY_COUNT=256 +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 CONFIG_PRINTER=y # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=y # CONFIG_TIPAR is not set +# CONFIG_QIC02_TAPE is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +CONFIG_RTC=y +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_AGP is not set +# CONFIG_DRM is not set +# CONFIG_RAW_DRIVER is not set # # I2C support @@ -505,55 +512,44 @@ CONFIG_I2C_ALGOBIT=m # # CONFIG_I2C_AMD756 is not set # CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_PHILIPSPAR is not set +# CONFIG_I2C_ISA is not set +# CONFIG_I2C_PARPORT is not set +# CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_SCx200_ACB is not set # -# I2C Hardware Sensors Chip support +# Hardware Sensors Chip support # CONFIG_I2C_SENSOR=m # CONFIG_SENSORS_ADM1021 is not set -CONFIG_SENSORS_EEPROM=m +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_FSCHER is not set +# CONFIG_SENSORS_GL518SM is not set # CONFIG_SENSORS_IT87 is not set CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM78=m +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set CONFIG_SENSORS_LM85=m +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_MAX1619 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83627HF is not set # -# L3 serial bus support -# -# CONFIG_L3 is not set - -# -# Mice -# -# CONFIG_BUSMOUSE is not set -# CONFIG_QIC02_TAPE is not set - -# -# IPMI +# Other I2C Chip support # -# CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# -# CONFIG_WATCHDOG is not set -# CONFIG_NVRAM is not set -CONFIG_RTC=y -# CONFIG_DTLK is not set -# CONFIG_R3964 is not set -# CONFIG_APPLICOM is not set - -# -# Ftape, the floppy tape device driver -# -# CONFIG_FTAPE is not set -# CONFIG_AGP is not set -# CONFIG_DRM is not set -# CONFIG_RAW_DRIVER is not set +CONFIG_SENSORS_EEPROM=m +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set # # Multimedia devices @@ -566,11 +562,6 @@ CONFIG_RTC=y # CONFIG_DVB is not set # -# MMC/SD Card support -# -# CONFIG_MMC is not set - -# # File systems # CONFIG_EXT2_FS=y @@ -603,14 +594,16 @@ CONFIG_ROMFS_FS=y CONFIG_FAT_FS=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set -CONFIG_DEVPTS_FS=y # CONFIG_DEVPTS_FS_XATTR is not set # CONFIG_TMPFS is not set # CONFIG_HUGETLBFS is not set @@ -623,6 +616,7 @@ CONFIG_RAMFS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set @@ -650,12 +644,11 @@ CONFIG_ROOT_NFS=y CONFIG_LOCKD=y # CONFIG_EXPORTFS is not set CONFIG_SUNRPC=y -# CONFIG_SUNRPC_GSS is not set +# CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -679,16 +672,15 @@ CONFIG_BSD_DISKLABEL=y CONFIG_SOLARIS_X86_PARTITION=y # CONFIG_UNIXWARE_DISKLABEL is not set # CONFIG_LDM_PARTITION is not set -# CONFIG_NEC98_PARTITION is not set # CONFIG_SGI_PARTITION is not set # CONFIG_ULTRIX_PARTITION is not set # CONFIG_SUN_PARTITION is not set # CONFIG_EFI_PARTITION is not set -CONFIG_NLS=y # # Native Language Support # +CONFIG_NLS=y CONFIG_NLS_DEFAULT="iso8859-1" # CONFIG_NLS_CODEPAGE_437 is not set # CONFIG_NLS_CODEPAGE_737 is not set @@ -713,6 +705,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set # CONFIG_NLS_ISO8859_1 is not set # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set @@ -729,6 +722,11 @@ CONFIG_NLS_DEFAULT="iso8859-1" # CONFIG_NLS_UTF8 is not set # +# Profiling support +# +# CONFIG_PROFILING is not set + +# # Graphics support # CONFIG_FB=y @@ -748,21 +746,20 @@ CONFIG_DUMMY_CONSOLE=y # CONFIG_LOGO is not set # -# Misc devices +# Sound # +# CONFIG_SOUND is not set # -# Multimedia Capabilities Port drivers +# Misc devices # -# CONFIG_MCP is not set # -# Console Switches +# USB support # -# CONFIG_SWITCHES is not set # -# USB support +# USB Gadget Support # # CONFIG_USB_GADGET is not set @@ -780,7 +777,7 @@ CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_ERRORS is not set CONFIG_DEBUG_LL=y -CONFIG_DEBUG_LL_PRINTK=y +# CONFIG_DEBUG_ICEDCC is not set CONFIG_DEBUG_S3C2410_PORT=y CONFIG_DEBUG_S3C2410_UART=0 @@ -797,6 +794,8 @@ CONFIG_DEBUG_S3C2410_UART=0 # # Library routines # +# CONFIG_CRC_CCITT is not set CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index e483bc9b00c4d2..7fe5c2d39efdf5 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -952,7 +952,7 @@ __dabt_svc: sub sp, sp, #S_FRAME_SIZE bl do_DataAbort disable_irq r0 ldr r0, [sp, #S_PSR] - msr spsr, r0 + msr spsr_cxsf, r0 ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr .align 5 @@ -988,7 +988,7 @@ preempt_return: strne r0, [r0, -r0] @ bug() #endif ldr r0, [sp, #S_PSR] @ irqs are already disabled - msr spsr, r0 + msr spsr_cxsf, r0 ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr .ltorg @@ -1031,7 +1031,7 @@ __und_svc: sub sp, sp, #S_FRAME_SIZE 1: disable_irq r0 ldr lr, [sp, #S_PSR] @ Get SVC cpsr - msr spsr, lr + msr spsr_cxsf, lr ldmia sp, {r0 - pc}^ @ Restore SVC registers .align 5 @@ -1052,7 +1052,7 @@ __pabt_svc: sub sp, sp, #S_FRAME_SIZE bl do_PrefetchAbort @ call abort handler disable_irq r0 ldr r0, [sp, #S_PSR] - msr spsr, r0 + msr spsr_cxsf, r0 ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr .align 5 @@ -1303,7 +1303,7 @@ vector_IRQ: @ mrs r13, cpsr bic r13, r13, #MODE_MASK orr r13, r13, #MODE_SVC - msr spsr, r13 @ switch to SVC_32 mode + msr spsr_cxsf, r13 @ switch to SVC_32 mode and lr, lr, #15 ldr lr, [pc, lr, lsl #2] @@ -1346,7 +1346,7 @@ vector_data: @ mrs r13, cpsr bic r13, r13, #MODE_MASK orr r13, r13, #MODE_SVC - msr spsr, r13 @ switch to SVC_32 mode + msr spsr_cxsf, r13 @ switch to SVC_32 mode and lr, lr, #15 ldr lr, [pc, lr, lsl #2] @@ -1390,7 +1390,7 @@ vector_prefetch: mrs r13, cpsr bic r13, r13, #MODE_MASK orr r13, r13, #MODE_SVC - msr spsr, r13 @ switch to SVC_32 mode + msr spsr_cxsf, r13 @ switch to SVC_32 mode ands lr, lr, #15 ldr lr, [pc, lr, lsl #2] @@ -1433,7 +1433,7 @@ vector_undefinstr: mrs r13, cpsr bic r13, r13, #MODE_MASK orr r13, r13, #MODE_SVC - msr spsr, r13 @ switch to SVC_32 mode + msr spsr_cxsf, r13 @ switch to SVC_32 mode and lr, lr, #15 ldr lr, [pc, lr, lsl #2] diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 8686a90c15a8da..3314274b73714e 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S @@ -102,7 +102,7 @@ ENTRY(ret_from_fork) ldr r0, [sp, #S_PSR] @ Get calling cpsr sub lr, lr, #4 str lr, [r8] - msr spsr, r0 + msr spsr_cxsf, r0 ldmia sp, {r0 - lr}^ @ Get calling r0 - lr mov r0, r0 ldr lr, [sp, #S_PC] @ Get PC diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S index 0af6f53e2302fd..ef152e3b53fc1a 100644 --- a/arch/arm/kernel/entry-header.S +++ b/arch/arm/kernel/entry-header.S @@ -99,7 +99,7 @@ ldr r1, [sp, #S_PSR] @ Get calling cpsr disable_irq ip @ disable IRQs ldr lr, [sp, #S_PC]! @ Get PC - msr spsr, r1 @ save in spsr_svc + msr spsr_cxsf, r1 @ save in spsr_svc ldmdb sp, {r0 - lr}^ @ Get calling r0 - lr mov r0, r0 add sp, sp, #S_FRAME_SIZE - S_PC @@ -112,7 +112,7 @@ .macro fast_restore_user_regs ldr r1, [sp, #S_OFF + S_PSR] @ get calling cpsr ldr lr, [sp, #S_OFF + S_PC]! @ get pc - msr spsr, r1 @ save in spsr_svc + msr spsr_cxsf, r1 @ save in spsr_svc ldmdb sp, {r1 - lr}^ @ get calling r1 - lr mov r0, r0 add sp, sp, #S_FRAME_SIZE - S_PC @@ -125,7 +125,7 @@ .macro slow_restore_user_regs ldr r1, [sp, #S_PSR] @ get calling cpsr ldr lr, [sp, #S_PC]! @ get pc - msr spsr, r1 @ save in spsr_svc + msr spsr_cxsf, r1 @ save in spsr_svc ldmdb sp, {r0 - lr}^ @ get calling r1 - lr mov r0, r0 add sp, sp, #S_FRAME_SIZE - S_PC diff --git a/arch/arm/lib/ecard.S b/arch/arm/lib/ecard.S index f71a44a90c23d2..fb7b602a6f76a4 100644 --- a/arch/arm/lib/ecard.S +++ b/arch/arm/lib/ecard.S @@ -16,7 +16,7 @@ #define CPSR2SPSR(rt) \ mrs rt, cpsr; \ - msr spsr, rt + msr spsr_cxsf, rt @ Purpose: call an expansion card loader to read bytes. @ Proto : char read_loader(int offset, char *card_base, char *loader); diff --git a/arch/arm/mach-s3c2410/Makefile b/arch/arm/mach-s3c2410/Makefile index d183de7821680a..476c6ca78a657e 100644 --- a/arch/arm/mach-s3c2410/Makefile +++ b/arch/arm/mach-s3c2410/Makefile @@ -4,7 +4,7 @@ # Object file lists. -obj-y := s3c2410.o irq.o time.o +obj-y := s3c2410.o irq.o time.o gpio.o obj-m := obj-n := obj- := diff --git a/arch/arm/mach-s3c2410/gpio.c b/arch/arm/mach-s3c2410/gpio.c new file mode 100644 index 00000000000000..450b132af4a693 --- /dev/null +++ b/arch/arm/mach-s3c2410/gpio.c @@ -0,0 +1,98 @@ +/* linux/arch/arm/mach-s3c2410/gpio.c + * + * Copyright (c) 2004 Simtec Electronics + * Ben Dooks <ben@simtec.co.uk> + * + * S3C2410 GPIO support + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + + +#include <linux/init.h> +#include <linux/module.h> +#include <linux/interrupt.h> +#include <linux/ioport.h> + +#include <asm/hardware.h> +#include <asm/irq.h> +#include <asm/io.h> + +#include <asm/arch/regs-gpio.h> + +void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function) +{ + unsigned long base = S3C2410_GPIO_BASE(pin); + unsigned long shift = 1; + unsigned long mask = 3; + unsigned long con; + unsigned long flags; + + if (pin < S3C2410_GPIO_BANKB) { + shift = 0; + mask = 1; + } + + mask <<= S3C2410_GPIO_OFFSET(pin); + + local_irq_save(flags); + + con = __raw_readl(base + 0x00); + + con &= mask << shift; + con |= function; + + __raw_writel(con, base + 0x00); + + local_irq_restore(flags); +} + +void s3c2410_gpio_pullup(unsigned int pin, unsigned int to) +{ + unsigned long base = S3C2410_GPIO_BASE(pin); + unsigned long offs = S3C2410_GPIO_OFFSET(pin); + unsigned long flags; + unsigned long up; + + if (pin < S3C2410_GPIO_BANKB) + return; + + local_irq_save(flags); + + up = __raw_readl(base + 0x08); + up &= 1 << offs; + up |= to << offs; + __raw_writel(up, base + 0x08); + + local_irq_restore(flags); +} + +void s3c2410_gpio_setpin(unsigned int pin, unsigned int to) +{ + unsigned long base = S3C2410_GPIO_BASE(pin); + unsigned long offs = S3C2410_GPIO_OFFSET(pin); + unsigned long flags; + unsigned long dat; + + local_irq_save(flags); + + dat = __raw_readl(base + 0x04); + dat &= 1 << offs; + dat |= to << offs; + __raw_writel(dat, base + 0x04); + + local_irq_restore(flags); +} diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index f3515bcec1b71b..0a9ba135bb2985 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c @@ -52,7 +52,7 @@ static struct s3c2410_uartcfg ipaq_uartcfgs[] = { [0] = { .hwport = 0, .flags = 0, - .clock = &s3c2410_hclk, + .clock = &s3c2410_pclk, .ucon = 0x3c5, .ulcon = 0x03, .ufcon = 0x51, @@ -60,7 +60,7 @@ static struct s3c2410_uartcfg ipaq_uartcfgs[] = { [1] = { .hwport = 1, .flags = 0, - .clock = &s3c2410_hclk, + .clock = &s3c2410_pclk, .ucon = 0x245, .ulcon = 0x03, .ufcon = 0x00, @@ -69,7 +69,7 @@ static struct s3c2410_uartcfg ipaq_uartcfgs[] = { [2] = { .hwport = 2, .flags = 0, - .clock = &s3c2410_hclk, + .clock = &s3c2410_pclk, .ucon = 0x3c5, .ulcon = 0x43, .ufcon = 0x51, diff --git a/arch/arm/mach-s3c2410/s3c2410.h b/arch/arm/mach-s3c2410/s3c2410.h index 5ff132081a6f4b..862a7c86d2945d 100644 --- a/arch/arm/mach-s3c2410/s3c2410.h +++ b/arch/arm/mach-s3c2410/s3c2410.h @@ -4,5 +4,5 @@ extern void s3c2410_map_io(struct map_desc *, int count); extern void s3c2410_init_irq(void); -extern s3c2410_init_time(void); +extern void s3c2410_init_time(void); diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c index dcbb3c751c220b..23bf73ef8efee1 100644 --- a/arch/arm/mach-sa1100/collie.c +++ b/arch/arm/mach-sa1100/collie.c @@ -141,4 +141,5 @@ MACHINE_START(COLLIE, "Sharp-Collie") MAPIO(collie_map_io) INITIRQ(sa1100_init_irq) INIT_MACHINE(collie_init) + INITTIME(sa1100_init_time) MACHINE_END diff --git a/arch/arm/mm/blockops.c b/arch/arm/mm/blockops.c index 9982c4c8cffe78..806c6eeb1b0c94 100644 --- a/arch/arm/mm/blockops.c +++ b/arch/arm/mm/blockops.c @@ -130,6 +130,7 @@ static struct undef_hook blockops_hook __initdata = { static int __init blockops_check(void) { register unsigned int err asm("r4") = 0; + unsigned int err_pos = 1; unsigned int cache_type; int i; @@ -156,8 +157,8 @@ static int __init blockops_check(void) unregister_undef_hook(&blockops_hook); - for (i = 0; i < ARRAY_SIZE(func); i++, err >>= 1) - printk("%30s: %ssupported\n", func[i], err & 1 ? "not " : ""); + for (i = 0; i < ARRAY_SIZE(func); i++, err_pos <<= 1) + printk("%30s: %ssupported\n", func[i], err & err_pos ? "not " : ""); if ((err & 8) == 0) { printk(" --> Using %s block cache invalidate\n", |