diff options
Diffstat (limited to 'arch/arm')
53 files changed, 844 insertions, 539 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 5959e36c3b4c..15dc1a0dffbb 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -10,9 +10,9 @@ config ARM | |||
| 10 | default y | 10 | default y |
| 11 | help | 11 | help |
| 12 | The ARM series is a line of low-power-consumption RISC chip designs | 12 | The ARM series is a line of low-power-consumption RISC chip designs |
| 13 | licensed by ARM ltd and targeted at embedded applications and | 13 | licensed by ARM Ltd and targeted at embedded applications and |
| 14 | handhelds such as the Compaq IPAQ. ARM-based PCs are no longer | 14 | handhelds such as the Compaq IPAQ. ARM-based PCs are no longer |
| 15 | manufactured, but legacy ARM-based PC hardware remains popular in | 15 | manufactured, but legacy ARM-based PC hardware remains popular in |
| 16 | Europe. There is an ARM Linux project with a web page at | 16 | Europe. There is an ARM Linux project with a web page at |
| 17 | <http://www.arm.linux.org.uk/>. | 17 | <http://www.arm.linux.org.uk/>. |
| 18 | 18 | ||
| @@ -69,6 +69,9 @@ config GENERIC_ISA_DMA | |||
| 69 | config FIQ | 69 | config FIQ |
| 70 | bool | 70 | bool |
| 71 | 71 | ||
| 72 | config ARCH_MTD_XIP | ||
| 73 | bool | ||
| 74 | |||
| 72 | source "init/Kconfig" | 75 | source "init/Kconfig" |
| 73 | 76 | ||
| 74 | menu "System Type" | 77 | menu "System Type" |
| @@ -81,45 +84,62 @@ config ARCH_CLPS7500 | |||
| 81 | bool "Cirrus-CL-PS7500FE" | 84 | bool "Cirrus-CL-PS7500FE" |
| 82 | select TIMER_ACORN | 85 | select TIMER_ACORN |
| 83 | select ISA | 86 | select ISA |
| 87 | help | ||
| 88 | Support for the Cirrus Logic PS7500FE system-on-a-chip. | ||
| 84 | 89 | ||
| 85 | config ARCH_CLPS711X | 90 | config ARCH_CLPS711X |
| 86 | bool "CLPS711x/EP721x-based" | 91 | bool "CLPS711x/EP721x-based" |
| 92 | help | ||
| 93 | Support for Cirrus Logic 711x/721x based boards. | ||
| 87 | 94 | ||
| 88 | config ARCH_CO285 | 95 | config ARCH_CO285 |
| 89 | bool "Co-EBSA285" | 96 | bool "Co-EBSA285" |
| 90 | select FOOTBRIDGE | 97 | select FOOTBRIDGE |
| 91 | select FOOTBRIDGE_ADDIN | 98 | select FOOTBRIDGE_ADDIN |
| 99 | help | ||
| 100 | Support for Intel's EBSA285 companion chip. | ||
| 92 | 101 | ||
| 93 | config ARCH_EBSA110 | 102 | config ARCH_EBSA110 |
| 94 | bool "EBSA-110" | 103 | bool "EBSA-110" |
| 95 | select ISA | 104 | select ISA |
| 96 | help | 105 | help |
| 97 | This is an evaluation board for the StrongARM processor available | 106 | This is an evaluation board for the StrongARM processor available |
| 98 | from Digital. It has limited hardware on-board, including an onboard | 107 | from Digital. It has limited hardware on-board, including an |
| 99 | Ethernet interface, two PCMCIA sockets, two serial ports and a | 108 | Ethernet interface, two PCMCIA sockets, two serial ports and a |
| 100 | parallel port. | 109 | parallel port. |
| 101 | 110 | ||
| 102 | config ARCH_FOOTBRIDGE | 111 | config ARCH_FOOTBRIDGE |
| 103 | bool "FootBridge" | 112 | bool "FootBridge" |
| 104 | select FOOTBRIDGE | 113 | select FOOTBRIDGE |
| 114 | help | ||
| 115 | Support for systems based on the DC21285 companion chip | ||
| 116 | ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. | ||
| 105 | 117 | ||
| 106 | config ARCH_INTEGRATOR | 118 | config ARCH_INTEGRATOR |
| 107 | bool "Integrator" | 119 | bool "Integrator" |
| 108 | select ARM_AMBA | 120 | select ARM_AMBA |
| 109 | select ICST525 | 121 | select ICST525 |
| 122 | help | ||
| 123 | Support for ARM's Integrator platform. | ||
| 110 | 124 | ||
| 111 | config ARCH_IOP3XX | 125 | config ARCH_IOP3XX |
| 112 | bool "IOP3xx-based" | 126 | bool "IOP3xx-based" |
| 113 | select PCI | 127 | select PCI |
| 128 | help | ||
| 129 | Support for Intel's IOP3XX (XScale) family of processors. | ||
| 114 | 130 | ||
| 115 | config ARCH_IXP4XX | 131 | config ARCH_IXP4XX |
| 116 | bool "IXP4xx-based" | 132 | bool "IXP4xx-based" |
| 117 | select DMABOUNCE | 133 | select DMABOUNCE |
| 118 | select PCI | 134 | select PCI |
| 135 | help | ||
| 136 | Support for Intel's IXP4XX (XScale) family of processors. | ||
| 119 | 137 | ||
| 120 | config ARCH_IXP2000 | 138 | config ARCH_IXP2000 |
| 121 | bool "IXP2400/2800-based" | 139 | bool "IXP2400/2800-based" |
| 122 | select PCI | 140 | select PCI |
| 141 | help | ||
| 142 | Support for Intel's IXP2400/2800 (XScale) family of processors. | ||
| 123 | 143 | ||
| 124 | config ARCH_L7200 | 144 | config ARCH_L7200 |
| 125 | bool "LinkUp-L7200" | 145 | bool "LinkUp-L7200" |
| @@ -136,6 +156,9 @@ config ARCH_L7200 | |||
| 136 | 156 | ||
| 137 | config ARCH_PXA | 157 | config ARCH_PXA |
| 138 | bool "PXA2xx-based" | 158 | bool "PXA2xx-based" |
| 159 | select ARCH_MTD_XIP | ||
| 160 | help | ||
| 161 | Support for Intel's PXA2XX processor line. | ||
| 139 | 162 | ||
| 140 | config ARCH_RPC | 163 | config ARCH_RPC |
| 141 | bool "RiscPC" | 164 | bool "RiscPC" |
| @@ -152,19 +175,25 @@ config ARCH_SA1100 | |||
| 152 | bool "SA1100-based" | 175 | bool "SA1100-based" |
| 153 | select ISA | 176 | select ISA |
| 154 | select ARCH_DISCONTIGMEM_ENABLE | 177 | select ARCH_DISCONTIGMEM_ENABLE |
| 178 | select ARCH_MTD_XIP | ||
| 179 | help | ||
| 180 | Support for StrongARM 11x0 based boards. | ||
| 155 | 181 | ||
| 156 | config ARCH_S3C2410 | 182 | config ARCH_S3C2410 |
| 157 | bool "Samsung S3C2410" | 183 | bool "Samsung S3C2410" |
| 158 | help | 184 | help |
| 159 | Samsung S3C2410X CPU based systems, such as the Simtec Electronics | 185 | Samsung S3C2410X CPU based systems, such as the Simtec Electronics |
| 160 | BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or | 186 | BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or |
| 161 | the Samsung SMDK2410 development board (and derviatives). | 187 | the Samsung SMDK2410 development board (and derivatives). |
| 162 | 188 | ||
| 163 | config ARCH_SHARK | 189 | config ARCH_SHARK |
| 164 | bool "Shark" | 190 | bool "Shark" |
| 165 | select ISA | 191 | select ISA |
| 166 | select ISA_DMA | 192 | select ISA_DMA |
| 167 | select PCI | 193 | select PCI |
| 194 | help | ||
| 195 | Support for the StrongARM based Digital DNARD machine, also known | ||
| 196 | as "Shark" (<http://www.shark-linux.de/shark.html>). | ||
| 168 | 197 | ||
| 169 | config ARCH_LH7A40X | 198 | config ARCH_LH7A40X |
| 170 | bool "Sharp LH7A40X" | 199 | bool "Sharp LH7A40X" |
| @@ -176,6 +205,8 @@ config ARCH_LH7A40X | |||
| 176 | 205 | ||
| 177 | config ARCH_OMAP | 206 | config ARCH_OMAP |
| 178 | bool "TI OMAP" | 207 | bool "TI OMAP" |
| 208 | help | ||
| 209 | Support for TI's OMAP platform (OMAP1 and OMAP2). | ||
| 179 | 210 | ||
| 180 | config ARCH_VERSATILE | 211 | config ARCH_VERSATILE |
| 181 | bool "Versatile" | 212 | bool "Versatile" |
| @@ -194,6 +225,8 @@ config ARCH_REALVIEW | |||
| 194 | 225 | ||
| 195 | config ARCH_IMX | 226 | config ARCH_IMX |
| 196 | bool "IMX" | 227 | bool "IMX" |
| 228 | help | ||
| 229 | Support for Motorola's i.MX family of processors (MX1, MXL). | ||
| 197 | 230 | ||
| 198 | config ARCH_H720X | 231 | config ARCH_H720X |
| 199 | bool "Hynix-HMS720x-based" | 232 | bool "Hynix-HMS720x-based" |
| @@ -210,8 +243,8 @@ config ARCH_AAEC2000 | |||
| 210 | config ARCH_AT91RM9200 | 243 | config ARCH_AT91RM9200 |
| 211 | bool "AT91RM9200" | 244 | bool "AT91RM9200" |
| 212 | help | 245 | help |
| 213 | Say Y here if you intend to run this kernel on an AT91RM9200-based | 246 | Say Y here if you intend to run this kernel on an Atmel |
| 214 | board. | 247 | AT91RM9200-based board. |
| 215 | 248 | ||
| 216 | endchoice | 249 | endchoice |
| 217 | 250 | ||
| @@ -417,8 +450,8 @@ config AEABI | |||
| 417 | To use this you need GCC version 4.0.0 or later. | 450 | To use this you need GCC version 4.0.0 or later. |
| 418 | 451 | ||
| 419 | config OABI_COMPAT | 452 | config OABI_COMPAT |
| 420 | bool "Allow old ABI binaries to run with this kernel" | 453 | bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" |
| 421 | depends on AEABI | 454 | depends on AEABI && EXPERIMENTAL |
| 422 | default y | 455 | default y |
| 423 | help | 456 | help |
| 424 | This option preserves the old syscall interface along with the | 457 | This option preserves the old syscall interface along with the |
diff --git a/arch/arm/configs/at91rm9200dk_defconfig b/arch/arm/configs/at91rm9200dk_defconfig index 5cdd13acf8ff..1fe73d198888 100644 --- a/arch/arm/configs/at91rm9200dk_defconfig +++ b/arch/arm/configs/at91rm9200dk_defconfig | |||
| @@ -85,7 +85,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
| 85 | # CONFIG_ARCH_CLPS711X is not set | 85 | # CONFIG_ARCH_CLPS711X is not set |
| 86 | # CONFIG_ARCH_CO285 is not set | 86 | # CONFIG_ARCH_CO285 is not set |
| 87 | # CONFIG_ARCH_EBSA110 is not set | 87 | # CONFIG_ARCH_EBSA110 is not set |
| 88 | # CONFIG_ARCH_CAMELOT is not set | ||
| 89 | # CONFIG_ARCH_FOOTBRIDGE is not set | 88 | # CONFIG_ARCH_FOOTBRIDGE is not set |
| 90 | # CONFIG_ARCH_INTEGRATOR is not set | 89 | # CONFIG_ARCH_INTEGRATOR is not set |
| 91 | # CONFIG_ARCH_IOP3XX is not set | 90 | # CONFIG_ARCH_IOP3XX is not set |
diff --git a/arch/arm/configs/at91rm9200ek_defconfig b/arch/arm/configs/at91rm9200ek_defconfig index 20838ccf1da7..b7d934cdb1b7 100644 --- a/arch/arm/configs/at91rm9200ek_defconfig +++ b/arch/arm/configs/at91rm9200ek_defconfig | |||
| @@ -85,7 +85,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
| 85 | # CONFIG_ARCH_CLPS711X is not set | 85 | # CONFIG_ARCH_CLPS711X is not set |
| 86 | # CONFIG_ARCH_CO285 is not set | 86 | # CONFIG_ARCH_CO285 is not set |
| 87 | # CONFIG_ARCH_EBSA110 is not set | 87 | # CONFIG_ARCH_EBSA110 is not set |
| 88 | # CONFIG_ARCH_CAMELOT is not set | ||
| 89 | # CONFIG_ARCH_FOOTBRIDGE is not set | 88 | # CONFIG_ARCH_FOOTBRIDGE is not set |
| 90 | # CONFIG_ARCH_INTEGRATOR is not set | 89 | # CONFIG_ARCH_INTEGRATOR is not set |
| 91 | # CONFIG_ARCH_IOP3XX is not set | 90 | # CONFIG_ARCH_IOP3XX is not set |
diff --git a/arch/arm/configs/bast_defconfig b/arch/arm/configs/bast_defconfig index 6886001b5366..4a8564f386af 100644 --- a/arch/arm/configs/bast_defconfig +++ b/arch/arm/configs/bast_defconfig | |||
| @@ -14,8 +14,7 @@ CONFIG_GENERIC_IOMAP=y | |||
| 14 | # Code maturity level options | 14 | # Code maturity level options |
| 15 | # | 15 | # |
| 16 | CONFIG_EXPERIMENTAL=y | 16 | CONFIG_EXPERIMENTAL=y |
| 17 | # CONFIG_CLEAN_COMPILE is not set | 17 | CONFIG_CLEAN_COMPILE=y |
| 18 | CONFIG_BROKEN=y | ||
| 19 | CONFIG_BROKEN_ON_SMP=y | 18 | CONFIG_BROKEN_ON_SMP=y |
| 20 | 19 | ||
| 21 | # | 20 | # |
| @@ -360,7 +359,6 @@ CONFIG_BLK_DEV_IDE_BAST=y | |||
| 360 | # | 359 | # |
| 361 | # IEEE 1394 (FireWire) support | 360 | # IEEE 1394 (FireWire) support |
| 362 | # | 361 | # |
| 363 | # CONFIG_IEEE1394 is not set | ||
| 364 | 362 | ||
| 365 | # | 363 | # |
| 366 | # I2O device support | 364 | # I2O device support |
| @@ -781,7 +779,6 @@ CONFIG_SYSFS=y | |||
| 781 | # CONFIG_DEVFS_FS is not set | 779 | # CONFIG_DEVFS_FS is not set |
| 782 | # CONFIG_DEVPTS_FS_XATTR is not set | 780 | # CONFIG_DEVPTS_FS_XATTR is not set |
| 783 | # CONFIG_TMPFS is not set | 781 | # CONFIG_TMPFS is not set |
| 784 | # CONFIG_HUGETLBFS is not set | ||
| 785 | # CONFIG_HUGETLB_PAGE is not set | 782 | # CONFIG_HUGETLB_PAGE is not set |
| 786 | CONFIG_RAMFS=y | 783 | CONFIG_RAMFS=y |
| 787 | 784 | ||
diff --git a/arch/arm/configs/collie_defconfig b/arch/arm/configs/collie_defconfig index 15468a0cf70e..c9aa878e610a 100644 --- a/arch/arm/configs/collie_defconfig +++ b/arch/arm/configs/collie_defconfig | |||
| @@ -13,8 +13,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y | |||
| 13 | # Code maturity level options | 13 | # Code maturity level options |
| 14 | # | 14 | # |
| 15 | CONFIG_EXPERIMENTAL=y | 15 | CONFIG_EXPERIMENTAL=y |
| 16 | # CONFIG_CLEAN_COMPILE is not set | 16 | CONFIG_CLEAN_COMPILE=y |
| 17 | CONFIG_BROKEN=y | ||
| 18 | CONFIG_BROKEN_ON_SMP=y | 17 | CONFIG_BROKEN_ON_SMP=y |
| 19 | CONFIG_LOCK_KERNEL=y | 18 | CONFIG_LOCK_KERNEL=y |
| 20 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 19 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
| @@ -308,9 +307,7 @@ CONFIG_MTD_CFI_I2=y | |||
| 308 | # CONFIG_MTD_ROM is not set | 307 | # CONFIG_MTD_ROM is not set |
| 309 | # CONFIG_MTD_ABSENT is not set | 308 | # CONFIG_MTD_ABSENT is not set |
| 310 | CONFIG_MTD_OBSOLETE_CHIPS=y | 309 | CONFIG_MTD_OBSOLETE_CHIPS=y |
| 311 | # CONFIG_MTD_AMDSTD is not set | ||
| 312 | CONFIG_MTD_SHARP=y | 310 | CONFIG_MTD_SHARP=y |
| 313 | # CONFIG_MTD_JEDEC is not set | ||
| 314 | 311 | ||
| 315 | # | 312 | # |
| 316 | # Mapping drivers for chip access | 313 | # Mapping drivers for chip access |
| @@ -396,7 +393,6 @@ CONFIG_ATA_OVER_ETH=m | |||
| 396 | # | 393 | # |
| 397 | # IEEE 1394 (FireWire) support | 394 | # IEEE 1394 (FireWire) support |
| 398 | # | 395 | # |
| 399 | # CONFIG_IEEE1394 is not set | ||
| 400 | 396 | ||
| 401 | # | 397 | # |
| 402 | # I2O device support | 398 | # I2O device support |
| @@ -741,7 +737,6 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 741 | CONFIG_PROC_FS=y | 737 | CONFIG_PROC_FS=y |
| 742 | CONFIG_SYSFS=y | 738 | CONFIG_SYSFS=y |
| 743 | CONFIG_TMPFS=y | 739 | CONFIG_TMPFS=y |
| 744 | # CONFIG_HUGETLBFS is not set | ||
| 745 | # CONFIG_HUGETLB_PAGE is not set | 740 | # CONFIG_HUGETLB_PAGE is not set |
| 746 | CONFIG_RAMFS=y | 741 | CONFIG_RAMFS=y |
| 747 | # CONFIG_RELAYFS_FS is not set | 742 | # CONFIG_RELAYFS_FS is not set |
diff --git a/arch/arm/configs/csb337_defconfig b/arch/arm/configs/csb337_defconfig index 885a3184830a..94bd9932a402 100644 --- a/arch/arm/configs/csb337_defconfig +++ b/arch/arm/configs/csb337_defconfig | |||
| @@ -85,7 +85,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
| 85 | # CONFIG_ARCH_CLPS711X is not set | 85 | # CONFIG_ARCH_CLPS711X is not set |
| 86 | # CONFIG_ARCH_CO285 is not set | 86 | # CONFIG_ARCH_CO285 is not set |
| 87 | # CONFIG_ARCH_EBSA110 is not set | 87 | # CONFIG_ARCH_EBSA110 is not set |
| 88 | # CONFIG_ARCH_CAMELOT is not set | ||
| 89 | # CONFIG_ARCH_FOOTBRIDGE is not set | 88 | # CONFIG_ARCH_FOOTBRIDGE is not set |
| 90 | # CONFIG_ARCH_INTEGRATOR is not set | 89 | # CONFIG_ARCH_INTEGRATOR is not set |
| 91 | # CONFIG_ARCH_IOP3XX is not set | 90 | # CONFIG_ARCH_IOP3XX is not set |
diff --git a/arch/arm/configs/csb637_defconfig b/arch/arm/configs/csb637_defconfig index 95a96a5462a0..1519124c5501 100644 --- a/arch/arm/configs/csb637_defconfig +++ b/arch/arm/configs/csb637_defconfig | |||
| @@ -85,7 +85,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
| 85 | # CONFIG_ARCH_CLPS711X is not set | 85 | # CONFIG_ARCH_CLPS711X is not set |
| 86 | # CONFIG_ARCH_CO285 is not set | 86 | # CONFIG_ARCH_CO285 is not set |
| 87 | # CONFIG_ARCH_EBSA110 is not set | 87 | # CONFIG_ARCH_EBSA110 is not set |
| 88 | # CONFIG_ARCH_CAMELOT is not set | ||
| 89 | # CONFIG_ARCH_FOOTBRIDGE is not set | 88 | # CONFIG_ARCH_FOOTBRIDGE is not set |
| 90 | # CONFIG_ARCH_INTEGRATOR is not set | 89 | # CONFIG_ARCH_INTEGRATOR is not set |
| 91 | # CONFIG_ARCH_IOP3XX is not set | 90 | # CONFIG_ARCH_IOP3XX is not set |
diff --git a/arch/arm/configs/enp2611_defconfig b/arch/arm/configs/enp2611_defconfig index 9592e3925c79..5fdaf3ce9d56 100644 --- a/arch/arm/configs/enp2611_defconfig +++ b/arch/arm/configs/enp2611_defconfig | |||
| @@ -171,7 +171,7 @@ CONFIG_ALIGNMENT_TRAP=y | |||
| 171 | # | 171 | # |
| 172 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 172 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 173 | CONFIG_ZBOOT_ROM_BSS=0x0 | 173 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| 174 | CONFIG_CMDLINE="console=ttyS0,57600 root=/dev/nfs ip=bootp mem=64M@0x0 pci=firmware" | 174 | CONFIG_CMDLINE="console=ttyS0,57600 root=/dev/nfs ip=bootp mem=64M@0x0" |
| 175 | # CONFIG_XIP_KERNEL is not set | 175 | # CONFIG_XIP_KERNEL is not set |
| 176 | 176 | ||
| 177 | # | 177 | # |
diff --git a/arch/arm/configs/ixdp2400_defconfig b/arch/arm/configs/ixdp2400_defconfig index d9d6bb86a6fa..c67fc449a11f 100644 --- a/arch/arm/configs/ixdp2400_defconfig +++ b/arch/arm/configs/ixdp2400_defconfig | |||
| @@ -172,7 +172,7 @@ CONFIG_ALIGNMENT_TRAP=y | |||
| 172 | # | 172 | # |
| 173 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 173 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 174 | CONFIG_ZBOOT_ROM_BSS=0x0 | 174 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| 175 | CONFIG_CMDLINE="console=ttyS0,57600 root=/dev/nfs ip=bootp mem=64M@0x0 pci=firmware" | 175 | CONFIG_CMDLINE="console=ttyS0,57600 root=/dev/nfs ip=bootp mem=64M@0x0" |
| 176 | # CONFIG_XIP_KERNEL is not set | 176 | # CONFIG_XIP_KERNEL is not set |
| 177 | 177 | ||
| 178 | # | 178 | # |
diff --git a/arch/arm/configs/ixdp2401_defconfig b/arch/arm/configs/ixdp2401_defconfig index 2dc9d499c7d7..60d66e82c51f 100644 --- a/arch/arm/configs/ixdp2401_defconfig +++ b/arch/arm/configs/ixdp2401_defconfig | |||
| @@ -172,7 +172,7 @@ CONFIG_ALIGNMENT_TRAP=y | |||
| 172 | # | 172 | # |
| 173 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 173 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 174 | CONFIG_ZBOOT_ROM_BSS=0x0 | 174 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| 175 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp mem=64M@0x0 pci=firmware" | 175 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp mem=64M@0x0" |
| 176 | # CONFIG_XIP_KERNEL is not set | 176 | # CONFIG_XIP_KERNEL is not set |
| 177 | 177 | ||
| 178 | # | 178 | # |
diff --git a/arch/arm/configs/ixdp2801_defconfig b/arch/arm/configs/ixdp2801_defconfig index ea8f4b478fa3..f54f3dcc5b33 100644 --- a/arch/arm/configs/ixdp2801_defconfig +++ b/arch/arm/configs/ixdp2801_defconfig | |||
| @@ -172,7 +172,7 @@ CONFIG_ALIGNMENT_TRAP=y | |||
| 172 | # | 172 | # |
| 173 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 173 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 174 | CONFIG_ZBOOT_ROM_BSS=0x0 | 174 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| 175 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp mem=64M@0x0 pci=firmware ixdp2x01_clock=50000000" | 175 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp mem=64M@0x0" |
| 176 | # CONFIG_XIP_KERNEL is not set | 176 | # CONFIG_XIP_KERNEL is not set |
| 177 | 177 | ||
| 178 | # | 178 | # |
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig index 33f31080a98c..6695b07cf1ba 100644 --- a/arch/arm/configs/s3c2410_defconfig +++ b/arch/arm/configs/s3c2410_defconfig | |||
| @@ -1,11 +1,10 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.15-rc1 | 3 | # Linux kernel version: 2.6.16-rc2 |
| 4 | # Sun Nov 13 17:41:24 2005 | 4 | # Mon Feb 6 11:17:23 2006 |
| 5 | # | 5 | # |
| 6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| 8 | CONFIG_UID16=y | ||
| 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 9 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 11 | 10 | ||
| @@ -13,8 +12,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y | |||
| 13 | # Code maturity level options | 12 | # Code maturity level options |
| 14 | # | 13 | # |
| 15 | CONFIG_EXPERIMENTAL=y | 14 | CONFIG_EXPERIMENTAL=y |
| 16 | # CONFIG_CLEAN_COMPILE is not set | 15 | CONFIG_CLEAN_COMPILE=y |
| 17 | CONFIG_BROKEN=y | ||
| 18 | CONFIG_BROKEN_ON_SMP=y | 16 | CONFIG_BROKEN_ON_SMP=y |
| 19 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 17 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
| 20 | 18 | ||
| @@ -29,27 +27,31 @@ CONFIG_SYSVIPC=y | |||
| 29 | # CONFIG_BSD_PROCESS_ACCT is not set | 27 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 30 | CONFIG_SYSCTL=y | 28 | CONFIG_SYSCTL=y |
| 31 | # CONFIG_AUDIT is not set | 29 | # CONFIG_AUDIT is not set |
| 32 | # CONFIG_HOTPLUG is not set | ||
| 33 | CONFIG_KOBJECT_UEVENT=y | ||
| 34 | # CONFIG_IKCONFIG is not set | 30 | # CONFIG_IKCONFIG is not set |
| 35 | CONFIG_INITRAMFS_SOURCE="" | 31 | CONFIG_INITRAMFS_SOURCE="" |
| 32 | CONFIG_UID16=y | ||
| 33 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
| 36 | # CONFIG_EMBEDDED is not set | 34 | # CONFIG_EMBEDDED is not set |
| 37 | CONFIG_KALLSYMS=y | 35 | CONFIG_KALLSYMS=y |
| 38 | # CONFIG_KALLSYMS_ALL is not set | 36 | # CONFIG_KALLSYMS_ALL is not set |
| 39 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 37 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
| 38 | CONFIG_HOTPLUG=y | ||
| 40 | CONFIG_PRINTK=y | 39 | CONFIG_PRINTK=y |
| 41 | CONFIG_BUG=y | 40 | CONFIG_BUG=y |
| 41 | CONFIG_ELF_CORE=y | ||
| 42 | CONFIG_BASE_FULL=y | 42 | CONFIG_BASE_FULL=y |
| 43 | CONFIG_FUTEX=y | 43 | CONFIG_FUTEX=y |
| 44 | CONFIG_EPOLL=y | 44 | CONFIG_EPOLL=y |
| 45 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
| 46 | CONFIG_SHMEM=y | 45 | CONFIG_SHMEM=y |
| 47 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 46 | CONFIG_CC_ALIGN_FUNCTIONS=0 |
| 48 | CONFIG_CC_ALIGN_LABELS=0 | 47 | CONFIG_CC_ALIGN_LABELS=0 |
| 49 | CONFIG_CC_ALIGN_LOOPS=0 | 48 | CONFIG_CC_ALIGN_LOOPS=0 |
| 50 | CONFIG_CC_ALIGN_JUMPS=0 | 49 | CONFIG_CC_ALIGN_JUMPS=0 |
| 50 | CONFIG_SLAB=y | ||
| 51 | # CONFIG_TINY_SHMEM is not set | 51 | # CONFIG_TINY_SHMEM is not set |
| 52 | CONFIG_BASE_SMALL=0 | 52 | CONFIG_BASE_SMALL=0 |
| 53 | # CONFIG_SLOB is not set | ||
| 54 | CONFIG_OBSOLETE_INTERMODULE=y | ||
| 53 | 55 | ||
| 54 | # | 56 | # |
| 55 | # Loadable module support | 57 | # Loadable module support |
| @@ -103,6 +105,7 @@ CONFIG_ARCH_S3C2410=y | |||
| 103 | # CONFIG_ARCH_IMX is not set | 105 | # CONFIG_ARCH_IMX is not set |
| 104 | # CONFIG_ARCH_H720X is not set | 106 | # CONFIG_ARCH_H720X is not set |
| 105 | # CONFIG_ARCH_AAEC2000 is not set | 107 | # CONFIG_ARCH_AAEC2000 is not set |
| 108 | # CONFIG_ARCH_AT91RM9200 is not set | ||
| 106 | 109 | ||
| 107 | # | 110 | # |
| 108 | # S3C24XX Implementations | 111 | # S3C24XX Implementations |
| @@ -161,7 +164,6 @@ CONFIG_CPU_TLB_V4WBI=y | |||
| 161 | # Bus support | 164 | # Bus support |
| 162 | # | 165 | # |
| 163 | CONFIG_ISA=y | 166 | CONFIG_ISA=y |
| 164 | CONFIG_ISA_DMA_API=y | ||
| 165 | 167 | ||
| 166 | # | 168 | # |
| 167 | # PCCARD (PCMCIA/CardBus) support | 169 | # PCCARD (PCMCIA/CardBus) support |
| @@ -173,6 +175,7 @@ CONFIG_ISA_DMA_API=y | |||
| 173 | # | 175 | # |
| 174 | # CONFIG_PREEMPT is not set | 176 | # CONFIG_PREEMPT is not set |
| 175 | # CONFIG_NO_IDLE_HZ is not set | 177 | # CONFIG_NO_IDLE_HZ is not set |
| 178 | # CONFIG_AEABI is not set | ||
| 176 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | 179 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set |
| 177 | CONFIG_SELECT_MEMORY_MODEL=y | 180 | CONFIG_SELECT_MEMORY_MODEL=y |
| 178 | CONFIG_FLATMEM_MANUAL=y | 181 | CONFIG_FLATMEM_MANUAL=y |
| @@ -215,6 +218,8 @@ CONFIG_BINFMT_AOUT=y | |||
| 215 | # Power management options | 218 | # Power management options |
| 216 | # | 219 | # |
| 217 | CONFIG_PM=y | 220 | CONFIG_PM=y |
| 221 | CONFIG_PM_LEGACY=y | ||
| 222 | # CONFIG_PM_DEBUG is not set | ||
| 218 | CONFIG_APM=y | 223 | CONFIG_APM=y |
| 219 | 224 | ||
| 220 | # | 225 | # |
| @@ -260,6 +265,11 @@ CONFIG_TCP_CONG_BIC=y | |||
| 260 | # SCTP Configuration (EXPERIMENTAL) | 265 | # SCTP Configuration (EXPERIMENTAL) |
| 261 | # | 266 | # |
| 262 | # CONFIG_IP_SCTP is not set | 267 | # CONFIG_IP_SCTP is not set |
| 268 | |||
| 269 | # | ||
| 270 | # TIPC Configuration (EXPERIMENTAL) | ||
| 271 | # | ||
| 272 | # CONFIG_TIPC is not set | ||
| 263 | # CONFIG_ATM is not set | 273 | # CONFIG_ATM is not set |
| 264 | # CONFIG_BRIDGE is not set | 274 | # CONFIG_BRIDGE is not set |
| 265 | # CONFIG_VLAN_8021Q is not set | 275 | # CONFIG_VLAN_8021Q is not set |
| @@ -277,7 +287,6 @@ CONFIG_TCP_CONG_BIC=y | |||
| 277 | # QoS and/or fair queueing | 287 | # QoS and/or fair queueing |
| 278 | # | 288 | # |
| 279 | # CONFIG_NET_SCHED is not set | 289 | # CONFIG_NET_SCHED is not set |
| 280 | # CONFIG_NET_CLS_ROUTE is not set | ||
| 281 | 290 | ||
| 282 | # | 291 | # |
| 283 | # Network testing | 292 | # Network testing |
| @@ -301,6 +310,11 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
| 301 | # CONFIG_DEBUG_DRIVER is not set | 310 | # CONFIG_DEBUG_DRIVER is not set |
| 302 | 311 | ||
| 303 | # | 312 | # |
| 313 | # Connector - unified userspace <-> kernelspace linker | ||
| 314 | # | ||
| 315 | # CONFIG_CONNECTOR is not set | ||
| 316 | |||
| 317 | # | ||
| 304 | # Memory Technology Devices (MTD) | 318 | # Memory Technology Devices (MTD) |
| 305 | # | 319 | # |
| 306 | CONFIG_MTD=y | 320 | CONFIG_MTD=y |
| @@ -413,8 +427,6 @@ CONFIG_PARPORT_1284=y | |||
| 413 | # | 427 | # |
| 414 | # Block devices | 428 | # Block devices |
| 415 | # | 429 | # |
| 416 | # CONFIG_BLK_DEV_XD is not set | ||
| 417 | # CONFIG_PARIDE is not set | ||
| 418 | # CONFIG_BLK_DEV_COW_COMMON is not set | 430 | # CONFIG_BLK_DEV_COW_COMMON is not set |
| 419 | CONFIG_BLK_DEV_LOOP=y | 431 | CONFIG_BLK_DEV_LOOP=y |
| 420 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 432 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
| @@ -473,7 +485,6 @@ CONFIG_BLK_DEV_IDE_BAST=y | |||
| 473 | # | 485 | # |
| 474 | # IEEE 1394 (FireWire) support | 486 | # IEEE 1394 (FireWire) support |
| 475 | # | 487 | # |
| 476 | # CONFIG_IEEE1394 is not set | ||
| 477 | 488 | ||
| 478 | # | 489 | # |
| 479 | # I2O device support | 490 | # I2O device support |
| @@ -504,7 +515,6 @@ CONFIG_NETDEVICES=y | |||
| 504 | CONFIG_NET_ETHERNET=y | 515 | CONFIG_NET_ETHERNET=y |
| 505 | CONFIG_MII=y | 516 | CONFIG_MII=y |
| 506 | # CONFIG_NET_VENDOR_3COM is not set | 517 | # CONFIG_NET_VENDOR_3COM is not set |
| 507 | # CONFIG_LANCE is not set | ||
| 508 | # CONFIG_NET_VENDOR_SMC is not set | 518 | # CONFIG_NET_VENDOR_SMC is not set |
| 509 | # CONFIG_SMC91X is not set | 519 | # CONFIG_SMC91X is not set |
| 510 | CONFIG_DM9000=y | 520 | CONFIG_DM9000=y |
| @@ -609,11 +619,11 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
| 609 | # CONFIG_ROCKETPORT is not set | 619 | # CONFIG_ROCKETPORT is not set |
| 610 | # CONFIG_CYCLADES is not set | 620 | # CONFIG_CYCLADES is not set |
| 611 | # CONFIG_DIGIEPCA is not set | 621 | # CONFIG_DIGIEPCA is not set |
| 612 | # CONFIG_ESPSERIAL is not set | ||
| 613 | # CONFIG_MOXA_INTELLIO is not set | 622 | # CONFIG_MOXA_INTELLIO is not set |
| 614 | # CONFIG_MOXA_SMARTIO is not set | 623 | # CONFIG_MOXA_SMARTIO is not set |
| 615 | # CONFIG_ISI is not set | 624 | # CONFIG_ISI is not set |
| 616 | # CONFIG_SYNCLINKMP is not set | 625 | # CONFIG_SYNCLINKMP is not set |
| 626 | # CONFIG_SYNCLINK_GT is not set | ||
| 617 | # CONFIG_N_HDLC is not set | 627 | # CONFIG_N_HDLC is not set |
| 618 | # CONFIG_RISCOM8 is not set | 628 | # CONFIG_RISCOM8 is not set |
| 619 | # CONFIG_SPECIALIX is not set | 629 | # CONFIG_SPECIALIX is not set |
| @@ -627,6 +637,7 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
| 627 | CONFIG_SERIAL_8250=y | 637 | CONFIG_SERIAL_8250=y |
| 628 | CONFIG_SERIAL_8250_CONSOLE=y | 638 | CONFIG_SERIAL_8250_CONSOLE=y |
| 629 | CONFIG_SERIAL_8250_NR_UARTS=8 | 639 | CONFIG_SERIAL_8250_NR_UARTS=8 |
| 640 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
| 630 | CONFIG_SERIAL_8250_EXTENDED=y | 641 | CONFIG_SERIAL_8250_EXTENDED=y |
| 631 | CONFIG_SERIAL_8250_MANY_PORTS=y | 642 | CONFIG_SERIAL_8250_MANY_PORTS=y |
| 632 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 643 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
| @@ -689,6 +700,7 @@ CONFIG_S3C2410_RTC=y | |||
| 689 | # | 700 | # |
| 690 | # TPM devices | 701 | # TPM devices |
| 691 | # | 702 | # |
| 703 | # CONFIG_TCG_TPM is not set | ||
| 692 | # CONFIG_TELCLOCK is not set | 704 | # CONFIG_TELCLOCK is not set |
| 693 | 705 | ||
| 694 | # | 706 | # |
| @@ -733,6 +745,12 @@ CONFIG_SENSORS_EEPROM=m | |||
| 733 | # CONFIG_I2C_DEBUG_CHIP is not set | 745 | # CONFIG_I2C_DEBUG_CHIP is not set |
| 734 | 746 | ||
| 735 | # | 747 | # |
| 748 | # SPI support | ||
| 749 | # | ||
| 750 | # CONFIG_SPI is not set | ||
| 751 | # CONFIG_SPI_MASTER is not set | ||
| 752 | |||
| 753 | # | ||
| 736 | # Hardware Monitoring support | 754 | # Hardware Monitoring support |
| 737 | # | 755 | # |
| 738 | CONFIG_HWMON=y | 756 | CONFIG_HWMON=y |
| @@ -865,6 +883,7 @@ CONFIG_FS_MBCACHE=y | |||
| 865 | # CONFIG_JFS_FS is not set | 883 | # CONFIG_JFS_FS is not set |
| 866 | # CONFIG_FS_POSIX_ACL is not set | 884 | # CONFIG_FS_POSIX_ACL is not set |
| 867 | # CONFIG_XFS_FS is not set | 885 | # CONFIG_XFS_FS is not set |
| 886 | # CONFIG_OCFS2_FS is not set | ||
| 868 | # CONFIG_MINIX_FS is not set | 887 | # CONFIG_MINIX_FS is not set |
| 869 | CONFIG_ROMFS_FS=y | 888 | CONFIG_ROMFS_FS=y |
| 870 | CONFIG_INOTIFY=y | 889 | CONFIG_INOTIFY=y |
| @@ -896,10 +915,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 896 | CONFIG_PROC_FS=y | 915 | CONFIG_PROC_FS=y |
| 897 | CONFIG_SYSFS=y | 916 | CONFIG_SYSFS=y |
| 898 | # CONFIG_TMPFS is not set | 917 | # CONFIG_TMPFS is not set |
| 899 | # CONFIG_HUGETLBFS is not set | ||
| 900 | # CONFIG_HUGETLB_PAGE is not set | 918 | # CONFIG_HUGETLB_PAGE is not set |
| 901 | CONFIG_RAMFS=y | 919 | CONFIG_RAMFS=y |
| 902 | # CONFIG_RELAYFS_FS is not set | 920 | # CONFIG_RELAYFS_FS is not set |
| 921 | # CONFIG_CONFIGFS_FS is not set | ||
| 903 | 922 | ||
| 904 | # | 923 | # |
| 905 | # Miscellaneous filesystems | 924 | # Miscellaneous filesystems |
| @@ -968,6 +987,7 @@ CONFIG_SOLARIS_X86_PARTITION=y | |||
| 968 | # CONFIG_SGI_PARTITION is not set | 987 | # CONFIG_SGI_PARTITION is not set |
| 969 | # CONFIG_ULTRIX_PARTITION is not set | 988 | # CONFIG_ULTRIX_PARTITION is not set |
| 970 | # CONFIG_SUN_PARTITION is not set | 989 | # CONFIG_SUN_PARTITION is not set |
| 990 | # CONFIG_KARMA_PARTITION is not set | ||
| 971 | # CONFIG_EFI_PARTITION is not set | 991 | # CONFIG_EFI_PARTITION is not set |
| 972 | 992 | ||
| 973 | # | 993 | # |
| @@ -1023,12 +1043,13 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
| 1023 | # Kernel hacking | 1043 | # Kernel hacking |
| 1024 | # | 1044 | # |
| 1025 | # CONFIG_PRINTK_TIME is not set | 1045 | # CONFIG_PRINTK_TIME is not set |
| 1026 | CONFIG_DEBUG_KERNEL=y | ||
| 1027 | CONFIG_MAGIC_SYSRQ=y | 1046 | CONFIG_MAGIC_SYSRQ=y |
| 1047 | CONFIG_DEBUG_KERNEL=y | ||
| 1028 | CONFIG_LOG_BUF_SHIFT=16 | 1048 | CONFIG_LOG_BUF_SHIFT=16 |
| 1029 | CONFIG_DETECT_SOFTLOCKUP=y | 1049 | CONFIG_DETECT_SOFTLOCKUP=y |
| 1030 | # CONFIG_SCHEDSTATS is not set | 1050 | # CONFIG_SCHEDSTATS is not set |
| 1031 | # CONFIG_DEBUG_SLAB is not set | 1051 | # CONFIG_DEBUG_SLAB is not set |
| 1052 | CONFIG_DEBUG_MUTEXES=y | ||
| 1032 | # CONFIG_DEBUG_SPINLOCK is not set | 1053 | # CONFIG_DEBUG_SPINLOCK is not set |
| 1033 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1054 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
| 1034 | # CONFIG_DEBUG_KOBJECT is not set | 1055 | # CONFIG_DEBUG_KOBJECT is not set |
| @@ -1037,6 +1058,7 @@ CONFIG_DEBUG_INFO=y | |||
| 1037 | # CONFIG_DEBUG_FS is not set | 1058 | # CONFIG_DEBUG_FS is not set |
| 1038 | # CONFIG_DEBUG_VM is not set | 1059 | # CONFIG_DEBUG_VM is not set |
| 1039 | CONFIG_FRAME_POINTER=y | 1060 | CONFIG_FRAME_POINTER=y |
| 1061 | CONFIG_FORCED_INLINING=y | ||
| 1040 | # CONFIG_RCU_TORTURE_TEST is not set | 1062 | # CONFIG_RCU_TORTURE_TEST is not set |
| 1041 | CONFIG_DEBUG_USER=y | 1063 | CONFIG_DEBUG_USER=y |
| 1042 | # CONFIG_DEBUG_WAITQ is not set | 1064 | # CONFIG_DEBUG_WAITQ is not set |
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S index 75e6f9a94713..8c3035d5ffc9 100644 --- a/arch/arm/kernel/calls.S +++ b/arch/arm/kernel/calls.S | |||
| @@ -7,337 +7,334 @@ | |||
| 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 | * This file is included twice in entry-common.S | 10 | * This file is included thrice in entry-common.S |
| 11 | */ | 11 | */ |
| 12 | #ifndef NR_syscalls | 12 | /* 0 */ CALL(sys_restart_syscall) |
| 13 | #define NR_syscalls 328 | 13 | CALL(sys_exit) |
| 14 | #else | 14 | CALL(sys_fork_wrapper) |
| 15 | 15 | CALL(sys_read) | |
| 16 | 100: | 16 | CALL(sys_write) |
| 17 | /* 0 */ .long sys_restart_syscall | 17 | /* 5 */ CALL(sys_open) |
| 18 | .long sys_exit | 18 | CALL(sys_close) |
| 19 | .long sys_fork_wrapper | 19 | CALL(sys_ni_syscall) /* was sys_waitpid */ |
| 20 | .long sys_read | 20 | CALL(sys_creat) |
| 21 | .long sys_write | 21 | CALL(sys_link) |
| 22 | /* 5 */ .long sys_open | 22 | /* 10 */ CALL(sys_unlink) |
| 23 | .long sys_close | 23 | CALL(sys_execve_wrapper) |
| 24 | .long sys_ni_syscall /* was sys_waitpid */ | 24 | CALL(sys_chdir) |
| 25 | .long sys_creat | 25 | CALL(OBSOLETE(sys_time)) /* used by libc4 */ |
| 26 | .long sys_link | 26 | CALL(sys_mknod) |
| 27 | /* 10 */ .long sys_unlink | 27 | /* 15 */ CALL(sys_chmod) |
| 28 | .long sys_execve_wrapper | 28 | CALL(sys_lchown16) |
| 29 | .long sys_chdir | 29 | CALL(sys_ni_syscall) /* was sys_break */ |
| 30 | .long OBSOLETE(sys_time) /* used by libc4 */ | 30 | CALL(sys_ni_syscall) /* was sys_stat */ |
| 31 | .long sys_mknod | 31 | CALL(sys_lseek) |
| 32 | /* 15 */ .long sys_chmod | 32 | /* 20 */ CALL(sys_getpid) |
| 33 | .long sys_lchown16 | 33 | CALL(sys_mount) |
| 34 | .long sys_ni_syscall /* was sys_break */ | 34 | CALL(OBSOLETE(sys_oldumount)) /* used by libc4 */ |
| 35 | .long sys_ni_syscall /* was sys_stat */ | 35 | CALL(sys_setuid16) |
| 36 | .long sys_lseek | 36 | CALL(sys_getuid16) |
| 37 | /* 20 */ .long sys_getpid | 37 | /* 25 */ CALL(OBSOLETE(sys_stime)) |
| 38 | .long sys_mount | 38 | CALL(sys_ptrace) |
| 39 | .long OBSOLETE(sys_oldumount) /* used by libc4 */ | 39 | CALL(OBSOLETE(sys_alarm)) /* used by libc4 */ |
| 40 | .long sys_setuid16 | 40 | CALL(sys_ni_syscall) /* was sys_fstat */ |
| 41 | .long sys_getuid16 | 41 | CALL(sys_pause) |
| 42 | /* 25 */ .long OBSOLETE(sys_stime) | 42 | /* 30 */ CALL(OBSOLETE(sys_utime)) /* used by libc4 */ |
| 43 | .long sys_ptrace | 43 | CALL(sys_ni_syscall) /* was sys_stty */ |
| 44 | .long OBSOLETE(sys_alarm) /* used by libc4 */ | 44 | CALL(sys_ni_syscall) /* was sys_getty */ |
| 45 | .long sys_ni_syscall /* was sys_fstat */ | 45 | CALL(sys_access) |
| 46 | .long sys_pause | 46 | CALL(sys_nice) |
| 47 | /* 30 */ .long OBSOLETE(sys_utime) /* used by libc4 */ | 47 | /* 35 */ CALL(sys_ni_syscall) /* was sys_ftime */ |
| 48 | .long sys_ni_syscall /* was sys_stty */ | 48 | CALL(sys_sync) |
| 49 | .long sys_ni_syscall /* was sys_getty */ | 49 | CALL(sys_kill) |
| 50 | .long sys_access | 50 | CALL(sys_rename) |
| 51 | .long sys_nice | 51 | CALL(sys_mkdir) |
| 52 | /* 35 */ .long sys_ni_syscall /* was sys_ftime */ | 52 | /* 40 */ CALL(sys_rmdir) |
| 53 | .long sys_sync | 53 | CALL(sys_dup) |
| 54 | .long sys_kill | 54 | CALL(sys_pipe) |
| 55 | .long sys_rename | 55 | CALL(sys_times) |
| 56 | .long sys_mkdir | 56 | CALL(sys_ni_syscall) /* was sys_prof */ |
| 57 | /* 40 */ .long sys_rmdir | 57 | /* 45 */ CALL(sys_brk) |
| 58 | .long sys_dup | 58 | CALL(sys_setgid16) |
| 59 | .long sys_pipe | 59 | CALL(sys_getgid16) |
| 60 | .long sys_times | 60 | CALL(sys_ni_syscall) /* was sys_signal */ |
| 61 | .long sys_ni_syscall /* was sys_prof */ | 61 | CALL(sys_geteuid16) |
| 62 | /* 45 */ .long sys_brk | 62 | /* 50 */ CALL(sys_getegid16) |
| 63 | .long sys_setgid16 | 63 | CALL(sys_acct) |
| 64 | .long sys_getgid16 | 64 | CALL(sys_umount) |
| 65 | .long sys_ni_syscall /* was sys_signal */ | 65 | CALL(sys_ni_syscall) /* was sys_lock */ |
| 66 | .long sys_geteuid16 | 66 | CALL(sys_ioctl) |
| 67 | /* 50 */ .long sys_getegid16 | 67 | /* 55 */ CALL(sys_fcntl) |
| 68 | .long sys_acct | 68 | CALL(sys_ni_syscall) /* was sys_mpx */ |
| 69 | .long sys_umount | 69 | CALL(sys_setpgid) |
| 70 | .long sys_ni_syscall /* was sys_lock */ | 70 | CALL(sys_ni_syscall) /* was sys_ulimit */ |
| 71 | .long sys_ioctl | 71 | CALL(sys_ni_syscall) /* was sys_olduname */ |
| 72 | /* 55 */ .long sys_fcntl | 72 | /* 60 */ CALL(sys_umask) |
| 73 | .long sys_ni_syscall /* was sys_mpx */ | 73 | CALL(sys_chroot) |
| 74 | .long sys_setpgid | 74 | CALL(sys_ustat) |
| 75 | .long sys_ni_syscall /* was sys_ulimit */ | 75 | CALL(sys_dup2) |
| 76 | .long sys_ni_syscall /* was sys_olduname */ | 76 | CALL(sys_getppid) |
| 77 | /* 60 */ .long sys_umask | 77 | /* 65 */ CALL(sys_getpgrp) |
| 78 | .long sys_chroot | 78 | CALL(sys_setsid) |
| 79 | .long sys_ustat | 79 | CALL(sys_sigaction) |
| 80 | .long sys_dup2 | 80 | CALL(sys_ni_syscall) /* was sys_sgetmask */ |
| 81 | .long sys_getppid | 81 | CALL(sys_ni_syscall) /* was sys_ssetmask */ |
| 82 | /* 65 */ .long sys_getpgrp | 82 | /* 70 */ CALL(sys_setreuid16) |
| 83 | .long sys_setsid | 83 | CALL(sys_setregid16) |
| 84 | .long sys_sigaction | 84 | CALL(sys_sigsuspend_wrapper) |
| 85 | .long sys_ni_syscall /* was sys_sgetmask */ | 85 | CALL(sys_sigpending) |
| 86 | .long sys_ni_syscall /* was sys_ssetmask */ | 86 | CALL(sys_sethostname) |
| 87 | /* 70 */ .long sys_setreuid16 | 87 | /* 75 */ CALL(sys_setrlimit) |
| 88 | .long sys_setregid16 | 88 | CALL(OBSOLETE(sys_old_getrlimit)) /* used by libc4 */ |
| 89 | .long sys_sigsuspend_wrapper | 89 | CALL(sys_getrusage) |
| 90 | .long sys_sigpending | 90 | CALL(sys_gettimeofday) |
| 91 | .long sys_sethostname | 91 | CALL(sys_settimeofday) |
| 92 | /* 75 */ .long sys_setrlimit | 92 | /* 80 */ CALL(sys_getgroups16) |
| 93 | .long OBSOLETE(sys_old_getrlimit) /* used by libc4 */ | 93 | CALL(sys_setgroups16) |
| 94 | .long sys_getrusage | 94 | CALL(OBSOLETE(old_select)) /* used by libc4 */ |
| 95 | .long sys_gettimeofday | 95 | CALL(sys_symlink) |
| 96 | .long sys_settimeofday | 96 | CALL(sys_ni_syscall) /* was sys_lstat */ |
| 97 | /* 80 */ .long sys_getgroups16 | 97 | /* 85 */ CALL(sys_readlink) |
| 98 | .long sys_setgroups16 | 98 | CALL(sys_uselib) |
| 99 | .long OBSOLETE(old_select) /* used by libc4 */ | 99 | CALL(sys_swapon) |
| 100 | .long sys_symlink | 100 | CALL(sys_reboot) |
| 101 | .long sys_ni_syscall /* was sys_lstat */ | 101 | CALL(OBSOLETE(old_readdir)) /* used by libc4 */ |
| 102 | /* 85 */ .long sys_readlink | 102 | /* 90 */ CALL(OBSOLETE(old_mmap)) /* used by libc4 */ |
| 103 | .long sys_uselib | 103 | CALL(sys_munmap) |
| 104 | .long sys_swapon | 104 | CALL(sys_truncate) |
| 105 | .long sys_reboot | 105 | CALL(sys_ftruncate) |
| 106 | .long OBSOLETE(old_readdir) /* used by libc4 */ | 106 | CALL(sys_fchmod) |
| 107 | /* 90 */ .long OBSOLETE(old_mmap) /* used by libc4 */ | 107 | /* 95 */ CALL(sys_fchown16) |
| 108 | .long sys_munmap | 108 | CALL(sys_getpriority) |
| 109 | .long sys_truncate | 109 | CALL(sys_setpriority) |
| 110 | .long sys_ftruncate | 110 | CALL(sys_ni_syscall) /* was sys_profil */ |
| 111 | .long sys_fchmod | 111 | CALL(sys_statfs) |
| 112 | /* 95 */ .long sys_fchown16 | 112 | /* 100 */ CALL(sys_fstatfs) |
| 113 | .long sys_getpriority | 113 | CALL(sys_ni_syscall) |
| 114 | .long sys_setpriority | 114 | CALL(OBSOLETE(sys_socketcall)) |
| 115 | .long sys_ni_syscall /* was sys_profil */ | 115 | CALL(sys_syslog) |
| 116 | .long sys_statfs | 116 | CALL(sys_setitimer) |
| 117 | /* 100 */ .long sys_fstatfs | 117 | /* 105 */ CALL(sys_getitimer) |
| 118 | .long sys_ni_syscall | 118 | CALL(sys_newstat) |
| 119 | .long OBSOLETE(sys_socketcall) | 119 | CALL(sys_newlstat) |
| 120 | .long sys_syslog | 120 | CALL(sys_newfstat) |
| 121 | .long sys_setitimer | 121 | CALL(sys_ni_syscall) /* was sys_uname */ |
| 122 | /* 105 */ .long sys_getitimer | 122 | /* 110 */ CALL(sys_ni_syscall) /* was sys_iopl */ |
| 123 | .long sys_newstat | 123 | CALL(sys_vhangup) |
| 124 | .long sys_newlstat | 124 | CALL(sys_ni_syscall) |
| 125 | .long sys_newfstat | 125 | CALL(OBSOLETE(sys_syscall)) /* call a syscall */ |
| 126 | .long sys_ni_syscall /* was sys_uname */ | 126 | CALL(sys_wait4) |
| 127 | /* 110 */ .long sys_ni_syscall /* was sys_iopl */ | 127 | /* 115 */ CALL(sys_swapoff) |
| 128 | .long sys_vhangup | 128 | CALL(sys_sysinfo) |
| 129 | .long sys_ni_syscall | 129 | CALL(OBSOLETE(ABI(sys_ipc, sys_oabi_ipc))) |
| 130 | .long OBSOLETE(sys_syscall) /* call a syscall */ | 130 | CALL(sys_fsync) |
| 131 | .long sys_wait4 | 131 | CALL(sys_sigreturn_wrapper) |
| 132 | /* 115 */ .long sys_swapoff | 132 | /* 120 */ CALL(sys_clone_wrapper) |
| 133 | .long sys_sysinfo | 133 | CALL(sys_setdomainname) |
| 134 | .long OBSOLETE(ABI(sys_ipc, sys_oabi_ipc)) | 134 | CALL(sys_newuname) |
| 135 | .long sys_fsync | 135 | CALL(sys_ni_syscall) |
| 136 | .long sys_sigreturn_wrapper | 136 | CALL(sys_adjtimex) |
| 137 | /* 120 */ .long sys_clone_wrapper | 137 | /* 125 */ CALL(sys_mprotect) |
| 138 | .long sys_setdomainname | 138 | CALL(sys_sigprocmask) |
| 139 | .long sys_newuname | 139 | CALL(sys_ni_syscall) /* was sys_create_module */ |
| 140 | .long sys_ni_syscall | 140 | CALL(sys_init_module) |
| 141 | .long sys_adjtimex | 141 | CALL(sys_delete_module) |
| 142 | /* 125 */ .long sys_mprotect | 142 | /* 130 */ CALL(sys_ni_syscall) /* was sys_get_kernel_syms */ |
| 143 | .long sys_sigprocmask | 143 | CALL(sys_quotactl) |
| 144 | .long sys_ni_syscall /* was sys_create_module */ | 144 | CALL(sys_getpgid) |
| 145 | .long sys_init_module | 145 | CALL(sys_fchdir) |
| 146 | .long sys_delete_module | 146 | CALL(sys_bdflush) |
| 147 | /* 130 */ .long sys_ni_syscall /* was sys_get_kernel_syms */ | 147 | /* 135 */ CALL(sys_sysfs) |
| 148 | .long sys_quotactl | 148 | CALL(sys_personality) |
| 149 | .long sys_getpgid | 149 | CALL(sys_ni_syscall) /* CALL(_sys_afs_syscall) */ |
| 150 | .long sys_fchdir | 150 | CALL(sys_setfsuid16) |
| 151 | .long sys_bdflush | 151 | CALL(sys_setfsgid16) |
| 152 | /* 135 */ .long sys_sysfs | 152 | /* 140 */ CALL(sys_llseek) |
| 153 | .long sys_personality | 153 | CALL(sys_getdents) |
| 154 | .long sys_ni_syscall /* .long _sys_afs_syscall */ | 154 | CALL(sys_select) |
| 155 | .long sys_setfsuid16 | 155 | CALL(sys_flock) |
| 156 | .long sys_setfsgid16 | 156 | CALL(sys_msync) |
| 157 | /* 140 */ .long sys_llseek | 157 | /* 145 */ CALL(sys_readv) |
| 158 | .long sys_getdents | 158 | CALL(sys_writev) |
| 159 | .long sys_select | 159 | CALL(sys_getsid) |
| 160 | .long sys_flock | 160 | CALL(sys_fdatasync) |
| 161 | .long sys_msync | 161 | CALL(sys_sysctl) |
| 162 | /* 145 */ .long sys_readv | 162 | /* 150 */ CALL(sys_mlock) |
| 163 | .long sys_writev | 163 | CALL(sys_munlock) |
| 164 | .long sys_getsid | 164 | CALL(sys_mlockall) |
| 165 | .long sys_fdatasync | 165 | CALL(sys_munlockall) |
| 166 | .long sys_sysctl | 166 | CALL(sys_sched_setparam) |
| 167 | /* 150 */ .long sys_mlock | 167 | /* 155 */ CALL(sys_sched_getparam) |
| 168 | .long sys_munlock | 168 | CALL(sys_sched_setscheduler) |
| 169 | .long sys_mlockall | 169 | CALL(sys_sched_getscheduler) |
| 170 | .long sys_munlockall | 170 | CALL(sys_sched_yield) |
| 171 | .long sys_sched_setparam | 171 | CALL(sys_sched_get_priority_max) |
| 172 | /* 155 */ .long sys_sched_getparam | 172 | /* 160 */ CALL(sys_sched_get_priority_min) |
| 173 | .long sys_sched_setscheduler | 173 | CALL(sys_sched_rr_get_interval) |
| 174 | .long sys_sched_getscheduler | 174 | CALL(sys_nanosleep) |
| 175 | .long sys_sched_yield | 175 | CALL(sys_arm_mremap) |
| 176 | .long sys_sched_get_priority_max | 176 | CALL(sys_setresuid16) |
| 177 | /* 160 */ .long sys_sched_get_priority_min | 177 | /* 165 */ CALL(sys_getresuid16) |
| 178 | .long sys_sched_rr_get_interval | 178 | CALL(sys_ni_syscall) |
| 179 | .long sys_nanosleep | 179 | CALL(sys_ni_syscall) /* was sys_query_module */ |
| 180 | .long sys_arm_mremap | 180 | CALL(sys_poll) |
| 181 | .long sys_setresuid16 | 181 | CALL(sys_nfsservctl) |
| 182 | /* 165 */ .long sys_getresuid16 | 182 | /* 170 */ CALL(sys_setresgid16) |
| 183 | .long sys_ni_syscall | 183 | CALL(sys_getresgid16) |
| 184 | .long sys_ni_syscall /* was sys_query_module */ | 184 | CALL(sys_prctl) |
| 185 | .long sys_poll | 185 | CALL(sys_rt_sigreturn_wrapper) |
| 186 | .long sys_nfsservctl | 186 | CALL(sys_rt_sigaction) |
| 187 | /* 170 */ .long sys_setresgid16 | 187 | /* 175 */ CALL(sys_rt_sigprocmask) |
| 188 | .long sys_getresgid16 | 188 | CALL(sys_rt_sigpending) |
| 189 | .long sys_prctl | 189 | CALL(sys_rt_sigtimedwait) |
| 190 | .long sys_rt_sigreturn_wrapper | 190 | CALL(sys_rt_sigqueueinfo) |
| 191 | .long sys_rt_sigaction | 191 | CALL(sys_rt_sigsuspend_wrapper) |
| 192 | /* 175 */ .long sys_rt_sigprocmask | 192 | /* 180 */ CALL(ABI(sys_pread64, sys_oabi_pread64)) |
| 193 | .long sys_rt_sigpending | 193 | CALL(ABI(sys_pwrite64, sys_oabi_pwrite64)) |
| 194 | .long sys_rt_sigtimedwait | 194 | CALL(sys_chown16) |
| 195 | .long sys_rt_sigqueueinfo | 195 | CALL(sys_getcwd) |
| 196 | .long sys_rt_sigsuspend_wrapper | 196 | CALL(sys_capget) |
| 197 | /* 180 */ .long ABI(sys_pread64, sys_oabi_pread64) | 197 | /* 185 */ CALL(sys_capset) |
| 198 | .long ABI(sys_pwrite64, sys_oabi_pwrite64) | 198 | CALL(sys_sigaltstack_wrapper) |
| 199 | .long sys_chown16 | 199 | CALL(sys_sendfile) |
| 200 | .long sys_getcwd | 200 | CALL(sys_ni_syscall) |
| 201 | .long sys_capget | 201 | CALL(sys_ni_syscall) |
| 202 | /* 185 */ .long sys_capset | 202 | /* 190 */ CALL(sys_vfork_wrapper) |
| 203 | .long sys_sigaltstack_wrapper | 203 | CALL(sys_getrlimit) |
| 204 | .long sys_sendfile | 204 | CALL(sys_mmap2) |
| 205 | .long sys_ni_syscall | 205 | CALL(ABI(sys_truncate64, sys_oabi_truncate64)) |
| 206 | .long sys_ni_syscall | 206 | CALL(ABI(sys_ftruncate64, sys_oabi_ftruncate64)) |
| 207 | /* 190 */ .long sys_vfork_wrapper | 207 | /* 195 */ CALL(ABI(sys_stat64, sys_oabi_stat64)) |
| 208 | .long sys_getrlimit | 208 | CALL(ABI(sys_lstat64, sys_oabi_lstat64)) |
| 209 | .long sys_mmap2 | 209 | CALL(ABI(sys_fstat64, sys_oabi_fstat64)) |
| 210 | .long ABI(sys_truncate64, sys_oabi_truncate64) | 210 | CALL(sys_lchown) |
| 211 | .long ABI(sys_ftruncate64, sys_oabi_ftruncate64) | 211 | CALL(sys_getuid) |
| 212 | /* 195 */ .long ABI(sys_stat64, sys_oabi_stat64) | 212 | /* 200 */ CALL(sys_getgid) |
| 213 | .long ABI(sys_lstat64, sys_oabi_lstat64) | 213 | CALL(sys_geteuid) |
| 214 | .long ABI(sys_fstat64, sys_oabi_fstat64) | 214 | CALL(sys_getegid) |
| 215 | .long sys_lchown | 215 | CALL(sys_setreuid) |
| 216 | .long sys_getuid | 216 | CALL(sys_setregid) |
| 217 | /* 200 */ .long sys_getgid | 217 | /* 205 */ CALL(sys_getgroups) |
| 218 | .long sys_geteuid | 218 | CALL(sys_setgroups) |
| 219 | .long sys_getegid | 219 | CALL(sys_fchown) |
| 220 | .long sys_setreuid | 220 | CALL(sys_setresuid) |
| 221 | .long sys_setregid | 221 | CALL(sys_getresuid) |
| 222 | /* 205 */ .long sys_getgroups | 222 | /* 210 */ CALL(sys_setresgid) |
| 223 | .long sys_setgroups | 223 | CALL(sys_getresgid) |
| 224 | .long sys_fchown | 224 | CALL(sys_chown) |
| 225 | .long sys_setresuid | 225 | CALL(sys_setuid) |
| 226 | .long sys_getresuid | 226 | CALL(sys_setgid) |
| 227 | /* 210 */ .long sys_setresgid | 227 | /* 215 */ CALL(sys_setfsuid) |
| 228 | .long sys_getresgid | 228 | CALL(sys_setfsgid) |
| 229 | .long sys_chown | 229 | CALL(sys_getdents64) |
| 230 | .long sys_setuid | 230 | CALL(sys_pivot_root) |
| 231 | .long sys_setgid | 231 | CALL(sys_mincore) |
| 232 | /* 215 */ .long sys_setfsuid | 232 | /* 220 */ CALL(sys_madvise) |
| 233 | .long sys_setfsgid | 233 | CALL(ABI(sys_fcntl64, sys_oabi_fcntl64)) |
| 234 | .long sys_getdents64 | 234 | CALL(sys_ni_syscall) /* TUX */ |
| 235 | .long sys_pivot_root | 235 | CALL(sys_ni_syscall) |
| 236 | .long sys_mincore | 236 | CALL(sys_gettid) |
| 237 | /* 220 */ .long sys_madvise | 237 | /* 225 */ CALL(ABI(sys_readahead, sys_oabi_readahead)) |
| 238 | .long ABI(sys_fcntl64, sys_oabi_fcntl64) | 238 | CALL(sys_setxattr) |
| 239 | .long sys_ni_syscall /* TUX */ | 239 | CALL(sys_lsetxattr) |
| 240 | .long sys_ni_syscall | 240 | CALL(sys_fsetxattr) |
| 241 | .long sys_gettid | 241 | CALL(sys_getxattr) |
| 242 | /* 225 */ .long ABI(sys_readahead, sys_oabi_readahead) | 242 | /* 230 */ CALL(sys_lgetxattr) |
| 243 | .long sys_setxattr | 243 | CALL(sys_fgetxattr) |
| 244 | .long sys_lsetxattr | 244 | CALL(sys_listxattr) |
| 245 | .long sys_fsetxattr | 245 | CALL(sys_llistxattr) |
| 246 | .long sys_getxattr | 246 | CALL(sys_flistxattr) |
| 247 | /* 230 */ .long sys_lgetxattr | 247 | /* 235 */ CALL(sys_removexattr) |
| 248 | .long sys_fgetxattr | 248 | CALL(sys_lremovexattr) |
| 249 | .long sys_listxattr | 249 | CALL(sys_fremovexattr) |
| 250 | .long sys_llistxattr | 250 | CALL(sys_tkill) |
| 251 | .long sys_flistxattr | 251 | CALL(sys_sendfile64) |
| 252 | /* 235 */ .long sys_removexattr | 252 | /* 240 */ CALL(sys_futex) |
| 253 | .long sys_lremovexattr | 253 | CALL(sys_sched_setaffinity) |
| 254 | .long sys_fremovexattr | 254 | CALL(sys_sched_getaffinity) |
| 255 | .long sys_tkill | 255 | CALL(sys_io_setup) |
| 256 | .long sys_sendfile64 | 256 | CALL(sys_io_destroy) |
| 257 | /* 240 */ .long sys_futex | 257 | /* 245 */ CALL(sys_io_getevents) |
| 258 | .long sys_sched_setaffinity | 258 | CALL(sys_io_submit) |
| 259 | .long sys_sched_getaffinity | 259 | CALL(sys_io_cancel) |
| 260 | .long sys_io_setup | 260 | CALL(sys_exit_group) |
| 261 | .long sys_io_destroy | 261 | CALL(sys_lookup_dcookie) |
| 262 | /* 245 */ .long sys_io_getevents | 262 | /* 250 */ CALL(sys_epoll_create) |
| 263 | .long sys_io_submit | 263 | CALL(ABI(sys_epoll_ctl, sys_oabi_epoll_ctl)) |
| 264 | .long sys_io_cancel | 264 | CALL(ABI(sys_epoll_wait, sys_oabi_epoll_wait)) |
| 265 | .long sys_exit_group | 265 | CALL(sys_remap_file_pages) |
| 266 | .long sys_lookup_dcookie | 266 | CALL(sys_ni_syscall) /* sys_set_thread_area */ |
| 267 | /* 250 */ .long sys_epoll_create | 267 | /* 255 */ CALL(sys_ni_syscall) /* sys_get_thread_area */ |
| 268 | .long ABI(sys_epoll_ctl, sys_oabi_epoll_ctl) | 268 | CALL(sys_set_tid_address) |
| 269 | .long ABI(sys_epoll_wait, sys_oabi_epoll_wait) | 269 | CALL(sys_timer_create) |
| 270 | .long sys_remap_file_pages | 270 | CALL(sys_timer_settime) |
| 271 | .long sys_ni_syscall /* sys_set_thread_area */ | 271 | CALL(sys_timer_gettime) |
| 272 | /* 255 */ .long sys_ni_syscall /* sys_get_thread_area */ | 272 | /* 260 */ CALL(sys_timer_getoverrun) |
| 273 | .long sys_set_tid_address | 273 | CALL(sys_timer_delete) |
| 274 | .long sys_timer_create | 274 | CALL(sys_clock_settime) |
| 275 | .long sys_timer_settime | 275 | CALL(sys_clock_gettime) |
| 276 | .long sys_timer_gettime | 276 | CALL(sys_clock_getres) |
| 277 | /* 260 */ .long sys_timer_getoverrun | 277 | /* 265 */ CALL(sys_clock_nanosleep) |
| 278 | .long sys_timer_delete | 278 | CALL(sys_statfs64_wrapper) |
| 279 | .long sys_clock_settime | 279 | CALL(sys_fstatfs64_wrapper) |
| 280 | .long sys_clock_gettime | 280 | CALL(sys_tgkill) |
| 281 | .long sys_clock_getres | 281 | CALL(sys_utimes) |
| 282 | /* 265 */ .long sys_clock_nanosleep | 282 | /* 270 */ CALL(sys_arm_fadvise64_64) |
| 283 | .long sys_statfs64_wrapper | 283 | CALL(sys_pciconfig_iobase) |
| 284 | .long sys_fstatfs64_wrapper | 284 | CALL(sys_pciconfig_read) |
| 285 | .long sys_tgkill | 285 | CALL(sys_pciconfig_write) |
| 286 | .long sys_utimes | 286 | CALL(sys_mq_open) |
| 287 | /* 270 */ .long sys_arm_fadvise64_64 | 287 | /* 275 */ CALL(sys_mq_unlink) |
| 288 | .long sys_pciconfig_iobase | 288 | CALL(sys_mq_timedsend) |
| 289 | .long sys_pciconfig_read | 289 | CALL(sys_mq_timedreceive) |
| 290 | .long sys_pciconfig_write | 290 | CALL(sys_mq_notify) |
| 291 | .long sys_mq_open | 291 | CALL(sys_mq_getsetattr) |
| 292 | /* 275 */ .long sys_mq_unlink | 292 | /* 280 */ CALL(sys_waitid) |
| 293 | .long sys_mq_timedsend | 293 | CALL(sys_socket) |
| 294 | .long sys_mq_timedreceive | 294 | CALL(ABI(sys_bind, sys_oabi_bind)) |
| 295 | .long sys_mq_notify | 295 | CALL(ABI(sys_connect, sys_oabi_connect)) |
| 296 | .long sys_mq_getsetattr | 296 | CALL(sys_listen) |
| 297 | /* 280 */ .long sys_waitid | 297 | /* 285 */ CALL(sys_accept) |
| 298 | .long sys_socket | 298 | CALL(sys_getsockname) |
| 299 | .long sys_bind | 299 | CALL(sys_getpeername) |
| 300 | .long sys_connect | 300 | CALL(sys_socketpair) |
| 301 | .long sys_listen | 301 | CALL(sys_send) |
| 302 | /* 285 */ .long sys_accept | 302 | /* 290 */ CALL(ABI(sys_sendto, sys_oabi_sendto)) |
| 303 | .long sys_getsockname | 303 | CALL(sys_recv) |
| 304 | .long sys_getpeername | 304 | CALL(sys_recvfrom) |
| 305 | .long sys_socketpair | 305 | CALL(sys_shutdown) |
| 306 | .long sys_send | 306 | CALL(sys_setsockopt) |
| 307 | /* 290 */ .long sys_sendto | 307 | /* 295 */ CALL(sys_getsockopt) |
| 308 | .long sys_recv | 308 | CALL(ABI(sys_sendmsg, sys_oabi_sendmsg)) |
| 309 | .long sys_recvfrom | 309 | CALL(sys_recvmsg) |
| 310 | .long sys_shutdown | 310 | CALL(ABI(sys_semop, sys_oabi_semop)) |
| 311 | .long sys_setsockopt | 311 | CALL(sys_semget) |
| 312 | /* 295 */ .long sys_getsockopt | 312 | /* 300 */ CALL(sys_semctl) |
| 313 | .long sys_sendmsg | 313 | CALL(sys_msgsnd) |
| 314 | .long sys_recvmsg | 314 | CALL(sys_msgrcv) |
| 315 | .long ABI(sys_semop, sys_oabi_semop) | 315 | CALL(sys_msgget) |
| 316 | .long sys_semget | 316 | CALL(sys_msgctl) |
| 317 | /* 300 */ .long sys_semctl | 317 | /* 305 */ CALL(sys_shmat) |
| 318 | .long sys_msgsnd | 318 | CALL(sys_shmdt) |
| 319 | .long sys_msgrcv | 319 | CALL(sys_shmget) |
| 320 | .long sys_msgget | 320 | CALL(sys_shmctl) |
| 321 | .long sys_msgctl | 321 | CALL(sys_add_key) |
| 322 | /* 305 */ .long sys_shmat | 322 | /* 310 */ CALL(sys_request_key) |
| 323 | .long sys_shmdt | 323 | CALL(sys_keyctl) |
| 324 | .long sys_shmget | 324 | CALL(ABI(sys_semtimedop, sys_oabi_semtimedop)) |
| 325 | .long sys_shmctl | 325 | /* vserver */ CALL(sys_ni_syscall) |
| 326 | .long sys_add_key | 326 | CALL(sys_ioprio_set) |
| 327 | /* 310 */ .long sys_request_key | 327 | /* 315 */ CALL(sys_ioprio_get) |
| 328 | .long sys_keyctl | 328 | CALL(sys_inotify_init) |
| 329 | .long ABI(sys_semtimedop, sys_oabi_semtimedop) | 329 | CALL(sys_inotify_add_watch) |
| 330 | /* vserver */ .long sys_ni_syscall | 330 | CALL(sys_inotify_rm_watch) |
| 331 | .long sys_ioprio_set | 331 | CALL(sys_mbind) |
| 332 | /* 315 */ .long sys_ioprio_get | 332 | /* 320 */ CALL(sys_get_mempolicy) |
| 333 | .long sys_inotify_init | 333 | CALL(sys_set_mempolicy) |
| 334 | .long sys_inotify_add_watch | 334 | #ifndef syscalls_counted |
| 335 | .long sys_inotify_rm_watch | 335 | .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls |
| 336 | .long sys_mbind | 336 | #define syscalls_counted |
| 337 | /* 320 */ .long sys_get_mempolicy | ||
| 338 | .long sys_set_mempolicy | ||
| 339 | |||
| 340 | .rept NR_syscalls - (. - 100b) / 4 | ||
| 341 | .long sys_ni_syscall | ||
| 342 | .endr | ||
| 343 | #endif | 337 | #endif |
| 338 | .rept syscalls_padding | ||
| 339 | CALL(sys_ni_syscall) | ||
| 340 | .endr | ||
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index d401d908c463..964cd717506b 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
| @@ -333,10 +333,14 @@ __pabt_svc: | |||
| 333 | @ from the exception stack | 333 | @ from the exception stack |
| 334 | 334 | ||
| 335 | #if __LINUX_ARM_ARCH__ < 6 && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG) | 335 | #if __LINUX_ARM_ARCH__ < 6 && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG) |
| 336 | #ifndef CONFIG_MMU | ||
| 337 | #warning "NPTL on non MMU needs fixing" | ||
| 338 | #else | ||
| 336 | @ make sure our user space atomic helper is aborted | 339 | @ make sure our user space atomic helper is aborted |
| 337 | cmp r2, #TASK_SIZE | 340 | cmp r2, #TASK_SIZE |
| 338 | bichs r3, r3, #PSR_Z_BIT | 341 | bichs r3, r3, #PSR_Z_BIT |
| 339 | #endif | 342 | #endif |
| 343 | #endif | ||
| 340 | 344 | ||
| 341 | @ | 345 | @ |
| 342 | @ We are now ready to fill in the remaining blanks on the stack: | 346 | @ We are now ready to fill in the remaining blanks on the stack: |
| @@ -705,7 +709,12 @@ __kuser_memory_barrier: @ 0xffff0fa0 | |||
| 705 | * The C flag is also set if *ptr was changed to allow for assembly | 709 | * The C flag is also set if *ptr was changed to allow for assembly |
| 706 | * optimization in the calling code. | 710 | * optimization in the calling code. |
| 707 | * | 711 | * |
| 708 | * Note: this routine already includes memory barriers as needed. | 712 | * Notes: |
| 713 | * | ||
| 714 | * - This routine already includes memory barriers as needed. | ||
| 715 | * | ||
| 716 | * - A failure might be transient, i.e. it is possible, although unlikely, | ||
| 717 | * that "failure" be returned even if *ptr == oldval. | ||
| 709 | * | 718 | * |
| 710 | * For example, a user space atomic_add implementation could look like this: | 719 | * For example, a user space atomic_add implementation could look like this: |
| 711 | * | 720 | * |
| @@ -756,12 +765,18 @@ __kuser_cmpxchg: @ 0xffff0fc0 | |||
| 756 | * exception happening just after the str instruction which would | 765 | * exception happening just after the str instruction which would |
| 757 | * clear the Z flag although the exchange was done. | 766 | * clear the Z flag although the exchange was done. |
| 758 | */ | 767 | */ |
| 768 | #ifdef CONFIG_MMU | ||
| 759 | teq ip, ip @ set Z flag | 769 | teq ip, ip @ set Z flag |
| 760 | ldr ip, [r2] @ load current val | 770 | ldr ip, [r2] @ load current val |
| 761 | add r3, r2, #1 @ prepare store ptr | 771 | add r3, r2, #1 @ prepare store ptr |
| 762 | teqeq ip, r0 @ compare with oldval if still allowed | 772 | teqeq ip, r0 @ compare with oldval if still allowed |
| 763 | streq r1, [r3, #-1]! @ store newval if still allowed | 773 | streq r1, [r3, #-1]! @ store newval if still allowed |
| 764 | subs r0, r2, r3 @ if r2 == r3 the str occured | 774 | subs r0, r2, r3 @ if r2 == r3 the str occured |
| 775 | #else | ||
| 776 | #warning "NPTL on non MMU needs fixing" | ||
| 777 | mov r0, #-1 | ||
| 778 | adds r0, r0, #0 | ||
| 779 | #endif | ||
| 765 | mov pc, lr | 780 | mov pc, lr |
| 766 | 781 | ||
| 767 | #else | 782 | #else |
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 2b92ce85f97f..dbcb11a31f78 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
| @@ -87,7 +87,11 @@ ENTRY(ret_from_fork) | |||
| 87 | b ret_slow_syscall | 87 | b ret_slow_syscall |
| 88 | 88 | ||
| 89 | 89 | ||
| 90 | .equ NR_syscalls,0 | ||
| 91 | #define CALL(x) .equ NR_syscalls,NR_syscalls+1 | ||
| 90 | #include "calls.S" | 92 | #include "calls.S" |
| 93 | #undef CALL | ||
| 94 | #define CALL(x) .long x | ||
| 91 | 95 | ||
| 92 | /*============================================================================= | 96 | /*============================================================================= |
| 93 | * SWI handler | 97 | * SWI handler |
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c index eafa8e5284af..9d4b76409c64 100644 --- a/arch/arm/kernel/sys_oabi-compat.c +++ b/arch/arm/kernel/sys_oabi-compat.c | |||
| @@ -59,6 +59,16 @@ | |||
| 59 | * struct sembuf loses its padding with EABI. Since arrays of them are | 59 | * struct sembuf loses its padding with EABI. Since arrays of them are |
| 60 | * used they have to be copyed to remove the padding. Compatibility wrappers | 60 | * used they have to be copyed to remove the padding. Compatibility wrappers |
| 61 | * provided below. | 61 | * provided below. |
| 62 | * | ||
| 63 | * sys_bind: | ||
| 64 | * sys_connect: | ||
| 65 | * sys_sendmsg: | ||
| 66 | * sys_sendto: | ||
| 67 | * | ||
| 68 | * struct sockaddr_un loses its padding with EABI. Since the size of the | ||
| 69 | * structure is used as a validation test in unix_mkname(), we need to | ||
| 70 | * change the length argument to 110 whenever it is 112. Compatibility | ||
| 71 | * wrappers provided below. | ||
| 62 | */ | 72 | */ |
| 63 | 73 | ||
| 64 | #include <linux/syscalls.h> | 74 | #include <linux/syscalls.h> |
| @@ -67,6 +77,7 @@ | |||
| 67 | #include <linux/fcntl.h> | 77 | #include <linux/fcntl.h> |
| 68 | #include <linux/eventpoll.h> | 78 | #include <linux/eventpoll.h> |
| 69 | #include <linux/sem.h> | 79 | #include <linux/sem.h> |
| 80 | #include <linux/socket.h> | ||
| 70 | #include <asm/ipc.h> | 81 | #include <asm/ipc.h> |
| 71 | #include <asm/uaccess.h> | 82 | #include <asm/uaccess.h> |
| 72 | 83 | ||
| @@ -337,3 +348,63 @@ asmlinkage int sys_oabi_ipc(uint call, int first, int second, int third, | |||
| 337 | return sys_ipc(call, first, second, third, ptr, fifth); | 348 | return sys_ipc(call, first, second, third, ptr, fifth); |
| 338 | } | 349 | } |
| 339 | } | 350 | } |
| 351 | |||
| 352 | asmlinkage long sys_oabi_bind(int fd, struct sockaddr __user *addr, int addrlen) | ||
| 353 | { | ||
| 354 | sa_family_t sa_family; | ||
| 355 | if (addrlen == 112 && | ||
| 356 | get_user(sa_family, &addr->sa_family) == 0 && | ||
| 357 | sa_family == AF_UNIX) | ||
| 358 | addrlen = 110; | ||
| 359 | return sys_bind(fd, addr, addrlen); | ||
| 360 | } | ||
| 361 | |||
| 362 | asmlinkage long sys_oabi_connect(int fd, struct sockaddr __user *addr, int addrlen) | ||
| 363 | { | ||
| 364 | sa_family_t sa_family; | ||
| 365 | if (addrlen == 112 && | ||
| 366 | get_user(sa_family, &addr->sa_family) == 0 && | ||
| 367 | sa_family == AF_UNIX) | ||
| 368 | addrlen = 110; | ||
| 369 | return sys_connect(fd, addr, addrlen); | ||
| 370 | } | ||
| 371 | |||
| 372 | asmlinkage long sys_oabi_sendto(int fd, void __user *buff, | ||
| 373 | size_t len, unsigned flags, | ||
| 374 | struct sockaddr __user *addr, | ||
| 375 | int addrlen) | ||
| 376 | { | ||
| 377 | sa_family_t sa_family; | ||
| 378 | if (addrlen == 112 && | ||
| 379 | get_user(sa_family, &addr->sa_family) == 0 && | ||
| 380 | sa_family == AF_UNIX) | ||
| 381 | addrlen = 110; | ||
| 382 | return sys_sendto(fd, buff, len, flags, addr, addrlen); | ||
| 383 | } | ||
| 384 | |||
| 385 | asmlinkage long sys_oabi_sendmsg(int fd, struct msghdr __user *msg, unsigned flags) | ||
| 386 | { | ||
| 387 | struct sockaddr __user *addr; | ||
| 388 | int msg_namelen; | ||
| 389 | sa_family_t sa_family; | ||
| 390 | if (msg && | ||
| 391 | get_user(msg_namelen, &msg->msg_namelen) == 0 && | ||
| 392 | msg_namelen == 112 && | ||
| 393 | get_user(addr, &msg->msg_name) == 0 && | ||
| 394 | get_user(sa_family, &addr->sa_family) == 0 && | ||
| 395 | sa_family == AF_UNIX) | ||
| 396 | { | ||
| 397 | /* | ||
| 398 | * HACK ALERT: there is a limit to how much backward bending | ||
| 399 | * we should do for what is actually a transitional | ||
| 400 | * compatibility layer. This already has known flaws with | ||
| 401 | * a few ioctls that we don't intend to fix. Therefore | ||
| 402 | * consider this blatent hack as another one... and take care | ||
| 403 | * to run for cover. In most cases it will "just work fine". | ||
| 404 | * If it doesn't, well, tough. | ||
| 405 | */ | ||
| 406 | put_user(110, &msg->msg_namelen); | ||
| 407 | } | ||
| 408 | return sys_sendmsg(fd, msg, flags); | ||
| 409 | } | ||
| 410 | |||
diff --git a/arch/arm/mach-clps711x/Kconfig b/arch/arm/mach-clps711x/Kconfig index 0793dcf54f2e..0e2b641268ad 100644 --- a/arch/arm/mach-clps711x/Kconfig +++ b/arch/arm/mach-clps711x/Kconfig | |||
| @@ -24,6 +24,8 @@ config ARCH_CEIVA | |||
| 24 | 24 | ||
| 25 | config ARCH_CLEP7312 | 25 | config ARCH_CLEP7312 |
| 26 | bool "CLEP7312" | 26 | bool "CLEP7312" |
| 27 | help | ||
| 28 | Boards based on the Cirrus Logic 7212/7312 chips. | ||
| 27 | 29 | ||
| 28 | config ARCH_EDB7211 | 30 | config ARCH_EDB7211 |
| 29 | bool "EDB7211" | 31 | bool "EDB7211" |
diff --git a/arch/arm/mach-imx/mx1ads.c b/arch/arm/mach-imx/mx1ads.c index dc31e3fd6c57..8ab1b040288c 100644 --- a/arch/arm/mach-imx/mx1ads.c +++ b/arch/arm/mach-imx/mx1ads.c | |||
| @@ -27,7 +27,6 @@ | |||
| 27 | #include <asm/mach/arch.h> | 27 | #include <asm/mach/arch.h> |
| 28 | #include <linux/interrupt.h> | 28 | #include <linux/interrupt.h> |
| 29 | #include "generic.h" | 29 | #include "generic.h" |
| 30 | #include <asm/serial.h> | ||
| 31 | 30 | ||
| 32 | static struct resource cs89x0_resources[] = { | 31 | static struct resource cs89x0_resources[] = { |
| 33 | [0] = { | 32 | [0] = { |
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 31820170f306..a0724f2b24ce 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
| @@ -469,7 +469,9 @@ static void cp_clcd_enable(struct clcd_fb *fb) | |||
| 469 | if (fb->fb.var.bits_per_pixel <= 8) | 469 | if (fb->fb.var.bits_per_pixel <= 8) |
| 470 | val = CM_CTRL_LCDMUXSEL_VGA_8421BPP; | 470 | val = CM_CTRL_LCDMUXSEL_VGA_8421BPP; |
| 471 | else if (fb->fb.var.bits_per_pixel <= 16) | 471 | else if (fb->fb.var.bits_per_pixel <= 16) |
| 472 | val = CM_CTRL_LCDMUXSEL_VGA_16BPP; | 472 | val = CM_CTRL_LCDMUXSEL_VGA_16BPP |
| 473 | | CM_CTRL_LCDEN0 | CM_CTRL_LCDEN1 | ||
| 474 | | CM_CTRL_STATIC1 | CM_CTRL_STATIC2; | ||
| 473 | else | 475 | else |
| 474 | val = 0; /* no idea for this, don't trust the docs */ | 476 | val = 0; /* no idea for this, don't trust the docs */ |
| 475 | 477 | ||
diff --git a/arch/arm/mach-ixp2000/enp2611.c b/arch/arm/mach-ixp2000/enp2611.c index 9e5a13bb39d0..52fac89e95b5 100644 --- a/arch/arm/mach-ixp2000/enp2611.c +++ b/arch/arm/mach-ixp2000/enp2611.c | |||
| @@ -106,6 +106,7 @@ static void __init enp2611_pci_preinit(void) | |||
| 106 | { | 106 | { |
| 107 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00100000); | 107 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00100000); |
| 108 | ixp2000_pci_preinit(); | 108 | ixp2000_pci_preinit(); |
| 109 | pcibios_setup("firmware"); | ||
| 109 | } | 110 | } |
| 110 | 111 | ||
| 111 | static inline int enp2611_pci_valid_device(struct pci_bus *bus, | 112 | static inline int enp2611_pci_valid_device(struct pci_bus *bus, |
diff --git a/arch/arm/mach-ixp2000/ixdp2400.c b/arch/arm/mach-ixp2000/ixdp2400.c index 7c782403042a..09101271298e 100644 --- a/arch/arm/mach-ixp2000/ixdp2400.c +++ b/arch/arm/mach-ixp2000/ixdp2400.c | |||
| @@ -68,6 +68,7 @@ void __init ixdp2400_pci_preinit(void) | |||
| 68 | { | 68 | { |
| 69 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00100000); | 69 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00100000); |
| 70 | ixp2000_pci_preinit(); | 70 | ixp2000_pci_preinit(); |
| 71 | pcibios_setup("firmware"); | ||
| 71 | } | 72 | } |
| 72 | 73 | ||
| 73 | int ixdp2400_pci_setup(int nr, struct pci_sys_data *sys) | 74 | int ixdp2400_pci_setup(int nr, struct pci_sys_data *sys) |
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c index 10f06606d460..150519fb38ec 100644 --- a/arch/arm/mach-ixp2000/ixdp2x01.c +++ b/arch/arm/mach-ixp2000/ixdp2x01.c | |||
| @@ -212,6 +212,7 @@ void __init ixdp2x01_pci_preinit(void) | |||
| 212 | { | 212 | { |
| 213 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00000000); | 213 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00000000); |
| 214 | ixp2000_pci_preinit(); | 214 | ixp2000_pci_preinit(); |
| 215 | pcibios_setup("firmware"); | ||
| 215 | } | 216 | } |
| 216 | 217 | ||
| 217 | #define DEVPIN(dev, pin) ((pin) | ((dev) << 3)) | 218 | #define DEVPIN(dev, pin) ((pin) | ((dev) << 3)) |
| @@ -299,7 +300,9 @@ struct hw_pci ixdp2x01_pci __initdata = { | |||
| 299 | 300 | ||
| 300 | int __init ixdp2x01_pci_init(void) | 301 | int __init ixdp2x01_pci_init(void) |
| 301 | { | 302 | { |
| 302 | pci_common_init(&ixdp2x01_pci); | 303 | if (machine_is_ixdp2401() || machine_is_ixdp2801()) |
| 304 | pci_common_init(&ixdp2x01_pci); | ||
| 305 | |||
| 303 | return 0; | 306 | return 0; |
| 304 | } | 307 | } |
| 305 | 308 | ||
diff --git a/arch/arm/mach-omap1/board-generic.c b/arch/arm/mach-omap1/board-generic.c index bdc20b51b076..a177e78b2b87 100644 --- a/arch/arm/mach-omap1/board-generic.c +++ b/arch/arm/mach-omap1/board-generic.c | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | 30 | ||
| 31 | static void __init omap_generic_init_irq(void) | 31 | static void __init omap_generic_init_irq(void) |
| 32 | { | 32 | { |
| 33 | omap1_init_common_hw(); | ||
| 33 | omap_init_irq(); | 34 | omap_init_irq(); |
| 34 | } | 35 | } |
| 35 | 36 | ||
| @@ -104,7 +105,7 @@ static void __init omap_generic_init(void) | |||
| 104 | 105 | ||
| 105 | static void __init omap_generic_map_io(void) | 106 | static void __init omap_generic_map_io(void) |
| 106 | { | 107 | { |
| 107 | omap_map_common_io(); | 108 | omap1_map_common_io(); |
| 108 | } | 109 | } |
| 109 | 110 | ||
| 110 | MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710") | 111 | MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710") |
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c index 9533c36a92df..89f0cc74a519 100644 --- a/arch/arm/mach-omap1/board-h2.c +++ b/arch/arm/mach-omap1/board-h2.c | |||
| @@ -128,6 +128,7 @@ static void __init h2_init_smc91x(void) | |||
| 128 | 128 | ||
| 129 | static void __init h2_init_irq(void) | 129 | static void __init h2_init_irq(void) |
| 130 | { | 130 | { |
| 131 | omap1_init_common_hw(); | ||
| 131 | omap_init_irq(); | 132 | omap_init_irq(); |
| 132 | omap_gpio_init(); | 133 | omap_gpio_init(); |
| 133 | h2_init_smc91x(); | 134 | h2_init_smc91x(); |
| @@ -194,7 +195,7 @@ static void __init h2_init(void) | |||
| 194 | 195 | ||
| 195 | static void __init h2_map_io(void) | 196 | static void __init h2_map_io(void) |
| 196 | { | 197 | { |
| 197 | omap_map_common_io(); | 198 | omap1_map_common_io(); |
| 198 | } | 199 | } |
| 199 | 200 | ||
| 200 | MACHINE_START(OMAP_H2, "TI-H2") | 201 | MACHINE_START(OMAP_H2, "TI-H2") |
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c index d665efc1c344..d9f386265996 100644 --- a/arch/arm/mach-omap1/board-h3.c +++ b/arch/arm/mach-omap1/board-h3.c | |||
| @@ -203,6 +203,7 @@ static void __init h3_init_smc91x(void) | |||
| 203 | 203 | ||
| 204 | void h3_init_irq(void) | 204 | void h3_init_irq(void) |
| 205 | { | 205 | { |
| 206 | omap1_init_common_hw(); | ||
| 206 | omap_init_irq(); | 207 | omap_init_irq(); |
| 207 | omap_gpio_init(); | 208 | omap_gpio_init(); |
| 208 | h3_init_smc91x(); | 209 | h3_init_smc91x(); |
| @@ -210,7 +211,7 @@ void h3_init_irq(void) | |||
| 210 | 211 | ||
| 211 | static void __init h3_map_io(void) | 212 | static void __init h3_map_io(void) |
| 212 | { | 213 | { |
| 213 | omap_map_common_io(); | 214 | omap1_map_common_io(); |
| 214 | } | 215 | } |
| 215 | 216 | ||
| 216 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") | 217 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") |
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c index 652f37c7f906..a04e4332915e 100644 --- a/arch/arm/mach-omap1/board-innovator.c +++ b/arch/arm/mach-omap1/board-innovator.c | |||
| @@ -181,6 +181,7 @@ static void __init innovator_init_smc91x(void) | |||
| 181 | 181 | ||
| 182 | void innovator_init_irq(void) | 182 | void innovator_init_irq(void) |
| 183 | { | 183 | { |
| 184 | omap1_init_common_hw(); | ||
| 184 | omap_init_irq(); | 185 | omap_init_irq(); |
| 185 | omap_gpio_init(); | 186 | omap_gpio_init(); |
| 186 | #ifdef CONFIG_ARCH_OMAP15XX | 187 | #ifdef CONFIG_ARCH_OMAP15XX |
| @@ -285,7 +286,7 @@ static void __init innovator_init(void) | |||
| 285 | 286 | ||
| 286 | static void __init innovator_map_io(void) | 287 | static void __init innovator_map_io(void) |
| 287 | { | 288 | { |
| 288 | omap_map_common_io(); | 289 | omap1_map_common_io(); |
| 289 | 290 | ||
| 290 | #ifdef CONFIG_ARCH_OMAP15XX | 291 | #ifdef CONFIG_ARCH_OMAP15XX |
| 291 | if (cpu_is_omap1510()) { | 292 | if (cpu_is_omap1510()) { |
diff --git a/arch/arm/mach-omap1/board-netstar.c b/arch/arm/mach-omap1/board-netstar.c index 58f783930d45..60d5f8a3339c 100644 --- a/arch/arm/mach-omap1/board-netstar.c +++ b/arch/arm/mach-omap1/board-netstar.c | |||
| @@ -65,6 +65,7 @@ static struct omap_board_config_kernel netstar_config[] = { | |||
| 65 | 65 | ||
| 66 | static void __init netstar_init_irq(void) | 66 | static void __init netstar_init_irq(void) |
| 67 | { | 67 | { |
| 68 | omap1_init_common_hw(); | ||
| 68 | omap_init_irq(); | 69 | omap_init_irq(); |
| 69 | omap_gpio_init(); | 70 | omap_gpio_init(); |
| 70 | } | 71 | } |
| @@ -108,7 +109,7 @@ static void __init netstar_init(void) | |||
| 108 | 109 | ||
| 109 | static void __init netstar_map_io(void) | 110 | static void __init netstar_map_io(void) |
| 110 | { | 111 | { |
| 111 | omap_map_common_io(); | 112 | omap1_map_common_io(); |
| 112 | } | 113 | } |
| 113 | 114 | ||
| 114 | #define MACHINE_PANICED 1 | 115 | #define MACHINE_PANICED 1 |
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c index e5d126e8f276..543fa136106d 100644 --- a/arch/arm/mach-omap1/board-osk.c +++ b/arch/arm/mach-omap1/board-osk.c | |||
| @@ -169,6 +169,7 @@ static void __init osk_init_cf(void) | |||
| 169 | 169 | ||
| 170 | static void __init osk_init_irq(void) | 170 | static void __init osk_init_irq(void) |
| 171 | { | 171 | { |
| 172 | omap1_init_common_hw(); | ||
| 172 | omap_init_irq(); | 173 | omap_init_irq(); |
| 173 | omap_gpio_init(); | 174 | omap_gpio_init(); |
| 174 | osk_init_smc91x(); | 175 | osk_init_smc91x(); |
| @@ -269,7 +270,7 @@ static void __init osk_init(void) | |||
| 269 | 270 | ||
| 270 | static void __init osk_map_io(void) | 271 | static void __init osk_map_io(void) |
| 271 | { | 272 | { |
| 272 | omap_map_common_io(); | 273 | omap1_map_common_io(); |
| 273 | } | 274 | } |
| 274 | 275 | ||
| 275 | MACHINE_START(OMAP_OSK, "TI-OSK") | 276 | MACHINE_START(OMAP_OSK, "TI-OSK") |
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c index 67fada207622..e488f7236775 100644 --- a/arch/arm/mach-omap1/board-palmte.c +++ b/arch/arm/mach-omap1/board-palmte.c | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | 34 | ||
| 35 | static void __init omap_generic_init_irq(void) | 35 | static void __init omap_generic_init_irq(void) |
| 36 | { | 36 | { |
| 37 | omap1_init_common_hw(); | ||
| 37 | omap_init_irq(); | 38 | omap_init_irq(); |
| 38 | } | 39 | } |
| 39 | 40 | ||
| @@ -72,7 +73,7 @@ static void __init omap_generic_init(void) | |||
| 72 | 73 | ||
| 73 | static void __init omap_generic_map_io(void) | 74 | static void __init omap_generic_map_io(void) |
| 74 | { | 75 | { |
| 75 | omap_map_common_io(); | 76 | omap1_map_common_io(); |
| 76 | } | 77 | } |
| 77 | 78 | ||
| 78 | MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E") | 79 | MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E") |
diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-omap1/board-perseus2.c index 88708a0c52a2..3913a3cc0ce6 100644 --- a/arch/arm/mach-omap1/board-perseus2.c +++ b/arch/arm/mach-omap1/board-perseus2.c | |||
| @@ -144,6 +144,7 @@ static void __init perseus2_init_smc91x(void) | |||
| 144 | 144 | ||
| 145 | void omap_perseus2_init_irq(void) | 145 | void omap_perseus2_init_irq(void) |
| 146 | { | 146 | { |
| 147 | omap1_init_common_hw(); | ||
| 147 | omap_init_irq(); | 148 | omap_init_irq(); |
| 148 | omap_gpio_init(); | 149 | omap_gpio_init(); |
| 149 | perseus2_init_smc91x(); | 150 | perseus2_init_smc91x(); |
| @@ -160,7 +161,7 @@ static struct map_desc omap_perseus2_io_desc[] __initdata = { | |||
| 160 | 161 | ||
| 161 | static void __init omap_perseus2_map_io(void) | 162 | static void __init omap_perseus2_map_io(void) |
| 162 | { | 163 | { |
| 163 | omap_map_common_io(); | 164 | omap1_map_common_io(); |
| 164 | iotable_init(omap_perseus2_io_desc, | 165 | iotable_init(omap_perseus2_io_desc, |
| 165 | ARRAY_SIZE(omap_perseus2_io_desc)); | 166 | ARRAY_SIZE(omap_perseus2_io_desc)); |
| 166 | 167 | ||
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c index 959b4b847c87..bfd5fdd1a875 100644 --- a/arch/arm/mach-omap1/board-voiceblue.c +++ b/arch/arm/mach-omap1/board-voiceblue.c | |||
| @@ -162,6 +162,7 @@ static struct omap_board_config_kernel voiceblue_config[] = { | |||
| 162 | 162 | ||
| 163 | static void __init voiceblue_init_irq(void) | 163 | static void __init voiceblue_init_irq(void) |
| 164 | { | 164 | { |
| 165 | omap1_init_common_hw(); | ||
| 165 | omap_init_irq(); | 166 | omap_init_irq(); |
| 166 | omap_gpio_init(); | 167 | omap_gpio_init(); |
| 167 | } | 168 | } |
| @@ -206,7 +207,7 @@ static void __init voiceblue_init(void) | |||
| 206 | 207 | ||
| 207 | static void __init voiceblue_map_io(void) | 208 | static void __init voiceblue_map_io(void) |
| 208 | { | 209 | { |
| 209 | omap_map_common_io(); | 210 | omap1_map_common_io(); |
| 210 | } | 211 | } |
| 211 | 212 | ||
| 212 | #define MACHINE_PANICED 1 | 213 | #define MACHINE_PANICED 1 |
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c index a7a19f75b9e1..82d556be79c5 100644 --- a/arch/arm/mach-omap1/io.c +++ b/arch/arm/mach-omap1/io.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
| 14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
| 15 | 15 | ||
| 16 | #include <asm/tlb.h> | ||
| 16 | #include <asm/mach/map.h> | 17 | #include <asm/mach/map.h> |
| 17 | #include <asm/io.h> | 18 | #include <asm/io.h> |
| 18 | #include <asm/arch/mux.h> | 19 | #include <asm/arch/mux.h> |
| @@ -83,15 +84,24 @@ static struct map_desc omap16xx_io_desc[] __initdata = { | |||
| 83 | }; | 84 | }; |
| 84 | #endif | 85 | #endif |
| 85 | 86 | ||
| 86 | static int initialized = 0; | 87 | /* |
| 87 | 88 | * Maps common IO regions for omap1. This should only get called from | |
| 88 | static void __init _omap_map_io(void) | 89 | * board specific init. |
| 90 | */ | ||
| 91 | void __init omap1_map_common_io(void) | ||
| 89 | { | 92 | { |
| 90 | initialized = 1; | ||
| 91 | |||
| 92 | /* We have to initialize the IO space mapping before we can run | ||
| 93 | * cpu_is_omapxxx() macros. */ | ||
| 94 | iotable_init(omap_io_desc, ARRAY_SIZE(omap_io_desc)); | 93 | iotable_init(omap_io_desc, ARRAY_SIZE(omap_io_desc)); |
| 94 | |||
| 95 | /* Normally devicemaps_init() would flush caches and tlb after | ||
| 96 | * mdesc->map_io(), but we must also do it here because of the CPU | ||
| 97 | * revision check below. | ||
| 98 | */ | ||
| 99 | local_flush_tlb_all(); | ||
| 100 | flush_cache_all(); | ||
| 101 | |||
| 102 | /* We want to check CPU revision early for cpu_is_omapxxxx() macros. | ||
| 103 | * IO space mapping must be initialized before we can do that. | ||
| 104 | */ | ||
| 95 | omap_check_revision(); | 105 | omap_check_revision(); |
| 96 | 106 | ||
| 97 | #ifdef CONFIG_ARCH_OMAP730 | 107 | #ifdef CONFIG_ARCH_OMAP730 |
| @@ -111,7 +121,14 @@ static void __init _omap_map_io(void) | |||
| 111 | #endif | 121 | #endif |
| 112 | 122 | ||
| 113 | omap_sram_init(); | 123 | omap_sram_init(); |
| 124 | } | ||
| 114 | 125 | ||
| 126 | /* | ||
| 127 | * Common low-level hardware init for omap1. This should only get called from | ||
| 128 | * board specific init. | ||
| 129 | */ | ||
| 130 | void __init omap1_init_common_hw() | ||
| 131 | { | ||
| 115 | /* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort | 132 | /* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort |
| 116 | * on a Posted Write in the TIPB Bridge". | 133 | * on a Posted Write in the TIPB Bridge". |
| 117 | */ | 134 | */ |
| @@ -121,16 +138,7 @@ static void __init _omap_map_io(void) | |||
| 121 | /* Must init clocks early to assure that timer interrupt works | 138 | /* Must init clocks early to assure that timer interrupt works |
| 122 | */ | 139 | */ |
| 123 | omap1_clk_init(); | 140 | omap1_clk_init(); |
| 124 | } | ||
| 125 | 141 | ||
| 126 | /* | 142 | omap1_mux_init(); |
| 127 | * This should only get called from board specific init | ||
| 128 | */ | ||
| 129 | void __init omap_map_common_io(void) | ||
| 130 | { | ||
| 131 | if (!initialized) { | ||
| 132 | _omap_map_io(); | ||
| 133 | omap1_mux_init(); | ||
| 134 | } | ||
| 135 | } | 143 | } |
| 136 | 144 | ||
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index b937123e5c65..eaecbf422d8c 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | 33 | ||
| 34 | static void __init omap_generic_init_irq(void) | 34 | static void __init omap_generic_init_irq(void) |
| 35 | { | 35 | { |
| 36 | omap2_init_common_hw(); | ||
| 36 | omap_init_irq(); | 37 | omap_init_irq(); |
| 37 | } | 38 | } |
| 38 | 39 | ||
| @@ -64,7 +65,7 @@ static void __init omap_generic_init(void) | |||
| 64 | 65 | ||
| 65 | static void __init omap_generic_map_io(void) | 66 | static void __init omap_generic_map_io(void) |
| 66 | { | 67 | { |
| 67 | omap_map_common_io(); | 68 | omap2_map_common_io(); |
| 68 | } | 69 | } |
| 69 | 70 | ||
| 70 | MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx") | 71 | MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx") |
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c index c3c35d40378a..a300d634d8a5 100644 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c | |||
| @@ -136,6 +136,7 @@ static inline void __init h4_init_smc91x(void) | |||
| 136 | 136 | ||
| 137 | static void __init omap_h4_init_irq(void) | 137 | static void __init omap_h4_init_irq(void) |
| 138 | { | 138 | { |
| 139 | omap2_init_common_hw(); | ||
| 139 | omap_init_irq(); | 140 | omap_init_irq(); |
| 140 | omap_gpio_init(); | 141 | omap_gpio_init(); |
| 141 | h4_init_smc91x(); | 142 | h4_init_smc91x(); |
| @@ -181,7 +182,7 @@ static void __init omap_h4_init(void) | |||
| 181 | 182 | ||
| 182 | static void __init omap_h4_map_io(void) | 183 | static void __init omap_h4_map_io(void) |
| 183 | { | 184 | { |
| 184 | omap_map_common_io(); | 185 | omap2_map_common_io(); |
| 185 | } | 186 | } |
| 186 | 187 | ||
| 187 | MACHINE_START(OMAP_H4, "OMAP2420 H4 board") | 188 | MACHINE_START(OMAP_H4, "OMAP2420 H4 board") |
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c index b41b1efaa2cf..3baa70819f24 100644 --- a/arch/arm/mach-pxa/pxa27x.c +++ b/arch/arm/mach-pxa/pxa27x.c | |||
| @@ -44,7 +44,7 @@ unsigned int get_clk_frequency_khz( int info) | |||
| 44 | 44 | ||
| 45 | /* Read clkcfg register: it has turbo, b, half-turbo (and f) */ | 45 | /* Read clkcfg register: it has turbo, b, half-turbo (and f) */ |
| 46 | asm( "mrc\tp14, 0, %0, c6, c0, 0" : "=r" (clkcfg) ); | 46 | asm( "mrc\tp14, 0, %0, c6, c0, 0" : "=r" (clkcfg) ); |
| 47 | t = clkcfg & (1 << 1); | 47 | t = clkcfg & (1 << 0); |
| 48 | ht = clkcfg & (1 << 2); | 48 | ht = clkcfg & (1 << 2); |
| 49 | b = clkcfg & (1 << 3); | 49 | b = clkcfg & (1 << 3); |
| 50 | 50 | ||
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index 4a222f59f2cf..4303d988c4bf 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c | |||
| @@ -182,7 +182,7 @@ static const struct icst307_params realview_oscvco_params = { | |||
| 182 | static void realview_oscvco_set(struct clk *clk, struct icst307_vco vco) | 182 | static void realview_oscvco_set(struct clk *clk, struct icst307_vco vco) |
| 183 | { | 183 | { |
| 184 | void __iomem *sys_lock = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_LOCK_OFFSET; | 184 | void __iomem *sys_lock = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_LOCK_OFFSET; |
| 185 | void __iomem *sys_osc = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_OSC1_OFFSET; | 185 | void __iomem *sys_osc = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_OSC4_OFFSET; |
| 186 | u32 val; | 186 | u32 val; |
| 187 | 187 | ||
| 188 | val = readl(sys_osc) & ~0x7ffff; | 188 | val = readl(sys_osc) & ~0x7ffff; |
diff --git a/arch/arm/mach-s3c2410/Makefile b/arch/arm/mach-s3c2410/Makefile index b4f1e051c768..1217bf00309c 100644 --- a/arch/arm/mach-s3c2410/Makefile +++ b/arch/arm/mach-s3c2410/Makefile | |||
| @@ -10,9 +10,13 @@ obj-m := | |||
| 10 | obj-n := | 10 | obj-n := |
| 11 | obj- := | 11 | obj- := |
| 12 | 12 | ||
| 13 | # S3C2400 support files | ||
| 14 | obj-$(CONFIG_CPU_S3C2400) += s3c2400-gpio.o | ||
| 15 | |||
| 13 | # S3C2410 support files | 16 | # S3C2410 support files |
| 14 | 17 | ||
| 15 | obj-$(CONFIG_CPU_S3C2410) += s3c2410.o | 18 | obj-$(CONFIG_CPU_S3C2410) += s3c2410.o |
| 19 | obj-$(CONFIG_CPU_S3C2410) += s3c2410-gpio.o | ||
| 16 | obj-$(CONFIG_S3C2410_DMA) += dma.o | 20 | obj-$(CONFIG_S3C2410_DMA) += dma.o |
| 17 | 21 | ||
| 18 | # Power Management support | 22 | # Power Management support |
| @@ -25,6 +29,7 @@ obj-$(CONFIG_PM_SIMTEC) += pm-simtec.o | |||
| 25 | obj-$(CONFIG_CPU_S3C2440) += s3c2440.o s3c2440-dsc.o | 29 | obj-$(CONFIG_CPU_S3C2440) += s3c2440.o s3c2440-dsc.o |
| 26 | obj-$(CONFIG_CPU_S3C2440) += s3c2440-irq.o | 30 | obj-$(CONFIG_CPU_S3C2440) += s3c2440-irq.o |
| 27 | obj-$(CONFIG_CPU_S3C2440) += s3c2440-clock.o | 31 | obj-$(CONFIG_CPU_S3C2440) += s3c2440-clock.o |
| 32 | obj-$(CONFIG_CPU_S3C2440) += s3c2410-gpio.o | ||
| 28 | 33 | ||
| 29 | # bast extras | 34 | # bast extras |
| 30 | 35 | ||
diff --git a/arch/arm/mach-s3c2410/clock.c b/arch/arm/mach-s3c2410/clock.c index af2f3d52b61b..08489efdaf06 100644 --- a/arch/arm/mach-s3c2410/clock.c +++ b/arch/arm/mach-s3c2410/clock.c | |||
| @@ -40,7 +40,6 @@ | |||
| 40 | #include <linux/mutex.h> | 40 | #include <linux/mutex.h> |
| 41 | 41 | ||
| 42 | #include <asm/hardware.h> | 42 | #include <asm/hardware.h> |
| 43 | #include <asm/atomic.h> | ||
| 44 | #include <asm/irq.h> | 43 | #include <asm/irq.h> |
| 45 | #include <asm/io.h> | 44 | #include <asm/io.h> |
| 46 | 45 | ||
| @@ -59,22 +58,18 @@ static DEFINE_MUTEX(clocks_mutex); | |||
| 59 | void inline s3c24xx_clk_enable(unsigned int clocks, unsigned int enable) | 58 | void inline s3c24xx_clk_enable(unsigned int clocks, unsigned int enable) |
| 60 | { | 59 | { |
| 61 | unsigned long clkcon; | 60 | unsigned long clkcon; |
| 62 | unsigned long flags; | ||
| 63 | |||
| 64 | local_irq_save(flags); | ||
| 65 | 61 | ||
| 66 | clkcon = __raw_readl(S3C2410_CLKCON); | 62 | clkcon = __raw_readl(S3C2410_CLKCON); |
| 67 | clkcon &= ~clocks; | ||
| 68 | 63 | ||
| 69 | if (enable) | 64 | if (enable) |
| 70 | clkcon |= clocks; | 65 | clkcon |= clocks; |
| 66 | else | ||
| 67 | clkcon &= ~clocks; | ||
| 71 | 68 | ||
| 72 | /* ensure none of the special function bits set */ | 69 | /* ensure none of the special function bits set */ |
| 73 | clkcon &= ~(S3C2410_CLKCON_IDLE|S3C2410_CLKCON_POWER); | 70 | clkcon &= ~(S3C2410_CLKCON_IDLE|S3C2410_CLKCON_POWER); |
| 74 | 71 | ||
| 75 | __raw_writel(clkcon, S3C2410_CLKCON); | 72 | __raw_writel(clkcon, S3C2410_CLKCON); |
| 76 | |||
| 77 | local_irq_restore(flags); | ||
| 78 | } | 73 | } |
| 79 | 74 | ||
| 80 | /* enable and disable calls for use with the clk struct */ | 75 | /* enable and disable calls for use with the clk struct */ |
| @@ -138,16 +133,32 @@ void clk_put(struct clk *clk) | |||
| 138 | 133 | ||
| 139 | int clk_enable(struct clk *clk) | 134 | int clk_enable(struct clk *clk) |
| 140 | { | 135 | { |
| 141 | if (IS_ERR(clk)) | 136 | if (IS_ERR(clk) || clk == NULL) |
| 142 | return -EINVAL; | 137 | return -EINVAL; |
| 143 | 138 | ||
| 144 | return (clk->enable)(clk, 1); | 139 | clk_enable(clk->parent); |
| 140 | |||
| 141 | mutex_lock(&clocks_mutex); | ||
| 142 | |||
| 143 | if ((clk->usage++) == 0) | ||
| 144 | (clk->enable)(clk, 1); | ||
| 145 | |||
| 146 | mutex_unlock(&clocks_mutex); | ||
| 147 | return 0; | ||
| 145 | } | 148 | } |
| 146 | 149 | ||
| 147 | void clk_disable(struct clk *clk) | 150 | void clk_disable(struct clk *clk) |
| 148 | { | 151 | { |
| 149 | if (!IS_ERR(clk)) | 152 | if (IS_ERR(clk) || clk == NULL) |
| 153 | return; | ||
| 154 | |||
| 155 | mutex_lock(&clocks_mutex); | ||
| 156 | |||
| 157 | if ((--clk->usage) == 0) | ||
| 150 | (clk->enable)(clk, 0); | 158 | (clk->enable)(clk, 0); |
| 159 | |||
| 160 | mutex_unlock(&clocks_mutex); | ||
| 161 | clk_disable(clk->parent); | ||
| 151 | } | 162 | } |
| 152 | 163 | ||
| 153 | 164 | ||
| @@ -361,6 +372,14 @@ int s3c24xx_register_clock(struct clk *clk) | |||
| 361 | if (clk->enable == NULL) | 372 | if (clk->enable == NULL) |
| 362 | clk->enable = clk_null_enable; | 373 | clk->enable = clk_null_enable; |
| 363 | 374 | ||
| 375 | /* if this is a standard clock, set the usage state */ | ||
| 376 | |||
| 377 | if (clk->ctrlbit) { | ||
| 378 | unsigned long clkcon = __raw_readl(S3C2410_CLKCON); | ||
| 379 | |||
| 380 | clk->usage = (clkcon & clk->ctrlbit) ? 1 : 0; | ||
| 381 | } | ||
| 382 | |||
| 364 | /* add to the list of available clocks */ | 383 | /* add to the list of available clocks */ |
| 365 | 384 | ||
| 366 | mutex_lock(&clocks_mutex); | 385 | mutex_lock(&clocks_mutex); |
| @@ -402,6 +421,8 @@ int __init s3c24xx_setup_clocks(unsigned long xtal, | |||
| 402 | * the LCD clock if it is not needed. | 421 | * the LCD clock if it is not needed. |
| 403 | */ | 422 | */ |
| 404 | 423 | ||
| 424 | mutex_lock(&clocks_mutex); | ||
| 425 | |||
| 405 | s3c24xx_clk_enable(S3C2410_CLKCON_NAND, 0); | 426 | s3c24xx_clk_enable(S3C2410_CLKCON_NAND, 0); |
| 406 | s3c24xx_clk_enable(S3C2410_CLKCON_USBH, 0); | 427 | s3c24xx_clk_enable(S3C2410_CLKCON_USBH, 0); |
| 407 | s3c24xx_clk_enable(S3C2410_CLKCON_USBD, 0); | 428 | s3c24xx_clk_enable(S3C2410_CLKCON_USBD, 0); |
| @@ -409,6 +430,8 @@ int __init s3c24xx_setup_clocks(unsigned long xtal, | |||
| 409 | s3c24xx_clk_enable(S3C2410_CLKCON_IIC, 0); | 430 | s3c24xx_clk_enable(S3C2410_CLKCON_IIC, 0); |
| 410 | s3c24xx_clk_enable(S3C2410_CLKCON_SPI, 0); | 431 | s3c24xx_clk_enable(S3C2410_CLKCON_SPI, 0); |
| 411 | 432 | ||
| 433 | mutex_unlock(&clocks_mutex); | ||
| 434 | |||
| 412 | /* assume uart clocks are correctly setup */ | 435 | /* assume uart clocks are correctly setup */ |
| 413 | 436 | ||
| 414 | /* register our clocks */ | 437 | /* register our clocks */ |
diff --git a/arch/arm/mach-s3c2410/clock.h b/arch/arm/mach-s3c2410/clock.h index 177d5c8decf7..eb5c95d1e7f2 100644 --- a/arch/arm/mach-s3c2410/clock.h +++ b/arch/arm/mach-s3c2410/clock.h | |||
| @@ -16,6 +16,7 @@ struct clk { | |||
| 16 | struct clk *parent; | 16 | struct clk *parent; |
| 17 | const char *name; | 17 | const char *name; |
| 18 | int id; | 18 | int id; |
| 19 | int usage; | ||
| 19 | unsigned long rate; | 20 | unsigned long rate; |
| 20 | unsigned long ctrlbit; | 21 | unsigned long ctrlbit; |
| 21 | int (*enable)(struct clk *, int enable); | 22 | int (*enable)(struct clk *, int enable); |
diff --git a/arch/arm/mach-s3c2410/cpu.c b/arch/arm/mach-s3c2410/cpu.c index 687fe371369d..00a379334b60 100644 --- a/arch/arm/mach-s3c2410/cpu.c +++ b/arch/arm/mach-s3c2410/cpu.c | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | 40 | ||
| 41 | #include "cpu.h" | 41 | #include "cpu.h" |
| 42 | #include "clock.h" | 42 | #include "clock.h" |
| 43 | #include "s3c2400.h" | ||
| 43 | #include "s3c2410.h" | 44 | #include "s3c2410.h" |
| 44 | #include "s3c2440.h" | 45 | #include "s3c2440.h" |
| 45 | 46 | ||
| @@ -55,6 +56,7 @@ struct cpu_table { | |||
| 55 | 56 | ||
| 56 | /* table of supported CPUs */ | 57 | /* table of supported CPUs */ |
| 57 | 58 | ||
| 59 | static const char name_s3c2400[] = "S3C2400"; | ||
| 58 | static const char name_s3c2410[] = "S3C2410"; | 60 | static const char name_s3c2410[] = "S3C2410"; |
| 59 | static const char name_s3c2440[] = "S3C2440"; | 61 | static const char name_s3c2440[] = "S3C2440"; |
| 60 | static const char name_s3c2410a[] = "S3C2410A"; | 62 | static const char name_s3c2410a[] = "S3C2410A"; |
| @@ -96,7 +98,16 @@ static struct cpu_table cpu_ids[] __initdata = { | |||
| 96 | .init_uarts = s3c2440_init_uarts, | 98 | .init_uarts = s3c2440_init_uarts, |
| 97 | .init = s3c2440_init, | 99 | .init = s3c2440_init, |
| 98 | .name = name_s3c2440a | 100 | .name = name_s3c2440a |
| 99 | } | 101 | }, |
| 102 | { | ||
| 103 | .idcode = 0x0, /* S3C2400 doesn't have an idcode */ | ||
| 104 | .idmask = 0xffffffff, | ||
| 105 | .map_io = s3c2400_map_io, | ||
| 106 | .init_clocks = s3c2400_init_clocks, | ||
| 107 | .init_uarts = s3c2400_init_uarts, | ||
| 108 | .init = s3c2400_init, | ||
| 109 | .name = name_s3c2400 | ||
| 110 | }, | ||
| 100 | }; | 111 | }; |
| 101 | 112 | ||
| 102 | /* minimal IO mapping */ | 113 | /* minimal IO mapping */ |
| @@ -148,12 +159,15 @@ static struct cpu_table *cpu; | |||
| 148 | 159 | ||
| 149 | void __init s3c24xx_init_io(struct map_desc *mach_desc, int size) | 160 | void __init s3c24xx_init_io(struct map_desc *mach_desc, int size) |
| 150 | { | 161 | { |
| 151 | unsigned long idcode; | 162 | unsigned long idcode = 0x0; |
| 152 | 163 | ||
| 153 | /* initialise the io descriptors we need for initialisation */ | 164 | /* initialise the io descriptors we need for initialisation */ |
| 154 | iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc)); | 165 | iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc)); |
| 155 | 166 | ||
| 167 | #ifndef CONFIG_CPU_S3C2400 | ||
| 156 | idcode = __raw_readl(S3C2410_GSTATUS1); | 168 | idcode = __raw_readl(S3C2410_GSTATUS1); |
| 169 | #endif | ||
| 170 | |||
| 157 | cpu = s3c_lookup_cpu(idcode); | 171 | cpu = s3c_lookup_cpu(idcode); |
| 158 | 172 | ||
| 159 | if (cpu == NULL) { | 173 | if (cpu == NULL) { |
diff --git a/arch/arm/mach-s3c2410/cpu.h b/arch/arm/mach-s3c2410/cpu.h index 9cbe5eef492b..fc1067783f6d 100644 --- a/arch/arm/mach-s3c2410/cpu.h +++ b/arch/arm/mach-s3c2410/cpu.h | |||
| @@ -17,11 +17,12 @@ | |||
| 17 | * 14-Jan-2005 BJD Added s3c24xx_init_clocks() call | 17 | * 14-Jan-2005 BJD Added s3c24xx_init_clocks() call |
| 18 | * 10-Mar-2005 LCVR Changed S3C2410_{VA,SZ} to S3C24XX_{VA,SZ} & IODESC_ENT | 18 | * 10-Mar-2005 LCVR Changed S3C2410_{VA,SZ} to S3C24XX_{VA,SZ} & IODESC_ENT |
| 19 | * 14-Mar-2005 BJD Updated for __iomem | 19 | * 14-Mar-2005 BJD Updated for __iomem |
| 20 | * 15-Jan-2006 LCVR Updated S3C2410_PA_##x to new S3C24XX_PA_##x macro | ||
| 20 | */ | 21 | */ |
| 21 | 22 | ||
| 22 | /* todo - fix when rmk changes iodescs to use `void __iomem *` */ | 23 | /* todo - fix when rmk changes iodescs to use `void __iomem *` */ |
| 23 | 24 | ||
| 24 | #define IODESC_ENT(x) { (unsigned long)S3C24XX_VA_##x, __phys_to_pfn(S3C2410_PA_##x), S3C24XX_SZ_##x, MT_DEVICE } | 25 | #define IODESC_ENT(x) { (unsigned long)S3C24XX_VA_##x, __phys_to_pfn(S3C24XX_PA_##x), S3C24XX_SZ_##x, MT_DEVICE } |
| 25 | 26 | ||
| 26 | #ifndef MHZ | 27 | #ifndef MHZ |
| 27 | #define MHZ (1000*1000) | 28 | #define MHZ (1000*1000) |
diff --git a/arch/arm/mach-s3c2410/devs.c b/arch/arm/mach-s3c2410/devs.c index f58406e6ef5a..0a47d38789a5 100644 --- a/arch/arm/mach-s3c2410/devs.c +++ b/arch/arm/mach-s3c2410/devs.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
| 11 | * | 11 | * |
| 12 | * Modifications: | 12 | * Modifications: |
| 13 | * 15-Jan-2006 LCVR Using S3C24XX_PA_##x macro for common S3C24XX devices | ||
| 13 | * 10-Mar-2005 LCVR Changed S3C2410_{VA,SZ} to S3C24XX_{VA,SZ} | 14 | * 10-Mar-2005 LCVR Changed S3C2410_{VA,SZ} to S3C24XX_{VA,SZ} |
| 14 | * 10-Feb-2005 BJD Added camera from guillaume.gourat@nexvision.tv | 15 | * 10-Feb-2005 BJD Added camera from guillaume.gourat@nexvision.tv |
| 15 | * 29-Aug-2004 BJD Added timers 0 through 3 | 16 | * 29-Aug-2004 BJD Added timers 0 through 3 |
| @@ -46,8 +47,8 @@ struct platform_device *s3c24xx_uart_devs[3]; | |||
| 46 | 47 | ||
| 47 | static struct resource s3c_usb_resource[] = { | 48 | static struct resource s3c_usb_resource[] = { |
| 48 | [0] = { | 49 | [0] = { |
| 49 | .start = S3C2410_PA_USBHOST, | 50 | .start = S3C24XX_PA_USBHOST, |
| 50 | .end = S3C2410_PA_USBHOST + S3C24XX_SZ_USBHOST - 1, | 51 | .end = S3C24XX_PA_USBHOST + S3C24XX_SZ_USBHOST - 1, |
| 51 | .flags = IORESOURCE_MEM, | 52 | .flags = IORESOURCE_MEM, |
| 52 | }, | 53 | }, |
| 53 | [1] = { | 54 | [1] = { |
| @@ -76,8 +77,8 @@ EXPORT_SYMBOL(s3c_device_usb); | |||
| 76 | 77 | ||
| 77 | static struct resource s3c_lcd_resource[] = { | 78 | static struct resource s3c_lcd_resource[] = { |
| 78 | [0] = { | 79 | [0] = { |
| 79 | .start = S3C2410_PA_LCD, | 80 | .start = S3C24XX_PA_LCD, |
| 80 | .end = S3C2410_PA_LCD + S3C24XX_SZ_LCD - 1, | 81 | .end = S3C24XX_PA_LCD + S3C24XX_SZ_LCD - 1, |
| 81 | .flags = IORESOURCE_MEM, | 82 | .flags = IORESOURCE_MEM, |
| 82 | }, | 83 | }, |
| 83 | [1] = { | 84 | [1] = { |
| @@ -139,8 +140,8 @@ EXPORT_SYMBOL(s3c_device_nand); | |||
| 139 | 140 | ||
| 140 | static struct resource s3c_usbgadget_resource[] = { | 141 | static struct resource s3c_usbgadget_resource[] = { |
| 141 | [0] = { | 142 | [0] = { |
| 142 | .start = S3C2410_PA_USBDEV, | 143 | .start = S3C24XX_PA_USBDEV, |
| 143 | .end = S3C2410_PA_USBDEV + S3C24XX_SZ_USBDEV - 1, | 144 | .end = S3C24XX_PA_USBDEV + S3C24XX_SZ_USBDEV - 1, |
| 144 | .flags = IORESOURCE_MEM, | 145 | .flags = IORESOURCE_MEM, |
| 145 | }, | 146 | }, |
| 146 | [1] = { | 147 | [1] = { |
| @@ -164,8 +165,8 @@ EXPORT_SYMBOL(s3c_device_usbgadget); | |||
| 164 | 165 | ||
| 165 | static struct resource s3c_wdt_resource[] = { | 166 | static struct resource s3c_wdt_resource[] = { |
| 166 | [0] = { | 167 | [0] = { |
| 167 | .start = S3C2410_PA_WATCHDOG, | 168 | .start = S3C24XX_PA_WATCHDOG, |
| 168 | .end = S3C2410_PA_WATCHDOG + S3C24XX_SZ_WATCHDOG - 1, | 169 | .end = S3C24XX_PA_WATCHDOG + S3C24XX_SZ_WATCHDOG - 1, |
| 169 | .flags = IORESOURCE_MEM, | 170 | .flags = IORESOURCE_MEM, |
| 170 | }, | 171 | }, |
| 171 | [1] = { | 172 | [1] = { |
| @@ -189,8 +190,8 @@ EXPORT_SYMBOL(s3c_device_wdt); | |||
| 189 | 190 | ||
| 190 | static struct resource s3c_i2c_resource[] = { | 191 | static struct resource s3c_i2c_resource[] = { |
| 191 | [0] = { | 192 | [0] = { |
| 192 | .start = S3C2410_PA_IIC, | 193 | .start = S3C24XX_PA_IIC, |
| 193 | .end = S3C2410_PA_IIC + S3C24XX_SZ_IIC - 1, | 194 | .end = S3C24XX_PA_IIC + S3C24XX_SZ_IIC - 1, |
| 194 | .flags = IORESOURCE_MEM, | 195 | .flags = IORESOURCE_MEM, |
| 195 | }, | 196 | }, |
| 196 | [1] = { | 197 | [1] = { |
| @@ -214,8 +215,8 @@ EXPORT_SYMBOL(s3c_device_i2c); | |||
| 214 | 215 | ||
| 215 | static struct resource s3c_iis_resource[] = { | 216 | static struct resource s3c_iis_resource[] = { |
| 216 | [0] = { | 217 | [0] = { |
| 217 | .start = S3C2410_PA_IIS, | 218 | .start = S3C24XX_PA_IIS, |
| 218 | .end = S3C2410_PA_IIS + S3C24XX_SZ_IIS -1, | 219 | .end = S3C24XX_PA_IIS + S3C24XX_SZ_IIS -1, |
| 219 | .flags = IORESOURCE_MEM, | 220 | .flags = IORESOURCE_MEM, |
| 220 | } | 221 | } |
| 221 | }; | 222 | }; |
| @@ -239,8 +240,8 @@ EXPORT_SYMBOL(s3c_device_iis); | |||
| 239 | 240 | ||
| 240 | static struct resource s3c_rtc_resource[] = { | 241 | static struct resource s3c_rtc_resource[] = { |
| 241 | [0] = { | 242 | [0] = { |
| 242 | .start = S3C2410_PA_RTC, | 243 | .start = S3C24XX_PA_RTC, |
| 243 | .end = S3C2410_PA_RTC + 0xff, | 244 | .end = S3C24XX_PA_RTC + 0xff, |
| 244 | .flags = IORESOURCE_MEM, | 245 | .flags = IORESOURCE_MEM, |
| 245 | }, | 246 | }, |
| 246 | [1] = { | 247 | [1] = { |
| @@ -268,12 +269,17 @@ EXPORT_SYMBOL(s3c_device_rtc); | |||
| 268 | 269 | ||
| 269 | static struct resource s3c_adc_resource[] = { | 270 | static struct resource s3c_adc_resource[] = { |
| 270 | [0] = { | 271 | [0] = { |
| 271 | .start = S3C2410_PA_ADC, | 272 | .start = S3C24XX_PA_ADC, |
| 272 | .end = S3C2410_PA_ADC + S3C24XX_SZ_ADC - 1, | 273 | .end = S3C24XX_PA_ADC + S3C24XX_SZ_ADC - 1, |
| 273 | .flags = IORESOURCE_MEM, | 274 | .flags = IORESOURCE_MEM, |
| 274 | }, | 275 | }, |
| 275 | [1] = { | 276 | [1] = { |
| 276 | .start = IRQ_TC, | 277 | .start = IRQ_TC, |
| 278 | .end = IRQ_TC, | ||
| 279 | .flags = IORESOURCE_IRQ, | ||
| 280 | }, | ||
| 281 | [2] = { | ||
| 282 | .start = IRQ_ADC, | ||
| 277 | .end = IRQ_ADC, | 283 | .end = IRQ_ADC, |
| 278 | .flags = IORESOURCE_IRQ, | 284 | .flags = IORESOURCE_IRQ, |
| 279 | } | 285 | } |
| @@ -316,8 +322,8 @@ EXPORT_SYMBOL(s3c_device_sdi); | |||
| 316 | 322 | ||
| 317 | static struct resource s3c_spi0_resource[] = { | 323 | static struct resource s3c_spi0_resource[] = { |
| 318 | [0] = { | 324 | [0] = { |
| 319 | .start = S3C2410_PA_SPI, | 325 | .start = S3C24XX_PA_SPI, |
| 320 | .end = S3C2410_PA_SPI + 0x1f, | 326 | .end = S3C24XX_PA_SPI + 0x1f, |
| 321 | .flags = IORESOURCE_MEM, | 327 | .flags = IORESOURCE_MEM, |
| 322 | }, | 328 | }, |
| 323 | [1] = { | 329 | [1] = { |
| @@ -341,8 +347,8 @@ EXPORT_SYMBOL(s3c_device_spi0); | |||
| 341 | 347 | ||
| 342 | static struct resource s3c_spi1_resource[] = { | 348 | static struct resource s3c_spi1_resource[] = { |
| 343 | [0] = { | 349 | [0] = { |
| 344 | .start = S3C2410_PA_SPI + 0x20, | 350 | .start = S3C24XX_PA_SPI + 0x20, |
| 345 | .end = S3C2410_PA_SPI + 0x20 + 0x1f, | 351 | .end = S3C24XX_PA_SPI + 0x20 + 0x1f, |
| 346 | .flags = IORESOURCE_MEM, | 352 | .flags = IORESOURCE_MEM, |
| 347 | }, | 353 | }, |
| 348 | [1] = { | 354 | [1] = { |
| @@ -366,8 +372,8 @@ EXPORT_SYMBOL(s3c_device_spi1); | |||
| 366 | 372 | ||
| 367 | static struct resource s3c_timer0_resource[] = { | 373 | static struct resource s3c_timer0_resource[] = { |
| 368 | [0] = { | 374 | [0] = { |
| 369 | .start = S3C2410_PA_TIMER + 0x0C, | 375 | .start = S3C24XX_PA_TIMER + 0x0C, |
| 370 | .end = S3C2410_PA_TIMER + 0x0C + 0xB, | 376 | .end = S3C24XX_PA_TIMER + 0x0C + 0xB, |
| 371 | .flags = IORESOURCE_MEM, | 377 | .flags = IORESOURCE_MEM, |
| 372 | }, | 378 | }, |
| 373 | [1] = { | 379 | [1] = { |
| @@ -391,8 +397,8 @@ EXPORT_SYMBOL(s3c_device_timer0); | |||
| 391 | 397 | ||
| 392 | static struct resource s3c_timer1_resource[] = { | 398 | static struct resource s3c_timer1_resource[] = { |
| 393 | [0] = { | 399 | [0] = { |
| 394 | .start = S3C2410_PA_TIMER + 0x18, | 400 | .start = S3C24XX_PA_TIMER + 0x18, |
| 395 | .end = S3C2410_PA_TIMER + 0x23, | 401 | .end = S3C24XX_PA_TIMER + 0x23, |
| 396 | .flags = IORESOURCE_MEM, | 402 | .flags = IORESOURCE_MEM, |
| 397 | }, | 403 | }, |
| 398 | [1] = { | 404 | [1] = { |
| @@ -416,8 +422,8 @@ EXPORT_SYMBOL(s3c_device_timer1); | |||
| 416 | 422 | ||
| 417 | static struct resource s3c_timer2_resource[] = { | 423 | static struct resource s3c_timer2_resource[] = { |
| 418 | [0] = { | 424 | [0] = { |
| 419 | .start = S3C2410_PA_TIMER + 0x24, | 425 | .start = S3C24XX_PA_TIMER + 0x24, |
| 420 | .end = S3C2410_PA_TIMER + 0x2F, | 426 | .end = S3C24XX_PA_TIMER + 0x2F, |
| 421 | .flags = IORESOURCE_MEM, | 427 | .flags = IORESOURCE_MEM, |
| 422 | }, | 428 | }, |
| 423 | [1] = { | 429 | [1] = { |
| @@ -441,8 +447,8 @@ EXPORT_SYMBOL(s3c_device_timer2); | |||
| 441 | 447 | ||
| 442 | static struct resource s3c_timer3_resource[] = { | 448 | static struct resource s3c_timer3_resource[] = { |
| 443 | [0] = { | 449 | [0] = { |
| 444 | .start = S3C2410_PA_TIMER + 0x30, | 450 | .start = S3C24XX_PA_TIMER + 0x30, |
| 445 | .end = S3C2410_PA_TIMER + 0x3B, | 451 | .end = S3C24XX_PA_TIMER + 0x3B, |
| 446 | .flags = IORESOURCE_MEM, | 452 | .flags = IORESOURCE_MEM, |
| 447 | }, | 453 | }, |
| 448 | [1] = { | 454 | [1] = { |
diff --git a/arch/arm/mach-s3c2410/dma.c b/arch/arm/mach-s3c2410/dma.c index 65feaf20d23e..4dbd8e758ea6 100644 --- a/arch/arm/mach-s3c2410/dma.c +++ b/arch/arm/mach-s3c2410/dma.c | |||
| @@ -1152,7 +1152,7 @@ static int __init s3c2410_init_dma(void) | |||
| 1152 | 1152 | ||
| 1153 | printk("S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics\n"); | 1153 | printk("S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics\n"); |
| 1154 | 1154 | ||
| 1155 | dma_base = ioremap(S3C2410_PA_DMA, 0x200); | 1155 | dma_base = ioremap(S3C24XX_PA_DMA, 0x200); |
| 1156 | if (dma_base == NULL) { | 1156 | if (dma_base == NULL) { |
| 1157 | printk(KERN_ERR "dma failed to remap register block\n"); | 1157 | printk(KERN_ERR "dma failed to remap register block\n"); |
| 1158 | return -ENOMEM; | 1158 | return -ENOMEM; |
diff --git a/arch/arm/mach-s3c2410/gpio.c b/arch/arm/mach-s3c2410/gpio.c index 23ea3d5fa09c..cd39e8684584 100644 --- a/arch/arm/mach-s3c2410/gpio.c +++ b/arch/arm/mach-s3c2410/gpio.c | |||
| @@ -31,6 +31,7 @@ | |||
| 31 | * 05-Nov-2004 BJD EXPORT_SYMBOL() added for all code | 31 | * 05-Nov-2004 BJD EXPORT_SYMBOL() added for all code |
| 32 | * 13-Mar-2005 BJD Updates for __iomem | 32 | * 13-Mar-2005 BJD Updates for __iomem |
| 33 | * 26-Oct-2005 BJD Added generic configuration types | 33 | * 26-Oct-2005 BJD Added generic configuration types |
| 34 | * 15-Jan-2006 LCVR Added support for the S3C2400 | ||
| 34 | */ | 35 | */ |
| 35 | 36 | ||
| 36 | 37 | ||
| @@ -48,7 +49,7 @@ | |||
| 48 | 49 | ||
| 49 | void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function) | 50 | void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function) |
| 50 | { | 51 | { |
| 51 | void __iomem *base = S3C2410_GPIO_BASE(pin); | 52 | void __iomem *base = S3C24XX_GPIO_BASE(pin); |
| 52 | unsigned long mask; | 53 | unsigned long mask; |
| 53 | unsigned long con; | 54 | unsigned long con; |
| 54 | unsigned long flags; | 55 | unsigned long flags; |
| @@ -95,7 +96,7 @@ EXPORT_SYMBOL(s3c2410_gpio_cfgpin); | |||
| 95 | 96 | ||
| 96 | unsigned int s3c2410_gpio_getcfg(unsigned int pin) | 97 | unsigned int s3c2410_gpio_getcfg(unsigned int pin) |
| 97 | { | 98 | { |
| 98 | void __iomem *base = S3C2410_GPIO_BASE(pin); | 99 | void __iomem *base = S3C24XX_GPIO_BASE(pin); |
| 99 | unsigned long mask; | 100 | unsigned long mask; |
| 100 | 101 | ||
| 101 | if (pin < S3C2410_GPIO_BANKB) { | 102 | if (pin < S3C2410_GPIO_BANKB) { |
| @@ -111,7 +112,7 @@ EXPORT_SYMBOL(s3c2410_gpio_getcfg); | |||
| 111 | 112 | ||
| 112 | void s3c2410_gpio_pullup(unsigned int pin, unsigned int to) | 113 | void s3c2410_gpio_pullup(unsigned int pin, unsigned int to) |
| 113 | { | 114 | { |
| 114 | void __iomem *base = S3C2410_GPIO_BASE(pin); | 115 | void __iomem *base = S3C24XX_GPIO_BASE(pin); |
| 115 | unsigned long offs = S3C2410_GPIO_OFFSET(pin); | 116 | unsigned long offs = S3C2410_GPIO_OFFSET(pin); |
| 116 | unsigned long flags; | 117 | unsigned long flags; |
| 117 | unsigned long up; | 118 | unsigned long up; |
| @@ -133,7 +134,7 @@ EXPORT_SYMBOL(s3c2410_gpio_pullup); | |||
| 133 | 134 | ||
| 134 | void s3c2410_gpio_setpin(unsigned int pin, unsigned int to) | 135 | void s3c2410_gpio_setpin(unsigned int pin, unsigned int to) |
| 135 | { | 136 | { |
| 136 | void __iomem *base = S3C2410_GPIO_BASE(pin); | 137 | void __iomem *base = S3C24XX_GPIO_BASE(pin); |
| 137 | unsigned long offs = S3C2410_GPIO_OFFSET(pin); | 138 | unsigned long offs = S3C2410_GPIO_OFFSET(pin); |
| 138 | unsigned long flags; | 139 | unsigned long flags; |
| 139 | unsigned long dat; | 140 | unsigned long dat; |
| @@ -152,7 +153,7 @@ EXPORT_SYMBOL(s3c2410_gpio_setpin); | |||
| 152 | 153 | ||
| 153 | unsigned int s3c2410_gpio_getpin(unsigned int pin) | 154 | unsigned int s3c2410_gpio_getpin(unsigned int pin) |
| 154 | { | 155 | { |
| 155 | void __iomem *base = S3C2410_GPIO_BASE(pin); | 156 | void __iomem *base = S3C24XX_GPIO_BASE(pin); |
| 156 | unsigned long offs = S3C2410_GPIO_OFFSET(pin); | 157 | unsigned long offs = S3C2410_GPIO_OFFSET(pin); |
| 157 | 158 | ||
| 158 | return __raw_readl(base + 0x04) & (1<< offs); | 159 | return __raw_readl(base + 0x04) & (1<< offs); |
| @@ -166,70 +167,13 @@ unsigned int s3c2410_modify_misccr(unsigned int clear, unsigned int change) | |||
| 166 | unsigned long misccr; | 167 | unsigned long misccr; |
| 167 | 168 | ||
| 168 | local_irq_save(flags); | 169 | local_irq_save(flags); |
| 169 | misccr = __raw_readl(S3C2410_MISCCR); | 170 | misccr = __raw_readl(S3C24XX_MISCCR); |
| 170 | misccr &= ~clear; | 171 | misccr &= ~clear; |
| 171 | misccr ^= change; | 172 | misccr ^= change; |
| 172 | __raw_writel(misccr, S3C2410_MISCCR); | 173 | __raw_writel(misccr, S3C24XX_MISCCR); |
| 173 | local_irq_restore(flags); | 174 | local_irq_restore(flags); |
| 174 | 175 | ||
| 175 | return misccr; | 176 | return misccr; |
| 176 | } | 177 | } |
| 177 | 178 | ||
| 178 | EXPORT_SYMBOL(s3c2410_modify_misccr); | 179 | EXPORT_SYMBOL(s3c2410_modify_misccr); |
| 179 | |||
| 180 | int s3c2410_gpio_getirq(unsigned int pin) | ||
| 181 | { | ||
| 182 | if (pin < S3C2410_GPF0 || pin > S3C2410_GPG15_EINT23) | ||
| 183 | return -1; /* not valid interrupts */ | ||
| 184 | |||
| 185 | if (pin < S3C2410_GPG0 && pin > S3C2410_GPF7) | ||
| 186 | return -1; /* not valid pin */ | ||
| 187 | |||
| 188 | if (pin < S3C2410_GPF4) | ||
| 189 | return (pin - S3C2410_GPF0) + IRQ_EINT0; | ||
| 190 | |||
| 191 | if (pin < S3C2410_GPG0) | ||
| 192 | return (pin - S3C2410_GPF4) + IRQ_EINT4; | ||
| 193 | |||
| 194 | return (pin - S3C2410_GPG0) + IRQ_EINT8; | ||
| 195 | } | ||
| 196 | |||
| 197 | EXPORT_SYMBOL(s3c2410_gpio_getirq); | ||
| 198 | |||
| 199 | int s3c2410_gpio_irqfilter(unsigned int pin, unsigned int on, | ||
| 200 | unsigned int config) | ||
| 201 | { | ||
| 202 | void __iomem *reg = S3C2410_EINFLT0; | ||
| 203 | unsigned long flags; | ||
| 204 | unsigned long val; | ||
| 205 | |||
| 206 | if (pin < S3C2410_GPG8 || pin > S3C2410_GPG15) | ||
| 207 | return -1; | ||
| 208 | |||
| 209 | config &= 0xff; | ||
| 210 | |||
| 211 | pin -= S3C2410_GPG8_EINT16; | ||
| 212 | reg += pin & ~3; | ||
| 213 | |||
| 214 | local_irq_save(flags); | ||
| 215 | |||
| 216 | /* update filter width and clock source */ | ||
| 217 | |||
| 218 | val = __raw_readl(reg); | ||
| 219 | val &= ~(0xff << ((pin & 3) * 8)); | ||
| 220 | val |= config << ((pin & 3) * 8); | ||
| 221 | __raw_writel(val, reg); | ||
| 222 | |||
| 223 | /* update filter enable */ | ||
| 224 | |||
| 225 | val = __raw_readl(S3C2410_EXTINT2); | ||
| 226 | val &= ~(1 << ((pin * 4) + 3)); | ||
| 227 | val |= on << ((pin * 4) + 3); | ||
| 228 | __raw_writel(val, S3C2410_EXTINT2); | ||
| 229 | |||
| 230 | local_irq_restore(flags); | ||
| 231 | |||
| 232 | return 0; | ||
| 233 | } | ||
| 234 | |||
| 235 | EXPORT_SYMBOL(s3c2410_gpio_irqfilter); | ||
diff --git a/arch/arm/mach-s3c2410/s3c2400-gpio.c b/arch/arm/mach-s3c2410/s3c2400-gpio.c new file mode 100644 index 000000000000..5127f39fa9bf --- /dev/null +++ b/arch/arm/mach-s3c2410/s3c2400-gpio.c | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | /* linux/arch/arm/mach-s3c2410/gpio.c | ||
| 2 | * | ||
| 3 | * Copyright (c) 2006 Lucas Correia Villa Real <lucasvr@gobolinux.org> | ||
| 4 | * | ||
| 5 | * S3C2400 GPIO support | ||
| 6 | * | ||
| 7 | * This program is free software; you can redistribute it and/or modify | ||
| 8 | * it under the terms of the GNU General Public License as published by | ||
| 9 | * the Free Software Foundation; either version 2 of the License, or | ||
| 10 | * (at your option) any later version. | ||
| 11 | * | ||
| 12 | * This program is distributed in the hope that it will be useful, | ||
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | * GNU General Public License for more details. | ||
| 16 | * | ||
| 17 | * You should have received a copy of the GNU General Public License | ||
| 18 | * along with this program; if not, write to the Free Software | ||
| 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
| 20 | * | ||
| 21 | * Changelog | ||
| 22 | * 15-Jan-2006 LCVR Splitted from gpio.c, adding support for the S3C2400 | ||
| 23 | */ | ||
| 24 | |||
| 25 | #include <linux/kernel.h> | ||
| 26 | #include <linux/init.h> | ||
| 27 | #include <linux/module.h> | ||
| 28 | #include <linux/interrupt.h> | ||
| 29 | #include <linux/ioport.h> | ||
| 30 | |||
| 31 | #include <asm/hardware.h> | ||
| 32 | #include <asm/irq.h> | ||
| 33 | #include <asm/io.h> | ||
| 34 | |||
| 35 | #include <asm/arch/regs-gpio.h> | ||
| 36 | |||
| 37 | int s3c2400_gpio_getirq(unsigned int pin) | ||
| 38 | { | ||
| 39 | if (pin < S3C2410_GPE0 || pin > S3C2400_GPE7_EINT7) | ||
| 40 | return -1; /* not valid interrupts */ | ||
| 41 | |||
| 42 | return (pin - S3C2410_GPE0) + IRQ_EINT0; | ||
| 43 | } | ||
| 44 | |||
| 45 | EXPORT_SYMBOL(s3c2400_gpio_getirq); | ||
diff --git a/arch/arm/mach-s3c2410/s3c2410-gpio.c b/arch/arm/mach-s3c2410/s3c2410-gpio.c new file mode 100644 index 000000000000..d5e1caea1d23 --- /dev/null +++ b/arch/arm/mach-s3c2410/s3c2410-gpio.c | |||
| @@ -0,0 +1,93 @@ | |||
| 1 | /* linux/arch/arm/mach-s3c2410/gpio.c | ||
| 2 | * | ||
| 3 | * Copyright (c) 2004-2006 Simtec Electronics | ||
| 4 | * Ben Dooks <ben@simtec.co.uk> | ||
| 5 | * | ||
| 6 | * S3C2410 GPIO support | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License as published by | ||
| 10 | * the Free Software Foundation; either version 2 of the License, or | ||
| 11 | * (at your option) any later version. | ||
| 12 | * | ||
| 13 | * This program is distributed in the hope that it will be useful, | ||
| 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | * GNU General Public License for more details. | ||
| 17 | * | ||
| 18 | * You should have received a copy of the GNU General Public License | ||
| 19 | * along with this program; if not, write to the Free Software | ||
| 20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
| 21 | * | ||
| 22 | * Changelog | ||
| 23 | * 15-Jan-2006 LCVR Splitted from gpio.c | ||
| 24 | */ | ||
| 25 | |||
| 26 | #include <linux/kernel.h> | ||
| 27 | #include <linux/init.h> | ||
| 28 | #include <linux/module.h> | ||
| 29 | #include <linux/interrupt.h> | ||
| 30 | #include <linux/ioport.h> | ||
| 31 | |||
| 32 | #include <asm/hardware.h> | ||
| 33 | #include <asm/irq.h> | ||
| 34 | #include <asm/io.h> | ||
| 35 | |||
| 36 | #include <asm/arch/regs-gpio.h> | ||
| 37 | |||
| 38 | int s3c2410_gpio_irqfilter(unsigned int pin, unsigned int on, | ||
| 39 | unsigned int config) | ||
| 40 | { | ||
| 41 | void __iomem *reg = S3C2410_EINFLT0; | ||
| 42 | unsigned long flags; | ||
| 43 | unsigned long val; | ||
| 44 | |||
| 45 | if (pin < S3C2410_GPG8 || pin > S3C2410_GPG15) | ||
| 46 | return -1; | ||
| 47 | |||
| 48 | config &= 0xff; | ||
| 49 | |||
| 50 | pin -= S3C2410_GPG8_EINT16; | ||
| 51 | reg += pin & ~3; | ||
| 52 | |||
| 53 | local_irq_save(flags); | ||
| 54 | |||
| 55 | /* update filter width and clock source */ | ||
| 56 | |||
| 57 | val = __raw_readl(reg); | ||
| 58 | val &= ~(0xff << ((pin & 3) * 8)); | ||
| 59 | val |= config << ((pin & 3) * 8); | ||
| 60 | __raw_writel(val, reg); | ||
| 61 | |||
| 62 | /* update filter enable */ | ||
| 63 | |||
| 64 | val = __raw_readl(S3C2410_EXTINT2); | ||
| 65 | val &= ~(1 << ((pin * 4) + 3)); | ||
| 66 | val |= on << ((pin * 4) + 3); | ||
| 67 | __raw_writel(val, S3C2410_EXTINT2); | ||
| 68 | |||
| 69 | local_irq_restore(flags); | ||
| 70 | |||
| 71 | return 0; | ||
| 72 | } | ||
| 73 | |||
| 74 | EXPORT_SYMBOL(s3c2410_gpio_irqfilter); | ||
| 75 | |||
| 76 | int s3c2410_gpio_getirq(unsigned int pin) | ||
| 77 | { | ||
| 78 | if (pin < S3C2410_GPF0 || pin > S3C2410_GPG15_EINT23) | ||
| 79 | return -1; /* not valid interrupts */ | ||
| 80 | |||
| 81 | if (pin < S3C2410_GPG0 && pin > S3C2410_GPF7) | ||
| 82 | return -1; /* not valid pin */ | ||
| 83 | |||
| 84 | if (pin < S3C2410_GPF4) | ||
| 85 | return (pin - S3C2410_GPF0) + IRQ_EINT0; | ||
| 86 | |||
| 87 | if (pin < S3C2410_GPG0) | ||
| 88 | return (pin - S3C2410_GPF4) + IRQ_EINT4; | ||
| 89 | |||
| 90 | return (pin - S3C2410_GPG0) + IRQ_EINT8; | ||
| 91 | } | ||
| 92 | |||
| 93 | EXPORT_SYMBOL(s3c2410_gpio_getirq); | ||
diff --git a/arch/arm/mach-s3c2410/sleep.S b/arch/arm/mach-s3c2410/sleep.S index 61768dac7fee..832fb86a03b4 100644 --- a/arch/arm/mach-s3c2410/sleep.S +++ b/arch/arm/mach-s3c2410/sleep.S | |||
| @@ -72,7 +72,7 @@ ENTRY(s3c2410_cpu_suspend) | |||
| 72 | @@ prepare cpu to sleep | 72 | @@ prepare cpu to sleep |
| 73 | 73 | ||
| 74 | ldr r4, =S3C2410_REFRESH | 74 | ldr r4, =S3C2410_REFRESH |
| 75 | ldr r5, =S3C2410_MISCCR | 75 | ldr r5, =S3C24XX_MISCCR |
| 76 | ldr r6, =S3C2410_CLKCON | 76 | ldr r6, =S3C2410_CLKCON |
| 77 | ldr r7, [ r4 ] @ get REFRESH (and ensure in TLB) | 77 | ldr r7, [ r4 ] @ get REFRESH (and ensure in TLB) |
| 78 | ldr r8, [ r5 ] @ get MISCCR (and ensure in TLB) | 78 | ldr r8, [ r5 ] @ get MISCCR (and ensure in TLB) |
| @@ -133,12 +133,12 @@ ENTRY(s3c2410_cpu_resume) | |||
| 133 | @@ load UART to allow us to print the two characters for | 133 | @@ load UART to allow us to print the two characters for |
| 134 | @@ resume debug | 134 | @@ resume debug |
| 135 | 135 | ||
| 136 | mov r2, #S3C2410_PA_UART & 0xff000000 | 136 | mov r2, #S3C24XX_PA_UART & 0xff000000 |
| 137 | orr r2, r2, #S3C2410_PA_UART & 0xff000 | 137 | orr r2, r2, #S3C24XX_PA_UART & 0xff000 |
| 138 | 138 | ||
| 139 | #if 0 | 139 | #if 0 |
| 140 | /* SMDK2440 LED set */ | 140 | /* SMDK2440 LED set */ |
| 141 | mov r14, #S3C2410_PA_GPIO | 141 | mov r14, #S3C24XX_PA_GPIO |
| 142 | ldr r12, [ r14, #0x54 ] | 142 | ldr r12, [ r14, #0x54 ] |
| 143 | bic r12, r12, #3<<4 | 143 | bic r12, r12, #3<<4 |
| 144 | orr r12, r12, #1<<7 | 144 | orr r12, r12, #1<<7 |
diff --git a/arch/arm/mm/cache-v6.S b/arch/arm/mm/cache-v6.S index 72966d90e956..d921c1024ae0 100644 --- a/arch/arm/mm/cache-v6.S +++ b/arch/arm/mm/cache-v6.S | |||
| @@ -92,22 +92,16 @@ ENTRY(v6_coherent_kern_range) | |||
| 92 | * - the Icache does not read data from the write buffer | 92 | * - the Icache does not read data from the write buffer |
| 93 | */ | 93 | */ |
| 94 | ENTRY(v6_coherent_user_range) | 94 | ENTRY(v6_coherent_user_range) |
| 95 | bic r0, r0, #CACHE_LINE_SIZE - 1 | 95 | |
| 96 | 1: | ||
| 97 | #ifdef HARVARD_CACHE | 96 | #ifdef HARVARD_CACHE |
| 98 | mcr p15, 0, r0, c7, c10, 1 @ clean D line | 97 | bic r0, r0, #CACHE_LINE_SIZE - 1 |
| 98 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D line | ||
| 99 | mcr p15, 0, r0, c7, c5, 1 @ invalidate I line | 99 | mcr p15, 0, r0, c7, c5, 1 @ invalidate I line |
| 100 | #endif | 100 | add r0, r0, #CACHE_LINE_SIZE |
| 101 | mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry | ||
| 102 | add r0, r0, #BTB_FLUSH_SIZE | ||
| 103 | mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry | ||
| 104 | add r0, r0, #BTB_FLUSH_SIZE | ||
| 105 | mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry | ||
| 106 | add r0, r0, #BTB_FLUSH_SIZE | ||
| 107 | mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry | ||
| 108 | add r0, r0, #BTB_FLUSH_SIZE | ||
| 109 | cmp r0, r1 | 101 | cmp r0, r1 |
| 110 | blo 1b | 102 | blo 1b |
| 103 | #endif | ||
| 104 | mcr p15, 0, r0, c7, c5, 6 @ invalidate BTB | ||
| 111 | #ifdef HARVARD_CACHE | 105 | #ifdef HARVARD_CACHE |
| 112 | mov r0, #0 | 106 | mov r0, #0 |
| 113 | mcr p15, 0, r0, c7, c10, 4 @ drain write buffer | 107 | mcr p15, 0, r0, c7, c10, 4 @ drain write buffer |
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c index de3ce1eec2ec..da9b35974118 100644 --- a/arch/arm/mm/ioremap.c +++ b/arch/arm/mm/ioremap.c | |||
| @@ -142,7 +142,7 @@ __ioremap_pfn(unsigned long pfn, unsigned long offset, size_t size, | |||
| 142 | return NULL; | 142 | return NULL; |
| 143 | addr = (unsigned long)area->addr; | 143 | addr = (unsigned long)area->addr; |
| 144 | if (remap_area_pages(addr, pfn, size, flags)) { | 144 | if (remap_area_pages(addr, pfn, size, flags)) { |
| 145 | vfree(addr); | 145 | vfree((void *)addr); |
| 146 | return NULL; | 146 | return NULL; |
| 147 | } | 147 | } |
| 148 | return (void __iomem *) (offset + (char *)addr); | 148 | return (void __iomem *) (offset + (char *)addr); |
diff --git a/arch/arm/mm/mm-armv.c b/arch/arm/mm/mm-armv.c index d0245a31d4dd..ef8d30a185a9 100644 --- a/arch/arm/mm/mm-armv.c +++ b/arch/arm/mm/mm-armv.c | |||
| @@ -343,6 +343,12 @@ static struct mem_types mem_types[] __initdata = { | |||
| 343 | PMD_SECT_AP_WRITE | PMD_SECT_BUFFERABLE | | 343 | PMD_SECT_AP_WRITE | PMD_SECT_BUFFERABLE | |
| 344 | PMD_SECT_TEX(1), | 344 | PMD_SECT_TEX(1), |
| 345 | .domain = DOMAIN_IO, | 345 | .domain = DOMAIN_IO, |
| 346 | }, | ||
| 347 | [MT_NONSHARED_DEVICE] = { | ||
| 348 | .prot_l1 = PMD_TYPE_TABLE, | ||
| 349 | .prot_sect = PMD_TYPE_SECT | PMD_SECT_NONSHARED_DEV | | ||
| 350 | PMD_SECT_AP_WRITE, | ||
| 351 | .domain = DOMAIN_IO, | ||
| 346 | } | 352 | } |
| 347 | }; | 353 | }; |
| 348 | 354 | ||
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index 861b35947280..2d3823ec3153 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
| @@ -241,7 +241,15 @@ ENTRY(xscale_flush_user_cache_range) | |||
| 241 | * it also trashes the mini I-cache used by JTAG debuggers. | 241 | * it also trashes the mini I-cache used by JTAG debuggers. |
| 242 | */ | 242 | */ |
| 243 | ENTRY(xscale_coherent_kern_range) | 243 | ENTRY(xscale_coherent_kern_range) |
| 244 | /* FALLTHROUGH */ | 244 | bic r0, r0, #CACHELINESIZE - 1 |
| 245 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry | ||
| 246 | add r0, r0, #CACHELINESIZE | ||
| 247 | cmp r0, r1 | ||
| 248 | blo 1b | ||
| 249 | mov r0, #0 | ||
| 250 | mcr p15, 0, r0, c7, c5, 0 @ Invalidate I cache & BTB | ||
| 251 | mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer | ||
| 252 | mov pc, lr | ||
| 245 | 253 | ||
| 246 | /* | 254 | /* |
| 247 | * coherent_user_range(start, end) | 255 | * coherent_user_range(start, end) |
| @@ -252,18 +260,16 @@ ENTRY(xscale_coherent_kern_range) | |||
| 252 | * | 260 | * |
| 253 | * - start - virtual start address | 261 | * - start - virtual start address |
| 254 | * - end - virtual end address | 262 | * - end - virtual end address |
| 255 | * | ||
| 256 | * Note: single I-cache line invalidation isn't used here since | ||
| 257 | * it also trashes the mini I-cache used by JTAG debuggers. | ||
| 258 | */ | 263 | */ |
| 259 | ENTRY(xscale_coherent_user_range) | 264 | ENTRY(xscale_coherent_user_range) |
| 260 | bic r0, r0, #CACHELINESIZE - 1 | 265 | bic r0, r0, #CACHELINESIZE - 1 |
| 261 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 266 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
| 267 | mcr p15, 0, r0, c7, c5, 1 @ Invalidate I cache entry | ||
| 262 | add r0, r0, #CACHELINESIZE | 268 | add r0, r0, #CACHELINESIZE |
| 263 | cmp r0, r1 | 269 | cmp r0, r1 |
| 264 | blo 1b | 270 | blo 1b |
| 265 | mov r0, #0 | 271 | mov r0, #0 |
| 266 | mcr p15, 0, r0, c7, c5, 0 @ Invalidate I cache & BTB | 272 | mcr p15, 0, r0, c7, c5, 6 @ Invalidate BTB |
| 267 | mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer | 273 | mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer |
| 268 | mov pc, lr | 274 | mov pc, lr |
| 269 | 275 | ||
diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c index 1415930ceee1..6f8bc1f0e6a1 100644 --- a/arch/arm/oprofile/common.c +++ b/arch/arm/oprofile/common.c | |||
| @@ -137,8 +137,9 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) | |||
| 137 | if (spec) { | 137 | if (spec) { |
| 138 | init_MUTEX(&op_arm_sem); | 138 | init_MUTEX(&op_arm_sem); |
| 139 | 139 | ||
| 140 | if (spec->init() < 0) | 140 | ret = spec->init(); |
| 141 | return -ENODEV; | 141 | if (ret < 0) |
| 142 | return ret; | ||
| 142 | 143 | ||
| 143 | op_arm_model = spec; | 144 | op_arm_model = spec; |
| 144 | init_driverfs(); | 145 | init_driverfs(); |
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index 792f66375830..ee82763b02b8 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
| 18 | 18 | ||
| 19 | #include <asm/mach/map.h> | 19 | #include <asm/mach/map.h> |
| 20 | #include <asm/tlb.h> | ||
| 20 | #include <asm/io.h> | 21 | #include <asm/io.h> |
| 21 | #include <asm/cacheflush.h> | 22 | #include <asm/cacheflush.h> |
| 22 | 23 | ||
| @@ -96,6 +97,14 @@ void __init omap_map_sram(void) | |||
| 96 | omap_sram_io_desc[0].length); | 97 | omap_sram_io_desc[0].length); |
| 97 | 98 | ||
| 98 | /* | 99 | /* |
| 100 | * Normally devicemaps_init() would flush caches and tlb after | ||
| 101 | * mdesc->map_io(), but since we're called from map_io(), we | ||
| 102 | * must do it here. | ||
| 103 | */ | ||
| 104 | local_flush_tlb_all(); | ||
| 105 | flush_cache_all(); | ||
| 106 | |||
| 107 | /* | ||
| 99 | * Looks like we need to preserve some bootloader code at the | 108 | * Looks like we need to preserve some bootloader code at the |
| 100 | * beginning of SRAM for jumping to flash for reboot to work... | 109 | * beginning of SRAM for jumping to flash for reboot to work... |
| 101 | */ | 110 | */ |
