diff options
Diffstat (limited to 'arch')
426 files changed, 1969 insertions, 1556 deletions
diff --git a/arch/alpha/include/asm/parport.h b/arch/alpha/include/asm/parport.h index c5ee7cbb2fcd..6abd0af11f13 100644 --- a/arch/alpha/include/asm/parport.h +++ b/arch/alpha/include/asm/parport.h | |||
@@ -9,8 +9,8 @@ | |||
9 | #ifndef _ASM_AXP_PARPORT_H | 9 | #ifndef _ASM_AXP_PARPORT_H |
10 | #define _ASM_AXP_PARPORT_H 1 | 10 | #define _ASM_AXP_PARPORT_H 1 |
11 | 11 | ||
12 | static int __devinit parport_pc_find_isa_ports (int autoirq, int autodma); | 12 | static int parport_pc_find_isa_ports (int autoirq, int autodma); |
13 | static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma) | 13 | static int parport_pc_find_nonpci_ports (int autoirq, int autodma) |
14 | { | 14 | { |
15 | return parport_pc_find_isa_ports (autoirq, autodma); | 15 | return parport_pc_find_isa_ports (autoirq, autodma); |
16 | } | 16 | } |
diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c index ef757147cbf9..edb4e0097b75 100644 --- a/arch/alpha/kernel/pci.c +++ b/arch/alpha/kernel/pci.c | |||
@@ -59,13 +59,13 @@ struct pci_controller *pci_isa_hose; | |||
59 | * Quirks. | 59 | * Quirks. |
60 | */ | 60 | */ |
61 | 61 | ||
62 | static void __devinit quirk_isa_bridge(struct pci_dev *dev) | 62 | static void quirk_isa_bridge(struct pci_dev *dev) |
63 | { | 63 | { |
64 | dev->class = PCI_CLASS_BRIDGE_ISA << 8; | 64 | dev->class = PCI_CLASS_BRIDGE_ISA << 8; |
65 | } | 65 | } |
66 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82378, quirk_isa_bridge); | 66 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82378, quirk_isa_bridge); |
67 | 67 | ||
68 | static void __devinit quirk_cypress(struct pci_dev *dev) | 68 | static void quirk_cypress(struct pci_dev *dev) |
69 | { | 69 | { |
70 | /* The Notorious Cy82C693 chip. */ | 70 | /* The Notorious Cy82C693 chip. */ |
71 | 71 | ||
@@ -104,7 +104,7 @@ static void __devinit quirk_cypress(struct pci_dev *dev) | |||
104 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, quirk_cypress); | 104 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, quirk_cypress); |
105 | 105 | ||
106 | /* Called for each device after PCI setup is done. */ | 106 | /* Called for each device after PCI setup is done. */ |
107 | static void __devinit pcibios_fixup_final(struct pci_dev *dev) | 107 | static void pcibios_fixup_final(struct pci_dev *dev) |
108 | { | 108 | { |
109 | unsigned int class = dev->class >> 8; | 109 | unsigned int class = dev->class >> 8; |
110 | 110 | ||
@@ -198,8 +198,7 @@ subsys_initcall(pcibios_init); | |||
198 | #ifdef ALPHA_RESTORE_SRM_SETUP | 198 | #ifdef ALPHA_RESTORE_SRM_SETUP |
199 | static struct pdev_srm_saved_conf *srm_saved_configs; | 199 | static struct pdev_srm_saved_conf *srm_saved_configs; |
200 | 200 | ||
201 | void __devinit | 201 | void pdev_save_srm_config(struct pci_dev *dev) |
202 | pdev_save_srm_config(struct pci_dev *dev) | ||
203 | { | 202 | { |
204 | struct pdev_srm_saved_conf *tmp; | 203 | struct pdev_srm_saved_conf *tmp; |
205 | static int printed = 0; | 204 | static int printed = 0; |
@@ -241,8 +240,7 @@ pci_restore_srm_config(void) | |||
241 | } | 240 | } |
242 | #endif | 241 | #endif |
243 | 242 | ||
244 | void __devinit | 243 | void pcibios_fixup_bus(struct pci_bus *bus) |
245 | pcibios_fixup_bus(struct pci_bus *bus) | ||
246 | { | 244 | { |
247 | struct pci_dev *dev = bus->self; | 245 | struct pci_dev *dev = bus->self; |
248 | 246 | ||
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index a41ad90a97a6..9603bc234b47 100644 --- a/arch/alpha/kernel/smp.c +++ b/arch/alpha/kernel/smp.c | |||
@@ -68,7 +68,7 @@ enum ipi_message_type { | |||
68 | }; | 68 | }; |
69 | 69 | ||
70 | /* Set to a secondary's cpuid when it comes online. */ | 70 | /* Set to a secondary's cpuid when it comes online. */ |
71 | static int smp_secondary_alive __devinitdata = 0; | 71 | static int smp_secondary_alive = 0; |
72 | 72 | ||
73 | int smp_num_probed; /* Internal processor count */ | 73 | int smp_num_probed; /* Internal processor count */ |
74 | int smp_num_cpus = 1; /* Number that came online. */ | 74 | int smp_num_cpus = 1; /* Number that came online. */ |
@@ -172,7 +172,7 @@ smp_callin(void) | |||
172 | } | 172 | } |
173 | 173 | ||
174 | /* Wait until hwrpb->txrdy is clear for cpu. Return -1 on timeout. */ | 174 | /* Wait until hwrpb->txrdy is clear for cpu. Return -1 on timeout. */ |
175 | static int __devinit | 175 | static int |
176 | wait_for_txrdy (unsigned long cpumask) | 176 | wait_for_txrdy (unsigned long cpumask) |
177 | { | 177 | { |
178 | unsigned long timeout; | 178 | unsigned long timeout; |
@@ -468,7 +468,7 @@ smp_prepare_cpus(unsigned int max_cpus) | |||
468 | smp_num_cpus = smp_num_probed; | 468 | smp_num_cpus = smp_num_probed; |
469 | } | 469 | } |
470 | 470 | ||
471 | void __devinit | 471 | void |
472 | smp_prepare_boot_cpu(void) | 472 | smp_prepare_boot_cpu(void) |
473 | { | 473 | { |
474 | } | 474 | } |
diff --git a/arch/alpha/kernel/sys_titan.c b/arch/alpha/kernel/sys_titan.c index 2533db280d9b..5cf4a481b8c5 100644 --- a/arch/alpha/kernel/sys_titan.c +++ b/arch/alpha/kernel/sys_titan.c | |||
@@ -303,7 +303,7 @@ titan_late_init(void) | |||
303 | 303 | ||
304 | } | 304 | } |
305 | 305 | ||
306 | static int __devinit | 306 | static int |
307 | titan_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | 307 | titan_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
308 | { | 308 | { |
309 | u8 intline; | 309 | u8 intline; |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f95ba14ae3d0..67874b82a4ed 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -371,7 +371,6 @@ config ARCH_CNS3XXX | |||
371 | config ARCH_CLPS711X | 371 | config ARCH_CLPS711X |
372 | bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" | 372 | bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" |
373 | select ARCH_REQUIRE_GPIOLIB | 373 | select ARCH_REQUIRE_GPIOLIB |
374 | select ARCH_USES_GETTIMEOFFSET | ||
375 | select AUTO_ZRELADDR | 374 | select AUTO_ZRELADDR |
376 | select CLKDEV_LOOKUP | 375 | select CLKDEV_LOOKUP |
377 | select COMMON_CLK | 376 | select COMMON_CLK |
@@ -1230,6 +1229,7 @@ config ARM_ERRATA_430973 | |||
1230 | config ARM_ERRATA_458693 | 1229 | config ARM_ERRATA_458693 |
1231 | bool "ARM errata: Processor deadlock when a false hazard is created" | 1230 | bool "ARM errata: Processor deadlock when a false hazard is created" |
1232 | depends on CPU_V7 | 1231 | depends on CPU_V7 |
1232 | depends on !ARCH_MULTIPLATFORM | ||
1233 | help | 1233 | help |
1234 | This option enables the workaround for the 458693 Cortex-A8 (r2p0) | 1234 | This option enables the workaround for the 458693 Cortex-A8 (r2p0) |
1235 | erratum. For very specific sequences of memory operations, it is | 1235 | erratum. For very specific sequences of memory operations, it is |
@@ -1243,6 +1243,7 @@ config ARM_ERRATA_458693 | |||
1243 | config ARM_ERRATA_460075 | 1243 | config ARM_ERRATA_460075 |
1244 | bool "ARM errata: Data written to the L2 cache can be overwritten with stale data" | 1244 | bool "ARM errata: Data written to the L2 cache can be overwritten with stale data" |
1245 | depends on CPU_V7 | 1245 | depends on CPU_V7 |
1246 | depends on !ARCH_MULTIPLATFORM | ||
1246 | help | 1247 | help |
1247 | This option enables the workaround for the 460075 Cortex-A8 (r2p0) | 1248 | This option enables the workaround for the 460075 Cortex-A8 (r2p0) |
1248 | erratum. Any asynchronous access to the L2 cache may encounter a | 1249 | erratum. Any asynchronous access to the L2 cache may encounter a |
@@ -1255,6 +1256,7 @@ config ARM_ERRATA_460075 | |||
1255 | config ARM_ERRATA_742230 | 1256 | config ARM_ERRATA_742230 |
1256 | bool "ARM errata: DMB operation may be faulty" | 1257 | bool "ARM errata: DMB operation may be faulty" |
1257 | depends on CPU_V7 && SMP | 1258 | depends on CPU_V7 && SMP |
1259 | depends on !ARCH_MULTIPLATFORM | ||
1258 | help | 1260 | help |
1259 | This option enables the workaround for the 742230 Cortex-A9 | 1261 | This option enables the workaround for the 742230 Cortex-A9 |
1260 | (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction | 1262 | (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction |
@@ -1267,6 +1269,7 @@ config ARM_ERRATA_742230 | |||
1267 | config ARM_ERRATA_742231 | 1269 | config ARM_ERRATA_742231 |
1268 | bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption" | 1270 | bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption" |
1269 | depends on CPU_V7 && SMP | 1271 | depends on CPU_V7 && SMP |
1272 | depends on !ARCH_MULTIPLATFORM | ||
1270 | help | 1273 | help |
1271 | This option enables the workaround for the 742231 Cortex-A9 | 1274 | This option enables the workaround for the 742231 Cortex-A9 |
1272 | (r2p0..r2p2) erratum. Under certain conditions, specific to the | 1275 | (r2p0..r2p2) erratum. Under certain conditions, specific to the |
@@ -1317,6 +1320,7 @@ config PL310_ERRATA_727915 | |||
1317 | config ARM_ERRATA_743622 | 1320 | config ARM_ERRATA_743622 |
1318 | bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption" | 1321 | bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption" |
1319 | depends on CPU_V7 | 1322 | depends on CPU_V7 |
1323 | depends on !ARCH_MULTIPLATFORM | ||
1320 | help | 1324 | help |
1321 | This option enables the workaround for the 743622 Cortex-A9 | 1325 | This option enables the workaround for the 743622 Cortex-A9 |
1322 | (r2p*) erratum. Under very rare conditions, a faulty | 1326 | (r2p*) erratum. Under very rare conditions, a faulty |
@@ -1330,6 +1334,7 @@ config ARM_ERRATA_743622 | |||
1330 | config ARM_ERRATA_751472 | 1334 | config ARM_ERRATA_751472 |
1331 | bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation" | 1335 | bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation" |
1332 | depends on CPU_V7 | 1336 | depends on CPU_V7 |
1337 | depends on !ARCH_MULTIPLATFORM | ||
1333 | help | 1338 | help |
1334 | This option enables the workaround for the 751472 Cortex-A9 (prior | 1339 | This option enables the workaround for the 751472 Cortex-A9 (prior |
1335 | to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the | 1340 | to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the |
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index e44da40d984f..5ebb44fe826a 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -155,6 +155,7 @@ dtb-$(CONFIG_ARCH_VT8500) += vt8500-bv07.dtb \ | |||
155 | dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb | 155 | dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb |
156 | 156 | ||
157 | targets += dtbs | 157 | targets += dtbs |
158 | targets += $(dtb-y) | ||
158 | endif | 159 | endif |
159 | 160 | ||
160 | # *.dtb used to be generated in the directory above. Clean out the | 161 | # *.dtb used to be generated in the directory above. Clean out the |
diff --git a/arch/arm/boot/dts/armada-370-db.dts b/arch/arm/boot/dts/armada-370-db.dts index 00044026ef1f..9b82facb2561 100644 --- a/arch/arm/boot/dts/armada-370-db.dts +++ b/arch/arm/boot/dts/armada-370-db.dts | |||
@@ -26,7 +26,7 @@ | |||
26 | 26 | ||
27 | memory { | 27 | memory { |
28 | device_type = "memory"; | 28 | device_type = "memory"; |
29 | reg = <0x00000000 0x20000000>; /* 512 MB */ | 29 | reg = <0x00000000 0x40000000>; /* 1 GB */ |
30 | }; | 30 | }; |
31 | 31 | ||
32 | soc { | 32 | soc { |
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi index cf6c48a09eac..4c0abe85405f 100644 --- a/arch/arm/boot/dts/armada-370-xp.dtsi +++ b/arch/arm/boot/dts/armada-370-xp.dtsi | |||
@@ -50,17 +50,19 @@ | |||
50 | ranges; | 50 | ranges; |
51 | 51 | ||
52 | serial@d0012000 { | 52 | serial@d0012000 { |
53 | compatible = "ns16550"; | 53 | compatible = "snps,dw-apb-uart"; |
54 | reg = <0xd0012000 0x100>; | 54 | reg = <0xd0012000 0x100>; |
55 | reg-shift = <2>; | 55 | reg-shift = <2>; |
56 | interrupts = <41>; | 56 | interrupts = <41>; |
57 | reg-io-width = <4>; | ||
57 | status = "disabled"; | 58 | status = "disabled"; |
58 | }; | 59 | }; |
59 | serial@d0012100 { | 60 | serial@d0012100 { |
60 | compatible = "ns16550"; | 61 | compatible = "snps,dw-apb-uart"; |
61 | reg = <0xd0012100 0x100>; | 62 | reg = <0xd0012100 0x100>; |
62 | reg-shift = <2>; | 63 | reg-shift = <2>; |
63 | interrupts = <42>; | 64 | interrupts = <42>; |
65 | reg-io-width = <4>; | ||
64 | status = "disabled"; | 66 | status = "disabled"; |
65 | }; | 67 | }; |
66 | 68 | ||
diff --git a/arch/arm/boot/dts/armada-xp-mv78230.dtsi b/arch/arm/boot/dts/armada-xp-mv78230.dtsi index c45c7b4dc352..e041f42ed711 100644 --- a/arch/arm/boot/dts/armada-xp-mv78230.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78230.dtsi | |||
@@ -34,7 +34,14 @@ | |||
34 | reg = <0>; | 34 | reg = <0>; |
35 | clocks = <&cpuclk 0>; | 35 | clocks = <&cpuclk 0>; |
36 | }; | 36 | }; |
37 | } | 37 | |
38 | cpu@1 { | ||
39 | device_type = "cpu"; | ||
40 | compatible = "marvell,sheeva-v7"; | ||
41 | reg = <1>; | ||
42 | clocks = <&cpuclk 1>; | ||
43 | }; | ||
44 | }; | ||
38 | 45 | ||
39 | soc { | 46 | soc { |
40 | pinctrl { | 47 | pinctrl { |
@@ -43,27 +50,25 @@ | |||
43 | }; | 50 | }; |
44 | 51 | ||
45 | gpio0: gpio@d0018100 { | 52 | gpio0: gpio@d0018100 { |
46 | compatible = "marvell,armadaxp-gpio"; | 53 | compatible = "marvell,orion-gpio"; |
47 | reg = <0xd0018100 0x40>, | 54 | reg = <0xd0018100 0x40>; |
48 | <0xd0018800 0x30>; | ||
49 | ngpios = <32>; | 55 | ngpios = <32>; |
50 | gpio-controller; | 56 | gpio-controller; |
51 | #gpio-cells = <2>; | 57 | #gpio-cells = <2>; |
52 | interrupt-controller; | 58 | interrupt-controller; |
53 | #interrupts-cells = <2>; | 59 | #interrupts-cells = <2>; |
54 | interrupts = <16>, <17>, <18>, <19>; | 60 | interrupts = <82>, <83>, <84>, <85>; |
55 | }; | 61 | }; |
56 | 62 | ||
57 | gpio1: gpio@d0018140 { | 63 | gpio1: gpio@d0018140 { |
58 | compatible = "marvell,armadaxp-gpio"; | 64 | compatible = "marvell,orion-gpio"; |
59 | reg = <0xd0018140 0x40>, | 65 | reg = <0xd0018140 0x40>; |
60 | <0xd0018840 0x30>; | ||
61 | ngpios = <17>; | 66 | ngpios = <17>; |
62 | gpio-controller; | 67 | gpio-controller; |
63 | #gpio-cells = <2>; | 68 | #gpio-cells = <2>; |
64 | interrupt-controller; | 69 | interrupt-controller; |
65 | #interrupts-cells = <2>; | 70 | #interrupts-cells = <2>; |
66 | interrupts = <20>, <21>, <22>; | 71 | interrupts = <87>, <88>, <89>; |
67 | }; | 72 | }; |
68 | }; | 73 | }; |
69 | }; | 74 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/arch/arm/boot/dts/armada-xp-mv78260.dtsi index a2aee5707377..9e23bd8c9536 100644 --- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi | |||
@@ -51,39 +51,44 @@ | |||
51 | }; | 51 | }; |
52 | 52 | ||
53 | gpio0: gpio@d0018100 { | 53 | gpio0: gpio@d0018100 { |
54 | compatible = "marvell,armadaxp-gpio"; | 54 | compatible = "marvell,orion-gpio"; |
55 | reg = <0xd0018100 0x40>, | 55 | reg = <0xd0018100 0x40>; |
56 | <0xd0018800 0x30>; | ||
57 | ngpios = <32>; | 56 | ngpios = <32>; |
58 | gpio-controller; | 57 | gpio-controller; |
59 | #gpio-cells = <2>; | 58 | #gpio-cells = <2>; |
60 | interrupt-controller; | 59 | interrupt-controller; |
61 | #interrupts-cells = <2>; | 60 | #interrupts-cells = <2>; |
62 | interrupts = <16>, <17>, <18>, <19>; | 61 | interrupts = <82>, <83>, <84>, <85>; |
63 | }; | 62 | }; |
64 | 63 | ||
65 | gpio1: gpio@d0018140 { | 64 | gpio1: gpio@d0018140 { |
66 | compatible = "marvell,armadaxp-gpio"; | 65 | compatible = "marvell,orion-gpio"; |
67 | reg = <0xd0018140 0x40>, | 66 | reg = <0xd0018140 0x40>; |
68 | <0xd0018840 0x30>; | ||
69 | ngpios = <32>; | 67 | ngpios = <32>; |
70 | gpio-controller; | 68 | gpio-controller; |
71 | #gpio-cells = <2>; | 69 | #gpio-cells = <2>; |
72 | interrupt-controller; | 70 | interrupt-controller; |
73 | #interrupts-cells = <2>; | 71 | #interrupts-cells = <2>; |
74 | interrupts = <20>, <21>, <22>, <23>; | 72 | interrupts = <87>, <88>, <89>, <90>; |
75 | }; | 73 | }; |
76 | 74 | ||
77 | gpio2: gpio@d0018180 { | 75 | gpio2: gpio@d0018180 { |
78 | compatible = "marvell,armadaxp-gpio"; | 76 | compatible = "marvell,orion-gpio"; |
79 | reg = <0xd0018180 0x40>, | 77 | reg = <0xd0018180 0x40>; |
80 | <0xd0018870 0x30>; | ||
81 | ngpios = <3>; | 78 | ngpios = <3>; |
82 | gpio-controller; | 79 | gpio-controller; |
83 | #gpio-cells = <2>; | 80 | #gpio-cells = <2>; |
84 | interrupt-controller; | 81 | interrupt-controller; |
85 | #interrupts-cells = <2>; | 82 | #interrupts-cells = <2>; |
86 | interrupts = <24>; | 83 | interrupts = <91>; |
84 | }; | ||
85 | |||
86 | ethernet@d0034000 { | ||
87 | compatible = "marvell,armada-370-neta"; | ||
88 | reg = <0xd0034000 0x2500>; | ||
89 | interrupts = <14>; | ||
90 | clocks = <&gateclk 1>; | ||
91 | status = "disabled"; | ||
87 | }; | 92 | }; |
88 | }; | 93 | }; |
89 | }; | 94 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/arch/arm/boot/dts/armada-xp-mv78460.dtsi index da03a129243a..965966110e38 100644 --- a/arch/arm/boot/dts/armada-xp-mv78460.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78460.dtsi | |||
@@ -66,39 +66,44 @@ | |||
66 | }; | 66 | }; |
67 | 67 | ||
68 | gpio0: gpio@d0018100 { | 68 | gpio0: gpio@d0018100 { |
69 | compatible = "marvell,armadaxp-gpio"; | 69 | compatible = "marvell,orion-gpio"; |
70 | reg = <0xd0018100 0x40>, | 70 | reg = <0xd0018100 0x40>; |
71 | <0xd0018800 0x30>; | ||
72 | ngpios = <32>; | 71 | ngpios = <32>; |
73 | gpio-controller; | 72 | gpio-controller; |
74 | #gpio-cells = <2>; | 73 | #gpio-cells = <2>; |
75 | interrupt-controller; | 74 | interrupt-controller; |
76 | #interrupts-cells = <2>; | 75 | #interrupts-cells = <2>; |
77 | interrupts = <16>, <17>, <18>, <19>; | 76 | interrupts = <82>, <83>, <84>, <85>; |
78 | }; | 77 | }; |
79 | 78 | ||
80 | gpio1: gpio@d0018140 { | 79 | gpio1: gpio@d0018140 { |
81 | compatible = "marvell,armadaxp-gpio"; | 80 | compatible = "marvell,orion-gpio"; |
82 | reg = <0xd0018140 0x40>, | 81 | reg = <0xd0018140 0x40>; |
83 | <0xd0018840 0x30>; | ||
84 | ngpios = <32>; | 82 | ngpios = <32>; |
85 | gpio-controller; | 83 | gpio-controller; |
86 | #gpio-cells = <2>; | 84 | #gpio-cells = <2>; |
87 | interrupt-controller; | 85 | interrupt-controller; |
88 | #interrupts-cells = <2>; | 86 | #interrupts-cells = <2>; |
89 | interrupts = <20>, <21>, <22>, <23>; | 87 | interrupts = <87>, <88>, <89>, <90>; |
90 | }; | 88 | }; |
91 | 89 | ||
92 | gpio2: gpio@d0018180 { | 90 | gpio2: gpio@d0018180 { |
93 | compatible = "marvell,armadaxp-gpio"; | 91 | compatible = "marvell,orion-gpio"; |
94 | reg = <0xd0018180 0x40>, | 92 | reg = <0xd0018180 0x40>; |
95 | <0xd0018870 0x30>; | ||
96 | ngpios = <3>; | 93 | ngpios = <3>; |
97 | gpio-controller; | 94 | gpio-controller; |
98 | #gpio-cells = <2>; | 95 | #gpio-cells = <2>; |
99 | interrupt-controller; | 96 | interrupt-controller; |
100 | #interrupts-cells = <2>; | 97 | #interrupts-cells = <2>; |
101 | interrupts = <24>; | 98 | interrupts = <91>; |
99 | }; | ||
100 | |||
101 | ethernet@d0034000 { | ||
102 | compatible = "marvell,armada-370-neta"; | ||
103 | reg = <0xd0034000 0x2500>; | ||
104 | interrupts = <14>; | ||
105 | clocks = <&gateclk 1>; | ||
106 | status = "disabled"; | ||
102 | }; | 107 | }; |
103 | }; | 108 | }; |
104 | }; | 109 | }; |
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi index 367aa3f94912..2e37ef101c90 100644 --- a/arch/arm/boot/dts/armada-xp.dtsi +++ b/arch/arm/boot/dts/armada-xp.dtsi | |||
@@ -42,17 +42,19 @@ | |||
42 | 42 | ||
43 | soc { | 43 | soc { |
44 | serial@d0012200 { | 44 | serial@d0012200 { |
45 | compatible = "ns16550"; | 45 | compatible = "snps,dw-apb-uart"; |
46 | reg = <0xd0012200 0x100>; | 46 | reg = <0xd0012200 0x100>; |
47 | reg-shift = <2>; | 47 | reg-shift = <2>; |
48 | interrupts = <43>; | 48 | interrupts = <43>; |
49 | reg-io-width = <4>; | ||
49 | status = "disabled"; | 50 | status = "disabled"; |
50 | }; | 51 | }; |
51 | serial@d0012300 { | 52 | serial@d0012300 { |
52 | compatible = "ns16550"; | 53 | compatible = "snps,dw-apb-uart"; |
53 | reg = <0xd0012300 0x100>; | 54 | reg = <0xd0012300 0x100>; |
54 | reg-shift = <2>; | 55 | reg-shift = <2>; |
55 | interrupts = <44>; | 56 | interrupts = <44>; |
57 | reg-io-width = <4>; | ||
56 | status = "disabled"; | 58 | status = "disabled"; |
57 | }; | 59 | }; |
58 | 60 | ||
@@ -93,14 +95,6 @@ | |||
93 | status = "disabled"; | 95 | status = "disabled"; |
94 | }; | 96 | }; |
95 | 97 | ||
96 | ethernet@d0034000 { | ||
97 | compatible = "marvell,armada-370-neta"; | ||
98 | reg = <0xd0034000 0x2500>; | ||
99 | interrupts = <14>; | ||
100 | clocks = <&gateclk 1>; | ||
101 | status = "disabled"; | ||
102 | }; | ||
103 | |||
104 | xor@d0060900 { | 98 | xor@d0060900 { |
105 | compatible = "marvell,orion-xor"; | 99 | compatible = "marvell,orion-xor"; |
106 | reg = <0xd0060900 0x100 | 100 | reg = <0xd0060900 0x100 |
diff --git a/arch/arm/boot/dts/at91rm9200.dtsi b/arch/arm/boot/dts/at91rm9200.dtsi index e154f242c680..222047f1ece9 100644 --- a/arch/arm/boot/dts/at91rm9200.dtsi +++ b/arch/arm/boot/dts/at91rm9200.dtsi | |||
@@ -336,8 +336,8 @@ | |||
336 | 336 | ||
337 | i2c@0 { | 337 | i2c@0 { |
338 | compatible = "i2c-gpio"; | 338 | compatible = "i2c-gpio"; |
339 | gpios = <&pioA 23 0 /* sda */ | 339 | gpios = <&pioA 25 0 /* sda */ |
340 | &pioA 24 0 /* scl */ | 340 | &pioA 26 0 /* scl */ |
341 | >; | 341 | >; |
342 | i2c-gpio,sda-open-drain; | 342 | i2c-gpio,sda-open-drain; |
343 | i2c-gpio,scl-open-drain; | 343 | i2c-gpio,scl-open-drain; |
diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi index 68bccf41a2c6..cb7bcc51608d 100644 --- a/arch/arm/boot/dts/at91sam9260.dtsi +++ b/arch/arm/boot/dts/at91sam9260.dtsi | |||
@@ -306,6 +306,22 @@ | |||
306 | }; | 306 | }; |
307 | }; | 307 | }; |
308 | 308 | ||
309 | ssc0 { | ||
310 | pinctrl_ssc0_tx: ssc0_tx-0 { | ||
311 | atmel,pins = | ||
312 | <1 16 0x1 0x0 /* PB16 periph A */ | ||
313 | 1 17 0x1 0x0 /* PB17 periph A */ | ||
314 | 1 18 0x1 0x0>; /* PB18 periph A */ | ||
315 | }; | ||
316 | |||
317 | pinctrl_ssc0_rx: ssc0_rx-0 { | ||
318 | atmel,pins = | ||
319 | <1 19 0x1 0x0 /* PB19 periph A */ | ||
320 | 1 20 0x1 0x0 /* PB20 periph A */ | ||
321 | 1 21 0x1 0x0>; /* PB21 periph A */ | ||
322 | }; | ||
323 | }; | ||
324 | |||
309 | pioA: gpio@fffff400 { | 325 | pioA: gpio@fffff400 { |
310 | compatible = "atmel,at91rm9200-gpio"; | 326 | compatible = "atmel,at91rm9200-gpio"; |
311 | reg = <0xfffff400 0x200>; | 327 | reg = <0xfffff400 0x200>; |
@@ -450,6 +466,8 @@ | |||
450 | compatible = "atmel,at91rm9200-ssc"; | 466 | compatible = "atmel,at91rm9200-ssc"; |
451 | reg = <0xfffbc000 0x4000>; | 467 | reg = <0xfffbc000 0x4000>; |
452 | interrupts = <14 4 5>; | 468 | interrupts = <14 4 5>; |
469 | pinctrl-names = "default"; | ||
470 | pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; | ||
453 | status = "disabled"; | 471 | status = "disabled"; |
454 | }; | 472 | }; |
455 | 473 | ||
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi index 32ec62cf5385..271d4de026e9 100644 --- a/arch/arm/boot/dts/at91sam9263.dtsi +++ b/arch/arm/boot/dts/at91sam9263.dtsi | |||
@@ -271,6 +271,38 @@ | |||
271 | }; | 271 | }; |
272 | }; | 272 | }; |
273 | 273 | ||
274 | ssc0 { | ||
275 | pinctrl_ssc0_tx: ssc0_tx-0 { | ||
276 | atmel,pins = | ||
277 | <1 0 0x2 0x0 /* PB0 periph B */ | ||
278 | 1 1 0x2 0x0 /* PB1 periph B */ | ||
279 | 1 2 0x2 0x0>; /* PB2 periph B */ | ||
280 | }; | ||
281 | |||
282 | pinctrl_ssc0_rx: ssc0_rx-0 { | ||
283 | atmel,pins = | ||
284 | <1 3 0x2 0x0 /* PB3 periph B */ | ||
285 | 1 4 0x2 0x0 /* PB4 periph B */ | ||
286 | 1 5 0x2 0x0>; /* PB5 periph B */ | ||
287 | }; | ||
288 | }; | ||
289 | |||
290 | ssc1 { | ||
291 | pinctrl_ssc1_tx: ssc1_tx-0 { | ||
292 | atmel,pins = | ||
293 | <1 6 0x1 0x0 /* PB6 periph A */ | ||
294 | 1 7 0x1 0x0 /* PB7 periph A */ | ||
295 | 1 8 0x1 0x0>; /* PB8 periph A */ | ||
296 | }; | ||
297 | |||
298 | pinctrl_ssc1_rx: ssc1_rx-0 { | ||
299 | atmel,pins = | ||
300 | <1 9 0x1 0x0 /* PB9 periph A */ | ||
301 | 1 10 0x1 0x0 /* PB10 periph A */ | ||
302 | 1 11 0x1 0x0>; /* PB11 periph A */ | ||
303 | }; | ||
304 | }; | ||
305 | |||
274 | pioA: gpio@fffff200 { | 306 | pioA: gpio@fffff200 { |
275 | compatible = "atmel,at91rm9200-gpio"; | 307 | compatible = "atmel,at91rm9200-gpio"; |
276 | reg = <0xfffff200 0x200>; | 308 | reg = <0xfffff200 0x200>; |
@@ -368,6 +400,8 @@ | |||
368 | compatible = "atmel,at91rm9200-ssc"; | 400 | compatible = "atmel,at91rm9200-ssc"; |
369 | reg = <0xfff98000 0x4000>; | 401 | reg = <0xfff98000 0x4000>; |
370 | interrupts = <16 4 5>; | 402 | interrupts = <16 4 5>; |
403 | pinctrl-names = "default"; | ||
404 | pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; | ||
371 | status = "disabled"; | 405 | status = "disabled"; |
372 | }; | 406 | }; |
373 | 407 | ||
@@ -375,6 +409,8 @@ | |||
375 | compatible = "atmel,at91rm9200-ssc"; | 409 | compatible = "atmel,at91rm9200-ssc"; |
376 | reg = <0xfff9c000 0x4000>; | 410 | reg = <0xfff9c000 0x4000>; |
377 | interrupts = <17 4 5>; | 411 | interrupts = <17 4 5>; |
412 | pinctrl-names = "default"; | ||
413 | pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>; | ||
378 | status = "disabled"; | 414 | status = "disabled"; |
379 | }; | 415 | }; |
380 | 416 | ||
diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi index 231858ffd850..6b1d4cab24c2 100644 --- a/arch/arm/boot/dts/at91sam9g45.dtsi +++ b/arch/arm/boot/dts/at91sam9g45.dtsi | |||
@@ -290,6 +290,38 @@ | |||
290 | }; | 290 | }; |
291 | }; | 291 | }; |
292 | 292 | ||
293 | ssc0 { | ||
294 | pinctrl_ssc0_tx: ssc0_tx-0 { | ||
295 | atmel,pins = | ||
296 | <3 0 0x1 0x0 /* PD0 periph A */ | ||
297 | 3 1 0x1 0x0 /* PD1 periph A */ | ||
298 | 3 2 0x1 0x0>; /* PD2 periph A */ | ||
299 | }; | ||
300 | |||
301 | pinctrl_ssc0_rx: ssc0_rx-0 { | ||
302 | atmel,pins = | ||
303 | <3 3 0x1 0x0 /* PD3 periph A */ | ||
304 | 3 4 0x1 0x0 /* PD4 periph A */ | ||
305 | 3 5 0x1 0x0>; /* PD5 periph A */ | ||
306 | }; | ||
307 | }; | ||
308 | |||
309 | ssc1 { | ||
310 | pinctrl_ssc1_tx: ssc1_tx-0 { | ||
311 | atmel,pins = | ||
312 | <3 10 0x1 0x0 /* PD10 periph A */ | ||
313 | 3 11 0x1 0x0 /* PD11 periph A */ | ||
314 | 3 12 0x1 0x0>; /* PD12 periph A */ | ||
315 | }; | ||
316 | |||
317 | pinctrl_ssc1_rx: ssc1_rx-0 { | ||
318 | atmel,pins = | ||
319 | <3 13 0x1 0x0 /* PD13 periph A */ | ||
320 | 3 14 0x1 0x0 /* PD14 periph A */ | ||
321 | 3 15 0x1 0x0>; /* PD15 periph A */ | ||
322 | }; | ||
323 | }; | ||
324 | |||
293 | pioA: gpio@fffff200 { | 325 | pioA: gpio@fffff200 { |
294 | compatible = "atmel,at91rm9200-gpio"; | 326 | compatible = "atmel,at91rm9200-gpio"; |
295 | reg = <0xfffff200 0x200>; | 327 | reg = <0xfffff200 0x200>; |
@@ -425,6 +457,8 @@ | |||
425 | compatible = "atmel,at91sam9g45-ssc"; | 457 | compatible = "atmel,at91sam9g45-ssc"; |
426 | reg = <0xfff9c000 0x4000>; | 458 | reg = <0xfff9c000 0x4000>; |
427 | interrupts = <16 4 5>; | 459 | interrupts = <16 4 5>; |
460 | pinctrl-names = "default"; | ||
461 | pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; | ||
428 | status = "disabled"; | 462 | status = "disabled"; |
429 | }; | 463 | }; |
430 | 464 | ||
@@ -432,6 +466,8 @@ | |||
432 | compatible = "atmel,at91sam9g45-ssc"; | 466 | compatible = "atmel,at91sam9g45-ssc"; |
433 | reg = <0xfffa0000 0x4000>; | 467 | reg = <0xfffa0000 0x4000>; |
434 | interrupts = <17 4 5>; | 468 | interrupts = <17 4 5>; |
469 | pinctrl-names = "default"; | ||
470 | pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>; | ||
435 | status = "disabled"; | 471 | status = "disabled"; |
436 | }; | 472 | }; |
437 | 473 | ||
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi index e9efb34f4379..80e29c605d4e 100644 --- a/arch/arm/boot/dts/at91sam9n12.dtsi +++ b/arch/arm/boot/dts/at91sam9n12.dtsi | |||
@@ -28,6 +28,7 @@ | |||
28 | tcb1 = &tcb1; | 28 | tcb1 = &tcb1; |
29 | i2c0 = &i2c0; | 29 | i2c0 = &i2c0; |
30 | i2c1 = &i2c1; | 30 | i2c1 = &i2c1; |
31 | ssc0 = &ssc0; | ||
31 | }; | 32 | }; |
32 | cpus { | 33 | cpus { |
33 | cpu@0 { | 34 | cpu@0 { |
@@ -244,6 +245,22 @@ | |||
244 | }; | 245 | }; |
245 | }; | 246 | }; |
246 | 247 | ||
248 | ssc0 { | ||
249 | pinctrl_ssc0_tx: ssc0_tx-0 { | ||
250 | atmel,pins = | ||
251 | <0 24 0x2 0x0 /* PA24 periph B */ | ||
252 | 0 25 0x2 0x0 /* PA25 periph B */ | ||
253 | 0 26 0x2 0x0>; /* PA26 periph B */ | ||
254 | }; | ||
255 | |||
256 | pinctrl_ssc0_rx: ssc0_rx-0 { | ||
257 | atmel,pins = | ||
258 | <0 27 0x2 0x0 /* PA27 periph B */ | ||
259 | 0 28 0x2 0x0 /* PA28 periph B */ | ||
260 | 0 29 0x2 0x0>; /* PA29 periph B */ | ||
261 | }; | ||
262 | }; | ||
263 | |||
247 | pioA: gpio@fffff400 { | 264 | pioA: gpio@fffff400 { |
248 | compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; | 265 | compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; |
249 | reg = <0xfffff400 0x200>; | 266 | reg = <0xfffff400 0x200>; |
@@ -294,6 +311,15 @@ | |||
294 | status = "disabled"; | 311 | status = "disabled"; |
295 | }; | 312 | }; |
296 | 313 | ||
314 | ssc0: ssc@f0010000 { | ||
315 | compatible = "atmel,at91sam9g45-ssc"; | ||
316 | reg = <0xf0010000 0x4000>; | ||
317 | interrupts = <28 4 5>; | ||
318 | pinctrl-names = "default"; | ||
319 | pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; | ||
320 | status = "disabled"; | ||
321 | }; | ||
322 | |||
297 | usart0: serial@f801c000 { | 323 | usart0: serial@f801c000 { |
298 | compatible = "atmel,at91sam9260-usart"; | 324 | compatible = "atmel,at91sam9260-usart"; |
299 | reg = <0xf801c000 0x4000>; | 325 | reg = <0xf801c000 0x4000>; |
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi index 40ac3a4eb1ab..8ecca6948d81 100644 --- a/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/arch/arm/boot/dts/at91sam9x5.dtsi | |||
@@ -88,13 +88,6 @@ | |||
88 | interrupts = <1 4 7>; | 88 | interrupts = <1 4 7>; |
89 | }; | 89 | }; |
90 | 90 | ||
91 | ssc0: ssc@f0010000 { | ||
92 | compatible = "atmel,at91sam9g45-ssc"; | ||
93 | reg = <0xf0010000 0x4000>; | ||
94 | interrupts = <28 4 5>; | ||
95 | status = "disabled"; | ||
96 | }; | ||
97 | |||
98 | tcb0: timer@f8008000 { | 91 | tcb0: timer@f8008000 { |
99 | compatible = "atmel,at91sam9x5-tcb"; | 92 | compatible = "atmel,at91sam9x5-tcb"; |
100 | reg = <0xf8008000 0x100>; | 93 | reg = <0xf8008000 0x100>; |
@@ -150,6 +143,11 @@ | |||
150 | atmel,pins = | 143 | atmel,pins = |
151 | <0 3 0x1 0x0>; /* PA3 periph A */ | 144 | <0 3 0x1 0x0>; /* PA3 periph A */ |
152 | }; | 145 | }; |
146 | |||
147 | pinctrl_usart0_sck: usart0_sck-0 { | ||
148 | atmel,pins = | ||
149 | <0 4 0x1 0x0>; /* PA4 periph A */ | ||
150 | }; | ||
153 | }; | 151 | }; |
154 | 152 | ||
155 | usart1 { | 153 | usart1 { |
@@ -161,12 +159,17 @@ | |||
161 | 159 | ||
162 | pinctrl_usart1_rts: usart1_rts-0 { | 160 | pinctrl_usart1_rts: usart1_rts-0 { |
163 | atmel,pins = | 161 | atmel,pins = |
164 | <3 27 0x3 0x0>; /* PC27 periph C */ | 162 | <2 27 0x3 0x0>; /* PC27 periph C */ |
165 | }; | 163 | }; |
166 | 164 | ||
167 | pinctrl_usart1_cts: usart1_cts-0 { | 165 | pinctrl_usart1_cts: usart1_cts-0 { |
168 | atmel,pins = | 166 | atmel,pins = |
169 | <3 28 0x3 0x0>; /* PC28 periph C */ | 167 | <2 28 0x3 0x0>; /* PC28 periph C */ |
168 | }; | ||
169 | |||
170 | pinctrl_usart1_sck: usart1_sck-0 { | ||
171 | atmel,pins = | ||
172 | <2 28 0x3 0x0>; /* PC29 periph C */ | ||
170 | }; | 173 | }; |
171 | }; | 174 | }; |
172 | 175 | ||
@@ -179,46 +182,56 @@ | |||
179 | 182 | ||
180 | pinctrl_uart2_rts: uart2_rts-0 { | 183 | pinctrl_uart2_rts: uart2_rts-0 { |
181 | atmel,pins = | 184 | atmel,pins = |
182 | <0 0 0x2 0x0>; /* PB0 periph B */ | 185 | <1 0 0x2 0x0>; /* PB0 periph B */ |
183 | }; | 186 | }; |
184 | 187 | ||
185 | pinctrl_uart2_cts: uart2_cts-0 { | 188 | pinctrl_uart2_cts: uart2_cts-0 { |
186 | atmel,pins = | 189 | atmel,pins = |
187 | <0 1 0x2 0x0>; /* PB1 periph B */ | 190 | <1 1 0x2 0x0>; /* PB1 periph B */ |
191 | }; | ||
192 | |||
193 | pinctrl_usart2_sck: usart2_sck-0 { | ||
194 | atmel,pins = | ||
195 | <1 2 0x2 0x0>; /* PB2 periph B */ | ||
188 | }; | 196 | }; |
189 | }; | 197 | }; |
190 | 198 | ||
191 | usart3 { | 199 | usart3 { |
192 | pinctrl_uart3: usart3-0 { | 200 | pinctrl_uart3: usart3-0 { |
193 | atmel,pins = | 201 | atmel,pins = |
194 | <3 23 0x2 0x1 /* PC22 periph B with pullup */ | 202 | <2 23 0x2 0x1 /* PC22 periph B with pullup */ |
195 | 3 23 0x2 0x0>; /* PC23 periph B */ | 203 | 2 23 0x2 0x0>; /* PC23 periph B */ |
196 | }; | 204 | }; |
197 | 205 | ||
198 | pinctrl_usart3_rts: usart3_rts-0 { | 206 | pinctrl_usart3_rts: usart3_rts-0 { |
199 | atmel,pins = | 207 | atmel,pins = |
200 | <3 24 0x2 0x0>; /* PC24 periph B */ | 208 | <2 24 0x2 0x0>; /* PC24 periph B */ |
201 | }; | 209 | }; |
202 | 210 | ||
203 | pinctrl_usart3_cts: usart3_cts-0 { | 211 | pinctrl_usart3_cts: usart3_cts-0 { |
204 | atmel,pins = | 212 | atmel,pins = |
205 | <3 25 0x2 0x0>; /* PC25 periph B */ | 213 | <2 25 0x2 0x0>; /* PC25 periph B */ |
214 | }; | ||
215 | |||
216 | pinctrl_usart3_sck: usart3_sck-0 { | ||
217 | atmel,pins = | ||
218 | <2 26 0x2 0x0>; /* PC26 periph B */ | ||
206 | }; | 219 | }; |
207 | }; | 220 | }; |
208 | 221 | ||
209 | uart0 { | 222 | uart0 { |
210 | pinctrl_uart0: uart0-0 { | 223 | pinctrl_uart0: uart0-0 { |
211 | atmel,pins = | 224 | atmel,pins = |
212 | <3 8 0x3 0x0 /* PC8 periph C */ | 225 | <2 8 0x3 0x0 /* PC8 periph C */ |
213 | 3 9 0x3 0x1>; /* PC9 periph C with pullup */ | 226 | 2 9 0x3 0x1>; /* PC9 periph C with pullup */ |
214 | }; | 227 | }; |
215 | }; | 228 | }; |
216 | 229 | ||
217 | uart1 { | 230 | uart1 { |
218 | pinctrl_uart1: uart1-0 { | 231 | pinctrl_uart1: uart1-0 { |
219 | atmel,pins = | 232 | atmel,pins = |
220 | <3 16 0x3 0x0 /* PC16 periph C */ | 233 | <2 16 0x3 0x0 /* PC16 periph C */ |
221 | 3 17 0x3 0x1>; /* PC17 periph C with pullup */ | 234 | 2 17 0x3 0x1>; /* PC17 periph C with pullup */ |
222 | }; | 235 | }; |
223 | }; | 236 | }; |
224 | 237 | ||
@@ -247,14 +260,14 @@ | |||
247 | 260 | ||
248 | pinctrl_macb0_rmii_mii: macb0_rmii_mii-0 { | 261 | pinctrl_macb0_rmii_mii: macb0_rmii_mii-0 { |
249 | atmel,pins = | 262 | atmel,pins = |
250 | <1 8 0x1 0x0 /* PA8 periph A */ | 263 | <1 8 0x1 0x0 /* PB8 periph A */ |
251 | 1 11 0x1 0x0 /* PA11 periph A */ | 264 | 1 11 0x1 0x0 /* PB11 periph A */ |
252 | 1 12 0x1 0x0 /* PA12 periph A */ | 265 | 1 12 0x1 0x0 /* PB12 periph A */ |
253 | 1 13 0x1 0x0 /* PA13 periph A */ | 266 | 1 13 0x1 0x0 /* PB13 periph A */ |
254 | 1 14 0x1 0x0 /* PA14 periph A */ | 267 | 1 14 0x1 0x0 /* PB14 periph A */ |
255 | 1 15 0x1 0x0 /* PA15 periph A */ | 268 | 1 15 0x1 0x0 /* PB15 periph A */ |
256 | 1 16 0x1 0x0 /* PA16 periph A */ | 269 | 1 16 0x1 0x0 /* PB16 periph A */ |
257 | 1 17 0x1 0x0>; /* PA17 periph A */ | 270 | 1 17 0x1 0x0>; /* PB17 periph A */ |
258 | }; | 271 | }; |
259 | }; | 272 | }; |
260 | 273 | ||
@@ -290,6 +303,22 @@ | |||
290 | }; | 303 | }; |
291 | }; | 304 | }; |
292 | 305 | ||
306 | ssc0 { | ||
307 | pinctrl_ssc0_tx: ssc0_tx-0 { | ||
308 | atmel,pins = | ||
309 | <0 24 0x2 0x0 /* PA24 periph B */ | ||
310 | 0 25 0x2 0x0 /* PA25 periph B */ | ||
311 | 0 26 0x2 0x0>; /* PA26 periph B */ | ||
312 | }; | ||
313 | |||
314 | pinctrl_ssc0_rx: ssc0_rx-0 { | ||
315 | atmel,pins = | ||
316 | <0 27 0x2 0x0 /* PA27 periph B */ | ||
317 | 0 28 0x2 0x0 /* PA28 periph B */ | ||
318 | 0 29 0x2 0x0>; /* PA29 periph B */ | ||
319 | }; | ||
320 | }; | ||
321 | |||
293 | pioA: gpio@fffff400 { | 322 | pioA: gpio@fffff400 { |
294 | compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; | 323 | compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio"; |
295 | reg = <0xfffff400 0x200>; | 324 | reg = <0xfffff400 0x200>; |
@@ -333,6 +362,15 @@ | |||
333 | }; | 362 | }; |
334 | }; | 363 | }; |
335 | 364 | ||
365 | ssc0: ssc@f0010000 { | ||
366 | compatible = "atmel,at91sam9g45-ssc"; | ||
367 | reg = <0xf0010000 0x4000>; | ||
368 | interrupts = <28 4 5>; | ||
369 | pinctrl-names = "default"; | ||
370 | pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; | ||
371 | status = "disabled"; | ||
372 | }; | ||
373 | |||
336 | mmc0: mmc@f0008000 { | 374 | mmc0: mmc@f0008000 { |
337 | compatible = "atmel,hsmci"; | 375 | compatible = "atmel,hsmci"; |
338 | reg = <0xf0008000 0x600>; | 376 | reg = <0xf0008000 0x600>; |
diff --git a/arch/arm/boot/dts/cros5250-common.dtsi b/arch/arm/boot/dts/cros5250-common.dtsi index fddd17417433..46c098017036 100644 --- a/arch/arm/boot/dts/cros5250-common.dtsi +++ b/arch/arm/boot/dts/cros5250-common.dtsi | |||
@@ -96,8 +96,8 @@ | |||
96 | fifo-depth = <0x80>; | 96 | fifo-depth = <0x80>; |
97 | card-detect-delay = <200>; | 97 | card-detect-delay = <200>; |
98 | samsung,dw-mshc-ciu-div = <3>; | 98 | samsung,dw-mshc-ciu-div = <3>; |
99 | samsung,dw-mshc-sdr-timing = <2 3 3>; | 99 | samsung,dw-mshc-sdr-timing = <2 3>; |
100 | samsung,dw-mshc-ddr-timing = <1 2 3>; | 100 | samsung,dw-mshc-ddr-timing = <1 2>; |
101 | 101 | ||
102 | slot@0 { | 102 | slot@0 { |
103 | reg = <0>; | 103 | reg = <0>; |
@@ -120,8 +120,8 @@ | |||
120 | fifo-depth = <0x80>; | 120 | fifo-depth = <0x80>; |
121 | card-detect-delay = <200>; | 121 | card-detect-delay = <200>; |
122 | samsung,dw-mshc-ciu-div = <3>; | 122 | samsung,dw-mshc-ciu-div = <3>; |
123 | samsung,dw-mshc-sdr-timing = <2 3 3>; | 123 | samsung,dw-mshc-sdr-timing = <2 3>; |
124 | samsung,dw-mshc-ddr-timing = <1 2 3>; | 124 | samsung,dw-mshc-ddr-timing = <1 2>; |
125 | 125 | ||
126 | slot@0 { | 126 | slot@0 { |
127 | reg = <0>; | 127 | reg = <0>; |
@@ -141,8 +141,8 @@ | |||
141 | fifo-depth = <0x80>; | 141 | fifo-depth = <0x80>; |
142 | card-detect-delay = <200>; | 142 | card-detect-delay = <200>; |
143 | samsung,dw-mshc-ciu-div = <3>; | 143 | samsung,dw-mshc-ciu-div = <3>; |
144 | samsung,dw-mshc-sdr-timing = <2 3 3>; | 144 | samsung,dw-mshc-sdr-timing = <2 3>; |
145 | samsung,dw-mshc-ddr-timing = <1 2 3>; | 145 | samsung,dw-mshc-ddr-timing = <1 2>; |
146 | 146 | ||
147 | slot@0 { | 147 | slot@0 { |
148 | reg = <0>; | 148 | reg = <0>; |
diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi index 2efd9c891bc9..63f2fbcfe819 100644 --- a/arch/arm/boot/dts/dbx5x0.dtsi +++ b/arch/arm/boot/dts/dbx5x0.dtsi | |||
@@ -170,7 +170,9 @@ | |||
170 | gpio-bank = <8>; | 170 | gpio-bank = <8>; |
171 | }; | 171 | }; |
172 | 172 | ||
173 | pinctrl { | 173 | pinctrl@80157000 { |
174 | // This is actually the PRCMU base address | ||
175 | reg = <0x80157000 0x2000>; | ||
174 | compatible = "stericsson,nmk_pinctrl"; | 176 | compatible = "stericsson,nmk_pinctrl"; |
175 | }; | 177 | }; |
176 | 178 | ||
diff --git a/arch/arm/boot/dts/dove-cubox.dts b/arch/arm/boot/dts/dove-cubox.dts index fed7d3f9f431..cdee96fca6e2 100644 --- a/arch/arm/boot/dts/dove-cubox.dts +++ b/arch/arm/boot/dts/dove-cubox.dts | |||
@@ -26,10 +26,15 @@ | |||
26 | }; | 26 | }; |
27 | 27 | ||
28 | &uart0 { status = "okay"; }; | 28 | &uart0 { status = "okay"; }; |
29 | &sdio0 { status = "okay"; }; | ||
30 | &sata0 { status = "okay"; }; | 29 | &sata0 { status = "okay"; }; |
31 | &i2c0 { status = "okay"; }; | 30 | &i2c0 { status = "okay"; }; |
32 | 31 | ||
32 | &sdio0 { | ||
33 | status = "okay"; | ||
34 | /* sdio0 card detect is connected to wrong pin on CuBox */ | ||
35 | cd-gpios = <&gpio0 12 1>; | ||
36 | }; | ||
37 | |||
33 | &spi0 { | 38 | &spi0 { |
34 | status = "okay"; | 39 | status = "okay"; |
35 | 40 | ||
@@ -42,9 +47,14 @@ | |||
42 | }; | 47 | }; |
43 | 48 | ||
44 | &pinctrl { | 49 | &pinctrl { |
45 | pinctrl-0 = <&pmx_gpio_18>; | 50 | pinctrl-0 = <&pmx_gpio_12 &pmx_gpio_18>; |
46 | pinctrl-names = "default"; | 51 | pinctrl-names = "default"; |
47 | 52 | ||
53 | pmx_gpio_12: pmx-gpio-12 { | ||
54 | marvell,pins = "mpp12"; | ||
55 | marvell,function = "gpio"; | ||
56 | }; | ||
57 | |||
48 | pmx_gpio_18: pmx-gpio-18 { | 58 | pmx_gpio_18: pmx-gpio-18 { |
49 | marvell,pins = "mpp18"; | 59 | marvell,pins = "mpp18"; |
50 | marvell,function = "gpio"; | 60 | marvell,function = "gpio"; |
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi index f3f7e9d8adca..42eac1ff3cc8 100644 --- a/arch/arm/boot/dts/dove.dtsi +++ b/arch/arm/boot/dts/dove.dtsi | |||
@@ -117,6 +117,7 @@ | |||
117 | pinctrl: pinctrl@d0200 { | 117 | pinctrl: pinctrl@d0200 { |
118 | compatible = "marvell,dove-pinctrl"; | 118 | compatible = "marvell,dove-pinctrl"; |
119 | reg = <0xd0200 0x10>; | 119 | reg = <0xd0200 0x10>; |
120 | clocks = <&gate_clk 22>; | ||
120 | }; | 121 | }; |
121 | 122 | ||
122 | spi0: spi@10600 { | 123 | spi0: spi@10600 { |
diff --git a/arch/arm/boot/dts/ecx-2000.dts b/arch/arm/boot/dts/ecx-2000.dts index 46477ac1de99..139b40cc3a23 100644 --- a/arch/arm/boot/dts/ecx-2000.dts +++ b/arch/arm/boot/dts/ecx-2000.dts | |||
@@ -32,6 +32,7 @@ | |||
32 | 32 | ||
33 | cpu@0 { | 33 | cpu@0 { |
34 | compatible = "arm,cortex-a15"; | 34 | compatible = "arm,cortex-a15"; |
35 | device_type = "cpu"; | ||
35 | reg = <0>; | 36 | reg = <0>; |
36 | clocks = <&a9pll>; | 37 | clocks = <&a9pll>; |
37 | clock-names = "cpu"; | 38 | clock-names = "cpu"; |
@@ -39,6 +40,7 @@ | |||
39 | 40 | ||
40 | cpu@1 { | 41 | cpu@1 { |
41 | compatible = "arm,cortex-a15"; | 42 | compatible = "arm,cortex-a15"; |
43 | device_type = "cpu"; | ||
42 | reg = <1>; | 44 | reg = <1>; |
43 | clocks = <&a9pll>; | 45 | clocks = <&a9pll>; |
44 | clock-names = "cpu"; | 46 | clock-names = "cpu"; |
@@ -46,6 +48,7 @@ | |||
46 | 48 | ||
47 | cpu@2 { | 49 | cpu@2 { |
48 | compatible = "arm,cortex-a15"; | 50 | compatible = "arm,cortex-a15"; |
51 | device_type = "cpu"; | ||
49 | reg = <2>; | 52 | reg = <2>; |
50 | clocks = <&a9pll>; | 53 | clocks = <&a9pll>; |
51 | clock-names = "cpu"; | 54 | clock-names = "cpu"; |
@@ -53,6 +56,7 @@ | |||
53 | 56 | ||
54 | cpu@3 { | 57 | cpu@3 { |
55 | compatible = "arm,cortex-a15"; | 58 | compatible = "arm,cortex-a15"; |
59 | device_type = "cpu"; | ||
56 | reg = <3>; | 60 | reg = <3>; |
57 | clocks = <&a9pll>; | 61 | clocks = <&a9pll>; |
58 | clock-names = "cpu"; | 62 | clock-names = "cpu"; |
diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts b/arch/arm/boot/dts/exynos4210-smdkv310.dts index 9b23a8255e39..f63490707f3a 100644 --- a/arch/arm/boot/dts/exynos4210-smdkv310.dts +++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts | |||
@@ -26,7 +26,7 @@ | |||
26 | }; | 26 | }; |
27 | 27 | ||
28 | chosen { | 28 | chosen { |
29 | bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc"; | 29 | bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc"; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | sdhci@12530000 { | 32 | sdhci@12530000 { |
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index 942d5761ca97..e05b18f3c33d 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts | |||
@@ -115,8 +115,8 @@ | |||
115 | fifo-depth = <0x80>; | 115 | fifo-depth = <0x80>; |
116 | card-detect-delay = <200>; | 116 | card-detect-delay = <200>; |
117 | samsung,dw-mshc-ciu-div = <3>; | 117 | samsung,dw-mshc-ciu-div = <3>; |
118 | samsung,dw-mshc-sdr-timing = <2 3 3>; | 118 | samsung,dw-mshc-sdr-timing = <2 3>; |
119 | samsung,dw-mshc-ddr-timing = <1 2 3>; | 119 | samsung,dw-mshc-ddr-timing = <1 2>; |
120 | 120 | ||
121 | slot@0 { | 121 | slot@0 { |
122 | reg = <0>; | 122 | reg = <0>; |
@@ -139,8 +139,8 @@ | |||
139 | fifo-depth = <0x80>; | 139 | fifo-depth = <0x80>; |
140 | card-detect-delay = <200>; | 140 | card-detect-delay = <200>; |
141 | samsung,dw-mshc-ciu-div = <3>; | 141 | samsung,dw-mshc-ciu-div = <3>; |
142 | samsung,dw-mshc-sdr-timing = <2 3 3>; | 142 | samsung,dw-mshc-sdr-timing = <2 3>; |
143 | samsung,dw-mshc-ddr-timing = <1 2 3>; | 143 | samsung,dw-mshc-ddr-timing = <1 2>; |
144 | 144 | ||
145 | slot@0 { | 145 | slot@0 { |
146 | reg = <0>; | 146 | reg = <0>; |
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index 2e3b6efaf1a2..3acf594ea60b 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi | |||
@@ -574,7 +574,7 @@ | |||
574 | 574 | ||
575 | hdmi { | 575 | hdmi { |
576 | compatible = "samsung,exynos5-hdmi"; | 576 | compatible = "samsung,exynos5-hdmi"; |
577 | reg = <0x14530000 0x100000>; | 577 | reg = <0x14530000 0x70000>; |
578 | interrupts = <0 95 0>; | 578 | interrupts = <0 95 0>; |
579 | }; | 579 | }; |
580 | 580 | ||
diff --git a/arch/arm/boot/dts/exynos5440-ssdk5440.dts b/arch/arm/boot/dts/exynos5440-ssdk5440.dts index 921c83cf694f..81e2c964a900 100644 --- a/arch/arm/boot/dts/exynos5440-ssdk5440.dts +++ b/arch/arm/boot/dts/exynos5440-ssdk5440.dts | |||
@@ -21,7 +21,7 @@ | |||
21 | }; | 21 | }; |
22 | 22 | ||
23 | chosen { | 23 | chosen { |
24 | bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x81000000,8M console=ttySAC2,115200 init=/linuxrc"; | 24 | bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x81000000,8M console=ttySAC0,115200 init=/linuxrc"; |
25 | }; | 25 | }; |
26 | 26 | ||
27 | spi { | 27 | spi { |
diff --git a/arch/arm/boot/dts/highbank.dts b/arch/arm/boot/dts/highbank.dts index a9ae5d32e80d..5927a8df5625 100644 --- a/arch/arm/boot/dts/highbank.dts +++ b/arch/arm/boot/dts/highbank.dts | |||
@@ -30,33 +30,37 @@ | |||
30 | #address-cells = <1>; | 30 | #address-cells = <1>; |
31 | #size-cells = <0>; | 31 | #size-cells = <0>; |
32 | 32 | ||
33 | cpu@0 { | 33 | cpu@900 { |
34 | compatible = "arm,cortex-a9"; | 34 | compatible = "arm,cortex-a9"; |
35 | reg = <0>; | 35 | device_type = "cpu"; |
36 | reg = <0x900>; | ||
36 | next-level-cache = <&L2>; | 37 | next-level-cache = <&L2>; |
37 | clocks = <&a9pll>; | 38 | clocks = <&a9pll>; |
38 | clock-names = "cpu"; | 39 | clock-names = "cpu"; |
39 | }; | 40 | }; |
40 | 41 | ||
41 | cpu@1 { | 42 | cpu@901 { |
42 | compatible = "arm,cortex-a9"; | 43 | compatible = "arm,cortex-a9"; |
43 | reg = <1>; | 44 | device_type = "cpu"; |
45 | reg = <0x901>; | ||
44 | next-level-cache = <&L2>; | 46 | next-level-cache = <&L2>; |
45 | clocks = <&a9pll>; | 47 | clocks = <&a9pll>; |
46 | clock-names = "cpu"; | 48 | clock-names = "cpu"; |
47 | }; | 49 | }; |
48 | 50 | ||
49 | cpu@2 { | 51 | cpu@902 { |
50 | compatible = "arm,cortex-a9"; | 52 | compatible = "arm,cortex-a9"; |
51 | reg = <2>; | 53 | device_type = "cpu"; |
54 | reg = <0x902>; | ||
52 | next-level-cache = <&L2>; | 55 | next-level-cache = <&L2>; |
53 | clocks = <&a9pll>; | 56 | clocks = <&a9pll>; |
54 | clock-names = "cpu"; | 57 | clock-names = "cpu"; |
55 | }; | 58 | }; |
56 | 59 | ||
57 | cpu@3 { | 60 | cpu@903 { |
58 | compatible = "arm,cortex-a9"; | 61 | compatible = "arm,cortex-a9"; |
59 | reg = <3>; | 62 | device_type = "cpu"; |
63 | reg = <0x903>; | ||
60 | next-level-cache = <&L2>; | 64 | next-level-cache = <&L2>; |
61 | clocks = <&a9pll>; | 65 | clocks = <&a9pll>; |
62 | clock-names = "cpu"; | 66 | clock-names = "cpu"; |
diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts index 7c43b8e70b9f..e7484e4ea659 100644 --- a/arch/arm/boot/dts/imx23-olinuxino.dts +++ b/arch/arm/boot/dts/imx23-olinuxino.dts | |||
@@ -39,17 +39,17 @@ | |||
39 | hog_pins_a: hog@0 { | 39 | hog_pins_a: hog@0 { |
40 | reg = <0>; | 40 | reg = <0>; |
41 | fsl,pinmux-ids = < | 41 | fsl,pinmux-ids = < |
42 | 0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */ | 42 | 0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */ |
43 | >; | 43 | >; |
44 | fsl,drive-strength = <0>; | 44 | fsl,drive-strength = <0>; |
45 | fsl,voltage = <1>; | 45 | fsl,voltage = <1>; |
46 | fsl,pull-up = <0>; | 46 | fsl,pull-up = <0>; |
47 | }; | 47 | }; |
48 | 48 | ||
49 | led_pin_gpio0_17: led_gpio0_17@0 { | 49 | led_pin_gpio2_1: led_gpio2_1@0 { |
50 | reg = <0>; | 50 | reg = <0>; |
51 | fsl,pinmux-ids = < | 51 | fsl,pinmux-ids = < |
52 | 0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */ | 52 | 0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */ |
53 | >; | 53 | >; |
54 | fsl,drive-strength = <0>; | 54 | fsl,drive-strength = <0>; |
55 | fsl,voltage = <1>; | 55 | fsl,voltage = <1>; |
@@ -110,7 +110,7 @@ | |||
110 | leds { | 110 | leds { |
111 | compatible = "gpio-leds"; | 111 | compatible = "gpio-leds"; |
112 | pinctrl-names = "default"; | 112 | pinctrl-names = "default"; |
113 | pinctrl-0 = <&led_pin_gpio0_17>; | 113 | pinctrl-0 = <&led_pin_gpio2_1>; |
114 | 114 | ||
115 | user { | 115 | user { |
116 | label = "green"; | 116 | label = "green"; |
diff --git a/arch/arm/boot/dts/imx31-bug.dts b/arch/arm/boot/dts/imx31-bug.dts index 24731cb78e8e..7f67402328d3 100644 --- a/arch/arm/boot/dts/imx31-bug.dts +++ b/arch/arm/boot/dts/imx31-bug.dts | |||
@@ -14,7 +14,7 @@ | |||
14 | 14 | ||
15 | / { | 15 | / { |
16 | model = "Buglabs i.MX31 Bug 1.x"; | 16 | model = "Buglabs i.MX31 Bug 1.x"; |
17 | compatible = "fsl,imx31-bug", "fsl,imx31"; | 17 | compatible = "buglabs,imx31-bug", "fsl,imx31"; |
18 | 18 | ||
19 | memory { | 19 | memory { |
20 | reg = <0x80000000 0x8000000>; /* 128M */ | 20 | reg = <0x80000000 0x8000000>; /* 128M */ |
diff --git a/arch/arm/boot/dts/imx53.dtsi b/arch/arm/boot/dts/imx53.dtsi index 552aed4ff982..edc3f1eb6699 100644 --- a/arch/arm/boot/dts/imx53.dtsi +++ b/arch/arm/boot/dts/imx53.dtsi | |||
@@ -492,7 +492,7 @@ | |||
492 | compatible = "fsl,imx53-flexcan", "fsl,p1010-flexcan"; | 492 | compatible = "fsl,imx53-flexcan", "fsl,p1010-flexcan"; |
493 | reg = <0x53fcc000 0x4000>; | 493 | reg = <0x53fcc000 0x4000>; |
494 | interrupts = <83>; | 494 | interrupts = <83>; |
495 | clocks = <&clks 158>, <&clks 157>; | 495 | clocks = <&clks 87>, <&clks 86>; |
496 | clock-names = "ipg", "per"; | 496 | clock-names = "ipg", "per"; |
497 | status = "disabled"; | 497 | status = "disabled"; |
498 | }; | 498 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-6282.dtsi b/arch/arm/boot/dts/kirkwood-6282.dtsi index 9ae2004d5675..4ccea2130a6c 100644 --- a/arch/arm/boot/dts/kirkwood-6282.dtsi +++ b/arch/arm/boot/dts/kirkwood-6282.dtsi | |||
@@ -39,6 +39,7 @@ | |||
39 | #size-cells = <0>; | 39 | #size-cells = <0>; |
40 | interrupts = <32>; | 40 | interrupts = <32>; |
41 | clock-frequency = <100000>; | 41 | clock-frequency = <100000>; |
42 | clocks = <&gate_clk 7>; | ||
42 | status = "disabled"; | 43 | status = "disabled"; |
43 | }; | 44 | }; |
44 | }; | 45 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-ns2-common.dtsi b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi index 9bc6785ad228..77d21abfcdf7 100644 --- a/arch/arm/boot/dts/kirkwood-ns2-common.dtsi +++ b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi | |||
@@ -1,4 +1,5 @@ | |||
1 | /include/ "kirkwood.dtsi" | 1 | /include/ "kirkwood.dtsi" |
2 | /include/ "kirkwood-6281.dtsi" | ||
2 | 3 | ||
3 | / { | 4 | / { |
4 | chosen { | 5 | chosen { |
@@ -6,6 +7,21 @@ | |||
6 | }; | 7 | }; |
7 | 8 | ||
8 | ocp@f1000000 { | 9 | ocp@f1000000 { |
10 | pinctrl: pinctrl@10000 { | ||
11 | pinctrl-0 = < &pmx_spi &pmx_twsi0 &pmx_uart0 | ||
12 | &pmx_ns2_sata0 &pmx_ns2_sata1>; | ||
13 | pinctrl-names = "default"; | ||
14 | |||
15 | pmx_ns2_sata0: pmx-ns2-sata0 { | ||
16 | marvell,pins = "mpp21"; | ||
17 | marvell,function = "sata0"; | ||
18 | }; | ||
19 | pmx_ns2_sata1: pmx-ns2-sata1 { | ||
20 | marvell,pins = "mpp20"; | ||
21 | marvell,function = "sata1"; | ||
22 | }; | ||
23 | }; | ||
24 | |||
9 | serial@12000 { | 25 | serial@12000 { |
10 | clock-frequency = <166666667>; | 26 | clock-frequency = <166666667>; |
11 | status = "okay"; | 27 | status = "okay"; |
diff --git a/arch/arm/boot/dts/kirkwood-topkick.dts b/arch/arm/boot/dts/kirkwood-topkick.dts index c0de5a7f660d..cd15452a52a6 100644 --- a/arch/arm/boot/dts/kirkwood-topkick.dts +++ b/arch/arm/boot/dts/kirkwood-topkick.dts | |||
@@ -82,4 +82,21 @@ | |||
82 | gpios = <&gpio1 16 1>; | 82 | gpios = <&gpio1 16 1>; |
83 | }; | 83 | }; |
84 | }; | 84 | }; |
85 | regulators { | ||
86 | compatible = "simple-bus"; | ||
87 | #address-cells = <1>; | ||
88 | #size-cells = <0>; | ||
89 | |||
90 | sata0_power: regulator@1 { | ||
91 | compatible = "regulator-fixed"; | ||
92 | reg = <1>; | ||
93 | regulator-name = "SATA0 Power"; | ||
94 | regulator-min-microvolt = <5000000>; | ||
95 | regulator-max-microvolt = <5000000>; | ||
96 | enable-active-high; | ||
97 | regulator-always-on; | ||
98 | regulator-boot-on; | ||
99 | gpio = <&gpio1 4 0>; | ||
100 | }; | ||
101 | }; | ||
85 | }; | 102 | }; |
diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi index 7735cee4a9c6..d6ab442b7011 100644 --- a/arch/arm/boot/dts/kirkwood.dtsi +++ b/arch/arm/boot/dts/kirkwood.dtsi | |||
@@ -36,6 +36,7 @@ | |||
36 | reg = <0x10100 0x40>; | 36 | reg = <0x10100 0x40>; |
37 | ngpios = <32>; | 37 | ngpios = <32>; |
38 | interrupt-controller; | 38 | interrupt-controller; |
39 | #interrupt-cells = <2>; | ||
39 | interrupts = <35>, <36>, <37>, <38>; | 40 | interrupts = <35>, <36>, <37>, <38>; |
40 | }; | 41 | }; |
41 | 42 | ||
@@ -46,6 +47,7 @@ | |||
46 | reg = <0x10140 0x40>; | 47 | reg = <0x10140 0x40>; |
47 | ngpios = <18>; | 48 | ngpios = <18>; |
48 | interrupt-controller; | 49 | interrupt-controller; |
50 | #interrupt-cells = <2>; | ||
49 | interrupts = <39>, <40>, <41>; | 51 | interrupts = <39>, <40>, <41>; |
50 | }; | 52 | }; |
51 | 53 | ||
@@ -144,6 +146,7 @@ | |||
144 | compatible = "marvell,orion-ehci"; | 146 | compatible = "marvell,orion-ehci"; |
145 | reg = <0x50000 0x1000>; | 147 | reg = <0x50000 0x1000>; |
146 | interrupts = <19>; | 148 | interrupts = <19>; |
149 | clocks = <&gate_clk 3>; | ||
147 | status = "okay"; | 150 | status = "okay"; |
148 | }; | 151 | }; |
149 | 152 | ||
diff --git a/arch/arm/boot/dts/kizbox.dts b/arch/arm/boot/dts/kizbox.dts index e8814fe0e277..b4dc3ed9a3ec 100644 --- a/arch/arm/boot/dts/kizbox.dts +++ b/arch/arm/boot/dts/kizbox.dts | |||
@@ -48,6 +48,8 @@ | |||
48 | 48 | ||
49 | macb0: ethernet@fffc4000 { | 49 | macb0: ethernet@fffc4000 { |
50 | phy-mode = "mii"; | 50 | phy-mode = "mii"; |
51 | pinctrl-0 = <&pinctrl_macb_rmii | ||
52 | &pinctrl_macb_rmii_mii_alt>; | ||
51 | status = "okay"; | 53 | status = "okay"; |
52 | }; | 54 | }; |
53 | 55 | ||
diff --git a/arch/arm/boot/dts/sunxi.dtsi b/arch/arm/boot/dts/sunxi.dtsi index 8bbc2bfef221..8b36abea9f2e 100644 --- a/arch/arm/boot/dts/sunxi.dtsi +++ b/arch/arm/boot/dts/sunxi.dtsi | |||
@@ -60,19 +60,21 @@ | |||
60 | }; | 60 | }; |
61 | 61 | ||
62 | uart0: uart@01c28000 { | 62 | uart0: uart@01c28000 { |
63 | compatible = "ns8250"; | 63 | compatible = "snps,dw-apb-uart"; |
64 | reg = <0x01c28000 0x400>; | 64 | reg = <0x01c28000 0x400>; |
65 | interrupts = <1>; | 65 | interrupts = <1>; |
66 | reg-shift = <2>; | 66 | reg-shift = <2>; |
67 | reg-io-width = <4>; | ||
67 | clock-frequency = <24000000>; | 68 | clock-frequency = <24000000>; |
68 | status = "disabled"; | 69 | status = "disabled"; |
69 | }; | 70 | }; |
70 | 71 | ||
71 | uart1: uart@01c28400 { | 72 | uart1: uart@01c28400 { |
72 | compatible = "ns8250"; | 73 | compatible = "snps,dw-apb-uart"; |
73 | reg = <0x01c28400 0x400>; | 74 | reg = <0x01c28400 0x400>; |
74 | interrupts = <2>; | 75 | interrupts = <2>; |
75 | reg-shift = <2>; | 76 | reg-shift = <2>; |
77 | reg-io-width = <4>; | ||
76 | clock-frequency = <24000000>; | 78 | clock-frequency = <24000000>; |
77 | status = "disabled"; | 79 | status = "disabled"; |
78 | }; | 80 | }; |
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts index 1fc405a9ecfb..cf8071ad22d5 100644 --- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts +++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | |||
@@ -45,7 +45,6 @@ | |||
45 | reg = <1>; | 45 | reg = <1>; |
46 | }; | 46 | }; |
47 | 47 | ||
48 | /* A7s disabled till big.LITTLE patches are available... | ||
49 | cpu2: cpu@2 { | 48 | cpu2: cpu@2 { |
50 | device_type = "cpu"; | 49 | device_type = "cpu"; |
51 | compatible = "arm,cortex-a7"; | 50 | compatible = "arm,cortex-a7"; |
@@ -63,7 +62,6 @@ | |||
63 | compatible = "arm,cortex-a7"; | 62 | compatible = "arm,cortex-a7"; |
64 | reg = <0x102>; | 63 | reg = <0x102>; |
65 | }; | 64 | }; |
66 | */ | ||
67 | }; | 65 | }; |
68 | 66 | ||
69 | memory@80000000 { | 67 | memory@80000000 { |
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c index 9173d112ea01..e57d7e5bf96a 100644 --- a/arch/arm/common/sa1111.c +++ b/arch/arm/common/sa1111.c | |||
@@ -686,8 +686,7 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, | |||
686 | * %-EINVAL no platform data passed | 686 | * %-EINVAL no platform data passed |
687 | * %0 successful. | 687 | * %0 successful. |
688 | */ | 688 | */ |
689 | static int __devinit | 689 | static int __sa1111_probe(struct device *me, struct resource *mem, int irq) |
690 | __sa1111_probe(struct device *me, struct resource *mem, int irq) | ||
691 | { | 690 | { |
692 | struct sa1111_platform_data *pd = me->platform_data; | 691 | struct sa1111_platform_data *pd = me->platform_data; |
693 | struct sa1111 *sachip; | 692 | struct sa1111 *sachip; |
@@ -1011,7 +1010,7 @@ static int sa1111_resume(struct platform_device *dev) | |||
1011 | #define sa1111_resume NULL | 1010 | #define sa1111_resume NULL |
1012 | #endif | 1011 | #endif |
1013 | 1012 | ||
1014 | static int __devinit sa1111_probe(struct platform_device *pdev) | 1013 | static int sa1111_probe(struct platform_device *pdev) |
1015 | { | 1014 | { |
1016 | struct resource *mem; | 1015 | struct resource *mem; |
1017 | int irq; | 1016 | int irq; |
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c index 0c616d5fcb0f..a5c3dc38aa18 100644 --- a/arch/arm/common/scoop.c +++ b/arch/arm/common/scoop.c | |||
@@ -176,7 +176,7 @@ static int scoop_resume(struct platform_device *dev) | |||
176 | #define scoop_resume NULL | 176 | #define scoop_resume NULL |
177 | #endif | 177 | #endif |
178 | 178 | ||
179 | static int __devinit scoop_probe(struct platform_device *pdev) | 179 | static int scoop_probe(struct platform_device *pdev) |
180 | { | 180 | { |
181 | struct scoop_dev *devptr; | 181 | struct scoop_dev *devptr; |
182 | struct scoop_config *inf; | 182 | struct scoop_config *inf; |
@@ -243,7 +243,7 @@ err_ioremap: | |||
243 | return ret; | 243 | return ret; |
244 | } | 244 | } |
245 | 245 | ||
246 | static int __devexit scoop_remove(struct platform_device *pdev) | 246 | static int scoop_remove(struct platform_device *pdev) |
247 | { | 247 | { |
248 | struct scoop_dev *sdev = platform_get_drvdata(pdev); | 248 | struct scoop_dev *sdev = platform_get_drvdata(pdev); |
249 | int ret; | 249 | int ret; |
@@ -268,7 +268,7 @@ static int __devexit scoop_remove(struct platform_device *pdev) | |||
268 | 268 | ||
269 | static struct platform_driver scoop_driver = { | 269 | static struct platform_driver scoop_driver = { |
270 | .probe = scoop_probe, | 270 | .probe = scoop_probe, |
271 | .remove = __devexit_p(scoop_remove), | 271 | .remove = scoop_remove, |
272 | .suspend = scoop_suspend, | 272 | .suspend = scoop_suspend, |
273 | .resume = scoop_resume, | 273 | .resume = scoop_resume, |
274 | .driver = { | 274 | .driver = { |
diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c index e4df17ca90c7..8f324b99416e 100644 --- a/arch/arm/common/vic.c +++ b/arch/arm/common/vic.c | |||
@@ -206,6 +206,7 @@ static void __init vic_register(void __iomem *base, unsigned int irq, | |||
206 | struct device_node *node) | 206 | struct device_node *node) |
207 | { | 207 | { |
208 | struct vic_device *v; | 208 | struct vic_device *v; |
209 | int i; | ||
209 | 210 | ||
210 | if (vic_id >= ARRAY_SIZE(vic_devices)) { | 211 | if (vic_id >= ARRAY_SIZE(vic_devices)) { |
211 | printk(KERN_ERR "%s: too few VICs, increase CONFIG_ARM_VIC_NR\n", __func__); | 212 | printk(KERN_ERR "%s: too few VICs, increase CONFIG_ARM_VIC_NR\n", __func__); |
@@ -220,6 +221,10 @@ static void __init vic_register(void __iomem *base, unsigned int irq, | |||
220 | vic_id++; | 221 | vic_id++; |
221 | v->domain = irq_domain_add_simple(node, fls(valid_sources), irq, | 222 | v->domain = irq_domain_add_simple(node, fls(valid_sources), irq, |
222 | &vic_irqdomain_ops, v); | 223 | &vic_irqdomain_ops, v); |
224 | /* create an IRQ mapping for each valid IRQ */ | ||
225 | for (i = 0; i < fls(valid_sources); i++) | ||
226 | if (valid_sources & (1 << i)) | ||
227 | irq_create_mapping(v->domain, i); | ||
223 | } | 228 | } |
224 | 229 | ||
225 | static void vic_ack_irq(struct irq_data *d) | 230 | static void vic_ack_irq(struct irq_data *d) |
@@ -416,9 +421,9 @@ int __init vic_of_init(struct device_node *node, struct device_node *parent) | |||
416 | return -EIO; | 421 | return -EIO; |
417 | 422 | ||
418 | /* | 423 | /* |
419 | * Passing -1 as first IRQ makes the simple domain allocate descriptors | 424 | * Passing 0 as first IRQ makes the simple domain allocate descriptors |
420 | */ | 425 | */ |
421 | __vic_init(regs, -1, ~0, ~0, node); | 426 | __vic_init(regs, 0, ~0, ~0, node); |
422 | 427 | ||
423 | return 0; | 428 | return 0; |
424 | } | 429 | } |
diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig index b175577d7abb..1ea959019fcd 100644 --- a/arch/arm/configs/at91_dt_defconfig +++ b/arch/arm/configs/at91_dt_defconfig | |||
@@ -19,6 +19,7 @@ CONFIG_SOC_AT91SAM9260=y | |||
19 | CONFIG_SOC_AT91SAM9263=y | 19 | CONFIG_SOC_AT91SAM9263=y |
20 | CONFIG_SOC_AT91SAM9G45=y | 20 | CONFIG_SOC_AT91SAM9G45=y |
21 | CONFIG_SOC_AT91SAM9X5=y | 21 | CONFIG_SOC_AT91SAM9X5=y |
22 | CONFIG_SOC_AT91SAM9N12=y | ||
22 | CONFIG_MACH_AT91SAM_DT=y | 23 | CONFIG_MACH_AT91SAM_DT=y |
23 | CONFIG_AT91_PROGRAMMABLE_CLOCKS=y | 24 | CONFIG_AT91_PROGRAMMABLE_CLOCKS=y |
24 | CONFIG_AT91_TIMER_HZ=128 | 25 | CONFIG_AT91_TIMER_HZ=128 |
@@ -31,7 +32,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0 | |||
31 | CONFIG_ZBOOT_ROM_BSS=0x0 | 32 | CONFIG_ZBOOT_ROM_BSS=0x0 |
32 | CONFIG_ARM_APPENDED_DTB=y | 33 | CONFIG_ARM_APPENDED_DTB=y |
33 | CONFIG_ARM_ATAG_DTB_COMPAT=y | 34 | CONFIG_ARM_ATAG_DTB_COMPAT=y |
34 | CONFIG_CMDLINE="mem=128M console=ttyS0,115200 initrd=0x21100000,25165824 root=/dev/ram0 rw" | 35 | CONFIG_CMDLINE="console=ttyS0,115200 initrd=0x21100000,25165824 root=/dev/ram0 rw" |
35 | CONFIG_KEXEC=y | 36 | CONFIG_KEXEC=y |
36 | CONFIG_AUTO_ZRELADDR=y | 37 | CONFIG_AUTO_ZRELADDR=y |
37 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 38 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
diff --git a/arch/arm/configs/mvebu_defconfig b/arch/arm/configs/mvebu_defconfig index a702fb345c01..b5bc96cb65a7 100644 --- a/arch/arm/configs/mvebu_defconfig +++ b/arch/arm/configs/mvebu_defconfig | |||
@@ -33,9 +33,7 @@ CONFIG_MVNETA=y | |||
33 | CONFIG_MARVELL_PHY=y | 33 | CONFIG_MARVELL_PHY=y |
34 | CONFIG_SERIAL_8250=y | 34 | CONFIG_SERIAL_8250=y |
35 | CONFIG_SERIAL_8250_CONSOLE=y | 35 | CONFIG_SERIAL_8250_CONSOLE=y |
36 | CONFIG_SERIAL_OF_PLATFORM=y | 36 | CONFIG_SERIAL_8250_DW=y |
37 | CONFIG_I2C=y | ||
38 | CONFIG_I2C_MV64XXX=y | ||
39 | CONFIG_GPIOLIB=y | 37 | CONFIG_GPIOLIB=y |
40 | CONFIG_GPIO_SYSFS=y | 38 | CONFIG_GPIO_SYSFS=y |
41 | # CONFIG_USB_SUPPORT is not set | 39 | # CONFIG_USB_SUPPORT is not set |
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c index 9b722612553d..379cf3292390 100644 --- a/arch/arm/kernel/bios32.c +++ b/arch/arm/kernel/bios32.c | |||
@@ -78,7 +78,7 @@ void pcibios_report_status(u_int status_mask, int warn) | |||
78 | * Bug 3 is responsible for the sound DMA grinding to a halt. We now | 78 | * Bug 3 is responsible for the sound DMA grinding to a halt. We now |
79 | * live with bug 2. | 79 | * live with bug 2. |
80 | */ | 80 | */ |
81 | static void __devinit pci_fixup_83c553(struct pci_dev *dev) | 81 | static void pci_fixup_83c553(struct pci_dev *dev) |
82 | { | 82 | { |
83 | /* | 83 | /* |
84 | * Set memory region to start at address 0, and enable IO | 84 | * Set memory region to start at address 0, and enable IO |
@@ -130,7 +130,7 @@ static void __devinit pci_fixup_83c553(struct pci_dev *dev) | |||
130 | } | 130 | } |
131 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_83C553, pci_fixup_83c553); | 131 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_83C553, pci_fixup_83c553); |
132 | 132 | ||
133 | static void __devinit pci_fixup_unassign(struct pci_dev *dev) | 133 | static void pci_fixup_unassign(struct pci_dev *dev) |
134 | { | 134 | { |
135 | dev->resource[0].end -= dev->resource[0].start; | 135 | dev->resource[0].end -= dev->resource[0].start; |
136 | dev->resource[0].start = 0; | 136 | dev->resource[0].start = 0; |
@@ -142,7 +142,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND2, PCI_DEVICE_ID_WINBOND2_89C940F, | |||
142 | * if it is the host bridge by marking it as such. These resources are of | 142 | * if it is the host bridge by marking it as such. These resources are of |
143 | * no consequence to the PCI layer (they are handled elsewhere). | 143 | * no consequence to the PCI layer (they are handled elsewhere). |
144 | */ | 144 | */ |
145 | static void __devinit pci_fixup_dec21285(struct pci_dev *dev) | 145 | static void pci_fixup_dec21285(struct pci_dev *dev) |
146 | { | 146 | { |
147 | int i; | 147 | int i; |
148 | 148 | ||
@@ -161,7 +161,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21285, pci_fixup_d | |||
161 | /* | 161 | /* |
162 | * PCI IDE controllers use non-standard I/O port decoding, respect it. | 162 | * PCI IDE controllers use non-standard I/O port decoding, respect it. |
163 | */ | 163 | */ |
164 | static void __devinit pci_fixup_ide_bases(struct pci_dev *dev) | 164 | static void pci_fixup_ide_bases(struct pci_dev *dev) |
165 | { | 165 | { |
166 | struct resource *r; | 166 | struct resource *r; |
167 | int i; | 167 | int i; |
@@ -182,7 +182,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_ide_bases); | |||
182 | /* | 182 | /* |
183 | * Put the DEC21142 to sleep | 183 | * Put the DEC21142 to sleep |
184 | */ | 184 | */ |
185 | static void __devinit pci_fixup_dec21142(struct pci_dev *dev) | 185 | static void pci_fixup_dec21142(struct pci_dev *dev) |
186 | { | 186 | { |
187 | pci_write_config_dword(dev, 0x40, 0x80000000); | 187 | pci_write_config_dword(dev, 0x40, 0x80000000); |
188 | } | 188 | } |
@@ -204,7 +204,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21142, pci_fixup_d | |||
204 | * functional. However, The CY82C693U _does not work_ in bus | 204 | * functional. However, The CY82C693U _does not work_ in bus |
205 | * master mode without locking the PCI bus solid. | 205 | * master mode without locking the PCI bus solid. |
206 | */ | 206 | */ |
207 | static void __devinit pci_fixup_cy82c693(struct pci_dev *dev) | 207 | static void pci_fixup_cy82c693(struct pci_dev *dev) |
208 | { | 208 | { |
209 | if ((dev->class >> 8) == PCI_CLASS_STORAGE_IDE) { | 209 | if ((dev->class >> 8) == PCI_CLASS_STORAGE_IDE) { |
210 | u32 base0, base1; | 210 | u32 base0, base1; |
@@ -254,7 +254,7 @@ static void __devinit pci_fixup_cy82c693(struct pci_dev *dev) | |||
254 | } | 254 | } |
255 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, pci_fixup_cy82c693); | 255 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, pci_fixup_cy82c693); |
256 | 256 | ||
257 | static void __devinit pci_fixup_it8152(struct pci_dev *dev) | 257 | static void pci_fixup_it8152(struct pci_dev *dev) |
258 | { | 258 | { |
259 | int i; | 259 | int i; |
260 | /* fixup for ITE 8152 devices */ | 260 | /* fixup for ITE 8152 devices */ |
@@ -361,9 +361,7 @@ void pcibios_fixup_bus(struct pci_bus *bus) | |||
361 | printk(KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n", | 361 | printk(KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n", |
362 | bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis"); | 362 | bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis"); |
363 | } | 363 | } |
364 | #ifdef CONFIG_HOTPLUG | ||
365 | EXPORT_SYMBOL(pcibios_fixup_bus); | 364 | EXPORT_SYMBOL(pcibios_fixup_bus); |
366 | #endif | ||
367 | 365 | ||
368 | /* | 366 | /* |
369 | * Swizzle the device pin each time we cross a bridge. If a platform does | 367 | * Swizzle the device pin each time we cross a bridge. If a platform does |
@@ -380,7 +378,7 @@ EXPORT_SYMBOL(pcibios_fixup_bus); | |||
380 | * PCI standard swizzle is implemented on plug-in cards and Cardbus based | 378 | * PCI standard swizzle is implemented on plug-in cards and Cardbus based |
381 | * PCI extenders, so it can not be ignored. | 379 | * PCI extenders, so it can not be ignored. |
382 | */ | 380 | */ |
383 | static u8 __devinit pcibios_swizzle(struct pci_dev *dev, u8 *pin) | 381 | static u8 pcibios_swizzle(struct pci_dev *dev, u8 *pin) |
384 | { | 382 | { |
385 | struct pci_sys_data *sys = dev->sysdata; | 383 | struct pci_sys_data *sys = dev->sysdata; |
386 | int slot, oldpin = *pin; | 384 | int slot, oldpin = *pin; |
diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S index 6809200c31fb..14f7c3b14632 100644 --- a/arch/arm/kernel/debug.S +++ b/arch/arm/kernel/debug.S | |||
@@ -100,12 +100,14 @@ ENTRY(printch) | |||
100 | b 1b | 100 | b 1b |
101 | ENDPROC(printch) | 101 | ENDPROC(printch) |
102 | 102 | ||
103 | #ifdef CONFIG_MMU | ||
103 | ENTRY(debug_ll_addr) | 104 | ENTRY(debug_ll_addr) |
104 | addruart r2, r3, ip | 105 | addruart r2, r3, ip |
105 | str r2, [r0] | 106 | str r2, [r0] |
106 | str r3, [r1] | 107 | str r3, [r1] |
107 | mov pc, lr | 108 | mov pc, lr |
108 | ENDPROC(debug_ll_addr) | 109 | ENDPROC(debug_ll_addr) |
110 | #endif | ||
109 | 111 | ||
110 | #else | 112 | #else |
111 | 113 | ||
diff --git a/arch/arm/kernel/etm.c b/arch/arm/kernel/etm.c index 36d20bd50120..9b6de8c988f3 100644 --- a/arch/arm/kernel/etm.c +++ b/arch/arm/kernel/etm.c | |||
@@ -339,7 +339,7 @@ static struct miscdevice etb_miscdev = { | |||
339 | .fops = &etb_fops, | 339 | .fops = &etb_fops, |
340 | }; | 340 | }; |
341 | 341 | ||
342 | static int __devinit etb_probe(struct amba_device *dev, const struct amba_id *id) | 342 | static int etb_probe(struct amba_device *dev, const struct amba_id *id) |
343 | { | 343 | { |
344 | struct tracectx *t = &tracer; | 344 | struct tracectx *t = &tracer; |
345 | int ret = 0; | 345 | int ret = 0; |
@@ -531,7 +531,7 @@ static ssize_t trace_mode_store(struct kobject *kobj, | |||
531 | static struct kobj_attribute trace_mode_attr = | 531 | static struct kobj_attribute trace_mode_attr = |
532 | __ATTR(trace_mode, 0644, trace_mode_show, trace_mode_store); | 532 | __ATTR(trace_mode, 0644, trace_mode_show, trace_mode_store); |
533 | 533 | ||
534 | static int __devinit etm_probe(struct amba_device *dev, const struct amba_id *id) | 534 | static int etm_probe(struct amba_device *dev, const struct amba_id *id) |
535 | { | 535 | { |
536 | struct tracectx *t = &tracer; | 536 | struct tracectx *t = &tracer; |
537 | int ret = 0; | 537 | int ret = 0; |
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 4eee351f4668..486a15ae9011 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
@@ -246,6 +246,7 @@ __create_page_tables: | |||
246 | 246 | ||
247 | /* | 247 | /* |
248 | * Then map boot params address in r2 if specified. | 248 | * Then map boot params address in r2 if specified. |
249 | * We map 2 sections in case the ATAGs/DTB crosses a section boundary. | ||
249 | */ | 250 | */ |
250 | mov r0, r2, lsr #SECTION_SHIFT | 251 | mov r0, r2, lsr #SECTION_SHIFT |
251 | movs r0, r0, lsl #SECTION_SHIFT | 252 | movs r0, r0, lsl #SECTION_SHIFT |
@@ -253,6 +254,8 @@ __create_page_tables: | |||
253 | addne r3, r3, #PAGE_OFFSET | 254 | addne r3, r3, #PAGE_OFFSET |
254 | addne r3, r4, r3, lsr #(SECTION_SHIFT - PMD_ORDER) | 255 | addne r3, r4, r3, lsr #(SECTION_SHIFT - PMD_ORDER) |
255 | orrne r6, r7, r0 | 256 | orrne r6, r7, r0 |
257 | strne r6, [r3], #1 << PMD_ORDER | ||
258 | addne r6, r6, #1 << SECTION_SHIFT | ||
256 | strne r6, [r3] | 259 | strne r6, [r3] |
257 | 260 | ||
258 | #ifdef CONFIG_DEBUG_LL | 261 | #ifdef CONFIG_DEBUG_LL |
@@ -331,7 +334,7 @@ ENTRY(secondary_startup) | |||
331 | * as it has already been validated by the primary processor. | 334 | * as it has already been validated by the primary processor. |
332 | */ | 335 | */ |
333 | #ifdef CONFIG_ARM_VIRT_EXT | 336 | #ifdef CONFIG_ARM_VIRT_EXT |
334 | bl __hyp_stub_install | 337 | bl __hyp_stub_install_secondary |
335 | #endif | 338 | #endif |
336 | safe_svcmode_maskall r9 | 339 | safe_svcmode_maskall r9 |
337 | 340 | ||
diff --git a/arch/arm/kernel/hyp-stub.S b/arch/arm/kernel/hyp-stub.S index 65b2417aebce..1315c4ccfa56 100644 --- a/arch/arm/kernel/hyp-stub.S +++ b/arch/arm/kernel/hyp-stub.S | |||
@@ -99,7 +99,7 @@ ENTRY(__hyp_stub_install_secondary) | |||
99 | * immediately. | 99 | * immediately. |
100 | */ | 100 | */ |
101 | compare_cpu_mode_with_primary r4, r5, r6, r7 | 101 | compare_cpu_mode_with_primary r4, r5, r6, r7 |
102 | bxne lr | 102 | movne pc, lr |
103 | 103 | ||
104 | /* | 104 | /* |
105 | * Once we have given up on one CPU, we do not try to install the | 105 | * Once we have given up on one CPU, we do not try to install the |
@@ -111,7 +111,7 @@ ENTRY(__hyp_stub_install_secondary) | |||
111 | */ | 111 | */ |
112 | 112 | ||
113 | cmp r4, #HYP_MODE | 113 | cmp r4, #HYP_MODE |
114 | bxne lr @ give up if the CPU is not in HYP mode | 114 | movne pc, lr @ give up if the CPU is not in HYP mode |
115 | 115 | ||
116 | /* | 116 | /* |
117 | * Configure HSCTLR to set correct exception endianness/instruction set | 117 | * Configure HSCTLR to set correct exception endianness/instruction set |
@@ -120,7 +120,8 @@ ENTRY(__hyp_stub_install_secondary) | |||
120 | * Eventually, CPU-specific code might be needed -- assume not for now | 120 | * Eventually, CPU-specific code might be needed -- assume not for now |
121 | * | 121 | * |
122 | * This code relies on the "eret" instruction to synchronize the | 122 | * This code relies on the "eret" instruction to synchronize the |
123 | * various coprocessor accesses. | 123 | * various coprocessor accesses. This is done when we switch to SVC |
124 | * (see safe_svcmode_maskall). | ||
124 | */ | 125 | */ |
125 | @ Now install the hypervisor stub: | 126 | @ Now install the hypervisor stub: |
126 | adr r7, __hyp_stub_vectors | 127 | adr r7, __hyp_stub_vectors |
@@ -155,14 +156,7 @@ THUMB( orr r7, #(1 << 30) ) @ HSCTLR.TE | |||
155 | 1: | 156 | 1: |
156 | #endif | 157 | #endif |
157 | 158 | ||
158 | bic r7, r4, #MODE_MASK | 159 | bx lr @ The boot CPU mode is left in r4. |
159 | orr r7, r7, #SVC_MODE | ||
160 | THUMB( orr r7, r7, #PSR_T_BIT ) | ||
161 | msr spsr_cxsf, r7 @ This is SPSR_hyp. | ||
162 | |||
163 | __MSR_ELR_HYP(14) @ msr elr_hyp, lr | ||
164 | __ERET @ return, switching to SVC mode | ||
165 | @ The boot CPU mode is left in r4. | ||
166 | ENDPROC(__hyp_stub_install_secondary) | 160 | ENDPROC(__hyp_stub_install_secondary) |
167 | 161 | ||
168 | __hyp_stub_do_trap: | 162 | __hyp_stub_do_trap: |
@@ -200,7 +194,7 @@ ENDPROC(__hyp_get_vectors) | |||
200 | @ fall through | 194 | @ fall through |
201 | ENTRY(__hyp_set_vectors) | 195 | ENTRY(__hyp_set_vectors) |
202 | __HVC(0) | 196 | __HVC(0) |
203 | bx lr | 197 | mov pc, lr |
204 | ENDPROC(__hyp_set_vectors) | 198 | ENDPROC(__hyp_set_vectors) |
205 | 199 | ||
206 | #ifndef ZIMAGE | 200 | #ifndef ZIMAGE |
diff --git a/arch/arm/kernel/perf_event_cpu.c b/arch/arm/kernel/perf_event_cpu.c index 9a4f6307a016..5f6620684e25 100644 --- a/arch/arm/kernel/perf_event_cpu.c +++ b/arch/arm/kernel/perf_event_cpu.c | |||
@@ -132,7 +132,7 @@ static int cpu_pmu_request_irq(struct arm_pmu *cpu_pmu, irq_handler_t handler) | |||
132 | return 0; | 132 | return 0; |
133 | } | 133 | } |
134 | 134 | ||
135 | static void __devinit cpu_pmu_init(struct arm_pmu *cpu_pmu) | 135 | static void cpu_pmu_init(struct arm_pmu *cpu_pmu) |
136 | { | 136 | { |
137 | int cpu; | 137 | int cpu; |
138 | for_each_possible_cpu(cpu) { | 138 | for_each_possible_cpu(cpu) { |
@@ -178,7 +178,7 @@ static struct notifier_block __cpuinitdata cpu_pmu_hotplug_notifier = { | |||
178 | /* | 178 | /* |
179 | * PMU platform driver and devicetree bindings. | 179 | * PMU platform driver and devicetree bindings. |
180 | */ | 180 | */ |
181 | static struct of_device_id __devinitdata cpu_pmu_of_device_ids[] = { | 181 | static struct of_device_id cpu_pmu_of_device_ids[] = { |
182 | {.compatible = "arm,cortex-a15-pmu", .data = armv7_a15_pmu_init}, | 182 | {.compatible = "arm,cortex-a15-pmu", .data = armv7_a15_pmu_init}, |
183 | {.compatible = "arm,cortex-a9-pmu", .data = armv7_a9_pmu_init}, | 183 | {.compatible = "arm,cortex-a9-pmu", .data = armv7_a9_pmu_init}, |
184 | {.compatible = "arm,cortex-a8-pmu", .data = armv7_a8_pmu_init}, | 184 | {.compatible = "arm,cortex-a8-pmu", .data = armv7_a8_pmu_init}, |
@@ -190,7 +190,7 @@ static struct of_device_id __devinitdata cpu_pmu_of_device_ids[] = { | |||
190 | {}, | 190 | {}, |
191 | }; | 191 | }; |
192 | 192 | ||
193 | static struct platform_device_id __devinitdata cpu_pmu_plat_device_ids[] = { | 193 | static struct platform_device_id cpu_pmu_plat_device_ids[] = { |
194 | {.name = "arm-pmu"}, | 194 | {.name = "arm-pmu"}, |
195 | {}, | 195 | {}, |
196 | }; | 196 | }; |
@@ -198,7 +198,7 @@ static struct platform_device_id __devinitdata cpu_pmu_plat_device_ids[] = { | |||
198 | /* | 198 | /* |
199 | * CPU PMU identification and probing. | 199 | * CPU PMU identification and probing. |
200 | */ | 200 | */ |
201 | static int __devinit probe_current_pmu(struct arm_pmu *pmu) | 201 | static int probe_current_pmu(struct arm_pmu *pmu) |
202 | { | 202 | { |
203 | int cpu = get_cpu(); | 203 | int cpu = get_cpu(); |
204 | unsigned long cpuid = read_cpuid_id(); | 204 | unsigned long cpuid = read_cpuid_id(); |
@@ -252,7 +252,7 @@ static int __devinit probe_current_pmu(struct arm_pmu *pmu) | |||
252 | return ret; | 252 | return ret; |
253 | } | 253 | } |
254 | 254 | ||
255 | static int __devinit cpu_pmu_device_probe(struct platform_device *pdev) | 255 | static int cpu_pmu_device_probe(struct platform_device *pdev) |
256 | { | 256 | { |
257 | const struct of_device_id *of_id; | 257 | const struct of_device_id *of_id; |
258 | int (*init_fn)(struct arm_pmu *); | 258 | int (*init_fn)(struct arm_pmu *); |
diff --git a/arch/arm/kernel/perf_event_v6.c b/arch/arm/kernel/perf_event_v6.c index f3e22ff8b6a2..041d0526a288 100644 --- a/arch/arm/kernel/perf_event_v6.c +++ b/arch/arm/kernel/perf_event_v6.c | |||
@@ -653,7 +653,7 @@ static int armv6_map_event(struct perf_event *event) | |||
653 | &armv6_perf_cache_map, 0xFF); | 653 | &armv6_perf_cache_map, 0xFF); |
654 | } | 654 | } |
655 | 655 | ||
656 | static int __devinit armv6pmu_init(struct arm_pmu *cpu_pmu) | 656 | static int armv6pmu_init(struct arm_pmu *cpu_pmu) |
657 | { | 657 | { |
658 | cpu_pmu->name = "v6"; | 658 | cpu_pmu->name = "v6"; |
659 | cpu_pmu->handle_irq = armv6pmu_handle_irq; | 659 | cpu_pmu->handle_irq = armv6pmu_handle_irq; |
@@ -685,7 +685,7 @@ static int armv6mpcore_map_event(struct perf_event *event) | |||
685 | &armv6mpcore_perf_cache_map, 0xFF); | 685 | &armv6mpcore_perf_cache_map, 0xFF); |
686 | } | 686 | } |
687 | 687 | ||
688 | static int __devinit armv6mpcore_pmu_init(struct arm_pmu *cpu_pmu) | 688 | static int armv6mpcore_pmu_init(struct arm_pmu *cpu_pmu) |
689 | { | 689 | { |
690 | cpu_pmu->name = "v6mpcore"; | 690 | cpu_pmu->name = "v6mpcore"; |
691 | cpu_pmu->handle_irq = armv6pmu_handle_irq; | 691 | cpu_pmu->handle_irq = armv6pmu_handle_irq; |
diff --git a/arch/arm/kernel/perf_event_v7.c b/arch/arm/kernel/perf_event_v7.c index 7d0cce85d17e..4fbc757d9cff 100644 --- a/arch/arm/kernel/perf_event_v7.c +++ b/arch/arm/kernel/perf_event_v7.c | |||
@@ -1226,7 +1226,7 @@ static void armv7pmu_init(struct arm_pmu *cpu_pmu) | |||
1226 | cpu_pmu->max_period = (1LLU << 32) - 1; | 1226 | cpu_pmu->max_period = (1LLU << 32) - 1; |
1227 | }; | 1227 | }; |
1228 | 1228 | ||
1229 | static u32 __devinit armv7_read_num_pmnc_events(void) | 1229 | static u32 armv7_read_num_pmnc_events(void) |
1230 | { | 1230 | { |
1231 | u32 nb_cnt; | 1231 | u32 nb_cnt; |
1232 | 1232 | ||
@@ -1237,7 +1237,7 @@ static u32 __devinit armv7_read_num_pmnc_events(void) | |||
1237 | return nb_cnt + 1; | 1237 | return nb_cnt + 1; |
1238 | } | 1238 | } |
1239 | 1239 | ||
1240 | static int __devinit armv7_a8_pmu_init(struct arm_pmu *cpu_pmu) | 1240 | static int armv7_a8_pmu_init(struct arm_pmu *cpu_pmu) |
1241 | { | 1241 | { |
1242 | armv7pmu_init(cpu_pmu); | 1242 | armv7pmu_init(cpu_pmu); |
1243 | cpu_pmu->name = "ARMv7 Cortex-A8"; | 1243 | cpu_pmu->name = "ARMv7 Cortex-A8"; |
@@ -1246,7 +1246,7 @@ static int __devinit armv7_a8_pmu_init(struct arm_pmu *cpu_pmu) | |||
1246 | return 0; | 1246 | return 0; |
1247 | } | 1247 | } |
1248 | 1248 | ||
1249 | static int __devinit armv7_a9_pmu_init(struct arm_pmu *cpu_pmu) | 1249 | static int armv7_a9_pmu_init(struct arm_pmu *cpu_pmu) |
1250 | { | 1250 | { |
1251 | armv7pmu_init(cpu_pmu); | 1251 | armv7pmu_init(cpu_pmu); |
1252 | cpu_pmu->name = "ARMv7 Cortex-A9"; | 1252 | cpu_pmu->name = "ARMv7 Cortex-A9"; |
@@ -1255,7 +1255,7 @@ static int __devinit armv7_a9_pmu_init(struct arm_pmu *cpu_pmu) | |||
1255 | return 0; | 1255 | return 0; |
1256 | } | 1256 | } |
1257 | 1257 | ||
1258 | static int __devinit armv7_a5_pmu_init(struct arm_pmu *cpu_pmu) | 1258 | static int armv7_a5_pmu_init(struct arm_pmu *cpu_pmu) |
1259 | { | 1259 | { |
1260 | armv7pmu_init(cpu_pmu); | 1260 | armv7pmu_init(cpu_pmu); |
1261 | cpu_pmu->name = "ARMv7 Cortex-A5"; | 1261 | cpu_pmu->name = "ARMv7 Cortex-A5"; |
@@ -1264,7 +1264,7 @@ static int __devinit armv7_a5_pmu_init(struct arm_pmu *cpu_pmu) | |||
1264 | return 0; | 1264 | return 0; |
1265 | } | 1265 | } |
1266 | 1266 | ||
1267 | static int __devinit armv7_a15_pmu_init(struct arm_pmu *cpu_pmu) | 1267 | static int armv7_a15_pmu_init(struct arm_pmu *cpu_pmu) |
1268 | { | 1268 | { |
1269 | armv7pmu_init(cpu_pmu); | 1269 | armv7pmu_init(cpu_pmu); |
1270 | cpu_pmu->name = "ARMv7 Cortex-A15"; | 1270 | cpu_pmu->name = "ARMv7 Cortex-A15"; |
@@ -1274,7 +1274,7 @@ static int __devinit armv7_a15_pmu_init(struct arm_pmu *cpu_pmu) | |||
1274 | return 0; | 1274 | return 0; |
1275 | } | 1275 | } |
1276 | 1276 | ||
1277 | static int __devinit armv7_a7_pmu_init(struct arm_pmu *cpu_pmu) | 1277 | static int armv7_a7_pmu_init(struct arm_pmu *cpu_pmu) |
1278 | { | 1278 | { |
1279 | armv7pmu_init(cpu_pmu); | 1279 | armv7pmu_init(cpu_pmu); |
1280 | cpu_pmu->name = "ARMv7 Cortex-A7"; | 1280 | cpu_pmu->name = "ARMv7 Cortex-A7"; |
diff --git a/arch/arm/kernel/perf_event_xscale.c b/arch/arm/kernel/perf_event_xscale.c index 0c8265e53d5f..2b0fe30ec12e 100644 --- a/arch/arm/kernel/perf_event_xscale.c +++ b/arch/arm/kernel/perf_event_xscale.c | |||
@@ -440,7 +440,7 @@ static int xscale_map_event(struct perf_event *event) | |||
440 | &xscale_perf_cache_map, 0xFF); | 440 | &xscale_perf_cache_map, 0xFF); |
441 | } | 441 | } |
442 | 442 | ||
443 | static int __devinit xscale1pmu_init(struct arm_pmu *cpu_pmu) | 443 | static int xscale1pmu_init(struct arm_pmu *cpu_pmu) |
444 | { | 444 | { |
445 | cpu_pmu->name = "xscale1"; | 445 | cpu_pmu->name = "xscale1"; |
446 | cpu_pmu->handle_irq = xscale1pmu_handle_irq; | 446 | cpu_pmu->handle_irq = xscale1pmu_handle_irq; |
@@ -810,7 +810,7 @@ static inline void xscale2pmu_write_counter(struct perf_event *event, u32 val) | |||
810 | } | 810 | } |
811 | } | 811 | } |
812 | 812 | ||
813 | static int __devinit xscale2pmu_init(struct arm_pmu *cpu_pmu) | 813 | static int xscale2pmu_init(struct arm_pmu *cpu_pmu) |
814 | { | 814 | { |
815 | cpu_pmu->name = "xscale2"; | 815 | cpu_pmu->name = "xscale2"; |
816 | cpu_pmu->handle_irq = xscale2pmu_handle_irq; | 816 | cpu_pmu->handle_irq = xscale2pmu_handle_irq; |
diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c index 9ee866ce0478..4b678478cf95 100644 --- a/arch/arm/mach-at91/setup.c +++ b/arch/arm/mach-at91/setup.c | |||
@@ -105,6 +105,8 @@ static void __init soc_detect(u32 dbgu_base) | |||
105 | switch (socid) { | 105 | switch (socid) { |
106 | case ARCH_ID_AT91RM9200: | 106 | case ARCH_ID_AT91RM9200: |
107 | at91_soc_initdata.type = AT91_SOC_RM9200; | 107 | at91_soc_initdata.type = AT91_SOC_RM9200; |
108 | if (at91_soc_initdata.subtype == AT91_SOC_SUBTYPE_NONE) | ||
109 | at91_soc_initdata.subtype = AT91_SOC_RM9200_BGA; | ||
108 | at91_boot_soc = at91rm9200_soc; | 110 | at91_boot_soc = at91rm9200_soc; |
109 | break; | 111 | break; |
110 | 112 | ||
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c index 9211e8800c79..6e2f1631df5b 100644 --- a/arch/arm/mach-davinci/board-dm646x-evm.c +++ b/arch/arm/mach-davinci/board-dm646x-evm.c | |||
@@ -358,7 +358,7 @@ static int cpld_video_probe(struct i2c_client *client, | |||
358 | return 0; | 358 | return 0; |
359 | } | 359 | } |
360 | 360 | ||
361 | static int __devexit cpld_video_remove(struct i2c_client *client) | 361 | static int cpld_video_remove(struct i2c_client *client) |
362 | { | 362 | { |
363 | cpld_client = NULL; | 363 | cpld_client = NULL; |
364 | return 0; | 364 | return 0; |
diff --git a/arch/arm/mach-davinci/cdce949.c b/arch/arm/mach-davinci/cdce949.c index f2232ca6d070..abafb92031c0 100644 --- a/arch/arm/mach-davinci/cdce949.c +++ b/arch/arm/mach-davinci/cdce949.c | |||
@@ -256,7 +256,7 @@ static int cdce_probe(struct i2c_client *client, | |||
256 | return 0; | 256 | return 0; |
257 | } | 257 | } |
258 | 258 | ||
259 | static int __devexit cdce_remove(struct i2c_client *client) | 259 | static int cdce_remove(struct i2c_client *client) |
260 | { | 260 | { |
261 | cdce_i2c_client = NULL; | 261 | cdce_i2c_client = NULL; |
262 | return 0; | 262 | return 0; |
@@ -274,7 +274,7 @@ static struct i2c_driver cdce_driver = { | |||
274 | .name = "cdce949", | 274 | .name = "cdce949", |
275 | }, | 275 | }, |
276 | .probe = cdce_probe, | 276 | .probe = cdce_probe, |
277 | .remove = __devexit_p(cdce_remove), | 277 | .remove = cdce_remove, |
278 | .id_table = cdce_id, | 278 | .id_table = cdce_id, |
279 | }; | 279 | }; |
280 | 280 | ||
diff --git a/arch/arm/mach-dove/pcie.c b/arch/arm/mach-dove/pcie.c index 0ef4435b1657..8a275f297522 100644 --- a/arch/arm/mach-dove/pcie.c +++ b/arch/arm/mach-dove/pcie.c | |||
@@ -135,7 +135,7 @@ static struct pci_ops pcie_ops = { | |||
135 | .write = pcie_wr_conf, | 135 | .write = pcie_wr_conf, |
136 | }; | 136 | }; |
137 | 137 | ||
138 | static void __devinit rc_pci_fixup(struct pci_dev *dev) | 138 | static void rc_pci_fixup(struct pci_dev *dev) |
139 | { | 139 | { |
140 | /* | 140 | /* |
141 | * Prevent enumeration of root complex. | 141 | * Prevent enumeration of root complex. |
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index 91d5b6f1d5af..e103c290bc9e 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig | |||
@@ -74,6 +74,8 @@ config SOC_EXYNOS5440 | |||
74 | depends on ARCH_EXYNOS5 | 74 | depends on ARCH_EXYNOS5 |
75 | select ARM_ARCH_TIMER | 75 | select ARM_ARCH_TIMER |
76 | select AUTO_ZRELADDR | 76 | select AUTO_ZRELADDR |
77 | select PINCTRL | ||
78 | select PINCTRL_EXYNOS5440 | ||
77 | help | 79 | help |
78 | Enable EXYNOS5440 SoC support | 80 | Enable EXYNOS5440 SoC support |
79 | 81 | ||
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c index d6d0dc651089..1a89824a5f78 100644 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c | |||
@@ -424,11 +424,18 @@ static void __init exynos5_init_clocks(int xtal) | |||
424 | { | 424 | { |
425 | printk(KERN_DEBUG "%s: initializing clocks\n", __func__); | 425 | printk(KERN_DEBUG "%s: initializing clocks\n", __func__); |
426 | 426 | ||
427 | /* EXYNOS5440 can support only common clock framework */ | ||
428 | |||
429 | if (soc_is_exynos5440()) | ||
430 | return; | ||
431 | |||
432 | #ifdef CONFIG_SOC_EXYNOS5250 | ||
427 | s3c24xx_register_baseclocks(xtal); | 433 | s3c24xx_register_baseclocks(xtal); |
428 | s5p_register_clocks(xtal); | 434 | s5p_register_clocks(xtal); |
429 | 435 | ||
430 | exynos5_register_clocks(); | 436 | exynos5_register_clocks(); |
431 | exynos5_setup_clocks(); | 437 | exynos5_setup_clocks(); |
438 | #endif | ||
432 | } | 439 | } |
433 | 440 | ||
434 | #define COMBINER_ENABLE_SET 0x0 | 441 | #define COMBINER_ENABLE_SET 0x0 |
diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c index dc248167d206..981dc1e1da51 100644 --- a/arch/arm/mach-highbank/highbank.c +++ b/arch/arm/mach-highbank/highbank.c | |||
@@ -135,7 +135,7 @@ static struct sys_timer highbank_timer = { | |||
135 | 135 | ||
136 | static void highbank_power_off(void) | 136 | static void highbank_power_off(void) |
137 | { | 137 | { |
138 | hignbank_set_pwr_shutdown(); | 138 | highbank_set_pwr_shutdown(); |
139 | 139 | ||
140 | while (1) | 140 | while (1) |
141 | cpu_do_idle(); | 141 | cpu_do_idle(); |
diff --git a/arch/arm/mach-highbank/hotplug.c b/arch/arm/mach-highbank/hotplug.c index 7b60faccd551..f30c52843396 100644 --- a/arch/arm/mach-highbank/hotplug.c +++ b/arch/arm/mach-highbank/hotplug.c | |||
@@ -30,7 +30,7 @@ void __ref highbank_cpu_die(unsigned int cpu) | |||
30 | { | 30 | { |
31 | flush_cache_all(); | 31 | flush_cache_all(); |
32 | 32 | ||
33 | highbank_set_cpu_jump(cpu, secondary_startup); | 33 | highbank_set_cpu_jump(cpu, phys_to_virt(0)); |
34 | highbank_set_core_pwr(); | 34 | highbank_set_core_pwr(); |
35 | 35 | ||
36 | cpu_do_idle(); | 36 | cpu_do_idle(); |
diff --git a/arch/arm/mach-highbank/platsmp.c b/arch/arm/mach-highbank/platsmp.c index 1129957f6c1d..4ecc864ac8b9 100644 --- a/arch/arm/mach-highbank/platsmp.c +++ b/arch/arm/mach-highbank/platsmp.c | |||
@@ -32,6 +32,7 @@ static void __cpuinit highbank_secondary_init(unsigned int cpu) | |||
32 | 32 | ||
33 | static int __cpuinit highbank_boot_secondary(unsigned int cpu, struct task_struct *idle) | 33 | static int __cpuinit highbank_boot_secondary(unsigned int cpu, struct task_struct *idle) |
34 | { | 34 | { |
35 | highbank_set_cpu_jump(cpu, secondary_startup); | ||
35 | gic_raise_softirq(cpumask_of(cpu), 0); | 36 | gic_raise_softirq(cpumask_of(cpu), 0); |
36 | return 0; | 37 | return 0; |
37 | } | 38 | } |
@@ -61,19 +62,8 @@ static void __init highbank_smp_init_cpus(void) | |||
61 | 62 | ||
62 | static void __init highbank_smp_prepare_cpus(unsigned int max_cpus) | 63 | static void __init highbank_smp_prepare_cpus(unsigned int max_cpus) |
63 | { | 64 | { |
64 | int i; | ||
65 | |||
66 | if (scu_base_addr) | 65 | if (scu_base_addr) |
67 | scu_enable(scu_base_addr); | 66 | scu_enable(scu_base_addr); |
68 | |||
69 | /* | ||
70 | * Write the address of secondary startup into the jump table | ||
71 | * The cores are in wfi and wait until they receive a soft interrupt | ||
72 | * and a non-zero value to jump to. Then the secondary CPU branches | ||
73 | * to this address. | ||
74 | */ | ||
75 | for (i = 1; i < max_cpus; i++) | ||
76 | highbank_set_cpu_jump(i, secondary_startup); | ||
77 | } | 67 | } |
78 | 68 | ||
79 | struct smp_operations highbank_smp_ops __initdata = { | 69 | struct smp_operations highbank_smp_ops __initdata = { |
diff --git a/arch/arm/mach-highbank/pm.c b/arch/arm/mach-highbank/pm.c index 74aa135966f0..04eddb4f4380 100644 --- a/arch/arm/mach-highbank/pm.c +++ b/arch/arm/mach-highbank/pm.c | |||
@@ -14,10 +14,12 @@ | |||
14 | * this program. If not, see <http://www.gnu.org/licenses/>. | 14 | * this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/cpu_pm.h> | ||
17 | #include <linux/init.h> | 18 | #include <linux/init.h> |
18 | #include <linux/io.h> | 19 | #include <linux/io.h> |
19 | #include <linux/suspend.h> | 20 | #include <linux/suspend.h> |
20 | 21 | ||
22 | #include <asm/cacheflush.h> | ||
21 | #include <asm/proc-fns.h> | 23 | #include <asm/proc-fns.h> |
22 | #include <asm/suspend.h> | 24 | #include <asm/suspend.h> |
23 | 25 | ||
@@ -26,16 +28,31 @@ | |||
26 | 28 | ||
27 | static int highbank_suspend_finish(unsigned long val) | 29 | static int highbank_suspend_finish(unsigned long val) |
28 | { | 30 | { |
31 | outer_flush_all(); | ||
32 | outer_disable(); | ||
33 | |||
34 | highbank_set_pwr_suspend(); | ||
35 | |||
29 | cpu_do_idle(); | 36 | cpu_do_idle(); |
37 | |||
38 | highbank_clear_pwr_request(); | ||
30 | return 0; | 39 | return 0; |
31 | } | 40 | } |
32 | 41 | ||
33 | static int highbank_pm_enter(suspend_state_t state) | 42 | static int highbank_pm_enter(suspend_state_t state) |
34 | { | 43 | { |
35 | hignbank_set_pwr_suspend(); | 44 | cpu_pm_enter(); |
45 | cpu_cluster_pm_enter(); | ||
46 | |||
36 | highbank_set_cpu_jump(0, cpu_resume); | 47 | highbank_set_cpu_jump(0, cpu_resume); |
37 | cpu_suspend(0, highbank_suspend_finish); | 48 | cpu_suspend(0, highbank_suspend_finish); |
38 | 49 | ||
50 | cpu_cluster_pm_exit(); | ||
51 | cpu_pm_exit(); | ||
52 | |||
53 | highbank_smc1(0x102, 0x1); | ||
54 | if (scu_base_addr) | ||
55 | scu_enable(scu_base_addr); | ||
39 | return 0; | 56 | return 0; |
40 | } | 57 | } |
41 | 58 | ||
diff --git a/arch/arm/mach-highbank/sysregs.h b/arch/arm/mach-highbank/sysregs.h index e13e8ea7c6cb..70af9d13fcef 100644 --- a/arch/arm/mach-highbank/sysregs.h +++ b/arch/arm/mach-highbank/sysregs.h | |||
@@ -44,28 +44,43 @@ static inline void highbank_set_core_pwr(void) | |||
44 | writel_relaxed(1, sregs_base + SREG_CPU_PWR_CTRL(cpu)); | 44 | writel_relaxed(1, sregs_base + SREG_CPU_PWR_CTRL(cpu)); |
45 | } | 45 | } |
46 | 46 | ||
47 | static inline void hignbank_set_pwr_suspend(void) | 47 | static inline void highbank_clear_core_pwr(void) |
48 | { | ||
49 | int cpu = cpu_logical_map(smp_processor_id()); | ||
50 | if (scu_base_addr) | ||
51 | scu_power_mode(scu_base_addr, SCU_PM_NORMAL); | ||
52 | else | ||
53 | writel_relaxed(0, sregs_base + SREG_CPU_PWR_CTRL(cpu)); | ||
54 | } | ||
55 | |||
56 | static inline void highbank_set_pwr_suspend(void) | ||
48 | { | 57 | { |
49 | writel(HB_PWR_SUSPEND, sregs_base + HB_SREG_A9_PWR_REQ); | 58 | writel(HB_PWR_SUSPEND, sregs_base + HB_SREG_A9_PWR_REQ); |
50 | highbank_set_core_pwr(); | 59 | highbank_set_core_pwr(); |
51 | } | 60 | } |
52 | 61 | ||
53 | static inline void hignbank_set_pwr_shutdown(void) | 62 | static inline void highbank_set_pwr_shutdown(void) |
54 | { | 63 | { |
55 | writel(HB_PWR_SHUTDOWN, sregs_base + HB_SREG_A9_PWR_REQ); | 64 | writel(HB_PWR_SHUTDOWN, sregs_base + HB_SREG_A9_PWR_REQ); |
56 | highbank_set_core_pwr(); | 65 | highbank_set_core_pwr(); |
57 | } | 66 | } |
58 | 67 | ||
59 | static inline void hignbank_set_pwr_soft_reset(void) | 68 | static inline void highbank_set_pwr_soft_reset(void) |
60 | { | 69 | { |
61 | writel(HB_PWR_SOFT_RESET, sregs_base + HB_SREG_A9_PWR_REQ); | 70 | writel(HB_PWR_SOFT_RESET, sregs_base + HB_SREG_A9_PWR_REQ); |
62 | highbank_set_core_pwr(); | 71 | highbank_set_core_pwr(); |
63 | } | 72 | } |
64 | 73 | ||
65 | static inline void hignbank_set_pwr_hard_reset(void) | 74 | static inline void highbank_set_pwr_hard_reset(void) |
66 | { | 75 | { |
67 | writel(HB_PWR_HARD_RESET, sregs_base + HB_SREG_A9_PWR_REQ); | 76 | writel(HB_PWR_HARD_RESET, sregs_base + HB_SREG_A9_PWR_REQ); |
68 | highbank_set_core_pwr(); | 77 | highbank_set_core_pwr(); |
69 | } | 78 | } |
70 | 79 | ||
80 | static inline void highbank_clear_pwr_request(void) | ||
81 | { | ||
82 | writel(~0UL, sregs_base + HB_SREG_A9_PWR_REQ); | ||
83 | highbank_clear_core_pwr(); | ||
84 | } | ||
85 | |||
71 | #endif | 86 | #endif |
diff --git a/arch/arm/mach-highbank/system.c b/arch/arm/mach-highbank/system.c index aed96ad9bd4a..37d8384dcf19 100644 --- a/arch/arm/mach-highbank/system.c +++ b/arch/arm/mach-highbank/system.c | |||
@@ -22,9 +22,9 @@ | |||
22 | void highbank_restart(char mode, const char *cmd) | 22 | void highbank_restart(char mode, const char *cmd) |
23 | { | 23 | { |
24 | if (mode == 'h') | 24 | if (mode == 'h') |
25 | hignbank_set_pwr_hard_reset(); | 25 | highbank_set_pwr_hard_reset(); |
26 | else | 26 | else |
27 | hignbank_set_pwr_soft_reset(); | 27 | highbank_set_pwr_soft_reset(); |
28 | 28 | ||
29 | while (1) | 29 | while (1) |
30 | cpu_do_idle(); | 30 | cpu_do_idle(); |
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 1ad0d76de8c7..0a2349dc7018 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig | |||
@@ -841,8 +841,6 @@ config SOC_IMX6Q | |||
841 | select ARCH_HAS_CPUFREQ | 841 | select ARCH_HAS_CPUFREQ |
842 | select ARCH_HAS_OPP | 842 | select ARCH_HAS_OPP |
843 | select ARM_CPU_SUSPEND if PM | 843 | select ARM_CPU_SUSPEND if PM |
844 | select ARM_ERRATA_743622 | ||
845 | select ARM_ERRATA_751472 | ||
846 | select ARM_ERRATA_754322 | 844 | select ARM_ERRATA_754322 |
847 | select ARM_ERRATA_764369 if SMP | 845 | select ARM_ERRATA_764369 if SMP |
848 | select ARM_ERRATA_775420 | 846 | select ARM_ERRATA_775420 |
@@ -853,6 +851,7 @@ config SOC_IMX6Q | |||
853 | select HAVE_CAN_FLEXCAN if CAN | 851 | select HAVE_CAN_FLEXCAN if CAN |
854 | select HAVE_IMX_GPC | 852 | select HAVE_IMX_GPC |
855 | select HAVE_IMX_MMDC | 853 | select HAVE_IMX_MMDC |
854 | select HAVE_IMX_SRC | ||
856 | select HAVE_SMP | 855 | select HAVE_SMP |
857 | select MFD_SYSCON | 856 | select MFD_SYSCON |
858 | select PINCTRL | 857 | select PINCTRL |
diff --git a/arch/arm/mach-imx/clk-imx25.c b/arch/arm/mach-imx/clk-imx25.c index b197aa73dc4b..2c570cdaae7b 100644 --- a/arch/arm/mach-imx/clk-imx25.c +++ b/arch/arm/mach-imx/clk-imx25.c | |||
@@ -254,9 +254,9 @@ int __init mx25_clocks_init(void) | |||
254 | clk_register_clkdev(clk[ipg], "ipg", "mxc-ehci.2"); | 254 | clk_register_clkdev(clk[ipg], "ipg", "mxc-ehci.2"); |
255 | clk_register_clkdev(clk[usbotg_ahb], "ahb", "mxc-ehci.2"); | 255 | clk_register_clkdev(clk[usbotg_ahb], "ahb", "mxc-ehci.2"); |
256 | clk_register_clkdev(clk[usb_div], "per", "mxc-ehci.2"); | 256 | clk_register_clkdev(clk[usb_div], "per", "mxc-ehci.2"); |
257 | clk_register_clkdev(clk[ipg], "ipg", "fsl-usb2-udc"); | 257 | clk_register_clkdev(clk[ipg], "ipg", "imx-udc-mx27"); |
258 | clk_register_clkdev(clk[usbotg_ahb], "ahb", "fsl-usb2-udc"); | 258 | clk_register_clkdev(clk[usbotg_ahb], "ahb", "imx-udc-mx27"); |
259 | clk_register_clkdev(clk[usb_div], "per", "fsl-usb2-udc"); | 259 | clk_register_clkdev(clk[usb_div], "per", "imx-udc-mx27"); |
260 | clk_register_clkdev(clk[nfc_ipg_per], NULL, "imx25-nand.0"); | 260 | clk_register_clkdev(clk[nfc_ipg_per], NULL, "imx25-nand.0"); |
261 | /* i.mx25 has the i.mx35 type cspi */ | 261 | /* i.mx25 has the i.mx35 type cspi */ |
262 | clk_register_clkdev(clk[cspi1_ipg], NULL, "imx35-cspi.0"); | 262 | clk_register_clkdev(clk[cspi1_ipg], NULL, "imx35-cspi.0"); |
diff --git a/arch/arm/mach-imx/clk-imx27.c b/arch/arm/mach-imx/clk-imx27.c index 4c1d1e4efc74..1ffe3b534e51 100644 --- a/arch/arm/mach-imx/clk-imx27.c +++ b/arch/arm/mach-imx/clk-imx27.c | |||
@@ -236,9 +236,9 @@ int __init mx27_clocks_init(unsigned long fref) | |||
236 | clk_register_clkdev(clk[lcdc_ahb_gate], "ahb", "imx21-fb.0"); | 236 | clk_register_clkdev(clk[lcdc_ahb_gate], "ahb", "imx21-fb.0"); |
237 | clk_register_clkdev(clk[csi_ahb_gate], "ahb", "imx27-camera.0"); | 237 | clk_register_clkdev(clk[csi_ahb_gate], "ahb", "imx27-camera.0"); |
238 | clk_register_clkdev(clk[per4_gate], "per", "imx27-camera.0"); | 238 | clk_register_clkdev(clk[per4_gate], "per", "imx27-camera.0"); |
239 | clk_register_clkdev(clk[usb_div], "per", "fsl-usb2-udc"); | 239 | clk_register_clkdev(clk[usb_div], "per", "imx-udc-mx27"); |
240 | clk_register_clkdev(clk[usb_ipg_gate], "ipg", "fsl-usb2-udc"); | 240 | clk_register_clkdev(clk[usb_ipg_gate], "ipg", "imx-udc-mx27"); |
241 | clk_register_clkdev(clk[usb_ahb_gate], "ahb", "fsl-usb2-udc"); | 241 | clk_register_clkdev(clk[usb_ahb_gate], "ahb", "imx-udc-mx27"); |
242 | clk_register_clkdev(clk[usb_div], "per", "mxc-ehci.0"); | 242 | clk_register_clkdev(clk[usb_div], "per", "mxc-ehci.0"); |
243 | clk_register_clkdev(clk[usb_ipg_gate], "ipg", "mxc-ehci.0"); | 243 | clk_register_clkdev(clk[usb_ipg_gate], "ipg", "mxc-ehci.0"); |
244 | clk_register_clkdev(clk[usb_ahb_gate], "ahb", "mxc-ehci.0"); | 244 | clk_register_clkdev(clk[usb_ahb_gate], "ahb", "mxc-ehci.0"); |
diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c index 8be64e0a4ace..16ccbd41dea9 100644 --- a/arch/arm/mach-imx/clk-imx31.c +++ b/arch/arm/mach-imx/clk-imx31.c | |||
@@ -139,9 +139,9 @@ int __init mx31_clocks_init(unsigned long fref) | |||
139 | clk_register_clkdev(clk[usb_div_post], "per", "mxc-ehci.2"); | 139 | clk_register_clkdev(clk[usb_div_post], "per", "mxc-ehci.2"); |
140 | clk_register_clkdev(clk[usb_gate], "ahb", "mxc-ehci.2"); | 140 | clk_register_clkdev(clk[usb_gate], "ahb", "mxc-ehci.2"); |
141 | clk_register_clkdev(clk[ipg], "ipg", "mxc-ehci.2"); | 141 | clk_register_clkdev(clk[ipg], "ipg", "mxc-ehci.2"); |
142 | clk_register_clkdev(clk[usb_div_post], "per", "fsl-usb2-udc"); | 142 | clk_register_clkdev(clk[usb_div_post], "per", "imx-udc-mx27"); |
143 | clk_register_clkdev(clk[usb_gate], "ahb", "fsl-usb2-udc"); | 143 | clk_register_clkdev(clk[usb_gate], "ahb", "imx-udc-mx27"); |
144 | clk_register_clkdev(clk[ipg], "ipg", "fsl-usb2-udc"); | 144 | clk_register_clkdev(clk[ipg], "ipg", "imx-udc-mx27"); |
145 | clk_register_clkdev(clk[csi_gate], NULL, "mx3-camera.0"); | 145 | clk_register_clkdev(clk[csi_gate], NULL, "mx3-camera.0"); |
146 | /* i.mx31 has the i.mx21 type uart */ | 146 | /* i.mx31 has the i.mx21 type uart */ |
147 | clk_register_clkdev(clk[uart1_gate], "per", "imx21-uart.0"); | 147 | clk_register_clkdev(clk[uart1_gate], "per", "imx21-uart.0"); |
diff --git a/arch/arm/mach-imx/clk-imx35.c b/arch/arm/mach-imx/clk-imx35.c index 66f3d65ea275..f0727e80815d 100644 --- a/arch/arm/mach-imx/clk-imx35.c +++ b/arch/arm/mach-imx/clk-imx35.c | |||
@@ -251,9 +251,9 @@ int __init mx35_clocks_init() | |||
251 | clk_register_clkdev(clk[usb_div], "per", "mxc-ehci.2"); | 251 | clk_register_clkdev(clk[usb_div], "per", "mxc-ehci.2"); |
252 | clk_register_clkdev(clk[ipg], "ipg", "mxc-ehci.2"); | 252 | clk_register_clkdev(clk[ipg], "ipg", "mxc-ehci.2"); |
253 | clk_register_clkdev(clk[usbotg_gate], "ahb", "mxc-ehci.2"); | 253 | clk_register_clkdev(clk[usbotg_gate], "ahb", "mxc-ehci.2"); |
254 | clk_register_clkdev(clk[usb_div], "per", "fsl-usb2-udc"); | 254 | clk_register_clkdev(clk[usb_div], "per", "imx-udc-mx27"); |
255 | clk_register_clkdev(clk[ipg], "ipg", "fsl-usb2-udc"); | 255 | clk_register_clkdev(clk[ipg], "ipg", "imx-udc-mx27"); |
256 | clk_register_clkdev(clk[usbotg_gate], "ahb", "fsl-usb2-udc"); | 256 | clk_register_clkdev(clk[usbotg_gate], "ahb", "imx-udc-mx27"); |
257 | clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0"); | 257 | clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0"); |
258 | clk_register_clkdev(clk[nfc_div], NULL, "imx25-nand.0"); | 258 | clk_register_clkdev(clk[nfc_div], NULL, "imx25-nand.0"); |
259 | clk_register_clkdev(clk[csi_gate], NULL, "mx3-camera.0"); | 259 | clk_register_clkdev(clk[csi_gate], NULL, "mx3-camera.0"); |
diff --git a/arch/arm/mach-imx/clk-imx51-imx53.c b/arch/arm/mach-imx/clk-imx51-imx53.c index 579023f59dc1..fb7cb841b64c 100644 --- a/arch/arm/mach-imx/clk-imx51-imx53.c +++ b/arch/arm/mach-imx/clk-imx51-imx53.c | |||
@@ -269,9 +269,9 @@ static void __init mx5_clocks_common_init(unsigned long rate_ckil, | |||
269 | clk_register_clkdev(clk[usboh3_per_gate], "per", "mxc-ehci.2"); | 269 | clk_register_clkdev(clk[usboh3_per_gate], "per", "mxc-ehci.2"); |
270 | clk_register_clkdev(clk[usboh3_gate], "ipg", "mxc-ehci.2"); | 270 | clk_register_clkdev(clk[usboh3_gate], "ipg", "mxc-ehci.2"); |
271 | clk_register_clkdev(clk[usboh3_gate], "ahb", "mxc-ehci.2"); | 271 | clk_register_clkdev(clk[usboh3_gate], "ahb", "mxc-ehci.2"); |
272 | clk_register_clkdev(clk[usboh3_per_gate], "per", "fsl-usb2-udc"); | 272 | clk_register_clkdev(clk[usboh3_per_gate], "per", "imx-udc-mx51"); |
273 | clk_register_clkdev(clk[usboh3_gate], "ipg", "fsl-usb2-udc"); | 273 | clk_register_clkdev(clk[usboh3_gate], "ipg", "imx-udc-mx51"); |
274 | clk_register_clkdev(clk[usboh3_gate], "ahb", "fsl-usb2-udc"); | 274 | clk_register_clkdev(clk[usboh3_gate], "ahb", "imx-udc-mx51"); |
275 | clk_register_clkdev(clk[nfc_gate], NULL, "imx51-nand"); | 275 | clk_register_clkdev(clk[nfc_gate], NULL, "imx51-nand"); |
276 | clk_register_clkdev(clk[ssi1_ipg_gate], NULL, "imx-ssi.0"); | 276 | clk_register_clkdev(clk[ssi1_ipg_gate], NULL, "imx-ssi.0"); |
277 | clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1"); | 277 | clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1"); |
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c index 7f2c10c7413a..c0c4e723b7f5 100644 --- a/arch/arm/mach-imx/clk-imx6q.c +++ b/arch/arm/mach-imx/clk-imx6q.c | |||
@@ -436,6 +436,9 @@ int __init mx6q_clocks_init(void) | |||
436 | for (i = 0; i < ARRAY_SIZE(clks_init_on); i++) | 436 | for (i = 0; i < ARRAY_SIZE(clks_init_on); i++) |
437 | clk_prepare_enable(clk[clks_init_on[i]]); | 437 | clk_prepare_enable(clk[clks_init_on[i]]); |
438 | 438 | ||
439 | /* Set initial power mode */ | ||
440 | imx6q_set_lpm(WAIT_CLOCKED); | ||
441 | |||
439 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt"); | 442 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt"); |
440 | base = of_iomap(np, 0); | 443 | base = of_iomap(np, 0); |
441 | WARN_ON(!base); | 444 | WARN_ON(!base); |
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index 7191ab4434e5..fa36fb84ab19 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h | |||
@@ -142,6 +142,7 @@ extern int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode); | |||
142 | extern void imx6q_clock_map_io(void); | 142 | extern void imx6q_clock_map_io(void); |
143 | 143 | ||
144 | extern void imx_cpu_die(unsigned int cpu); | 144 | extern void imx_cpu_die(unsigned int cpu); |
145 | extern int imx_cpu_kill(unsigned int cpu); | ||
145 | 146 | ||
146 | #ifdef CONFIG_PM | 147 | #ifdef CONFIG_PM |
147 | extern void imx6q_pm_init(void); | 148 | extern void imx6q_pm_init(void); |
diff --git a/arch/arm/mach-imx/cpufreq.c b/arch/arm/mach-imx/cpufreq.c index 36e8b3994470..d8c75c3c925d 100644 --- a/arch/arm/mach-imx/cpufreq.c +++ b/arch/arm/mach-imx/cpufreq.c | |||
@@ -188,7 +188,7 @@ static struct cpufreq_driver mxc_driver = { | |||
188 | .name = "imx", | 188 | .name = "imx", |
189 | }; | 189 | }; |
190 | 190 | ||
191 | static int __devinit mxc_cpufreq_driver_init(void) | 191 | static int mxc_cpufreq_driver_init(void) |
192 | { | 192 | { |
193 | return cpufreq_register_driver(&mxc_driver); | 193 | return cpufreq_register_driver(&mxc_driver); |
194 | } | 194 | } |
diff --git a/arch/arm/mach-imx/devices/devices-common.h b/arch/arm/mach-imx/devices/devices-common.h index 6277baf1b7be..9bd5777ff0e7 100644 --- a/arch/arm/mach-imx/devices/devices-common.h +++ b/arch/arm/mach-imx/devices/devices-common.h | |||
@@ -63,6 +63,7 @@ struct platform_device *__init imx_add_flexcan( | |||
63 | 63 | ||
64 | #include <linux/fsl_devices.h> | 64 | #include <linux/fsl_devices.h> |
65 | struct imx_fsl_usb2_udc_data { | 65 | struct imx_fsl_usb2_udc_data { |
66 | const char *devid; | ||
66 | resource_size_t iobase; | 67 | resource_size_t iobase; |
67 | resource_size_t irq; | 68 | resource_size_t irq; |
68 | }; | 69 | }; |
diff --git a/arch/arm/mach-imx/devices/platform-fsl-usb2-udc.c b/arch/arm/mach-imx/devices/platform-fsl-usb2-udc.c index 37e44398197b..3c06bd96e9cc 100644 --- a/arch/arm/mach-imx/devices/platform-fsl-usb2-udc.c +++ b/arch/arm/mach-imx/devices/platform-fsl-usb2-udc.c | |||
@@ -11,35 +11,36 @@ | |||
11 | #include "../hardware.h" | 11 | #include "../hardware.h" |
12 | #include "devices-common.h" | 12 | #include "devices-common.h" |
13 | 13 | ||
14 | #define imx_fsl_usb2_udc_data_entry_single(soc) \ | 14 | #define imx_fsl_usb2_udc_data_entry_single(soc, _devid) \ |
15 | { \ | 15 | { \ |
16 | .devid = _devid, \ | ||
16 | .iobase = soc ## _USB_OTG_BASE_ADDR, \ | 17 | .iobase = soc ## _USB_OTG_BASE_ADDR, \ |
17 | .irq = soc ## _INT_USB_OTG, \ | 18 | .irq = soc ## _INT_USB_OTG, \ |
18 | } | 19 | } |
19 | 20 | ||
20 | #ifdef CONFIG_SOC_IMX25 | 21 | #ifdef CONFIG_SOC_IMX25 |
21 | const struct imx_fsl_usb2_udc_data imx25_fsl_usb2_udc_data __initconst = | 22 | const struct imx_fsl_usb2_udc_data imx25_fsl_usb2_udc_data __initconst = |
22 | imx_fsl_usb2_udc_data_entry_single(MX25); | 23 | imx_fsl_usb2_udc_data_entry_single(MX25, "imx-udc-mx27"); |
23 | #endif /* ifdef CONFIG_SOC_IMX25 */ | 24 | #endif /* ifdef CONFIG_SOC_IMX25 */ |
24 | 25 | ||
25 | #ifdef CONFIG_SOC_IMX27 | 26 | #ifdef CONFIG_SOC_IMX27 |
26 | const struct imx_fsl_usb2_udc_data imx27_fsl_usb2_udc_data __initconst = | 27 | const struct imx_fsl_usb2_udc_data imx27_fsl_usb2_udc_data __initconst = |
27 | imx_fsl_usb2_udc_data_entry_single(MX27); | 28 | imx_fsl_usb2_udc_data_entry_single(MX27, "imx-udc-mx27"); |
28 | #endif /* ifdef CONFIG_SOC_IMX27 */ | 29 | #endif /* ifdef CONFIG_SOC_IMX27 */ |
29 | 30 | ||
30 | #ifdef CONFIG_SOC_IMX31 | 31 | #ifdef CONFIG_SOC_IMX31 |
31 | const struct imx_fsl_usb2_udc_data imx31_fsl_usb2_udc_data __initconst = | 32 | const struct imx_fsl_usb2_udc_data imx31_fsl_usb2_udc_data __initconst = |
32 | imx_fsl_usb2_udc_data_entry_single(MX31); | 33 | imx_fsl_usb2_udc_data_entry_single(MX31, "imx-udc-mx27"); |
33 | #endif /* ifdef CONFIG_SOC_IMX31 */ | 34 | #endif /* ifdef CONFIG_SOC_IMX31 */ |
34 | 35 | ||
35 | #ifdef CONFIG_SOC_IMX35 | 36 | #ifdef CONFIG_SOC_IMX35 |
36 | const struct imx_fsl_usb2_udc_data imx35_fsl_usb2_udc_data __initconst = | 37 | const struct imx_fsl_usb2_udc_data imx35_fsl_usb2_udc_data __initconst = |
37 | imx_fsl_usb2_udc_data_entry_single(MX35); | 38 | imx_fsl_usb2_udc_data_entry_single(MX35, "imx-udc-mx27"); |
38 | #endif /* ifdef CONFIG_SOC_IMX35 */ | 39 | #endif /* ifdef CONFIG_SOC_IMX35 */ |
39 | 40 | ||
40 | #ifdef CONFIG_SOC_IMX51 | 41 | #ifdef CONFIG_SOC_IMX51 |
41 | const struct imx_fsl_usb2_udc_data imx51_fsl_usb2_udc_data __initconst = | 42 | const struct imx_fsl_usb2_udc_data imx51_fsl_usb2_udc_data __initconst = |
42 | imx_fsl_usb2_udc_data_entry_single(MX51); | 43 | imx_fsl_usb2_udc_data_entry_single(MX51, "imx-udc-mx51"); |
43 | #endif | 44 | #endif |
44 | 45 | ||
45 | struct platform_device *__init imx_add_fsl_usb2_udc( | 46 | struct platform_device *__init imx_add_fsl_usb2_udc( |
@@ -57,7 +58,7 @@ struct platform_device *__init imx_add_fsl_usb2_udc( | |||
57 | .flags = IORESOURCE_IRQ, | 58 | .flags = IORESOURCE_IRQ, |
58 | }, | 59 | }, |
59 | }; | 60 | }; |
60 | return imx_add_platform_device_dmamask("fsl-usb2-udc", -1, | 61 | return imx_add_platform_device_dmamask(data->devid, -1, |
61 | res, ARRAY_SIZE(res), | 62 | res, ARRAY_SIZE(res), |
62 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | 63 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); |
63 | } | 64 | } |
diff --git a/arch/arm/mach-imx/devices/platform-imx-fb.c b/arch/arm/mach-imx/devices/platform-imx-fb.c index 10b0ed39f07f..25a47c616b2d 100644 --- a/arch/arm/mach-imx/devices/platform-imx-fb.c +++ b/arch/arm/mach-imx/devices/platform-imx-fb.c | |||
@@ -54,7 +54,7 @@ struct platform_device *__init imx_add_imx_fb( | |||
54 | .flags = IORESOURCE_IRQ, | 54 | .flags = IORESOURCE_IRQ, |
55 | }, | 55 | }, |
56 | }; | 56 | }; |
57 | return imx_add_platform_device_dmamask("imx-fb", 0, | 57 | return imx_add_platform_device_dmamask(data->devid, 0, |
58 | res, ARRAY_SIZE(res), | 58 | res, ARRAY_SIZE(res), |
59 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | 59 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); |
60 | } | 60 | } |
diff --git a/arch/arm/mach-imx/hotplug.c b/arch/arm/mach-imx/hotplug.c index 3dec962b0770..7bc5fe15dda2 100644 --- a/arch/arm/mach-imx/hotplug.c +++ b/arch/arm/mach-imx/hotplug.c | |||
@@ -46,9 +46,11 @@ static inline void cpu_enter_lowpower(void) | |||
46 | void imx_cpu_die(unsigned int cpu) | 46 | void imx_cpu_die(unsigned int cpu) |
47 | { | 47 | { |
48 | cpu_enter_lowpower(); | 48 | cpu_enter_lowpower(); |
49 | imx_enable_cpu(cpu, false); | 49 | cpu_do_idle(); |
50 | } | ||
50 | 51 | ||
51 | /* spin here until hardware takes it down */ | 52 | int imx_cpu_kill(unsigned int cpu) |
52 | while (1) | 53 | { |
53 | ; | 54 | imx_enable_cpu(cpu, false); |
55 | return 1; | ||
54 | } | 56 | } |
diff --git a/arch/arm/mach-imx/iram.h b/arch/arm/mach-imx/iram.h deleted file mode 100644 index 022690c33702..000000000000 --- a/arch/arm/mach-imx/iram.h +++ /dev/null | |||
@@ -1,41 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | #include <linux/errno.h> | ||
20 | |||
21 | #ifdef CONFIG_IRAM_ALLOC | ||
22 | |||
23 | int __init iram_init(unsigned long base, unsigned long size); | ||
24 | void __iomem *iram_alloc(unsigned int size, unsigned long *dma_addr); | ||
25 | void iram_free(unsigned long dma_addr, unsigned int size); | ||
26 | |||
27 | #else | ||
28 | |||
29 | static inline int __init iram_init(unsigned long base, unsigned long size) | ||
30 | { | ||
31 | return -ENOMEM; | ||
32 | } | ||
33 | |||
34 | static inline void __iomem *iram_alloc(unsigned int size, unsigned long *dma_addr) | ||
35 | { | ||
36 | return NULL; | ||
37 | } | ||
38 | |||
39 | static inline void iram_free(unsigned long base, unsigned long size) {} | ||
40 | |||
41 | #endif | ||
diff --git a/arch/arm/mach-imx/iram_alloc.c b/arch/arm/mach-imx/iram_alloc.c index 6c80424f678e..e05cf407db65 100644 --- a/arch/arm/mach-imx/iram_alloc.c +++ b/arch/arm/mach-imx/iram_alloc.c | |||
@@ -22,8 +22,7 @@ | |||
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/spinlock.h> | 23 | #include <linux/spinlock.h> |
24 | #include <linux/genalloc.h> | 24 | #include <linux/genalloc.h> |
25 | 25 | #include "linux/platform_data/imx-iram.h" | |
26 | #include "iram.h" | ||
27 | 26 | ||
28 | static unsigned long iram_phys_base; | 27 | static unsigned long iram_phys_base; |
29 | static void __iomem *iram_virt_base; | 28 | static void __iomem *iram_virt_base; |
diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c index c461e98496c3..7a9686ad994c 100644 --- a/arch/arm/mach-imx/mmdc.c +++ b/arch/arm/mach-imx/mmdc.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #define BP_MMDC_MAPSR_PSD 0 | 21 | #define BP_MMDC_MAPSR_PSD 0 |
22 | #define BP_MMDC_MAPSR_PSS 4 | 22 | #define BP_MMDC_MAPSR_PSS 4 |
23 | 23 | ||
24 | static int __devinit imx_mmdc_probe(struct platform_device *pdev) | 24 | static int imx_mmdc_probe(struct platform_device *pdev) |
25 | { | 25 | { |
26 | struct device_node *np = pdev->dev.of_node; | 26 | struct device_node *np = pdev->dev.of_node; |
27 | void __iomem *mmdc_base, *reg; | 27 | void __iomem *mmdc_base, *reg; |
diff --git a/arch/arm/mach-imx/platsmp.c b/arch/arm/mach-imx/platsmp.c index 3777b805b76b..66fae885c842 100644 --- a/arch/arm/mach-imx/platsmp.c +++ b/arch/arm/mach-imx/platsmp.c | |||
@@ -92,5 +92,6 @@ struct smp_operations imx_smp_ops __initdata = { | |||
92 | .smp_boot_secondary = imx_boot_secondary, | 92 | .smp_boot_secondary = imx_boot_secondary, |
93 | #ifdef CONFIG_HOTPLUG_CPU | 93 | #ifdef CONFIG_HOTPLUG_CPU |
94 | .cpu_die = imx_cpu_die, | 94 | .cpu_die = imx_cpu_die, |
95 | .cpu_kill = imx_cpu_kill, | ||
95 | #endif | 96 | #endif |
96 | }; | 97 | }; |
diff --git a/arch/arm/mach-imx/pm-imx6q.c b/arch/arm/mach-imx/pm-imx6q.c index a17543da602d..ee42d20cba19 100644 --- a/arch/arm/mach-imx/pm-imx6q.c +++ b/arch/arm/mach-imx/pm-imx6q.c | |||
@@ -41,6 +41,7 @@ static int imx6q_pm_enter(suspend_state_t state) | |||
41 | cpu_suspend(0, imx6q_suspend_finish); | 41 | cpu_suspend(0, imx6q_suspend_finish); |
42 | imx_smp_prepare(); | 42 | imx_smp_prepare(); |
43 | imx_gpc_post_resume(); | 43 | imx_gpc_post_resume(); |
44 | imx6q_set_lpm(WAIT_CLOCKED); | ||
44 | break; | 45 | break; |
45 | default: | 46 | default: |
46 | return -EINVAL; | 47 | return -EINVAL; |
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c index be50e795536d..e7fcea7f3300 100644 --- a/arch/arm/mach-integrator/pci_v3.c +++ b/arch/arm/mach-integrator/pci_v3.c | |||
@@ -475,13 +475,12 @@ int __init pci_v3_setup(int nr, struct pci_sys_data *sys) | |||
475 | { | 475 | { |
476 | int ret = 0; | 476 | int ret = 0; |
477 | 477 | ||
478 | if (!ap_syscon_base) | ||
479 | return -EINVAL; | ||
480 | |||
478 | if (nr == 0) { | 481 | if (nr == 0) { |
479 | sys->mem_offset = PHYS_PCI_MEM_BASE; | 482 | sys->mem_offset = PHYS_PCI_MEM_BASE; |
480 | ret = pci_v3_setup_resources(sys); | 483 | ret = pci_v3_setup_resources(sys); |
481 | /* Remap the Integrator system controller */ | ||
482 | ap_syscon_base = ioremap(INTEGRATOR_SC_BASE, 0x100); | ||
483 | if (!ap_syscon_base) | ||
484 | return -EINVAL; | ||
485 | } | 484 | } |
486 | 485 | ||
487 | return ret; | 486 | return ret; |
@@ -497,6 +496,13 @@ void __init pci_v3_preinit(void) | |||
497 | unsigned int temp; | 496 | unsigned int temp; |
498 | int ret; | 497 | int ret; |
499 | 498 | ||
499 | /* Remap the Integrator system controller */ | ||
500 | ap_syscon_base = ioremap(INTEGRATOR_SC_BASE, 0x100); | ||
501 | if (!ap_syscon_base) { | ||
502 | pr_err("unable to remap the AP syscon for PCIv3\n"); | ||
503 | return; | ||
504 | } | ||
505 | |||
500 | pcibios_min_mem = 0x00100000; | 506 | pcibios_min_mem = 0x00100000; |
501 | 507 | ||
502 | /* | 508 | /* |
diff --git a/arch/arm/mach-iop13xx/pci.c b/arch/arm/mach-iop13xx/pci.c index 2f28018c4447..9082b84aeebb 100644 --- a/arch/arm/mach-iop13xx/pci.c +++ b/arch/arm/mach-iop13xx/pci.c | |||
@@ -504,7 +504,7 @@ iop13xx_pci_abort(unsigned long addr, unsigned int fsr, struct pt_regs *regs) | |||
504 | 504 | ||
505 | /* Scan an IOP13XX PCI bus. nr selects which ATU we use. | 505 | /* Scan an IOP13XX PCI bus. nr selects which ATU we use. |
506 | */ | 506 | */ |
507 | struct pci_bus * __devinit iop13xx_scan_bus(int nr, struct pci_sys_data *sys) | 507 | struct pci_bus *iop13xx_scan_bus(int nr, struct pci_sys_data *sys) |
508 | { | 508 | { |
509 | int which_atu; | 509 | int which_atu; |
510 | struct pci_bus *bus = NULL; | 510 | struct pci_bus *bus = NULL; |
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c index ff4150a2ad05..de4fd2bb1e27 100644 --- a/arch/arm/mach-kirkwood/board-dt.c +++ b/arch/arm/mach-kirkwood/board-dt.c | |||
@@ -67,6 +67,10 @@ static void __init kirkwood_legacy_clk_init(void) | |||
67 | orion_clkdev_add(NULL, "mv643xx_eth_port.1", | 67 | orion_clkdev_add(NULL, "mv643xx_eth_port.1", |
68 | of_clk_get_from_provider(&clkspec)); | 68 | of_clk_get_from_provider(&clkspec)); |
69 | 69 | ||
70 | clkspec.args[0] = CGC_BIT_SDIO; | ||
71 | orion_clkdev_add(NULL, "mvsdio", | ||
72 | of_clk_get_from_provider(&clkspec)); | ||
73 | |||
70 | } | 74 | } |
71 | 75 | ||
72 | static void __init kirkwood_of_clk_init(void) | 76 | static void __init kirkwood_of_clk_init(void) |
diff --git a/arch/arm/mach-kirkwood/board-ns2.c b/arch/arm/mach-kirkwood/board-ns2.c index 8821720ab5a4..f4632a809f68 100644 --- a/arch/arm/mach-kirkwood/board-ns2.c +++ b/arch/arm/mach-kirkwood/board-ns2.c | |||
@@ -18,47 +18,11 @@ | |||
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <linux/of.h> | 19 | #include <linux/of.h> |
20 | #include "common.h" | 20 | #include "common.h" |
21 | #include "mpp.h" | ||
22 | 21 | ||
23 | static struct mv643xx_eth_platform_data ns2_ge00_data = { | 22 | static struct mv643xx_eth_platform_data ns2_ge00_data = { |
24 | .phy_addr = MV643XX_ETH_PHY_ADDR(8), | 23 | .phy_addr = MV643XX_ETH_PHY_ADDR(8), |
25 | }; | 24 | }; |
26 | 25 | ||
27 | static unsigned int ns2_mpp_config[] __initdata = { | ||
28 | MPP0_SPI_SCn, | ||
29 | MPP1_SPI_MOSI, | ||
30 | MPP2_SPI_SCK, | ||
31 | MPP3_SPI_MISO, | ||
32 | MPP4_NF_IO6, | ||
33 | MPP5_NF_IO7, | ||
34 | MPP6_SYSRST_OUTn, | ||
35 | MPP7_GPO, /* Fan speed (bit 1) */ | ||
36 | MPP8_TW0_SDA, | ||
37 | MPP9_TW0_SCK, | ||
38 | MPP10_UART0_TXD, | ||
39 | MPP11_UART0_RXD, | ||
40 | MPP12_GPO, /* Red led */ | ||
41 | MPP14_GPIO, /* USB fuse */ | ||
42 | MPP16_GPIO, /* SATA 0 power */ | ||
43 | MPP17_GPIO, /* SATA 1 power */ | ||
44 | MPP18_NF_IO0, | ||
45 | MPP19_NF_IO1, | ||
46 | MPP20_SATA1_ACTn, | ||
47 | MPP21_SATA0_ACTn, | ||
48 | MPP22_GPIO, /* Fan speed (bit 0) */ | ||
49 | MPP23_GPIO, /* Fan power */ | ||
50 | MPP24_GPIO, /* USB mode select */ | ||
51 | MPP25_GPIO, /* Fan rotation fail */ | ||
52 | MPP26_GPIO, /* USB device vbus */ | ||
53 | MPP28_GPIO, /* USB enable host vbus */ | ||
54 | MPP29_GPIO, /* Blue led (slow register) */ | ||
55 | MPP30_GPIO, /* Blue led (command register) */ | ||
56 | MPP31_GPIO, /* Board power off */ | ||
57 | MPP32_GPIO, /* Power button (0 = Released, 1 = Pushed) */ | ||
58 | MPP33_GPO, /* Fan speed (bit 2) */ | ||
59 | 0 | ||
60 | }; | ||
61 | |||
62 | #define NS2_GPIO_POWER_OFF 31 | 26 | #define NS2_GPIO_POWER_OFF 31 |
63 | 27 | ||
64 | static void ns2_power_off(void) | 28 | static void ns2_power_off(void) |
@@ -71,8 +35,6 @@ void __init ns2_init(void) | |||
71 | /* | 35 | /* |
72 | * Basic setup. Needs to be called early. | 36 | * Basic setup. Needs to be called early. |
73 | */ | 37 | */ |
74 | kirkwood_mpp_conf(ns2_mpp_config); | ||
75 | |||
76 | if (of_machine_is_compatible("lacie,netspace_lite_v2") || | 38 | if (of_machine_is_compatible("lacie,netspace_lite_v2") || |
77 | of_machine_is_compatible("lacie,netspace_mini_v2")) | 39 | of_machine_is_compatible("lacie,netspace_mini_v2")) |
78 | ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); | 40 | ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); |
diff --git a/arch/arm/mach-kirkwood/board-usi_topkick.c b/arch/arm/mach-kirkwood/board-usi_topkick.c index 15e69fcde9f4..23d2dd1b1b1e 100644 --- a/arch/arm/mach-kirkwood/board-usi_topkick.c +++ b/arch/arm/mach-kirkwood/board-usi_topkick.c | |||
@@ -64,8 +64,6 @@ static unsigned int topkick_mpp_config[] __initdata = { | |||
64 | 0 | 64 | 0 |
65 | }; | 65 | }; |
66 | 66 | ||
67 | #define TOPKICK_SATA0_PWR_ENABLE 36 | ||
68 | |||
69 | void __init usi_topkick_init(void) | 67 | void __init usi_topkick_init(void) |
70 | { | 68 | { |
71 | /* | 69 | /* |
@@ -73,8 +71,6 @@ void __init usi_topkick_init(void) | |||
73 | */ | 71 | */ |
74 | kirkwood_mpp_conf(topkick_mpp_config); | 72 | kirkwood_mpp_conf(topkick_mpp_config); |
75 | 73 | ||
76 | /* SATA0 power enable */ | ||
77 | gpio_set_value(TOPKICK_SATA0_PWR_ENABLE, 1); | ||
78 | 74 | ||
79 | kirkwood_ge00_init(&topkick_ge00_data); | 75 | kirkwood_ge00_init(&topkick_ge00_data); |
80 | kirkwood_sdio_init(&topkick_mvsdio_data); | 76 | kirkwood_sdio_init(&topkick_mvsdio_data); |
diff --git a/arch/arm/mach-kirkwood/pcie.c b/arch/arm/mach-kirkwood/pcie.c index ef102646ba9a..a1c3ab6fc809 100644 --- a/arch/arm/mach-kirkwood/pcie.c +++ b/arch/arm/mach-kirkwood/pcie.c | |||
@@ -214,7 +214,7 @@ static int __init kirkwood_pcie_setup(int nr, struct pci_sys_data *sys) | |||
214 | * PCI_CLASS_BRIDGE_HOST or Linux will errantly try to process the BAR's on | 214 | * PCI_CLASS_BRIDGE_HOST or Linux will errantly try to process the BAR's on |
215 | * the device. Decoding setup is handled by the orion code. | 215 | * the device. Decoding setup is handled by the orion code. |
216 | */ | 216 | */ |
217 | static void __devinit rc_pci_fixup(struct pci_dev *dev) | 217 | static void rc_pci_fixup(struct pci_dev *dev) |
218 | { | 218 | { |
219 | if (dev->bus->parent == NULL && dev->devfn == 0) { | 219 | if (dev->bus->parent == NULL && dev->devfn == 0) { |
220 | int i; | 220 | int i; |
diff --git a/arch/arm/mach-ks8695/board-acs5k.c b/arch/arm/mach-ks8695/board-acs5k.c index 255502ddd879..b0c306ccbc6e 100644 --- a/arch/arm/mach-ks8695/board-acs5k.c +++ b/arch/arm/mach-ks8695/board-acs5k.c | |||
@@ -92,7 +92,7 @@ static struct i2c_board_info acs5k_i2c_devs[] __initdata = { | |||
92 | }, | 92 | }, |
93 | }; | 93 | }; |
94 | 94 | ||
95 | static void __devinit acs5k_i2c_init(void) | 95 | static void acs5k_i2c_init(void) |
96 | { | 96 | { |
97 | /* The gpio interface */ | 97 | /* The gpio interface */ |
98 | platform_device_register(&acs5k_i2c_device); | 98 | platform_device_register(&acs5k_i2c_device); |
diff --git a/arch/arm/mach-mmp/sram.c b/arch/arm/mach-mmp/sram.c index a6c08ede4491..bf5e64906e65 100644 --- a/arch/arm/mach-mmp/sram.c +++ b/arch/arm/mach-mmp/sram.c | |||
@@ -61,7 +61,7 @@ struct gen_pool *sram_get_gpool(char *pool_name) | |||
61 | } | 61 | } |
62 | EXPORT_SYMBOL(sram_get_gpool); | 62 | EXPORT_SYMBOL(sram_get_gpool); |
63 | 63 | ||
64 | static int __devinit sram_probe(struct platform_device *pdev) | 64 | static int sram_probe(struct platform_device *pdev) |
65 | { | 65 | { |
66 | struct sram_platdata *pdata = pdev->dev.platform_data; | 66 | struct sram_platdata *pdata = pdev->dev.platform_data; |
67 | struct sram_bank_info *info; | 67 | struct sram_bank_info *info; |
@@ -125,7 +125,7 @@ out: | |||
125 | return ret; | 125 | return ret; |
126 | } | 126 | } |
127 | 127 | ||
128 | static int __devexit sram_remove(struct platform_device *pdev) | 128 | static int sram_remove(struct platform_device *pdev) |
129 | { | 129 | { |
130 | struct sram_bank_info *info; | 130 | struct sram_bank_info *info; |
131 | 131 | ||
diff --git a/arch/arm/mach-msm/proc_comm.c b/arch/arm/mach-msm/proc_comm.c index 8f1eecd88186..507f5ca80697 100644 --- a/arch/arm/mach-msm/proc_comm.c +++ b/arch/arm/mach-msm/proc_comm.c | |||
@@ -120,7 +120,7 @@ int msm_proc_comm(unsigned cmd, unsigned *data1, unsigned *data2) | |||
120 | * and unknown state. This function should be called early to | 120 | * and unknown state. This function should be called early to |
121 | * wait on the ARM9. | 121 | * wait on the ARM9. |
122 | */ | 122 | */ |
123 | void __devinit proc_comm_boot_wait(void) | 123 | void proc_comm_boot_wait(void) |
124 | { | 124 | { |
125 | void __iomem *base = MSM_SHARED_RAM_BASE; | 125 | void __iomem *base = MSM_SHARED_RAM_BASE; |
126 | 126 | ||
diff --git a/arch/arm/mach-msm/smd.c b/arch/arm/mach-msm/smd.c index c5a2eddc6cdc..b1588a1ea2f8 100644 --- a/arch/arm/mach-msm/smd.c +++ b/arch/arm/mach-msm/smd.c | |||
@@ -988,7 +988,7 @@ int smd_core_init(void) | |||
988 | return 0; | 988 | return 0; |
989 | } | 989 | } |
990 | 990 | ||
991 | static int __devinit msm_smd_probe(struct platform_device *pdev) | 991 | static int msm_smd_probe(struct platform_device *pdev) |
992 | { | 992 | { |
993 | /* | 993 | /* |
994 | * If we haven't waited for the ARM9 to boot up till now, | 994 | * If we haven't waited for the ARM9 to boot up till now, |
diff --git a/arch/arm/mach-mv78xx0/pcie.c b/arch/arm/mach-mv78xx0/pcie.c index a9a154a646dd..ee8c0b51df2c 100644 --- a/arch/arm/mach-mv78xx0/pcie.c +++ b/arch/arm/mach-mv78xx0/pcie.c | |||
@@ -173,7 +173,7 @@ static struct pci_ops pcie_ops = { | |||
173 | .write = pcie_wr_conf, | 173 | .write = pcie_wr_conf, |
174 | }; | 174 | }; |
175 | 175 | ||
176 | static void __devinit rc_pci_fixup(struct pci_dev *dev) | 176 | static void rc_pci_fixup(struct pci_dev *dev) |
177 | { | 177 | { |
178 | /* | 178 | /* |
179 | * Prevent enumeration of root complex. | 179 | * Prevent enumeration of root complex. |
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile index 5dcb369b58aa..99df4df680fd 100644 --- a/arch/arm/mach-mvebu/Makefile +++ b/arch/arm/mach-mvebu/Makefile | |||
@@ -1,6 +1,8 @@ | |||
1 | ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ | 1 | ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ |
2 | -I$(srctree)/arch/arm/plat-orion/include | 2 | -I$(srctree)/arch/arm/plat-orion/include |
3 | 3 | ||
4 | AFLAGS_coherency_ll.o := -Wa,-march=armv7-a | ||
5 | |||
4 | obj-y += system-controller.o | 6 | obj-y += system-controller.o |
5 | obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o addr-map.o coherency.o coherency_ll.o pmsu.o | 7 | obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o addr-map.o coherency.o coherency_ll.o pmsu.o |
6 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o | 8 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o |
diff --git a/arch/arm/mach-nomadik/board-nhk8815.c b/arch/arm/mach-nomadik/board-nhk8815.c index 98167a4319f7..9f19069248da 100644 --- a/arch/arm/mach-nomadik/board-nhk8815.c +++ b/arch/arm/mach-nomadik/board-nhk8815.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <linux/pinctrl/machine.h> | 27 | #include <linux/pinctrl/machine.h> |
28 | #include <linux/platform_data/pinctrl-nomadik.h> | 28 | #include <linux/platform_data/pinctrl-nomadik.h> |
29 | #include <linux/platform_data/clocksource-nomadik-mtu.h> | 29 | #include <linux/platform_data/clocksource-nomadik-mtu.h> |
30 | #include <linux/platform_data/mtd-nomadik-nand.h> | ||
31 | #include <asm/hardware/vic.h> | 30 | #include <asm/hardware/vic.h> |
32 | #include <asm/sizes.h> | 31 | #include <asm/sizes.h> |
33 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
diff --git a/arch/arm/mach-nomadik/include/mach/irqs.h b/arch/arm/mach-nomadik/include/mach/irqs.h index b549d0571548..215f8cdb4004 100644 --- a/arch/arm/mach-nomadik/include/mach/irqs.h +++ b/arch/arm/mach-nomadik/include/mach/irqs.h | |||
@@ -22,49 +22,49 @@ | |||
22 | 22 | ||
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | 24 | ||
25 | #define IRQ_VIC_START 1 /* first VIC interrupt is 1 */ | 25 | #define IRQ_VIC_START 32 /* first VIC interrupt is 1 */ |
26 | 26 | ||
27 | /* | 27 | /* |
28 | * Interrupt numbers generic for all Nomadik Chip cuts | 28 | * Interrupt numbers generic for all Nomadik Chip cuts |
29 | */ | 29 | */ |
30 | #define IRQ_WATCHDOG 1 | 30 | #define IRQ_WATCHDOG (IRQ_VIC_START+0) |
31 | #define IRQ_SOFTINT 2 | 31 | #define IRQ_SOFTINT (IRQ_VIC_START+1) |
32 | #define IRQ_CRYPTO 3 | 32 | #define IRQ_CRYPTO (IRQ_VIC_START+2) |
33 | #define IRQ_OWM 4 | 33 | #define IRQ_OWM (IRQ_VIC_START+3) |
34 | #define IRQ_MTU0 5 | 34 | #define IRQ_MTU0 (IRQ_VIC_START+4) |
35 | #define IRQ_MTU1 6 | 35 | #define IRQ_MTU1 (IRQ_VIC_START+5) |
36 | #define IRQ_GPIO0 7 | 36 | #define IRQ_GPIO0 (IRQ_VIC_START+6) |
37 | #define IRQ_GPIO1 8 | 37 | #define IRQ_GPIO1 (IRQ_VIC_START+7) |
38 | #define IRQ_GPIO2 9 | 38 | #define IRQ_GPIO2 (IRQ_VIC_START+8) |
39 | #define IRQ_GPIO3 10 | 39 | #define IRQ_GPIO3 (IRQ_VIC_START+9) |
40 | #define IRQ_RTC_RTT 11 | 40 | #define IRQ_RTC_RTT (IRQ_VIC_START+10) |
41 | #define IRQ_SSP 12 | 41 | #define IRQ_SSP (IRQ_VIC_START+11) |
42 | #define IRQ_UART0 13 | 42 | #define IRQ_UART0 (IRQ_VIC_START+12) |
43 | #define IRQ_DMA1 14 | 43 | #define IRQ_DMA1 (IRQ_VIC_START+13) |
44 | #define IRQ_CLCD_MDIF 15 | 44 | #define IRQ_CLCD_MDIF (IRQ_VIC_START+14) |
45 | #define IRQ_DMA0 16 | 45 | #define IRQ_DMA0 (IRQ_VIC_START+15) |
46 | #define IRQ_PWRFAIL 17 | 46 | #define IRQ_PWRFAIL (IRQ_VIC_START+16) |
47 | #define IRQ_UART1 18 | 47 | #define IRQ_UART1 (IRQ_VIC_START+17) |
48 | #define IRQ_FIRDA 19 | 48 | #define IRQ_FIRDA (IRQ_VIC_START+18) |
49 | #define IRQ_MSP0 20 | 49 | #define IRQ_MSP0 (IRQ_VIC_START+19) |
50 | #define IRQ_I2C0 21 | 50 | #define IRQ_I2C0 (IRQ_VIC_START+20) |
51 | #define IRQ_I2C1 22 | 51 | #define IRQ_I2C1 (IRQ_VIC_START+21) |
52 | #define IRQ_SDMMC 23 | 52 | #define IRQ_SDMMC (IRQ_VIC_START+22) |
53 | #define IRQ_USBOTG 24 | 53 | #define IRQ_USBOTG (IRQ_VIC_START+23) |
54 | #define IRQ_SVA_IT0 25 | 54 | #define IRQ_SVA_IT0 (IRQ_VIC_START+24) |
55 | #define IRQ_SVA_IT1 26 | 55 | #define IRQ_SVA_IT1 (IRQ_VIC_START+25) |
56 | #define IRQ_SAA_IT0 27 | 56 | #define IRQ_SAA_IT0 (IRQ_VIC_START+26) |
57 | #define IRQ_SAA_IT1 28 | 57 | #define IRQ_SAA_IT1 (IRQ_VIC_START+27) |
58 | #define IRQ_UART2 29 | 58 | #define IRQ_UART2 (IRQ_VIC_START+28) |
59 | #define IRQ_MSP2 30 | 59 | #define IRQ_MSP2 (IRQ_VIC_START+29) |
60 | #define IRQ_L2CC 49 | 60 | #define IRQ_L2CC (IRQ_VIC_START+30) |
61 | #define IRQ_HPI 50 | 61 | #define IRQ_HPI (IRQ_VIC_START+31) |
62 | #define IRQ_SKE 51 | 62 | #define IRQ_SKE (IRQ_VIC_START+32) |
63 | #define IRQ_KP 52 | 63 | #define IRQ_KP (IRQ_VIC_START+33) |
64 | #define IRQ_MEMST 55 | 64 | #define IRQ_MEMST (IRQ_VIC_START+34) |
65 | #define IRQ_SGA_IT 59 | 65 | #define IRQ_SGA_IT (IRQ_VIC_START+35) |
66 | #define IRQ_USBM 61 | 66 | #define IRQ_USBM (IRQ_VIC_START+36) |
67 | #define IRQ_MSP1 63 | 67 | #define IRQ_MSP1 (IRQ_VIC_START+37) |
68 | 68 | ||
69 | #define NOMADIK_GPIO_OFFSET (IRQ_VIC_START+64) | 69 | #define NOMADIK_GPIO_OFFSET (IRQ_VIC_START+64) |
70 | 70 | ||
diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c index a8fce3ccc707..2e98a3ac7c5e 100644 --- a/arch/arm/mach-omap1/board-ams-delta.c +++ b/arch/arm/mach-omap1/board-ams-delta.c | |||
@@ -160,7 +160,7 @@ static struct omap_lcd_config ams_delta_lcd_config __initdata = { | |||
160 | .ctrl_name = "internal", | 160 | .ctrl_name = "internal", |
161 | }; | 161 | }; |
162 | 162 | ||
163 | static struct omap_usb_config ams_delta_usb_config = { | 163 | static struct omap_usb_config ams_delta_usb_config __initdata = { |
164 | .register_host = 1, | 164 | .register_host = 1, |
165 | .hmc_mode = 16, | 165 | .hmc_mode = 16, |
166 | .pins[0] = 2, | 166 | .pins[0] = 2, |
diff --git a/arch/arm/mach-omap1/mailbox.c b/arch/arm/mach-omap1/mailbox.c index e962926b67bc..efc8f207f6fc 100644 --- a/arch/arm/mach-omap1/mailbox.c +++ b/arch/arm/mach-omap1/mailbox.c | |||
@@ -142,7 +142,7 @@ static struct omap_mbox mbox_dsp_info = { | |||
142 | 142 | ||
143 | static struct omap_mbox *omap1_mboxes[] = { &mbox_dsp_info, NULL }; | 143 | static struct omap_mbox *omap1_mboxes[] = { &mbox_dsp_info, NULL }; |
144 | 144 | ||
145 | static int __devinit omap1_mbox_probe(struct platform_device *pdev) | 145 | static int omap1_mbox_probe(struct platform_device *pdev) |
146 | { | 146 | { |
147 | struct resource *mem; | 147 | struct resource *mem; |
148 | int ret; | 148 | int ret; |
@@ -165,7 +165,7 @@ static int __devinit omap1_mbox_probe(struct platform_device *pdev) | |||
165 | return 0; | 165 | return 0; |
166 | } | 166 | } |
167 | 167 | ||
168 | static int __devexit omap1_mbox_remove(struct platform_device *pdev) | 168 | static int omap1_mbox_remove(struct platform_device *pdev) |
169 | { | 169 | { |
170 | omap_mbox_unregister(); | 170 | omap_mbox_unregister(); |
171 | iounmap(mbox_base); | 171 | iounmap(mbox_base); |
@@ -174,7 +174,7 @@ static int __devexit omap1_mbox_remove(struct platform_device *pdev) | |||
174 | 174 | ||
175 | static struct platform_driver omap1_mbox_driver = { | 175 | static struct platform_driver omap1_mbox_driver = { |
176 | .probe = omap1_mbox_probe, | 176 | .probe = omap1_mbox_probe, |
177 | .remove = __devexit_p(omap1_mbox_remove), | 177 | .remove = omap1_mbox_remove, |
178 | .driver = { | 178 | .driver = { |
179 | .name = "omap-mailbox", | 179 | .name = "omap-mailbox", |
180 | }, | 180 | }, |
diff --git a/arch/arm/mach-omap1/usb.c b/arch/arm/mach-omap1/usb.c index 104fed366b8f..1a1db5971cd9 100644 --- a/arch/arm/mach-omap1/usb.c +++ b/arch/arm/mach-omap1/usb.c | |||
@@ -629,8 +629,14 @@ static void __init omap_1510_usb_init(struct omap_usb_config *config) | |||
629 | static inline void omap_1510_usb_init(struct omap_usb_config *config) {} | 629 | static inline void omap_1510_usb_init(struct omap_usb_config *config) {} |
630 | #endif | 630 | #endif |
631 | 631 | ||
632 | void __init omap1_usb_init(struct omap_usb_config *pdata) | 632 | void __init omap1_usb_init(struct omap_usb_config *_pdata) |
633 | { | 633 | { |
634 | struct omap_usb_config *pdata; | ||
635 | |||
636 | pdata = kmemdup(_pdata, sizeof(*pdata), GFP_KERNEL); | ||
637 | if (!pdata) | ||
638 | return; | ||
639 | |||
634 | pdata->usb0_init = omap1_usb0_init; | 640 | pdata->usb0_init = omap1_usb0_init; |
635 | pdata->usb1_init = omap1_usb1_init; | 641 | pdata->usb1_init = omap1_usb1_init; |
636 | pdata->usb2_init = omap1_usb2_init; | 642 | pdata->usb2_init = omap1_usb2_init; |
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 5c8e9cee2c2e..769c1feee1c4 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
@@ -397,6 +397,12 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
397 | OMAP_PULL_ENA), | 397 | OMAP_PULL_ENA), |
398 | OMAP4_MUX(ABE_MCBSP1_FSX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), | 398 | OMAP4_MUX(ABE_MCBSP1_FSX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), |
399 | 399 | ||
400 | /* UART2 - BT/FM/GPS shared transport */ | ||
401 | OMAP4_MUX(UART2_CTS, OMAP_PIN_INPUT | OMAP_MUX_MODE0), | ||
402 | OMAP4_MUX(UART2_RTS, OMAP_PIN_OUTPUT | OMAP_MUX_MODE0), | ||
403 | OMAP4_MUX(UART2_RX, OMAP_PIN_INPUT | OMAP_MUX_MODE0), | ||
404 | OMAP4_MUX(UART2_TX, OMAP_PIN_OUTPUT | OMAP_MUX_MODE0), | ||
405 | |||
400 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 406 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
401 | }; | 407 | }; |
402 | 408 | ||
diff --git a/arch/arm/mach-omap2/cclock2420_data.c b/arch/arm/mach-omap2/cclock2420_data.c index 7e5febe456d9..ab7e952d2070 100644 --- a/arch/arm/mach-omap2/cclock2420_data.c +++ b/arch/arm/mach-omap2/cclock2420_data.c | |||
@@ -1935,6 +1935,8 @@ int __init omap2420_clk_init(void) | |||
1935 | omap2_init_clk_hw_omap_clocks(c->lk.clk); | 1935 | omap2_init_clk_hw_omap_clocks(c->lk.clk); |
1936 | } | 1936 | } |
1937 | 1937 | ||
1938 | omap2xxx_clkt_vps_late_init(); | ||
1939 | |||
1938 | omap2_clk_disable_autoidle_all(); | 1940 | omap2_clk_disable_autoidle_all(); |
1939 | 1941 | ||
1940 | omap2_clk_enable_init_clocks(enable_init_clks, | 1942 | omap2_clk_enable_init_clocks(enable_init_clks, |
diff --git a/arch/arm/mach-omap2/cclock2430_data.c b/arch/arm/mach-omap2/cclock2430_data.c index eda079b96c6a..eb3dab68d536 100644 --- a/arch/arm/mach-omap2/cclock2430_data.c +++ b/arch/arm/mach-omap2/cclock2430_data.c | |||
@@ -2050,6 +2050,8 @@ int __init omap2430_clk_init(void) | |||
2050 | omap2_init_clk_hw_omap_clocks(c->lk.clk); | 2050 | omap2_init_clk_hw_omap_clocks(c->lk.clk); |
2051 | } | 2051 | } |
2052 | 2052 | ||
2053 | omap2xxx_clkt_vps_late_init(); | ||
2054 | |||
2053 | omap2_clk_disable_autoidle_all(); | 2055 | omap2_clk_disable_autoidle_all(); |
2054 | 2056 | ||
2055 | omap2_clk_enable_init_clocks(enable_init_clks, | 2057 | omap2_clk_enable_init_clocks(enable_init_clks, |
diff --git a/arch/arm/mach-omap2/cclock3xxx_data.c b/arch/arm/mach-omap2/cclock3xxx_data.c index bdf39481fbd6..6ef87580c33f 100644 --- a/arch/arm/mach-omap2/cclock3xxx_data.c +++ b/arch/arm/mach-omap2/cclock3xxx_data.c | |||
@@ -1167,6 +1167,8 @@ static const struct clk_ops emu_src_ck_ops = { | |||
1167 | .recalc_rate = &omap2_clksel_recalc, | 1167 | .recalc_rate = &omap2_clksel_recalc, |
1168 | .get_parent = &omap2_clksel_find_parent_index, | 1168 | .get_parent = &omap2_clksel_find_parent_index, |
1169 | .set_parent = &omap2_clksel_set_parent, | 1169 | .set_parent = &omap2_clksel_set_parent, |
1170 | .enable = &omap2_clkops_enable_clkdm, | ||
1171 | .disable = &omap2_clkops_disable_clkdm, | ||
1170 | }; | 1172 | }; |
1171 | 1173 | ||
1172 | static struct clk emu_src_ck; | 1174 | static struct clk emu_src_ck; |
diff --git a/arch/arm/mach-omap2/cclock44xx_data.c b/arch/arm/mach-omap2/cclock44xx_data.c index 5789a5e25563..a2cc046b47f4 100644 --- a/arch/arm/mach-omap2/cclock44xx_data.c +++ b/arch/arm/mach-omap2/cclock44xx_data.c | |||
@@ -2026,14 +2026,13 @@ int __init omap4xxx_clk_init(void) | |||
2026 | * On OMAP4460 the ABE DPLL fails to turn on if in idle low-power | 2026 | * On OMAP4460 the ABE DPLL fails to turn on if in idle low-power |
2027 | * state when turning the ABE clock domain. Workaround this by | 2027 | * state when turning the ABE clock domain. Workaround this by |
2028 | * locking the ABE DPLL on boot. | 2028 | * locking the ABE DPLL on boot. |
2029 | * Lock the ABE DPLL in any case to avoid issues with audio. | ||
2029 | */ | 2030 | */ |
2030 | if (cpu_is_omap446x()) { | 2031 | rc = clk_set_parent(&abe_dpll_refclk_mux_ck, &sys_32k_ck); |
2031 | rc = clk_set_parent(&abe_dpll_refclk_mux_ck, &sys_32k_ck); | 2032 | if (!rc) |
2032 | if (!rc) | 2033 | rc = clk_set_rate(&dpll_abe_ck, OMAP4_DPLL_ABE_DEFFREQ); |
2033 | rc = clk_set_rate(&dpll_abe_ck, OMAP4_DPLL_ABE_DEFFREQ); | 2034 | if (rc) |
2034 | if (rc) | 2035 | pr_err("%s: failed to configure ABE DPLL!\n", __func__); |
2035 | pr_err("%s: failed to configure ABE DPLL!\n", __func__); | ||
2036 | } | ||
2037 | 2036 | ||
2038 | return 0; | 2037 | return 0; |
2039 | } | 2038 | } |
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 5e304d0719a2..626f3ea3142f 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
@@ -639,7 +639,7 @@ static int count_ocp2scp_devices(struct omap_ocp2scp_dev *ocp2scp_dev) | |||
639 | return cnt; | 639 | return cnt; |
640 | } | 640 | } |
641 | 641 | ||
642 | static void omap_init_ocp2scp(void) | 642 | static void __init omap_init_ocp2scp(void) |
643 | { | 643 | { |
644 | struct omap_hwmod *oh; | 644 | struct omap_hwmod *oh; |
645 | struct platform_device *pdev; | 645 | struct platform_device *pdev; |
diff --git a/arch/arm/mach-omap2/drm.c b/arch/arm/mach-omap2/drm.c index 4c7566c7e24a..2a2cfa88ddbf 100644 --- a/arch/arm/mach-omap2/drm.c +++ b/arch/arm/mach-omap2/drm.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/dma-mapping.h> | 25 | #include <linux/dma-mapping.h> |
26 | #include <linux/platform_data/omap_drm.h> | 26 | #include <linux/platform_data/omap_drm.h> |
27 | 27 | ||
28 | #include "soc.h" | ||
28 | #include "omap_device.h" | 29 | #include "omap_device.h" |
29 | #include "omap_hwmod.h" | 30 | #include "omap_hwmod.h" |
30 | 31 | ||
@@ -56,7 +57,7 @@ static int __init omap_init_drm(void) | |||
56 | oh->name); | 57 | oh->name); |
57 | } | 58 | } |
58 | 59 | ||
59 | platform_data.omaprev = GET_OMAP_REVISION(); | 60 | platform_data.omaprev = GET_OMAP_TYPE; |
60 | 61 | ||
61 | return platform_device_register(&omap_drm_device); | 62 | return platform_device_register(&omap_drm_device); |
62 | 63 | ||
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 65468f6d7f0e..8033cb747c86 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -744,7 +744,7 @@ static int gpmc_setup_irq(void) | |||
744 | return request_irq(gpmc_irq, gpmc_handle_irq, 0, "gpmc", NULL); | 744 | return request_irq(gpmc_irq, gpmc_handle_irq, 0, "gpmc", NULL); |
745 | } | 745 | } |
746 | 746 | ||
747 | static __devexit int gpmc_free_irq(void) | 747 | static int gpmc_free_irq(void) |
748 | { | 748 | { |
749 | int i; | 749 | int i; |
750 | 750 | ||
@@ -762,7 +762,7 @@ static __devexit int gpmc_free_irq(void) | |||
762 | return 0; | 762 | return 0; |
763 | } | 763 | } |
764 | 764 | ||
765 | static void __devexit gpmc_mem_exit(void) | 765 | static void gpmc_mem_exit(void) |
766 | { | 766 | { |
767 | int cs; | 767 | int cs; |
768 | 768 | ||
@@ -774,7 +774,7 @@ static void __devexit gpmc_mem_exit(void) | |||
774 | 774 | ||
775 | } | 775 | } |
776 | 776 | ||
777 | static int __devinit gpmc_mem_init(void) | 777 | static int gpmc_mem_init(void) |
778 | { | 778 | { |
779 | int cs, rc; | 779 | int cs, rc; |
780 | unsigned long boot_rom_space = 0; | 780 | unsigned long boot_rom_space = 0; |
@@ -1121,7 +1121,7 @@ int gpmc_calc_timings(struct gpmc_timings *gpmc_t, | |||
1121 | return 0; | 1121 | return 0; |
1122 | } | 1122 | } |
1123 | 1123 | ||
1124 | static __devinit int gpmc_probe(struct platform_device *pdev) | 1124 | static int gpmc_probe(struct platform_device *pdev) |
1125 | { | 1125 | { |
1126 | int rc; | 1126 | int rc; |
1127 | u32 l; | 1127 | u32 l; |
@@ -1177,7 +1177,7 @@ static __devinit int gpmc_probe(struct platform_device *pdev) | |||
1177 | return 0; | 1177 | return 0; |
1178 | } | 1178 | } |
1179 | 1179 | ||
1180 | static __devexit int gpmc_remove(struct platform_device *pdev) | 1180 | static int gpmc_remove(struct platform_device *pdev) |
1181 | { | 1181 | { |
1182 | gpmc_free_irq(); | 1182 | gpmc_free_irq(); |
1183 | gpmc_mem_exit(); | 1183 | gpmc_mem_exit(); |
@@ -1187,7 +1187,7 @@ static __devexit int gpmc_remove(struct platform_device *pdev) | |||
1187 | 1187 | ||
1188 | static struct platform_driver gpmc_driver = { | 1188 | static struct platform_driver gpmc_driver = { |
1189 | .probe = gpmc_probe, | 1189 | .probe = gpmc_probe, |
1190 | .remove = __devexit_p(gpmc_remove), | 1190 | .remove = gpmc_remove, |
1191 | .driver = { | 1191 | .driver = { |
1192 | .name = DEVICE_NAME, | 1192 | .name = DEVICE_NAME, |
1193 | .owner = THIS_MODULE, | 1193 | .owner = THIS_MODULE, |
diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index 0d974565f8ca..0b080267b7f6 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c | |||
@@ -342,7 +342,7 @@ struct omap_mbox mbox_2_info = { | |||
342 | struct omap_mbox *omap4_mboxes[] = { &mbox_1_info, &mbox_2_info, NULL }; | 342 | struct omap_mbox *omap4_mboxes[] = { &mbox_1_info, &mbox_2_info, NULL }; |
343 | #endif | 343 | #endif |
344 | 344 | ||
345 | static int __devinit omap2_mbox_probe(struct platform_device *pdev) | 345 | static int omap2_mbox_probe(struct platform_device *pdev) |
346 | { | 346 | { |
347 | struct resource *mem; | 347 | struct resource *mem; |
348 | int ret; | 348 | int ret; |
@@ -395,7 +395,7 @@ static int __devinit omap2_mbox_probe(struct platform_device *pdev) | |||
395 | return 0; | 395 | return 0; |
396 | } | 396 | } |
397 | 397 | ||
398 | static int __devexit omap2_mbox_remove(struct platform_device *pdev) | 398 | static int omap2_mbox_remove(struct platform_device *pdev) |
399 | { | 399 | { |
400 | omap_mbox_unregister(); | 400 | omap_mbox_unregister(); |
401 | iounmap(mbox_base); | 401 | iounmap(mbox_base); |
@@ -404,7 +404,7 @@ static int __devexit omap2_mbox_remove(struct platform_device *pdev) | |||
404 | 404 | ||
405 | static struct platform_driver omap2_mbox_driver = { | 405 | static struct platform_driver omap2_mbox_driver = { |
406 | .probe = omap2_mbox_probe, | 406 | .probe = omap2_mbox_probe, |
407 | .remove = __devexit_p(omap2_mbox_remove), | 407 | .remove = omap2_mbox_remove, |
408 | .driver = { | 408 | .driver = { |
409 | .name = "omap-mailbox", | 409 | .name = "omap-mailbox", |
410 | }, | 410 | }, |
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c index 081c71edddf4..646c14d9fdb9 100644 --- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c | |||
@@ -2070,7 +2070,7 @@ static struct omap_hwmod_irq_info am33xx_usbss_mpu_irqs[] = { | |||
2070 | { .name = "usbss-irq", .irq = 17 + OMAP_INTC_START, }, | 2070 | { .name = "usbss-irq", .irq = 17 + OMAP_INTC_START, }, |
2071 | { .name = "musb0-irq", .irq = 18 + OMAP_INTC_START, }, | 2071 | { .name = "musb0-irq", .irq = 18 + OMAP_INTC_START, }, |
2072 | { .name = "musb1-irq", .irq = 19 + OMAP_INTC_START, }, | 2072 | { .name = "musb1-irq", .irq = 19 + OMAP_INTC_START, }, |
2073 | { .irq = -1 + OMAP_INTC_START, }, | 2073 | { .irq = -1, }, |
2074 | }; | 2074 | }; |
2075 | 2075 | ||
2076 | static struct omap_hwmod am33xx_usbss_hwmod = { | 2076 | static struct omap_hwmod am33xx_usbss_hwmod = { |
@@ -2515,7 +2515,7 @@ static struct omap_hwmod_ocp_if am33xx_l4_hs__cpgmac0 = { | |||
2515 | .user = OCP_USER_MPU, | 2515 | .user = OCP_USER_MPU, |
2516 | }; | 2516 | }; |
2517 | 2517 | ||
2518 | struct omap_hwmod_addr_space am33xx_mdio_addr_space[] = { | 2518 | static struct omap_hwmod_addr_space am33xx_mdio_addr_space[] = { |
2519 | { | 2519 | { |
2520 | .pa_start = 0x4A101000, | 2520 | .pa_start = 0x4A101000, |
2521 | .pa_end = 0x4A101000 + SZ_256 - 1, | 2521 | .pa_end = 0x4A101000 + SZ_256 - 1, |
@@ -2523,7 +2523,7 @@ struct omap_hwmod_addr_space am33xx_mdio_addr_space[] = { | |||
2523 | { } | 2523 | { } |
2524 | }; | 2524 | }; |
2525 | 2525 | ||
2526 | struct omap_hwmod_ocp_if am33xx_cpgmac0__mdio = { | 2526 | static struct omap_hwmod_ocp_if am33xx_cpgmac0__mdio = { |
2527 | .master = &am33xx_cpgmac0_hwmod, | 2527 | .master = &am33xx_cpgmac0_hwmod, |
2528 | .slave = &am33xx_mdio_hwmod, | 2528 | .slave = &am33xx_mdio_hwmod, |
2529 | .addr = am33xx_mdio_addr_space, | 2529 | .addr = am33xx_mdio_addr_space, |
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 129d5081ed15..793f54ac7d14 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
@@ -2132,8 +2132,12 @@ static struct omap_hwmod omap44xx_mcpdm_hwmod = { | |||
2132 | * currently reset very early during boot, before I2C is | 2132 | * currently reset very early during boot, before I2C is |
2133 | * available, so it doesn't seem that we have any choice in | 2133 | * available, so it doesn't seem that we have any choice in |
2134 | * the kernel other than to avoid resetting it. | 2134 | * the kernel other than to avoid resetting it. |
2135 | * | ||
2136 | * Also, McPDM needs to be configured to NO_IDLE mode when it | ||
2137 | * is in used otherwise vital clocks will be gated which | ||
2138 | * results 'slow motion' audio playback. | ||
2135 | */ | 2139 | */ |
2136 | .flags = HWMOD_EXT_OPT_MAIN_CLK, | 2140 | .flags = HWMOD_EXT_OPT_MAIN_CLK | HWMOD_SWSUP_SIDLE, |
2137 | .mpu_irqs = omap44xx_mcpdm_irqs, | 2141 | .mpu_irqs = omap44xx_mcpdm_irqs, |
2138 | .sdma_reqs = omap44xx_mcpdm_sdma_reqs, | 2142 | .sdma_reqs = omap44xx_mcpdm_sdma_reqs, |
2139 | .main_clk = "mcpdm_fck", | 2143 | .main_clk = "mcpdm_fck", |
diff --git a/arch/arm/mach-omap2/prm2xxx.c b/arch/arm/mach-omap2/prm2xxx.c index cc0e71430af1..418de9c3b319 100644 --- a/arch/arm/mach-omap2/prm2xxx.c +++ b/arch/arm/mach-omap2/prm2xxx.c | |||
@@ -28,6 +28,14 @@ | |||
28 | #include "prm-regbits-24xx.h" | 28 | #include "prm-regbits-24xx.h" |
29 | 29 | ||
30 | /* | 30 | /* |
31 | * OMAP24xx PM_PWSTCTRL_*.POWERSTATE and PM_PWSTST_*.LASTSTATEENTERED bits - | ||
32 | * these are reversed from the bits used on OMAP3+ | ||
33 | */ | ||
34 | #define OMAP24XX_PWRDM_POWER_ON 0x0 | ||
35 | #define OMAP24XX_PWRDM_POWER_RET 0x1 | ||
36 | #define OMAP24XX_PWRDM_POWER_OFF 0x3 | ||
37 | |||
38 | /* | ||
31 | * omap2xxx_prm_reset_src_map - map from bits in the PRM_RSTST_WKUP | 39 | * omap2xxx_prm_reset_src_map - map from bits in the PRM_RSTST_WKUP |
32 | * hardware register (which are specific to the OMAP2xxx SoCs) to | 40 | * hardware register (which are specific to the OMAP2xxx SoCs) to |
33 | * reset source ID bit shifts (which is an OMAP SoC-independent | 41 | * reset source ID bit shifts (which is an OMAP SoC-independent |
@@ -68,6 +76,34 @@ static u32 omap2xxx_prm_read_reset_sources(void) | |||
68 | } | 76 | } |
69 | 77 | ||
70 | /** | 78 | /** |
79 | * omap2xxx_pwrst_to_common_pwrst - convert OMAP2xxx pwrst to common pwrst | ||
80 | * @omap2xxx_pwrst: OMAP2xxx hardware power state to convert | ||
81 | * | ||
82 | * Return the common power state bits corresponding to the OMAP2xxx | ||
83 | * hardware power state bits @omap2xxx_pwrst, or -EINVAL upon error. | ||
84 | */ | ||
85 | static int omap2xxx_pwrst_to_common_pwrst(u8 omap2xxx_pwrst) | ||
86 | { | ||
87 | u8 pwrst; | ||
88 | |||
89 | switch (omap2xxx_pwrst) { | ||
90 | case OMAP24XX_PWRDM_POWER_OFF: | ||
91 | pwrst = PWRDM_POWER_OFF; | ||
92 | break; | ||
93 | case OMAP24XX_PWRDM_POWER_RET: | ||
94 | pwrst = PWRDM_POWER_RET; | ||
95 | break; | ||
96 | case OMAP24XX_PWRDM_POWER_ON: | ||
97 | pwrst = PWRDM_POWER_ON; | ||
98 | break; | ||
99 | default: | ||
100 | return -EINVAL; | ||
101 | } | ||
102 | |||
103 | return pwrst; | ||
104 | } | ||
105 | |||
106 | /** | ||
71 | * omap2xxx_prm_dpll_reset - use DPLL reset to reboot the OMAP SoC | 107 | * omap2xxx_prm_dpll_reset - use DPLL reset to reboot the OMAP SoC |
72 | * | 108 | * |
73 | * Set the DPLL reset bit, which should reboot the SoC. This is the | 109 | * Set the DPLL reset bit, which should reboot the SoC. This is the |
@@ -97,10 +133,56 @@ int omap2xxx_clkdm_wakeup(struct clockdomain *clkdm) | |||
97 | return 0; | 133 | return 0; |
98 | } | 134 | } |
99 | 135 | ||
136 | static int omap2xxx_pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst) | ||
137 | { | ||
138 | u8 omap24xx_pwrst; | ||
139 | |||
140 | switch (pwrst) { | ||
141 | case PWRDM_POWER_OFF: | ||
142 | omap24xx_pwrst = OMAP24XX_PWRDM_POWER_OFF; | ||
143 | break; | ||
144 | case PWRDM_POWER_RET: | ||
145 | omap24xx_pwrst = OMAP24XX_PWRDM_POWER_RET; | ||
146 | break; | ||
147 | case PWRDM_POWER_ON: | ||
148 | omap24xx_pwrst = OMAP24XX_PWRDM_POWER_ON; | ||
149 | break; | ||
150 | default: | ||
151 | return -EINVAL; | ||
152 | } | ||
153 | |||
154 | omap2_prm_rmw_mod_reg_bits(OMAP_POWERSTATE_MASK, | ||
155 | (omap24xx_pwrst << OMAP_POWERSTATE_SHIFT), | ||
156 | pwrdm->prcm_offs, OMAP2_PM_PWSTCTRL); | ||
157 | return 0; | ||
158 | } | ||
159 | |||
160 | static int omap2xxx_pwrdm_read_next_pwrst(struct powerdomain *pwrdm) | ||
161 | { | ||
162 | u8 omap2xxx_pwrst; | ||
163 | |||
164 | omap2xxx_pwrst = omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
165 | OMAP2_PM_PWSTCTRL, | ||
166 | OMAP_POWERSTATE_MASK); | ||
167 | |||
168 | return omap2xxx_pwrst_to_common_pwrst(omap2xxx_pwrst); | ||
169 | } | ||
170 | |||
171 | static int omap2xxx_pwrdm_read_pwrst(struct powerdomain *pwrdm) | ||
172 | { | ||
173 | u8 omap2xxx_pwrst; | ||
174 | |||
175 | omap2xxx_pwrst = omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
176 | OMAP2_PM_PWSTST, | ||
177 | OMAP_POWERSTATEST_MASK); | ||
178 | |||
179 | return omap2xxx_pwrst_to_common_pwrst(omap2xxx_pwrst); | ||
180 | } | ||
181 | |||
100 | struct pwrdm_ops omap2_pwrdm_operations = { | 182 | struct pwrdm_ops omap2_pwrdm_operations = { |
101 | .pwrdm_set_next_pwrst = omap2_pwrdm_set_next_pwrst, | 183 | .pwrdm_set_next_pwrst = omap2xxx_pwrdm_set_next_pwrst, |
102 | .pwrdm_read_next_pwrst = omap2_pwrdm_read_next_pwrst, | 184 | .pwrdm_read_next_pwrst = omap2xxx_pwrdm_read_next_pwrst, |
103 | .pwrdm_read_pwrst = omap2_pwrdm_read_pwrst, | 185 | .pwrdm_read_pwrst = omap2xxx_pwrdm_read_pwrst, |
104 | .pwrdm_set_logic_retst = omap2_pwrdm_set_logic_retst, | 186 | .pwrdm_set_logic_retst = omap2_pwrdm_set_logic_retst, |
105 | .pwrdm_set_mem_onst = omap2_pwrdm_set_mem_onst, | 187 | .pwrdm_set_mem_onst = omap2_pwrdm_set_mem_onst, |
106 | .pwrdm_set_mem_retst = omap2_pwrdm_set_mem_retst, | 188 | .pwrdm_set_mem_retst = omap2_pwrdm_set_mem_retst, |
diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-omap2/prm2xxx_3xxx.c index 30517f5af707..a3e121f94a86 100644 --- a/arch/arm/mach-omap2/prm2xxx_3xxx.c +++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c | |||
@@ -103,28 +103,6 @@ int omap2_prm_deassert_hardreset(s16 prm_mod, u8 rst_shift, u8 st_shift) | |||
103 | /* Powerdomain low-level functions */ | 103 | /* Powerdomain low-level functions */ |
104 | 104 | ||
105 | /* Common functions across OMAP2 and OMAP3 */ | 105 | /* Common functions across OMAP2 and OMAP3 */ |
106 | int omap2_pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst) | ||
107 | { | ||
108 | omap2_prm_rmw_mod_reg_bits(OMAP_POWERSTATE_MASK, | ||
109 | (pwrst << OMAP_POWERSTATE_SHIFT), | ||
110 | pwrdm->prcm_offs, OMAP2_PM_PWSTCTRL); | ||
111 | return 0; | ||
112 | } | ||
113 | |||
114 | int omap2_pwrdm_read_next_pwrst(struct powerdomain *pwrdm) | ||
115 | { | ||
116 | return omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
117 | OMAP2_PM_PWSTCTRL, | ||
118 | OMAP_POWERSTATE_MASK); | ||
119 | } | ||
120 | |||
121 | int omap2_pwrdm_read_pwrst(struct powerdomain *pwrdm) | ||
122 | { | ||
123 | return omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
124 | OMAP2_PM_PWSTST, | ||
125 | OMAP_POWERSTATEST_MASK); | ||
126 | } | ||
127 | |||
128 | int omap2_pwrdm_set_mem_onst(struct powerdomain *pwrdm, u8 bank, | 106 | int omap2_pwrdm_set_mem_onst(struct powerdomain *pwrdm, u8 bank, |
129 | u8 pwrst) | 107 | u8 pwrst) |
130 | { | 108 | { |
diff --git a/arch/arm/mach-omap2/prm3xxx.c b/arch/arm/mach-omap2/prm3xxx.c index 39822aabcff3..e648bd55b072 100644 --- a/arch/arm/mach-omap2/prm3xxx.c +++ b/arch/arm/mach-omap2/prm3xxx.c | |||
@@ -277,6 +277,28 @@ static u32 omap3xxx_prm_read_reset_sources(void) | |||
277 | 277 | ||
278 | /* Powerdomain low-level functions */ | 278 | /* Powerdomain low-level functions */ |
279 | 279 | ||
280 | static int omap3_pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst) | ||
281 | { | ||
282 | omap2_prm_rmw_mod_reg_bits(OMAP_POWERSTATE_MASK, | ||
283 | (pwrst << OMAP_POWERSTATE_SHIFT), | ||
284 | pwrdm->prcm_offs, OMAP2_PM_PWSTCTRL); | ||
285 | return 0; | ||
286 | } | ||
287 | |||
288 | static int omap3_pwrdm_read_next_pwrst(struct powerdomain *pwrdm) | ||
289 | { | ||
290 | return omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
291 | OMAP2_PM_PWSTCTRL, | ||
292 | OMAP_POWERSTATE_MASK); | ||
293 | } | ||
294 | |||
295 | static int omap3_pwrdm_read_pwrst(struct powerdomain *pwrdm) | ||
296 | { | ||
297 | return omap2_prm_read_mod_bits_shift(pwrdm->prcm_offs, | ||
298 | OMAP2_PM_PWSTST, | ||
299 | OMAP_POWERSTATEST_MASK); | ||
300 | } | ||
301 | |||
280 | /* Applicable only for OMAP3. Not supported on OMAP2 */ | 302 | /* Applicable only for OMAP3. Not supported on OMAP2 */ |
281 | static int omap3_pwrdm_read_prev_pwrst(struct powerdomain *pwrdm) | 303 | static int omap3_pwrdm_read_prev_pwrst(struct powerdomain *pwrdm) |
282 | { | 304 | { |
@@ -355,9 +377,9 @@ static int omap3_pwrdm_disable_hdwr_sar(struct powerdomain *pwrdm) | |||
355 | } | 377 | } |
356 | 378 | ||
357 | struct pwrdm_ops omap3_pwrdm_operations = { | 379 | struct pwrdm_ops omap3_pwrdm_operations = { |
358 | .pwrdm_set_next_pwrst = omap2_pwrdm_set_next_pwrst, | 380 | .pwrdm_set_next_pwrst = omap3_pwrdm_set_next_pwrst, |
359 | .pwrdm_read_next_pwrst = omap2_pwrdm_read_next_pwrst, | 381 | .pwrdm_read_next_pwrst = omap3_pwrdm_read_next_pwrst, |
360 | .pwrdm_read_pwrst = omap2_pwrdm_read_pwrst, | 382 | .pwrdm_read_pwrst = omap3_pwrdm_read_pwrst, |
361 | .pwrdm_read_prev_pwrst = omap3_pwrdm_read_prev_pwrst, | 383 | .pwrdm_read_prev_pwrst = omap3_pwrdm_read_prev_pwrst, |
362 | .pwrdm_set_logic_retst = omap2_pwrdm_set_logic_retst, | 384 | .pwrdm_set_logic_retst = omap2_pwrdm_set_logic_retst, |
363 | .pwrdm_read_logic_pwrst = omap3_pwrdm_read_logic_pwrst, | 385 | .pwrdm_read_logic_pwrst = omap3_pwrdm_read_logic_pwrst, |
diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-omap2/prm44xx.c index 7498bc77fe8b..c05a343d465d 100644 --- a/arch/arm/mach-omap2/prm44xx.c +++ b/arch/arm/mach-omap2/prm44xx.c | |||
@@ -56,9 +56,9 @@ static struct omap_prcm_irq_setup omap4_prcm_irq_setup = { | |||
56 | * enumeration) | 56 | * enumeration) |
57 | */ | 57 | */ |
58 | static struct prm_reset_src_map omap44xx_prm_reset_src_map[] = { | 58 | static struct prm_reset_src_map omap44xx_prm_reset_src_map[] = { |
59 | { OMAP4430_RST_GLOBAL_WARM_SW_SHIFT, | 59 | { OMAP4430_GLOBAL_WARM_SW_RST_SHIFT, |
60 | OMAP_GLOBAL_WARM_RST_SRC_ID_SHIFT }, | 60 | OMAP_GLOBAL_WARM_RST_SRC_ID_SHIFT }, |
61 | { OMAP4430_RST_GLOBAL_COLD_SW_SHIFT, | 61 | { OMAP4430_GLOBAL_COLD_RST_SHIFT, |
62 | OMAP_GLOBAL_COLD_RST_SRC_ID_SHIFT }, | 62 | OMAP_GLOBAL_COLD_RST_SRC_ID_SHIFT }, |
63 | { OMAP4430_MPU_SECURITY_VIOL_RST_SHIFT, | 63 | { OMAP4430_MPU_SECURITY_VIOL_RST_SHIFT, |
64 | OMAP_SECU_VIOL_RST_SRC_ID_SHIFT }, | 64 | OMAP_SECU_VIOL_RST_SRC_ID_SHIFT }, |
@@ -333,7 +333,7 @@ static u32 omap44xx_prm_read_reset_sources(void) | |||
333 | u32 r = 0; | 333 | u32 r = 0; |
334 | u32 v; | 334 | u32 v; |
335 | 335 | ||
336 | v = omap4_prm_read_inst_reg(OMAP4430_PRM_OCP_SOCKET_INST, | 336 | v = omap4_prm_read_inst_reg(OMAP4430_PRM_DEVICE_INST, |
337 | OMAP4_RM_RSTST); | 337 | OMAP4_RM_RSTST); |
338 | 338 | ||
339 | p = omap44xx_prm_reset_src_map; | 339 | p = omap44xx_prm_reset_src_map; |
diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-omap2/prm44xx.h index 22b0979206ca..8ee1fbdec561 100644 --- a/arch/arm/mach-omap2/prm44xx.h +++ b/arch/arm/mach-omap2/prm44xx.h | |||
@@ -62,8 +62,8 @@ | |||
62 | 62 | ||
63 | /* OMAP4 specific register offsets */ | 63 | /* OMAP4 specific register offsets */ |
64 | #define OMAP4_RM_RSTCTRL 0x0000 | 64 | #define OMAP4_RM_RSTCTRL 0x0000 |
65 | #define OMAP4_RM_RSTTIME 0x0004 | 65 | #define OMAP4_RM_RSTST 0x0004 |
66 | #define OMAP4_RM_RSTST 0x0008 | 66 | #define OMAP4_RM_RSTTIME 0x0008 |
67 | #define OMAP4_PM_PWSTCTRL 0x0000 | 67 | #define OMAP4_PM_PWSTCTRL 0x0000 |
68 | #define OMAP4_PM_PWSTST 0x0004 | 68 | #define OMAP4_PM_PWSTST 0x0004 |
69 | 69 | ||
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 691aa674665a..b8ad6e632bb8 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
@@ -165,15 +165,11 @@ static struct device_node * __init omap_get_timer_dt(struct of_device_id *match, | |||
165 | struct device_node *np; | 165 | struct device_node *np; |
166 | 166 | ||
167 | for_each_matching_node(np, match) { | 167 | for_each_matching_node(np, match) { |
168 | if (!of_device_is_available(np)) { | 168 | if (!of_device_is_available(np)) |
169 | of_node_put(np); | ||
170 | continue; | 169 | continue; |
171 | } | ||
172 | 170 | ||
173 | if (property && !of_get_property(np, property, NULL)) { | 171 | if (property && !of_get_property(np, property, NULL)) |
174 | of_node_put(np); | ||
175 | continue; | 172 | continue; |
176 | } | ||
177 | 173 | ||
178 | of_add_property(np, &device_disabled); | 174 | of_add_property(np, &device_disabled); |
179 | return np; | 175 | return np; |
diff --git a/arch/arm/mach-orion5x/pci.c b/arch/arm/mach-orion5x/pci.c index cd50e328db2a..d9c7c3bf0d9c 100644 --- a/arch/arm/mach-orion5x/pci.c +++ b/arch/arm/mach-orion5x/pci.c | |||
@@ -506,7 +506,7 @@ static int __init pci_setup(struct pci_sys_data *sys) | |||
506 | /***************************************************************************** | 506 | /***************************************************************************** |
507 | * General PCIe + PCI | 507 | * General PCIe + PCI |
508 | ****************************************************************************/ | 508 | ****************************************************************************/ |
509 | static void __devinit rc_pci_fixup(struct pci_dev *dev) | 509 | static void rc_pci_fixup(struct pci_dev *dev) |
510 | { | 510 | { |
511 | /* | 511 | /* |
512 | * Prevent enumeration of root complex. | 512 | * Prevent enumeration of root complex. |
diff --git a/arch/arm/mach-prima2/pm.c b/arch/arm/mach-prima2/pm.c index fb5a7910af35..9936c180bf01 100644 --- a/arch/arm/mach-prima2/pm.c +++ b/arch/arm/mach-prima2/pm.c | |||
@@ -123,7 +123,7 @@ static const struct of_device_id memc_ids[] = { | |||
123 | {} | 123 | {} |
124 | }; | 124 | }; |
125 | 125 | ||
126 | static int __devinit sirfsoc_memc_probe(struct platform_device *op) | 126 | static int sirfsoc_memc_probe(struct platform_device *op) |
127 | { | 127 | { |
128 | struct device_node *np = op->dev.of_node; | 128 | struct device_node *np = op->dev.of_node; |
129 | 129 | ||
diff --git a/arch/arm/mach-prima2/rtciobrg.c b/arch/arm/mach-prima2/rtciobrg.c index 9d80f1e20a98..557353602130 100644 --- a/arch/arm/mach-prima2/rtciobrg.c +++ b/arch/arm/mach-prima2/rtciobrg.c | |||
@@ -107,7 +107,7 @@ static const struct of_device_id rtciobrg_ids[] = { | |||
107 | {} | 107 | {} |
108 | }; | 108 | }; |
109 | 109 | ||
110 | static int __devinit sirfsoc_rtciobrg_probe(struct platform_device *op) | 110 | static int sirfsoc_rtciobrg_probe(struct platform_device *op) |
111 | { | 111 | { |
112 | struct device_node *np = op->dev.of_node; | 112 | struct device_node *np = op->dev.of_node; |
113 | 113 | ||
diff --git a/arch/arm/mach-pxa/corgi_pm.c b/arch/arm/mach-pxa/corgi_pm.c index 048c4299473c..7a39efc50865 100644 --- a/arch/arm/mach-pxa/corgi_pm.c +++ b/arch/arm/mach-pxa/corgi_pm.c | |||
@@ -198,7 +198,7 @@ static struct sharpsl_charger_machinfo corgi_pm_machinfo = { | |||
198 | 198 | ||
199 | static struct platform_device *corgipm_device; | 199 | static struct platform_device *corgipm_device; |
200 | 200 | ||
201 | static int __devinit corgipm_init(void) | 201 | static int corgipm_init(void) |
202 | { | 202 | { |
203 | int ret; | 203 | int ret; |
204 | 204 | ||
diff --git a/arch/arm/mach-pxa/include/mach/mfp-pxa27x.h b/arch/arm/mach-pxa/include/mach/mfp-pxa27x.h index a611ad3153c7..b6132aa95dc0 100644 --- a/arch/arm/mach-pxa/include/mach/mfp-pxa27x.h +++ b/arch/arm/mach-pxa/include/mach/mfp-pxa27x.h | |||
@@ -463,6 +463,9 @@ | |||
463 | GPIO76_LCD_PCLK, \ | 463 | GPIO76_LCD_PCLK, \ |
464 | GPIO77_LCD_BIAS | 464 | GPIO77_LCD_BIAS |
465 | 465 | ||
466 | /* these enable a work-around for a hw bug in pxa27x during ac97 warm reset */ | ||
467 | #define GPIO113_AC97_nRESET_GPIO_HIGH MFP_CFG_OUT(GPIO113, AF0, DEFAULT) | ||
468 | #define GPIO95_AC97_nRESET_GPIO_HIGH MFP_CFG_OUT(GPIO95, AF0, DEFAULT) | ||
466 | 469 | ||
467 | extern int keypad_set_wake(unsigned int on); | 470 | extern int keypad_set_wake(unsigned int on); |
468 | #endif /* __ASM_ARCH_MFP_PXA27X_H */ | 471 | #endif /* __ASM_ARCH_MFP_PXA27X_H */ |
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c index 8047ee0effc5..616cb87b6179 100644 --- a/arch/arm/mach-pxa/pxa27x.c +++ b/arch/arm/mach-pxa/pxa27x.c | |||
@@ -47,9 +47,9 @@ void pxa27x_clear_otgph(void) | |||
47 | EXPORT_SYMBOL(pxa27x_clear_otgph); | 47 | EXPORT_SYMBOL(pxa27x_clear_otgph); |
48 | 48 | ||
49 | static unsigned long ac97_reset_config[] = { | 49 | static unsigned long ac97_reset_config[] = { |
50 | GPIO113_GPIO, | 50 | GPIO113_AC97_nRESET_GPIO_HIGH, |
51 | GPIO113_AC97_nRESET, | 51 | GPIO113_AC97_nRESET, |
52 | GPIO95_GPIO, | 52 | GPIO95_AC97_nRESET_GPIO_HIGH, |
53 | GPIO95_AC97_nRESET, | 53 | GPIO95_AC97_nRESET, |
54 | }; | 54 | }; |
55 | 55 | ||
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c index ec55c575ed19..0a36d3585f26 100644 --- a/arch/arm/mach-pxa/sharpsl_pm.c +++ b/arch/arm/mach-pxa/sharpsl_pm.c | |||
@@ -829,7 +829,7 @@ static const struct platform_suspend_ops sharpsl_pm_ops = { | |||
829 | }; | 829 | }; |
830 | #endif | 830 | #endif |
831 | 831 | ||
832 | static int __devinit sharpsl_pm_probe(struct platform_device *pdev) | 832 | static int sharpsl_pm_probe(struct platform_device *pdev) |
833 | { | 833 | { |
834 | int ret, irq; | 834 | int ret, irq; |
835 | 835 | ||
@@ -941,7 +941,7 @@ static struct platform_driver sharpsl_pm_driver = { | |||
941 | }, | 941 | }, |
942 | }; | 942 | }; |
943 | 943 | ||
944 | static int __devinit sharpsl_pm_init(void) | 944 | static int sharpsl_pm_init(void) |
945 | { | 945 | { |
946 | return platform_driver_register(&sharpsl_pm_driver); | 946 | return platform_driver_register(&sharpsl_pm_driver); |
947 | } | 947 | } |
diff --git a/arch/arm/mach-pxa/spitz_pm.c b/arch/arm/mach-pxa/spitz_pm.c index 842596d4d31e..e191f9996b26 100644 --- a/arch/arm/mach-pxa/spitz_pm.c +++ b/arch/arm/mach-pxa/spitz_pm.c | |||
@@ -232,7 +232,7 @@ struct sharpsl_charger_machinfo spitz_pm_machinfo = { | |||
232 | 232 | ||
233 | static struct platform_device *spitzpm_device; | 233 | static struct platform_device *spitzpm_device; |
234 | 234 | ||
235 | static int __devinit spitzpm_init(void) | 235 | static int spitzpm_init(void) |
236 | { | 236 | { |
237 | int ret; | 237 | int ret; |
238 | 238 | ||
diff --git a/arch/arm/mach-pxa/tosa-bt.c b/arch/arm/mach-pxa/tosa-bt.c index b9b1e5c2b290..fc3646c2c694 100644 --- a/arch/arm/mach-pxa/tosa-bt.c +++ b/arch/arm/mach-pxa/tosa-bt.c | |||
@@ -102,7 +102,7 @@ err_reset: | |||
102 | return rc; | 102 | return rc; |
103 | } | 103 | } |
104 | 104 | ||
105 | static int __devexit tosa_bt_remove(struct platform_device *dev) | 105 | static int tosa_bt_remove(struct platform_device *dev) |
106 | { | 106 | { |
107 | struct tosa_bt_data *data = dev->dev.platform_data; | 107 | struct tosa_bt_data *data = dev->dev.platform_data; |
108 | struct rfkill *rfk = platform_get_drvdata(dev); | 108 | struct rfkill *rfk = platform_get_drvdata(dev); |
@@ -125,7 +125,7 @@ static int __devexit tosa_bt_remove(struct platform_device *dev) | |||
125 | 125 | ||
126 | static struct platform_driver tosa_bt_driver = { | 126 | static struct platform_driver tosa_bt_driver = { |
127 | .probe = tosa_bt_probe, | 127 | .probe = tosa_bt_probe, |
128 | .remove = __devexit_p(tosa_bt_remove), | 128 | .remove = tosa_bt_remove, |
129 | 129 | ||
130 | .driver = { | 130 | .driver = { |
131 | .name = "tosa-bt", | 131 | .name = "tosa-bt", |
diff --git a/arch/arm/mach-s3c24xx/h1940-bluetooth.c b/arch/arm/mach-s3c24xx/h1940-bluetooth.c index 57aee916bdb1..3f40c61b6e02 100644 --- a/arch/arm/mach-s3c24xx/h1940-bluetooth.c +++ b/arch/arm/mach-s3c24xx/h1940-bluetooth.c | |||
@@ -62,7 +62,7 @@ static const struct rfkill_ops h1940bt_rfkill_ops = { | |||
62 | .set_block = h1940bt_set_block, | 62 | .set_block = h1940bt_set_block, |
63 | }; | 63 | }; |
64 | 64 | ||
65 | static int __devinit h1940bt_probe(struct platform_device *pdev) | 65 | static int h1940bt_probe(struct platform_device *pdev) |
66 | { | 66 | { |
67 | struct rfkill *rfk; | 67 | struct rfkill *rfk; |
68 | int ret = 0; | 68 | int ret = 0; |
diff --git a/arch/arm/mach-s3c24xx/mach-osiris-dvs.c b/arch/arm/mach-s3c24xx/mach-osiris-dvs.c index 5876c6ba7500..45e74363aaa9 100644 --- a/arch/arm/mach-s3c24xx/mach-osiris-dvs.c +++ b/arch/arm/mach-s3c24xx/mach-osiris-dvs.c | |||
@@ -93,7 +93,7 @@ static struct notifier_block osiris_dvs_nb = { | |||
93 | .notifier_call = osiris_dvs_notify, | 93 | .notifier_call = osiris_dvs_notify, |
94 | }; | 94 | }; |
95 | 95 | ||
96 | static int __devinit osiris_dvs_probe(struct platform_device *pdev) | 96 | static int osiris_dvs_probe(struct platform_device *pdev) |
97 | { | 97 | { |
98 | int ret; | 98 | int ret; |
99 | 99 | ||
@@ -126,7 +126,7 @@ err_nogpio: | |||
126 | return ret; | 126 | return ret; |
127 | } | 127 | } |
128 | 128 | ||
129 | static int __devexit osiris_dvs_remove(struct platform_device *pdev) | 129 | static int osiris_dvs_remove(struct platform_device *pdev) |
130 | { | 130 | { |
131 | dev_info(&pdev->dev, "exiting\n"); | 131 | dev_info(&pdev->dev, "exiting\n"); |
132 | 132 | ||
@@ -167,7 +167,7 @@ static const struct dev_pm_ops osiris_dvs_pm = { | |||
167 | 167 | ||
168 | static struct platform_driver osiris_dvs_driver = { | 168 | static struct platform_driver osiris_dvs_driver = { |
169 | .probe = osiris_dvs_probe, | 169 | .probe = osiris_dvs_probe, |
170 | .remove = __devexit_p(osiris_dvs_remove), | 170 | .remove = osiris_dvs_remove, |
171 | .driver = { | 171 | .driver = { |
172 | .name = "osiris-dvs", | 172 | .name = "osiris-dvs", |
173 | .owner = THIS_MODULE, | 173 | .owner = THIS_MODULE, |
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index c6d8dba90623..755c0bb119f4 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c | |||
@@ -47,7 +47,7 @@ static struct spi_board_info wm1253_devs[] = { | |||
47 | .bus_num = 0, | 47 | .bus_num = 0, |
48 | .chip_select = 0, | 48 | .chip_select = 0, |
49 | .mode = SPI_MODE_0, | 49 | .mode = SPI_MODE_0, |
50 | .irq = S3C_EINT(5), | 50 | .irq = S3C_EINT(4), |
51 | .controller_data = &wm0010_spi_csinfo, | 51 | .controller_data = &wm0010_spi_csinfo, |
52 | .platform_data = &wm0010_pdata, | 52 | .platform_data = &wm0010_pdata, |
53 | }, | 53 | }, |
@@ -290,7 +290,7 @@ static const struct i2c_board_info wm2200_i2c[] = { | |||
290 | .platform_data = &wm2200_pdata, }, | 290 | .platform_data = &wm2200_pdata, }, |
291 | }; | 291 | }; |
292 | 292 | ||
293 | static __devinitdata const struct { | 293 | static const struct { |
294 | u8 id; | 294 | u8 id; |
295 | u8 rev; | 295 | u8 rev; |
296 | const char *name; | 296 | const char *name; |
@@ -343,8 +343,8 @@ static __devinitdata const struct { | |||
343 | .i2c_devs = wm2200_i2c, .num_i2c_devs = ARRAY_SIZE(wm2200_i2c) }, | 343 | .i2c_devs = wm2200_i2c, .num_i2c_devs = ARRAY_SIZE(wm2200_i2c) }, |
344 | }; | 344 | }; |
345 | 345 | ||
346 | static __devinit int wlf_gf_module_probe(struct i2c_client *i2c, | 346 | static int wlf_gf_module_probe(struct i2c_client *i2c, |
347 | const struct i2c_device_id *i2c_id) | 347 | const struct i2c_device_id *i2c_id) |
348 | { | 348 | { |
349 | int ret, i, j, id, rev; | 349 | int ret, i, j, id, rev; |
350 | 350 | ||
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index cdde249166b5..bf6311a28f3d 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c | |||
@@ -171,7 +171,7 @@ static struct fb_videomode crag6410_lcd_timing = { | |||
171 | }; | 171 | }; |
172 | 172 | ||
173 | /* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */ | 173 | /* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */ |
174 | static struct s3c_fb_platdata crag6410_lcd_pdata __devinitdata = { | 174 | static struct s3c_fb_platdata crag6410_lcd_pdata = { |
175 | .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, | 175 | .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, |
176 | .vtiming = &crag6410_lcd_timing, | 176 | .vtiming = &crag6410_lcd_timing, |
177 | .win[0] = &crag6410_fb_win0, | 177 | .win[0] = &crag6410_fb_win0, |
@@ -181,7 +181,7 @@ static struct s3c_fb_platdata crag6410_lcd_pdata __devinitdata = { | |||
181 | 181 | ||
182 | /* 2x6 keypad */ | 182 | /* 2x6 keypad */ |
183 | 183 | ||
184 | static uint32_t crag6410_keymap[] __devinitdata = { | 184 | static uint32_t crag6410_keymap[] = { |
185 | /* KEY(row, col, keycode) */ | 185 | /* KEY(row, col, keycode) */ |
186 | KEY(0, 0, KEY_VOLUMEUP), | 186 | KEY(0, 0, KEY_VOLUMEUP), |
187 | KEY(0, 1, KEY_HOME), | 187 | KEY(0, 1, KEY_HOME), |
@@ -197,12 +197,12 @@ static uint32_t crag6410_keymap[] __devinitdata = { | |||
197 | KEY(1, 5, KEY_CAMERA), | 197 | KEY(1, 5, KEY_CAMERA), |
198 | }; | 198 | }; |
199 | 199 | ||
200 | static struct matrix_keymap_data crag6410_keymap_data __devinitdata = { | 200 | static struct matrix_keymap_data crag6410_keymap_data = { |
201 | .keymap = crag6410_keymap, | 201 | .keymap = crag6410_keymap, |
202 | .keymap_size = ARRAY_SIZE(crag6410_keymap), | 202 | .keymap_size = ARRAY_SIZE(crag6410_keymap), |
203 | }; | 203 | }; |
204 | 204 | ||
205 | static struct samsung_keypad_platdata crag6410_keypad_data __devinitdata = { | 205 | static struct samsung_keypad_platdata crag6410_keypad_data = { |
206 | .keymap_data = &crag6410_keymap_data, | 206 | .keymap_data = &crag6410_keymap_data, |
207 | .rows = 2, | 207 | .rows = 2, |
208 | .cols = 6, | 208 | .cols = 6, |
@@ -407,11 +407,11 @@ static struct wm831x_buckv_pdata vddarm_pdata = { | |||
407 | .dvs_gpio = S3C64XX_GPK(0), | 407 | .dvs_gpio = S3C64XX_GPK(0), |
408 | }; | 408 | }; |
409 | 409 | ||
410 | static struct regulator_consumer_supply vddarm_consumers[] __devinitdata = { | 410 | static struct regulator_consumer_supply vddarm_consumers[] = { |
411 | REGULATOR_SUPPLY("vddarm", NULL), | 411 | REGULATOR_SUPPLY("vddarm", NULL), |
412 | }; | 412 | }; |
413 | 413 | ||
414 | static struct regulator_init_data vddarm __devinitdata = { | 414 | static struct regulator_init_data vddarm = { |
415 | .constraints = { | 415 | .constraints = { |
416 | .name = "VDDARM", | 416 | .name = "VDDARM", |
417 | .min_uV = 1000000, | 417 | .min_uV = 1000000, |
@@ -425,11 +425,11 @@ static struct regulator_init_data vddarm __devinitdata = { | |||
425 | .driver_data = &vddarm_pdata, | 425 | .driver_data = &vddarm_pdata, |
426 | }; | 426 | }; |
427 | 427 | ||
428 | static struct regulator_consumer_supply vddint_consumers[] __devinitdata = { | 428 | static struct regulator_consumer_supply vddint_consumers[] = { |
429 | REGULATOR_SUPPLY("vddint", NULL), | 429 | REGULATOR_SUPPLY("vddint", NULL), |
430 | }; | 430 | }; |
431 | 431 | ||
432 | static struct regulator_init_data vddint __devinitdata = { | 432 | static struct regulator_init_data vddint = { |
433 | .constraints = { | 433 | .constraints = { |
434 | .name = "VDDINT", | 434 | .name = "VDDINT", |
435 | .min_uV = 1000000, | 435 | .min_uV = 1000000, |
@@ -442,27 +442,27 @@ static struct regulator_init_data vddint __devinitdata = { | |||
442 | .supply_regulator = "WALLVDD", | 442 | .supply_regulator = "WALLVDD", |
443 | }; | 443 | }; |
444 | 444 | ||
445 | static struct regulator_init_data vddmem __devinitdata = { | 445 | static struct regulator_init_data vddmem = { |
446 | .constraints = { | 446 | .constraints = { |
447 | .name = "VDDMEM", | 447 | .name = "VDDMEM", |
448 | .always_on = 1, | 448 | .always_on = 1, |
449 | }, | 449 | }, |
450 | }; | 450 | }; |
451 | 451 | ||
452 | static struct regulator_init_data vddsys __devinitdata = { | 452 | static struct regulator_init_data vddsys = { |
453 | .constraints = { | 453 | .constraints = { |
454 | .name = "VDDSYS,VDDEXT,VDDPCM,VDDSS", | 454 | .name = "VDDSYS,VDDEXT,VDDPCM,VDDSS", |
455 | .always_on = 1, | 455 | .always_on = 1, |
456 | }, | 456 | }, |
457 | }; | 457 | }; |
458 | 458 | ||
459 | static struct regulator_consumer_supply vddmmc_consumers[] __devinitdata = { | 459 | static struct regulator_consumer_supply vddmmc_consumers[] = { |
460 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.0"), | 460 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.0"), |
461 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.1"), | 461 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.1"), |
462 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.2"), | 462 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.2"), |
463 | }; | 463 | }; |
464 | 464 | ||
465 | static struct regulator_init_data vddmmc __devinitdata = { | 465 | static struct regulator_init_data vddmmc = { |
466 | .constraints = { | 466 | .constraints = { |
467 | .name = "VDDMMC,UH", | 467 | .name = "VDDMMC,UH", |
468 | .always_on = 1, | 468 | .always_on = 1, |
@@ -472,7 +472,7 @@ static struct regulator_init_data vddmmc __devinitdata = { | |||
472 | .supply_regulator = "WALLVDD", | 472 | .supply_regulator = "WALLVDD", |
473 | }; | 473 | }; |
474 | 474 | ||
475 | static struct regulator_init_data vddotgi __devinitdata = { | 475 | static struct regulator_init_data vddotgi = { |
476 | .constraints = { | 476 | .constraints = { |
477 | .name = "VDDOTGi", | 477 | .name = "VDDOTGi", |
478 | .always_on = 1, | 478 | .always_on = 1, |
@@ -480,7 +480,7 @@ static struct regulator_init_data vddotgi __devinitdata = { | |||
480 | .supply_regulator = "WALLVDD", | 480 | .supply_regulator = "WALLVDD", |
481 | }; | 481 | }; |
482 | 482 | ||
483 | static struct regulator_init_data vddotg __devinitdata = { | 483 | static struct regulator_init_data vddotg = { |
484 | .constraints = { | 484 | .constraints = { |
485 | .name = "VDDOTG", | 485 | .name = "VDDOTG", |
486 | .always_on = 1, | 486 | .always_on = 1, |
@@ -488,7 +488,7 @@ static struct regulator_init_data vddotg __devinitdata = { | |||
488 | .supply_regulator = "WALLVDD", | 488 | .supply_regulator = "WALLVDD", |
489 | }; | 489 | }; |
490 | 490 | ||
491 | static struct regulator_init_data vddhi __devinitdata = { | 491 | static struct regulator_init_data vddhi = { |
492 | .constraints = { | 492 | .constraints = { |
493 | .name = "VDDHI", | 493 | .name = "VDDHI", |
494 | .always_on = 1, | 494 | .always_on = 1, |
@@ -496,7 +496,7 @@ static struct regulator_init_data vddhi __devinitdata = { | |||
496 | .supply_regulator = "WALLVDD", | 496 | .supply_regulator = "WALLVDD", |
497 | }; | 497 | }; |
498 | 498 | ||
499 | static struct regulator_init_data vddadc __devinitdata = { | 499 | static struct regulator_init_data vddadc = { |
500 | .constraints = { | 500 | .constraints = { |
501 | .name = "VDDADC,VDDDAC", | 501 | .name = "VDDADC,VDDDAC", |
502 | .always_on = 1, | 502 | .always_on = 1, |
@@ -504,7 +504,7 @@ static struct regulator_init_data vddadc __devinitdata = { | |||
504 | .supply_regulator = "WALLVDD", | 504 | .supply_regulator = "WALLVDD", |
505 | }; | 505 | }; |
506 | 506 | ||
507 | static struct regulator_init_data vddmem0 __devinitdata = { | 507 | static struct regulator_init_data vddmem0 = { |
508 | .constraints = { | 508 | .constraints = { |
509 | .name = "VDDMEM0", | 509 | .name = "VDDMEM0", |
510 | .always_on = 1, | 510 | .always_on = 1, |
@@ -512,7 +512,7 @@ static struct regulator_init_data vddmem0 __devinitdata = { | |||
512 | .supply_regulator = "WALLVDD", | 512 | .supply_regulator = "WALLVDD", |
513 | }; | 513 | }; |
514 | 514 | ||
515 | static struct regulator_init_data vddpll __devinitdata = { | 515 | static struct regulator_init_data vddpll = { |
516 | .constraints = { | 516 | .constraints = { |
517 | .name = "VDDPLL", | 517 | .name = "VDDPLL", |
518 | .always_on = 1, | 518 | .always_on = 1, |
@@ -520,7 +520,7 @@ static struct regulator_init_data vddpll __devinitdata = { | |||
520 | .supply_regulator = "WALLVDD", | 520 | .supply_regulator = "WALLVDD", |
521 | }; | 521 | }; |
522 | 522 | ||
523 | static struct regulator_init_data vddlcd __devinitdata = { | 523 | static struct regulator_init_data vddlcd = { |
524 | .constraints = { | 524 | .constraints = { |
525 | .name = "VDDLCD", | 525 | .name = "VDDLCD", |
526 | .always_on = 1, | 526 | .always_on = 1, |
@@ -528,7 +528,7 @@ static struct regulator_init_data vddlcd __devinitdata = { | |||
528 | .supply_regulator = "WALLVDD", | 528 | .supply_regulator = "WALLVDD", |
529 | }; | 529 | }; |
530 | 530 | ||
531 | static struct regulator_init_data vddalive __devinitdata = { | 531 | static struct regulator_init_data vddalive = { |
532 | .constraints = { | 532 | .constraints = { |
533 | .name = "VDDALIVE", | 533 | .name = "VDDALIVE", |
534 | .always_on = 1, | 534 | .always_on = 1, |
@@ -536,28 +536,28 @@ static struct regulator_init_data vddalive __devinitdata = { | |||
536 | .supply_regulator = "WALLVDD", | 536 | .supply_regulator = "WALLVDD", |
537 | }; | 537 | }; |
538 | 538 | ||
539 | static struct wm831x_backup_pdata banff_backup_pdata __devinitdata = { | 539 | static struct wm831x_backup_pdata banff_backup_pdata = { |
540 | .charger_enable = 1, | 540 | .charger_enable = 1, |
541 | .vlim = 2500, /* mV */ | 541 | .vlim = 2500, /* mV */ |
542 | .ilim = 200, /* uA */ | 542 | .ilim = 200, /* uA */ |
543 | }; | 543 | }; |
544 | 544 | ||
545 | static struct wm831x_status_pdata banff_red_led __devinitdata = { | 545 | static struct wm831x_status_pdata banff_red_led = { |
546 | .name = "banff:red:", | 546 | .name = "banff:red:", |
547 | .default_src = WM831X_STATUS_MANUAL, | 547 | .default_src = WM831X_STATUS_MANUAL, |
548 | }; | 548 | }; |
549 | 549 | ||
550 | static struct wm831x_status_pdata banff_green_led __devinitdata = { | 550 | static struct wm831x_status_pdata banff_green_led = { |
551 | .name = "banff:green:", | 551 | .name = "banff:green:", |
552 | .default_src = WM831X_STATUS_MANUAL, | 552 | .default_src = WM831X_STATUS_MANUAL, |
553 | }; | 553 | }; |
554 | 554 | ||
555 | static struct wm831x_touch_pdata touch_pdata __devinitdata = { | 555 | static struct wm831x_touch_pdata touch_pdata = { |
556 | .data_irq = S3C_EINT(26), | 556 | .data_irq = S3C_EINT(26), |
557 | .pd_irq = S3C_EINT(27), | 557 | .pd_irq = S3C_EINT(27), |
558 | }; | 558 | }; |
559 | 559 | ||
560 | static struct wm831x_pdata crag_pmic_pdata __devinitdata = { | 560 | static struct wm831x_pdata crag_pmic_pdata = { |
561 | .wm831x_num = 1, | 561 | .wm831x_num = 1, |
562 | .gpio_base = BANFF_PMIC_GPIO_BASE, | 562 | .gpio_base = BANFF_PMIC_GPIO_BASE, |
563 | .soft_shutdown = true, | 563 | .soft_shutdown = true, |
@@ -601,7 +601,7 @@ static struct wm831x_pdata crag_pmic_pdata __devinitdata = { | |||
601 | .touch = &touch_pdata, | 601 | .touch = &touch_pdata, |
602 | }; | 602 | }; |
603 | 603 | ||
604 | static struct i2c_board_info i2c_devs0[] __devinitdata = { | 604 | static struct i2c_board_info i2c_devs0[] = { |
605 | { I2C_BOARD_INFO("24c08", 0x50), }, | 605 | { I2C_BOARD_INFO("24c08", 0x50), }, |
606 | { I2C_BOARD_INFO("tca6408", 0x20), | 606 | { I2C_BOARD_INFO("tca6408", 0x20), |
607 | .platform_data = &crag6410_pca_data, | 607 | .platform_data = &crag6410_pca_data, |
@@ -616,13 +616,13 @@ static struct s3c2410_platform_i2c i2c0_pdata = { | |||
616 | .frequency = 400000, | 616 | .frequency = 400000, |
617 | }; | 617 | }; |
618 | 618 | ||
619 | static struct regulator_consumer_supply pvdd_1v2_consumers[] __devinitdata = { | 619 | static struct regulator_consumer_supply pvdd_1v2_consumers[] = { |
620 | REGULATOR_SUPPLY("DCVDD", "spi0.0"), | 620 | REGULATOR_SUPPLY("DCVDD", "spi0.0"), |
621 | REGULATOR_SUPPLY("AVDD", "spi0.0"), | 621 | REGULATOR_SUPPLY("AVDD", "spi0.0"), |
622 | REGULATOR_SUPPLY("AVDD", "spi0.1"), | 622 | REGULATOR_SUPPLY("AVDD", "spi0.1"), |
623 | }; | 623 | }; |
624 | 624 | ||
625 | static struct regulator_init_data pvdd_1v2 __devinitdata = { | 625 | static struct regulator_init_data pvdd_1v2 = { |
626 | .constraints = { | 626 | .constraints = { |
627 | .name = "PVDD_1V2", | 627 | .name = "PVDD_1V2", |
628 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | 628 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, |
@@ -632,7 +632,7 @@ static struct regulator_init_data pvdd_1v2 __devinitdata = { | |||
632 | .num_consumer_supplies = ARRAY_SIZE(pvdd_1v2_consumers), | 632 | .num_consumer_supplies = ARRAY_SIZE(pvdd_1v2_consumers), |
633 | }; | 633 | }; |
634 | 634 | ||
635 | static struct regulator_consumer_supply pvdd_1v8_consumers[] __devinitdata = { | 635 | static struct regulator_consumer_supply pvdd_1v8_consumers[] = { |
636 | REGULATOR_SUPPLY("LDOVDD", "1-001a"), | 636 | REGULATOR_SUPPLY("LDOVDD", "1-001a"), |
637 | REGULATOR_SUPPLY("PLLVDD", "1-001a"), | 637 | REGULATOR_SUPPLY("PLLVDD", "1-001a"), |
638 | REGULATOR_SUPPLY("DBVDD", "1-001a"), | 638 | REGULATOR_SUPPLY("DBVDD", "1-001a"), |
@@ -664,7 +664,7 @@ static struct regulator_consumer_supply pvdd_1v8_consumers[] __devinitdata = { | |||
664 | REGULATOR_SUPPLY("CPVDD", "wm5110-codec"), | 664 | REGULATOR_SUPPLY("CPVDD", "wm5110-codec"), |
665 | }; | 665 | }; |
666 | 666 | ||
667 | static struct regulator_init_data pvdd_1v8 __devinitdata = { | 667 | static struct regulator_init_data pvdd_1v8 = { |
668 | .constraints = { | 668 | .constraints = { |
669 | .name = "PVDD_1V8", | 669 | .name = "PVDD_1V8", |
670 | .always_on = 1, | 670 | .always_on = 1, |
@@ -674,12 +674,12 @@ static struct regulator_init_data pvdd_1v8 __devinitdata = { | |||
674 | .num_consumer_supplies = ARRAY_SIZE(pvdd_1v8_consumers), | 674 | .num_consumer_supplies = ARRAY_SIZE(pvdd_1v8_consumers), |
675 | }; | 675 | }; |
676 | 676 | ||
677 | static struct regulator_consumer_supply pvdd_3v3_consumers[] __devinitdata = { | 677 | static struct regulator_consumer_supply pvdd_3v3_consumers[] = { |
678 | REGULATOR_SUPPLY("MICVDD", "1-001a"), | 678 | REGULATOR_SUPPLY("MICVDD", "1-001a"), |
679 | REGULATOR_SUPPLY("AVDD1", "1-001a"), | 679 | REGULATOR_SUPPLY("AVDD1", "1-001a"), |
680 | }; | 680 | }; |
681 | 681 | ||
682 | static struct regulator_init_data pvdd_3v3 __devinitdata = { | 682 | static struct regulator_init_data pvdd_3v3 = { |
683 | .constraints = { | 683 | .constraints = { |
684 | .name = "PVDD_3V3", | 684 | .name = "PVDD_3V3", |
685 | .always_on = 1, | 685 | .always_on = 1, |
@@ -689,7 +689,7 @@ static struct regulator_init_data pvdd_3v3 __devinitdata = { | |||
689 | .num_consumer_supplies = ARRAY_SIZE(pvdd_3v3_consumers), | 689 | .num_consumer_supplies = ARRAY_SIZE(pvdd_3v3_consumers), |
690 | }; | 690 | }; |
691 | 691 | ||
692 | static struct wm831x_pdata glenfarclas_pmic_pdata __devinitdata = { | 692 | static struct wm831x_pdata glenfarclas_pmic_pdata = { |
693 | .wm831x_num = 2, | 693 | .wm831x_num = 2, |
694 | .irq_base = GLENFARCLAS_PMIC_IRQ_BASE, | 694 | .irq_base = GLENFARCLAS_PMIC_IRQ_BASE, |
695 | .gpio_base = GLENFARCLAS_PMIC_GPIO_BASE, | 695 | .gpio_base = GLENFARCLAS_PMIC_GPIO_BASE, |
@@ -721,7 +721,7 @@ static struct wm1250_ev1_pdata wm1250_ev1_pdata = { | |||
721 | }, | 721 | }, |
722 | }; | 722 | }; |
723 | 723 | ||
724 | static struct i2c_board_info i2c_devs1[] __devinitdata = { | 724 | static struct i2c_board_info i2c_devs1[] = { |
725 | { I2C_BOARD_INFO("wm8311", 0x34), | 725 | { I2C_BOARD_INFO("wm8311", 0x34), |
726 | .irq = S3C_EINT(0), | 726 | .irq = S3C_EINT(0), |
727 | .platform_data = &glenfarclas_pmic_pdata }, | 727 | .platform_data = &glenfarclas_pmic_pdata }, |
diff --git a/arch/arm/mach-s3c64xx/pm.c b/arch/arm/mach-s3c64xx/pm.c index 7feb426fc202..d2e1a16690bd 100644 --- a/arch/arm/mach-s3c64xx/pm.c +++ b/arch/arm/mach-s3c64xx/pm.c | |||
@@ -338,8 +338,10 @@ int __init s3c64xx_pm_init(void) | |||
338 | for (i = 0; i < ARRAY_SIZE(s3c64xx_pm_domains); i++) | 338 | for (i = 0; i < ARRAY_SIZE(s3c64xx_pm_domains); i++) |
339 | pm_genpd_init(&s3c64xx_pm_domains[i]->pd, NULL, false); | 339 | pm_genpd_init(&s3c64xx_pm_domains[i]->pd, NULL, false); |
340 | 340 | ||
341 | #ifdef CONFIG_S3C_DEV_FB | ||
341 | if (dev_get_platdata(&s3c_device_fb.dev)) | 342 | if (dev_get_platdata(&s3c_device_fb.dev)) |
342 | pm_genpd_add_device(&s3c64xx_pm_f.pd, &s3c_device_fb.dev); | 343 | pm_genpd_add_device(&s3c64xx_pm_f.pd, &s3c_device_fb.dev); |
344 | #endif | ||
343 | 345 | ||
344 | return 0; | 346 | return 0; |
345 | } | 347 | } |
diff --git a/arch/arm/mach-sa1100/jornada720_ssp.c b/arch/arm/mach-sa1100/jornada720_ssp.c index 7f07f08d8968..b143c4659346 100644 --- a/arch/arm/mach-sa1100/jornada720_ssp.c +++ b/arch/arm/mach-sa1100/jornada720_ssp.c | |||
@@ -130,7 +130,7 @@ void jornada_ssp_end(void) | |||
130 | }; | 130 | }; |
131 | EXPORT_SYMBOL(jornada_ssp_end); | 131 | EXPORT_SYMBOL(jornada_ssp_end); |
132 | 132 | ||
133 | static int __devinit jornada_ssp_probe(struct platform_device *dev) | 133 | static int jornada_ssp_probe(struct platform_device *dev) |
134 | { | 134 | { |
135 | int ret; | 135 | int ret; |
136 | 136 | ||
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c index 88be0474f3d7..400f80332046 100644 --- a/arch/arm/mach-sa1100/neponset.c +++ b/arch/arm/mach-sa1100/neponset.c | |||
@@ -154,7 +154,7 @@ static u_int neponset_get_mctrl(struct uart_port *port) | |||
154 | return ret; | 154 | return ret; |
155 | } | 155 | } |
156 | 156 | ||
157 | static struct sa1100_port_fns neponset_port_fns __devinitdata = { | 157 | static struct sa1100_port_fns neponset_port_fns = { |
158 | .set_mctrl = neponset_set_mctrl, | 158 | .set_mctrl = neponset_set_mctrl, |
159 | .get_mctrl = neponset_get_mctrl, | 159 | .get_mctrl = neponset_get_mctrl, |
160 | }; | 160 | }; |
@@ -233,7 +233,7 @@ static struct sa1111_platform_data sa1111_info = { | |||
233 | .disable_devs = SA1111_DEVID_PS2_MSE, | 233 | .disable_devs = SA1111_DEVID_PS2_MSE, |
234 | }; | 234 | }; |
235 | 235 | ||
236 | static int __devinit neponset_probe(struct platform_device *dev) | 236 | static int neponset_probe(struct platform_device *dev) |
237 | { | 237 | { |
238 | struct neponset_drvdata *d; | 238 | struct neponset_drvdata *d; |
239 | struct resource *nep_res, *sa1111_res, *smc91x_res; | 239 | struct resource *nep_res, *sa1111_res, *smc91x_res; |
@@ -368,7 +368,7 @@ static int __devinit neponset_probe(struct platform_device *dev) | |||
368 | return ret; | 368 | return ret; |
369 | } | 369 | } |
370 | 370 | ||
371 | static int __devexit neponset_remove(struct platform_device *dev) | 371 | static int neponset_remove(struct platform_device *dev) |
372 | { | 372 | { |
373 | struct neponset_drvdata *d = platform_get_drvdata(dev); | 373 | struct neponset_drvdata *d = platform_get_drvdata(dev); |
374 | int irq = platform_get_irq(dev, 0); | 374 | int irq = platform_get_irq(dev, 0); |
@@ -420,7 +420,7 @@ static const struct dev_pm_ops neponset_pm_ops = { | |||
420 | 420 | ||
421 | static struct platform_driver neponset_device_driver = { | 421 | static struct platform_driver neponset_device_driver = { |
422 | .probe = neponset_probe, | 422 | .probe = neponset_probe, |
423 | .remove = __devexit_p(neponset_remove), | 423 | .remove = neponset_remove, |
424 | .driver = { | 424 | .driver = { |
425 | .name = "neponset", | 425 | .name = "neponset", |
426 | .owner = THIS_MODULE, | 426 | .owner = THIS_MODULE, |
diff --git a/arch/arm/mach-tegra/pcie.c b/arch/arm/mach-tegra/pcie.c index 53d085871798..bffcd643d7a3 100644 --- a/arch/arm/mach-tegra/pcie.c +++ b/arch/arm/mach-tegra/pcie.c | |||
@@ -331,7 +331,7 @@ static struct pci_ops tegra_pcie_ops = { | |||
331 | .write = tegra_pcie_write_conf, | 331 | .write = tegra_pcie_write_conf, |
332 | }; | 332 | }; |
333 | 333 | ||
334 | static void __devinit tegra_pcie_fixup_bridge(struct pci_dev *dev) | 334 | static void tegra_pcie_fixup_bridge(struct pci_dev *dev) |
335 | { | 335 | { |
336 | u16 reg; | 336 | u16 reg; |
337 | 337 | ||
@@ -345,7 +345,7 @@ static void __devinit tegra_pcie_fixup_bridge(struct pci_dev *dev) | |||
345 | DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, tegra_pcie_fixup_bridge); | 345 | DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, tegra_pcie_fixup_bridge); |
346 | 346 | ||
347 | /* Tegra PCIE root complex wrongly reports device class */ | 347 | /* Tegra PCIE root complex wrongly reports device class */ |
348 | static void __devinit tegra_pcie_fixup_class(struct pci_dev *dev) | 348 | static void tegra_pcie_fixup_class(struct pci_dev *dev) |
349 | { | 349 | { |
350 | dev->class = PCI_CLASS_BRIDGE_PCI << 8; | 350 | dev->class = PCI_CLASS_BRIDGE_PCI << 8; |
351 | } | 351 | } |
@@ -353,7 +353,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, 0x0bf0, tegra_pcie_fixup_class); | |||
353 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, 0x0bf1, tegra_pcie_fixup_class); | 353 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, 0x0bf1, tegra_pcie_fixup_class); |
354 | 354 | ||
355 | /* Tegra PCIE requires relaxed ordering */ | 355 | /* Tegra PCIE requires relaxed ordering */ |
356 | static void __devinit tegra_pcie_relax_enable(struct pci_dev *dev) | 356 | static void tegra_pcie_relax_enable(struct pci_dev *dev) |
357 | { | 357 | { |
358 | pcie_capability_set_word(dev, PCI_EXP_DEVCTL, PCI_EXP_DEVCTL_RELAX_EN); | 358 | pcie_capability_set_word(dev, PCI_EXP_DEVCTL, PCI_EXP_DEVCTL_RELAX_EN); |
359 | } | 359 | } |
diff --git a/arch/arm/mach-tegra/tegra2_emc.c b/arch/arm/mach-tegra/tegra2_emc.c index 837c7b9ea63b..e18aa2f83ebf 100644 --- a/arch/arm/mach-tegra/tegra2_emc.c +++ b/arch/arm/mach-tegra/tegra2_emc.c | |||
@@ -268,7 +268,7 @@ static struct tegra_emc_pdata *tegra_emc_dt_parse_pdata( | |||
268 | } | 268 | } |
269 | #endif | 269 | #endif |
270 | 270 | ||
271 | static struct tegra_emc_pdata __devinit *tegra_emc_fill_pdata(struct platform_device *pdev) | 271 | static struct tegra_emc_pdata *tegra_emc_fill_pdata(struct platform_device *pdev) |
272 | { | 272 | { |
273 | struct clk *c = clk_get_sys(NULL, "emc"); | 273 | struct clk *c = clk_get_sys(NULL, "emc"); |
274 | struct tegra_emc_pdata *pdata; | 274 | struct tegra_emc_pdata *pdata; |
@@ -296,7 +296,7 @@ static struct tegra_emc_pdata __devinit *tegra_emc_fill_pdata(struct platform_de | |||
296 | return pdata; | 296 | return pdata; |
297 | } | 297 | } |
298 | 298 | ||
299 | static int __devinit tegra_emc_probe(struct platform_device *pdev) | 299 | static int tegra_emc_probe(struct platform_device *pdev) |
300 | { | 300 | { |
301 | struct tegra_emc_pdata *pdata; | 301 | struct tegra_emc_pdata *pdata; |
302 | struct resource *res; | 302 | struct resource *res; |
@@ -333,7 +333,7 @@ static int __devinit tegra_emc_probe(struct platform_device *pdev) | |||
333 | return 0; | 333 | return 0; |
334 | } | 334 | } |
335 | 335 | ||
336 | static struct of_device_id tegra_emc_of_match[] __devinitdata = { | 336 | static struct of_device_id tegra_emc_of_match[] = { |
337 | { .compatible = "nvidia,tegra20-emc", }, | 337 | { .compatible = "nvidia,tegra20-emc", }, |
338 | { }, | 338 | { }, |
339 | }; | 339 | }; |
diff --git a/arch/arm/mach-u300/dummyspichip.c b/arch/arm/mach-u300/dummyspichip.c index 03f793612594..2785cb67b5e8 100644 --- a/arch/arm/mach-u300/dummyspichip.c +++ b/arch/arm/mach-u300/dummyspichip.c | |||
@@ -222,7 +222,7 @@ static ssize_t dummy_looptest(struct device *dev, | |||
222 | 222 | ||
223 | static DEVICE_ATTR(looptest, S_IRUGO, dummy_looptest, NULL); | 223 | static DEVICE_ATTR(looptest, S_IRUGO, dummy_looptest, NULL); |
224 | 224 | ||
225 | static int __devinit pl022_dummy_probe(struct spi_device *spi) | 225 | static int pl022_dummy_probe(struct spi_device *spi) |
226 | { | 226 | { |
227 | struct dummy *p_dummy; | 227 | struct dummy *p_dummy; |
228 | int status; | 228 | int status; |
@@ -251,7 +251,7 @@ out_dev_create_looptest_failed: | |||
251 | return status; | 251 | return status; |
252 | } | 252 | } |
253 | 253 | ||
254 | static int __devexit pl022_dummy_remove(struct spi_device *spi) | 254 | static int pl022_dummy_remove(struct spi_device *spi) |
255 | { | 255 | { |
256 | struct dummy *p_dummy = dev_get_drvdata(&spi->dev); | 256 | struct dummy *p_dummy = dev_get_drvdata(&spi->dev); |
257 | 257 | ||
@@ -269,7 +269,7 @@ static struct spi_driver pl022_dummy_driver = { | |||
269 | .owner = THIS_MODULE, | 269 | .owner = THIS_MODULE, |
270 | }, | 270 | }, |
271 | .probe = pl022_dummy_probe, | 271 | .probe = pl022_dummy_probe, |
272 | .remove = __devexit_p(pl022_dummy_remove), | 272 | .remove = pl022_dummy_remove, |
273 | }; | 273 | }; |
274 | 274 | ||
275 | static int __init pl022_init_dummy(void) | 275 | static int __init pl022_init_dummy(void) |
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index db0bb75e2c76..5b286e06474c 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
@@ -285,7 +285,8 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = { | |||
285 | OF_DEV_AUXDATA("st,nomadik-i2c", 0x80110000, "nmk-i2c.3", NULL), | 285 | OF_DEV_AUXDATA("st,nomadik-i2c", 0x80110000, "nmk-i2c.3", NULL), |
286 | OF_DEV_AUXDATA("st,nomadik-i2c", 0x8012a000, "nmk-i2c.4", NULL), | 286 | OF_DEV_AUXDATA("st,nomadik-i2c", 0x8012a000, "nmk-i2c.4", NULL), |
287 | /* Requires device name bindings. */ | 287 | /* Requires device name bindings. */ |
288 | OF_DEV_AUXDATA("stericsson,nmk_pinctrl", 0, "pinctrl-db8500", NULL), | 288 | OF_DEV_AUXDATA("stericsson,nmk_pinctrl", U8500_PRCMU_BASE, |
289 | "pinctrl-db8500", NULL), | ||
289 | /* Requires clock name and DMA bindings. */ | 290 | /* Requires clock name and DMA bindings. */ |
290 | OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80123000, | 291 | OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80123000, |
291 | "ux500-msp-i2s.0", &msp0_platform_data), | 292 | "ux500-msp-i2s.0", &msp0_platform_data), |
diff --git a/arch/arm/mach-versatile/include/mach/irqs.h b/arch/arm/mach-versatile/include/mach/irqs.h index bf44c61bd1f6..0fd771ca617b 100644 --- a/arch/arm/mach-versatile/include/mach/irqs.h +++ b/arch/arm/mach-versatile/include/mach/irqs.h | |||
@@ -25,7 +25,7 @@ | |||
25 | * IRQ interrupts definitions are the same as the INT definitions | 25 | * IRQ interrupts definitions are the same as the INT definitions |
26 | * held within platform.h | 26 | * held within platform.h |
27 | */ | 27 | */ |
28 | #define IRQ_VIC_START 0 | 28 | #define IRQ_VIC_START 32 |
29 | #define IRQ_WDOGINT (IRQ_VIC_START + INT_WDOGINT) | 29 | #define IRQ_WDOGINT (IRQ_VIC_START + INT_WDOGINT) |
30 | #define IRQ_SOFTINT (IRQ_VIC_START + INT_SOFTINT) | 30 | #define IRQ_SOFTINT (IRQ_VIC_START + INT_SOFTINT) |
31 | #define IRQ_COMMRx (IRQ_VIC_START + INT_COMMRx) | 31 | #define IRQ_COMMRx (IRQ_VIC_START + INT_COMMRx) |
@@ -100,7 +100,7 @@ | |||
100 | /* | 100 | /* |
101 | * Secondary interrupt controller | 101 | * Secondary interrupt controller |
102 | */ | 102 | */ |
103 | #define IRQ_SIC_START 32 | 103 | #define IRQ_SIC_START 64 |
104 | #define IRQ_SIC_MMCI0B (IRQ_SIC_START + SIC_INT_MMCI0B) | 104 | #define IRQ_SIC_MMCI0B (IRQ_SIC_START + SIC_INT_MMCI0B) |
105 | #define IRQ_SIC_MMCI1B (IRQ_SIC_START + SIC_INT_MMCI1B) | 105 | #define IRQ_SIC_MMCI1B (IRQ_SIC_START + SIC_INT_MMCI1B) |
106 | #define IRQ_SIC_KMI0 (IRQ_SIC_START + SIC_INT_KMI0) | 106 | #define IRQ_SIC_KMI0 (IRQ_SIC_START + SIC_INT_KMI0) |
@@ -120,7 +120,7 @@ | |||
120 | #define IRQ_SIC_PCI1 (IRQ_SIC_START + SIC_INT_PCI1) | 120 | #define IRQ_SIC_PCI1 (IRQ_SIC_START + SIC_INT_PCI1) |
121 | #define IRQ_SIC_PCI2 (IRQ_SIC_START + SIC_INT_PCI2) | 121 | #define IRQ_SIC_PCI2 (IRQ_SIC_START + SIC_INT_PCI2) |
122 | #define IRQ_SIC_PCI3 (IRQ_SIC_START + SIC_INT_PCI3) | 122 | #define IRQ_SIC_PCI3 (IRQ_SIC_START + SIC_INT_PCI3) |
123 | #define IRQ_SIC_END 63 | 123 | #define IRQ_SIC_END 95 |
124 | 124 | ||
125 | #define IRQ_GPIO0_START (IRQ_SIC_END + 1) | 125 | #define IRQ_GPIO0_START (IRQ_SIC_END + 1) |
126 | #define IRQ_GPIO0_END (IRQ_GPIO0_START + 31) | 126 | #define IRQ_GPIO0_END (IRQ_GPIO0_START + 31) |
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig index 99e63f5f99d1..52d315b792c8 100644 --- a/arch/arm/mach-vexpress/Kconfig +++ b/arch/arm/mach-vexpress/Kconfig | |||
@@ -42,7 +42,6 @@ config ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA | |||
42 | bool "Enable A5 and A9 only errata work-arounds" | 42 | bool "Enable A5 and A9 only errata work-arounds" |
43 | default y | 43 | default y |
44 | select ARM_ERRATA_720789 | 44 | select ARM_ERRATA_720789 |
45 | select ARM_ERRATA_751472 | ||
46 | select PL310_ERRATA_753970 if CACHE_PL310 | 45 | select PL310_ERRATA_753970 if CACHE_PL310 |
47 | help | 46 | help |
48 | Provides common dependencies for Versatile Express platforms | 47 | Provides common dependencies for Versatile Express platforms |
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index 6911b8b2745c..c2f37390308a 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c | |||
@@ -352,7 +352,8 @@ void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask) | |||
352 | /* Unmapped register. */ | 352 | /* Unmapped register. */ |
353 | sync_reg_offset = L2X0_DUMMY_REG; | 353 | sync_reg_offset = L2X0_DUMMY_REG; |
354 | #endif | 354 | #endif |
355 | outer_cache.set_debug = pl310_set_debug; | 355 | if ((cache_id & L2X0_CACHE_ID_RTL_MASK) <= L2X0_CACHE_ID_RTL_R3P0) |
356 | outer_cache.set_debug = pl310_set_debug; | ||
356 | break; | 357 | break; |
357 | case L2X0_CACHE_ID_PART_L210: | 358 | case L2X0_CACHE_ID_PART_L210: |
358 | ways = (aux >> 13) & 0xf; | 359 | ways = (aux >> 13) & 0xf; |
@@ -459,8 +460,8 @@ static void aurora_pa_range(unsigned long start, unsigned long end, | |||
459 | unsigned long flags; | 460 | unsigned long flags; |
460 | 461 | ||
461 | raw_spin_lock_irqsave(&l2x0_lock, flags); | 462 | raw_spin_lock_irqsave(&l2x0_lock, flags); |
462 | writel(start, l2x0_base + AURORA_RANGE_BASE_ADDR_REG); | 463 | writel_relaxed(start, l2x0_base + AURORA_RANGE_BASE_ADDR_REG); |
463 | writel(end, l2x0_base + offset); | 464 | writel_relaxed(end, l2x0_base + offset); |
464 | raw_spin_unlock_irqrestore(&l2x0_lock, flags); | 465 | raw_spin_unlock_irqrestore(&l2x0_lock, flags); |
465 | 466 | ||
466 | cache_sync(); | 467 | cache_sync(); |
@@ -505,15 +506,21 @@ static void aurora_clean_range(unsigned long start, unsigned long end) | |||
505 | 506 | ||
506 | static void aurora_flush_range(unsigned long start, unsigned long end) | 507 | static void aurora_flush_range(unsigned long start, unsigned long end) |
507 | { | 508 | { |
508 | if (!l2_wt_override) { | 509 | start &= ~(CACHE_LINE_SIZE - 1); |
509 | start &= ~(CACHE_LINE_SIZE - 1); | 510 | end = ALIGN(end, CACHE_LINE_SIZE); |
510 | end = ALIGN(end, CACHE_LINE_SIZE); | 511 | while (start != end) { |
511 | while (start != end) { | 512 | unsigned long range_end = calc_range_end(start, end); |
512 | unsigned long range_end = calc_range_end(start, end); | 513 | /* |
514 | * If L2 is forced to WT, the L2 will always be clean and we | ||
515 | * just need to invalidate. | ||
516 | */ | ||
517 | if (l2_wt_override) | ||
513 | aurora_pa_range(start, range_end - CACHE_LINE_SIZE, | 518 | aurora_pa_range(start, range_end - CACHE_LINE_SIZE, |
514 | AURORA_FLUSH_RANGE_REG); | 519 | AURORA_INVAL_RANGE_REG); |
515 | start = range_end; | 520 | else |
516 | } | 521 | aurora_pa_range(start, range_end - CACHE_LINE_SIZE, |
522 | AURORA_FLUSH_RANGE_REG); | ||
523 | start = range_end; | ||
517 | } | 524 | } |
518 | } | 525 | } |
519 | 526 | ||
@@ -668,8 +675,9 @@ static void pl310_resume(void) | |||
668 | static void aurora_resume(void) | 675 | static void aurora_resume(void) |
669 | { | 676 | { |
670 | if (!(readl(l2x0_base + L2X0_CTRL) & L2X0_CTRL_EN)) { | 677 | if (!(readl(l2x0_base + L2X0_CTRL) & L2X0_CTRL_EN)) { |
671 | writel(l2x0_saved_regs.aux_ctrl, l2x0_base + L2X0_AUX_CTRL); | 678 | writel_relaxed(l2x0_saved_regs.aux_ctrl, |
672 | writel(l2x0_saved_regs.ctrl, l2x0_base + L2X0_CTRL); | 679 | l2x0_base + L2X0_AUX_CTRL); |
680 | writel_relaxed(l2x0_saved_regs.ctrl, l2x0_base + L2X0_CTRL); | ||
673 | } | 681 | } |
674 | } | 682 | } |
675 | 683 | ||
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 6b2fb87c8698..076c26d43864 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
@@ -774,25 +774,27 @@ static void dma_cache_maint_page(struct page *page, unsigned long offset, | |||
774 | size_t size, enum dma_data_direction dir, | 774 | size_t size, enum dma_data_direction dir, |
775 | void (*op)(const void *, size_t, int)) | 775 | void (*op)(const void *, size_t, int)) |
776 | { | 776 | { |
777 | unsigned long pfn; | ||
778 | size_t left = size; | ||
779 | |||
780 | pfn = page_to_pfn(page) + offset / PAGE_SIZE; | ||
781 | offset %= PAGE_SIZE; | ||
782 | |||
777 | /* | 783 | /* |
778 | * A single sg entry may refer to multiple physically contiguous | 784 | * A single sg entry may refer to multiple physically contiguous |
779 | * pages. But we still need to process highmem pages individually. | 785 | * pages. But we still need to process highmem pages individually. |
780 | * If highmem is not configured then the bulk of this loop gets | 786 | * If highmem is not configured then the bulk of this loop gets |
781 | * optimized out. | 787 | * optimized out. |
782 | */ | 788 | */ |
783 | size_t left = size; | ||
784 | do { | 789 | do { |
785 | size_t len = left; | 790 | size_t len = left; |
786 | void *vaddr; | 791 | void *vaddr; |
787 | 792 | ||
793 | page = pfn_to_page(pfn); | ||
794 | |||
788 | if (PageHighMem(page)) { | 795 | if (PageHighMem(page)) { |
789 | if (len + offset > PAGE_SIZE) { | 796 | if (len + offset > PAGE_SIZE) |
790 | if (offset >= PAGE_SIZE) { | ||
791 | page += offset / PAGE_SIZE; | ||
792 | offset %= PAGE_SIZE; | ||
793 | } | ||
794 | len = PAGE_SIZE - offset; | 797 | len = PAGE_SIZE - offset; |
795 | } | ||
796 | vaddr = kmap_high_get(page); | 798 | vaddr = kmap_high_get(page); |
797 | if (vaddr) { | 799 | if (vaddr) { |
798 | vaddr += offset; | 800 | vaddr += offset; |
@@ -809,7 +811,7 @@ static void dma_cache_maint_page(struct page *page, unsigned long offset, | |||
809 | op(vaddr, len, dir); | 811 | op(vaddr, len, dir); |
810 | } | 812 | } |
811 | offset = 0; | 813 | offset = 0; |
812 | page++; | 814 | pfn++; |
813 | left -= len; | 815 | left -= len; |
814 | } while (left); | 816 | } while (left); |
815 | } | 817 | } |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 9f0610243bd6..ce328c7f5c94 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -283,7 +283,7 @@ static struct mem_type mem_types[] = { | |||
283 | }, | 283 | }, |
284 | [MT_MEMORY_SO] = { | 284 | [MT_MEMORY_SO] = { |
285 | .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | | 285 | .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | |
286 | L_PTE_MT_UNCACHED, | 286 | L_PTE_MT_UNCACHED | L_PTE_XN, |
287 | .prot_l1 = PMD_TYPE_TABLE, | 287 | .prot_l1 = PMD_TYPE_TABLE, |
288 | .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_SECT_S | | 288 | .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_SECT_S | |
289 | PMD_SECT_UNCACHED | PMD_SECT_XN, | 289 | PMD_SECT_UNCACHED | PMD_SECT_XN, |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index 350f6a74992b..3a3c015f8d5c 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -169,6 +169,7 @@ __v7_ca15mp_setup: | |||
169 | orreq r0, r0, r10 @ Enable CPU-specific SMP bits | 169 | orreq r0, r0, r10 @ Enable CPU-specific SMP bits |
170 | mcreq p15, 0, r0, c1, c0, 1 | 170 | mcreq p15, 0, r0, c1, c0, 1 |
171 | #endif | 171 | #endif |
172 | b __v7_setup | ||
172 | 173 | ||
173 | __v7_pj4b_setup: | 174 | __v7_pj4b_setup: |
174 | #ifdef CONFIG_CPU_PJ4B | 175 | #ifdef CONFIG_CPU_PJ4B |
@@ -245,7 +246,8 @@ __v7_setup: | |||
245 | ldr r10, =0x00000c08 @ Cortex-A8 primary part number | 246 | ldr r10, =0x00000c08 @ Cortex-A8 primary part number |
246 | teq r0, r10 | 247 | teq r0, r10 |
247 | bne 2f | 248 | bne 2f |
248 | #ifdef CONFIG_ARM_ERRATA_430973 | 249 | #if defined(CONFIG_ARM_ERRATA_430973) && !defined(CONFIG_ARCH_MULTIPLATFORM) |
250 | |||
249 | teq r5, #0x00100000 @ only present in r1p* | 251 | teq r5, #0x00100000 @ only present in r1p* |
250 | mrceq p15, 0, r10, c1, c0, 1 @ read aux control register | 252 | mrceq p15, 0, r10, c1, c0, 1 @ read aux control register |
251 | orreq r10, r10, #(1 << 6) @ set IBE to 1 | 253 | orreq r10, r10, #(1 << 6) @ set IBE to 1 |
diff --git a/arch/arm/plat-omap/counter_32k.c b/arch/arm/plat-omap/counter_32k.c index f3771cdb9838..5b0b86bb34bb 100644 --- a/arch/arm/plat-omap/counter_32k.c +++ b/arch/arm/plat-omap/counter_32k.c | |||
@@ -22,6 +22,8 @@ | |||
22 | #include <asm/mach/time.h> | 22 | #include <asm/mach/time.h> |
23 | #include <asm/sched_clock.h> | 23 | #include <asm/sched_clock.h> |
24 | 24 | ||
25 | #include <plat/counter-32k.h> | ||
26 | |||
25 | /* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */ | 27 | /* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */ |
26 | #define OMAP2_32KSYNCNT_REV_OFF 0x0 | 28 | #define OMAP2_32KSYNCNT_REV_OFF 0x0 |
27 | #define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30) | 29 | #define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30) |
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index 37a488aaa2ba..4136b20cba3c 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c | |||
@@ -2000,7 +2000,7 @@ void omap_dma_global_context_restore(void) | |||
2000 | omap_clear_dma(ch); | 2000 | omap_clear_dma(ch); |
2001 | } | 2001 | } |
2002 | 2002 | ||
2003 | static int __devinit omap_system_dma_probe(struct platform_device *pdev) | 2003 | static int omap_system_dma_probe(struct platform_device *pdev) |
2004 | { | 2004 | { |
2005 | int ch, ret = 0; | 2005 | int ch, ret = 0; |
2006 | int dma_irq; | 2006 | int dma_irq; |
@@ -2116,7 +2116,7 @@ exit_dma_lch_fail: | |||
2116 | return ret; | 2116 | return ret; |
2117 | } | 2117 | } |
2118 | 2118 | ||
2119 | static int __devexit omap_system_dma_remove(struct platform_device *pdev) | 2119 | static int omap_system_dma_remove(struct platform_device *pdev) |
2120 | { | 2120 | { |
2121 | int dma_irq; | 2121 | int dma_irq; |
2122 | 2122 | ||
@@ -2140,7 +2140,7 @@ static int __devexit omap_system_dma_remove(struct platform_device *pdev) | |||
2140 | 2140 | ||
2141 | static struct platform_driver omap_system_dma_driver = { | 2141 | static struct platform_driver omap_system_dma_driver = { |
2142 | .probe = omap_system_dma_probe, | 2142 | .probe = omap_system_dma_probe, |
2143 | .remove = __devexit_p(omap_system_dma_remove), | 2143 | .remove = omap_system_dma_remove, |
2144 | .driver = { | 2144 | .driver = { |
2145 | .name = "omap_dma_system" | 2145 | .name = "omap_dma_system" |
2146 | }, | 2146 | }, |
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index d51b75bdcad4..7b433f3bddca 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
@@ -777,7 +777,7 @@ EXPORT_SYMBOL_GPL(omap_dm_timers_active); | |||
777 | * Called by driver framework at the end of device registration for all | 777 | * Called by driver framework at the end of device registration for all |
778 | * timer devices. | 778 | * timer devices. |
779 | */ | 779 | */ |
780 | static int __devinit omap_dm_timer_probe(struct platform_device *pdev) | 780 | static int omap_dm_timer_probe(struct platform_device *pdev) |
781 | { | 781 | { |
782 | unsigned long flags; | 782 | unsigned long flags; |
783 | struct omap_dm_timer *timer; | 783 | struct omap_dm_timer *timer; |
@@ -864,7 +864,7 @@ static int __devinit omap_dm_timer_probe(struct platform_device *pdev) | |||
864 | * In addition to freeing platform resources it also deletes the timer | 864 | * In addition to freeing platform resources it also deletes the timer |
865 | * entry from the local list. | 865 | * entry from the local list. |
866 | */ | 866 | */ |
867 | static int __devexit omap_dm_timer_remove(struct platform_device *pdev) | 867 | static int omap_dm_timer_remove(struct platform_device *pdev) |
868 | { | 868 | { |
869 | struct omap_dm_timer *timer; | 869 | struct omap_dm_timer *timer; |
870 | unsigned long flags; | 870 | unsigned long flags; |
@@ -891,7 +891,7 @@ MODULE_DEVICE_TABLE(of, omap_timer_match); | |||
891 | 891 | ||
892 | static struct platform_driver omap_dm_timer_driver = { | 892 | static struct platform_driver omap_dm_timer_driver = { |
893 | .probe = omap_dm_timer_probe, | 893 | .probe = omap_dm_timer_probe, |
894 | .remove = __devexit_p(omap_dm_timer_remove), | 894 | .remove = omap_dm_timer_remove, |
895 | .driver = { | 895 | .driver = { |
896 | .name = "omap_timer", | 896 | .name = "omap_timer", |
897 | .of_match_table = of_match_ptr(omap_timer_match), | 897 | .of_match_table = of_match_ptr(omap_timer_match), |
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index 743fc2836f7a..a5bc92d7e476 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -26,6 +26,8 @@ | |||
26 | 26 | ||
27 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
28 | 28 | ||
29 | #include <plat/sram.h> | ||
30 | |||
29 | #define ROUND_DOWN(value,boundary) ((value) & (~((boundary)-1))) | 31 | #define ROUND_DOWN(value,boundary) ((value) & (~((boundary)-1))) |
30 | 32 | ||
31 | static void __iomem *omap_sram_base; | 33 | static void __iomem *omap_sram_base; |
diff --git a/arch/arm/plat-pxa/ssp.c b/arch/arm/plat-pxa/ssp.c index 584c9bf8ed2d..8e11e96eab5e 100644 --- a/arch/arm/plat-pxa/ssp.c +++ b/arch/arm/plat-pxa/ssp.c | |||
@@ -72,7 +72,7 @@ void pxa_ssp_free(struct ssp_device *ssp) | |||
72 | } | 72 | } |
73 | EXPORT_SYMBOL(pxa_ssp_free); | 73 | EXPORT_SYMBOL(pxa_ssp_free); |
74 | 74 | ||
75 | static int __devinit pxa_ssp_probe(struct platform_device *pdev) | 75 | static int pxa_ssp_probe(struct platform_device *pdev) |
76 | { | 76 | { |
77 | const struct platform_device_id *id = platform_get_device_id(pdev); | 77 | const struct platform_device_id *id = platform_get_device_id(pdev); |
78 | struct resource *res; | 78 | struct resource *res; |
@@ -164,7 +164,7 @@ err_free: | |||
164 | return ret; | 164 | return ret; |
165 | } | 165 | } |
166 | 166 | ||
167 | static int __devexit pxa_ssp_remove(struct platform_device *pdev) | 167 | static int pxa_ssp_remove(struct platform_device *pdev) |
168 | { | 168 | { |
169 | struct resource *res; | 169 | struct resource *res; |
170 | struct ssp_device *ssp; | 170 | struct ssp_device *ssp; |
@@ -199,7 +199,7 @@ static const struct platform_device_id ssp_id_table[] = { | |||
199 | 199 | ||
200 | static struct platform_driver pxa_ssp_driver = { | 200 | static struct platform_driver pxa_ssp_driver = { |
201 | .probe = pxa_ssp_probe, | 201 | .probe = pxa_ssp_probe, |
202 | .remove = __devexit_p(pxa_ssp_remove), | 202 | .remove = pxa_ssp_remove, |
203 | .driver = { | 203 | .driver = { |
204 | .owner = THIS_MODULE, | 204 | .owner = THIS_MODULE, |
205 | .name = "pxa2xx-ssp", | 205 | .name = "pxa2xx-ssp", |
diff --git a/arch/arm/plat-samsung/adc.c b/arch/arm/plat-samsung/adc.c index 37542c2689a2..2d676ab50f73 100644 --- a/arch/arm/plat-samsung/adc.c +++ b/arch/arm/plat-samsung/adc.c | |||
@@ -416,7 +416,7 @@ static int s3c_adc_probe(struct platform_device *pdev) | |||
416 | return 0; | 416 | return 0; |
417 | } | 417 | } |
418 | 418 | ||
419 | static int __devexit s3c_adc_remove(struct platform_device *pdev) | 419 | static int s3c_adc_remove(struct platform_device *pdev) |
420 | { | 420 | { |
421 | struct adc_device *adc = platform_get_drvdata(pdev); | 421 | struct adc_device *adc = platform_get_drvdata(pdev); |
422 | 422 | ||
@@ -516,7 +516,7 @@ static struct platform_driver s3c_adc_driver = { | |||
516 | .pm = &adc_pm_ops, | 516 | .pm = &adc_pm_ops, |
517 | }, | 517 | }, |
518 | .probe = s3c_adc_probe, | 518 | .probe = s3c_adc_probe, |
519 | .remove = __devexit_p(s3c_adc_remove), | 519 | .remove = s3c_adc_remove, |
520 | }; | 520 | }; |
521 | 521 | ||
522 | static int __init adc_init(void) | 522 | static int __init adc_init(void) |
diff --git a/arch/arm/plat-samsung/include/plat/cpu.h b/arch/arm/plat-samsung/include/plat/cpu.h index e0072ce8d6e9..b69e11dc679d 100644 --- a/arch/arm/plat-samsung/include/plat/cpu.h +++ b/arch/arm/plat-samsung/include/plat/cpu.h | |||
@@ -43,7 +43,7 @@ extern unsigned long samsung_cpu_id; | |||
43 | #define EXYNOS4_CPU_MASK 0xFFFE0000 | 43 | #define EXYNOS4_CPU_MASK 0xFFFE0000 |
44 | 44 | ||
45 | #define EXYNOS5250_SOC_ID 0x43520000 | 45 | #define EXYNOS5250_SOC_ID 0x43520000 |
46 | #define EXYNOS5440_SOC_ID 0x54400000 | 46 | #define EXYNOS5440_SOC_ID 0xE5440000 |
47 | #define EXYNOS5_SOC_MASK 0xFFFFF000 | 47 | #define EXYNOS5_SOC_MASK 0xFFFFF000 |
48 | 48 | ||
49 | #define IS_SAMSUNG_CPU(name, id, mask) \ | 49 | #define IS_SAMSUNG_CPU(name, id, mask) \ |
diff --git a/arch/arm/plat-versatile/headsmp.S b/arch/arm/plat-versatile/headsmp.S index dd703ef09b8d..b178d44e9eaa 100644 --- a/arch/arm/plat-versatile/headsmp.S +++ b/arch/arm/plat-versatile/headsmp.S | |||
@@ -20,7 +20,7 @@ | |||
20 | */ | 20 | */ |
21 | ENTRY(versatile_secondary_startup) | 21 | ENTRY(versatile_secondary_startup) |
22 | mrc p15, 0, r0, c0, c0, 5 | 22 | mrc p15, 0, r0, c0, c0, 5 |
23 | and r0, r0, #15 | 23 | bic r0, #0xff000000 |
24 | adr r4, 1f | 24 | adr r4, 1f |
25 | ldmia r4, {r5, r6} | 25 | ldmia r4, {r5, r6} |
26 | sub r4, r4, r5 | 26 | sub r4, r4, r5 |
diff --git a/arch/arm/vfp/entry.S b/arch/arm/vfp/entry.S index cc926c985981..323ce1a62bbf 100644 --- a/arch/arm/vfp/entry.S +++ b/arch/arm/vfp/entry.S | |||
@@ -22,7 +22,7 @@ | |||
22 | @ IRQs disabled. | 22 | @ IRQs disabled. |
23 | @ | 23 | @ |
24 | ENTRY(do_vfp) | 24 | ENTRY(do_vfp) |
25 | #ifdef CONFIG_PREEMPT | 25 | #ifdef CONFIG_PREEMPT_COUNT |
26 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count | 26 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count |
27 | add r11, r4, #1 @ increment it | 27 | add r11, r4, #1 @ increment it |
28 | str r11, [r10, #TI_PREEMPT] | 28 | str r11, [r10, #TI_PREEMPT] |
@@ -35,7 +35,7 @@ ENTRY(do_vfp) | |||
35 | ENDPROC(do_vfp) | 35 | ENDPROC(do_vfp) |
36 | 36 | ||
37 | ENTRY(vfp_null_entry) | 37 | ENTRY(vfp_null_entry) |
38 | #ifdef CONFIG_PREEMPT | 38 | #ifdef CONFIG_PREEMPT_COUNT |
39 | get_thread_info r10 | 39 | get_thread_info r10 |
40 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count | 40 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count |
41 | sub r11, r4, #1 @ decrement it | 41 | sub r11, r4, #1 @ decrement it |
@@ -53,7 +53,7 @@ ENDPROC(vfp_null_entry) | |||
53 | 53 | ||
54 | __INIT | 54 | __INIT |
55 | ENTRY(vfp_testing_entry) | 55 | ENTRY(vfp_testing_entry) |
56 | #ifdef CONFIG_PREEMPT | 56 | #ifdef CONFIG_PREEMPT_COUNT |
57 | get_thread_info r10 | 57 | get_thread_info r10 |
58 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count | 58 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count |
59 | sub r11, r4, #1 @ decrement it | 59 | sub r11, r4, #1 @ decrement it |
diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S index ea0349f63586..dd5e56f95f3f 100644 --- a/arch/arm/vfp/vfphw.S +++ b/arch/arm/vfp/vfphw.S | |||
@@ -168,7 +168,7 @@ vfp_hw_state_valid: | |||
168 | @ else it's one 32-bit instruction, so | 168 | @ else it's one 32-bit instruction, so |
169 | @ always subtract 4 from the following | 169 | @ always subtract 4 from the following |
170 | @ instruction address. | 170 | @ instruction address. |
171 | #ifdef CONFIG_PREEMPT | 171 | #ifdef CONFIG_PREEMPT_COUNT |
172 | get_thread_info r10 | 172 | get_thread_info r10 |
173 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count | 173 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count |
174 | sub r11, r4, #1 @ decrement it | 174 | sub r11, r4, #1 @ decrement it |
@@ -192,7 +192,7 @@ look_for_VFP_exceptions: | |||
192 | @ not recognised by VFP | 192 | @ not recognised by VFP |
193 | 193 | ||
194 | DBGSTR "not VFP" | 194 | DBGSTR "not VFP" |
195 | #ifdef CONFIG_PREEMPT | 195 | #ifdef CONFIG_PREEMPT_COUNT |
196 | get_thread_info r10 | 196 | get_thread_info r10 |
197 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count | 197 | ldr r4, [r10, #TI_PREEMPT] @ get preempt count |
198 | sub r11, r4, #1 @ decrement it | 198 | sub r11, r4, #1 @ decrement it |
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 9c829b008261..f8f362aafee9 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig | |||
@@ -2,6 +2,8 @@ config ARM64 | |||
2 | def_bool y | 2 | def_bool y |
3 | select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE | 3 | select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE |
4 | select ARCH_WANT_COMPAT_IPC_PARSE_VERSION | 4 | select ARCH_WANT_COMPAT_IPC_PARSE_VERSION |
5 | select ARM_AMBA | ||
6 | select CLONE_BACKWARDS | ||
5 | select COMMON_CLK | 7 | select COMMON_CLK |
6 | select GENERIC_CLOCKEVENTS | 8 | select GENERIC_CLOCKEVENTS |
7 | select GENERIC_HARDIRQS_NO_DEPRECATED | 9 | select GENERIC_HARDIRQS_NO_DEPRECATED |
@@ -31,7 +33,6 @@ config ARM64 | |||
31 | select RTC_LIB | 33 | select RTC_LIB |
32 | select SPARSE_IRQ | 34 | select SPARSE_IRQ |
33 | select SYSCTL_EXCEPTION_TRACE | 35 | select SYSCTL_EXCEPTION_TRACE |
34 | select CLONE_BACKWARDS | ||
35 | help | 36 | help |
36 | ARM 64-bit (AArch64) Linux support. | 37 | ARM 64-bit (AArch64) Linux support. |
37 | 38 | ||
@@ -90,6 +91,9 @@ config SWIOTLB | |||
90 | config IOMMU_HELPER | 91 | config IOMMU_HELPER |
91 | def_bool SWIOTLB | 92 | def_bool SWIOTLB |
92 | 93 | ||
94 | config GENERIC_GPIO | ||
95 | def_bool y | ||
96 | |||
93 | source "init/Kconfig" | 97 | source "init/Kconfig" |
94 | 98 | ||
95 | source "kernel/Kconfig.freezer" | 99 | source "kernel/Kconfig.freezer" |
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index 801e2d7fcbc6..32ac0aef0068 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile | |||
@@ -1,4 +1,5 @@ | |||
1 | targets += dtbs | 1 | targets += dtbs |
2 | targets += $(dtb-y) | ||
2 | 3 | ||
3 | dtbs: $(addprefix $(obj)/, $(dtb-y)) | 4 | dtbs: $(addprefix $(obj)/, $(dtb-y)) |
4 | 5 | ||
diff --git a/arch/arm64/include/asm/compat.h b/arch/arm64/include/asm/compat.h index d9ec40217a27..618b450e5a1d 100644 --- a/arch/arm64/include/asm/compat.h +++ b/arch/arm64/include/asm/compat.h | |||
@@ -23,6 +23,7 @@ | |||
23 | */ | 23 | */ |
24 | #include <linux/types.h> | 24 | #include <linux/types.h> |
25 | #include <linux/sched.h> | 25 | #include <linux/sched.h> |
26 | #include <linux/ptrace.h> | ||
26 | 27 | ||
27 | #define COMPAT_USER_HZ 100 | 28 | #define COMPAT_USER_HZ 100 |
28 | #define COMPAT_UTS_MACHINE "armv8l\0\0" | 29 | #define COMPAT_UTS_MACHINE "armv8l\0\0" |
diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h index 07fea290d7c1..fe32c0e4ac01 100644 --- a/arch/arm64/include/asm/elf.h +++ b/arch/arm64/include/asm/elf.h | |||
@@ -26,7 +26,10 @@ | |||
26 | 26 | ||
27 | typedef unsigned long elf_greg_t; | 27 | typedef unsigned long elf_greg_t; |
28 | 28 | ||
29 | #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) | 29 | #define ELF_NGREG (sizeof(struct user_pt_regs) / sizeof(elf_greg_t)) |
30 | #define ELF_CORE_COPY_REGS(dest, regs) \ | ||
31 | *(struct user_pt_regs *)&(dest) = (regs)->user_regs; | ||
32 | |||
30 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | 33 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; |
31 | typedef struct user_fpsimd_state elf_fpregset_t; | 34 | typedef struct user_fpsimd_state elf_fpregset_t; |
32 | 35 | ||
diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h index 64b133949502..e333a243bfcc 100644 --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h | |||
@@ -24,7 +24,8 @@ | |||
24 | /* | 24 | /* |
25 | * Software defined PTE bits definition. | 25 | * Software defined PTE bits definition. |
26 | */ | 26 | */ |
27 | #define PTE_VALID (_AT(pteval_t, 1) << 0) /* pte_present() check */ | 27 | #define PTE_VALID (_AT(pteval_t, 1) << 0) |
28 | #define PTE_PROT_NONE (_AT(pteval_t, 1) << 1) /* only when !PTE_VALID */ | ||
28 | #define PTE_FILE (_AT(pteval_t, 1) << 2) /* only when !pte_present() */ | 29 | #define PTE_FILE (_AT(pteval_t, 1) << 2) /* only when !pte_present() */ |
29 | #define PTE_DIRTY (_AT(pteval_t, 1) << 55) | 30 | #define PTE_DIRTY (_AT(pteval_t, 1) << 55) |
30 | #define PTE_SPECIAL (_AT(pteval_t, 1) << 56) | 31 | #define PTE_SPECIAL (_AT(pteval_t, 1) << 56) |
@@ -60,9 +61,12 @@ extern void __pgd_error(const char *file, int line, unsigned long val); | |||
60 | 61 | ||
61 | extern pgprot_t pgprot_default; | 62 | extern pgprot_t pgprot_default; |
62 | 63 | ||
63 | #define _MOD_PROT(p, b) __pgprot(pgprot_val(p) | (b)) | 64 | #define __pgprot_modify(prot,mask,bits) \ |
65 | __pgprot((pgprot_val(prot) & ~(mask)) | (bits)) | ||
66 | |||
67 | #define _MOD_PROT(p, b) __pgprot_modify(p, 0, b) | ||
64 | 68 | ||
65 | #define PAGE_NONE _MOD_PROT(pgprot_default, PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY) | 69 | #define PAGE_NONE __pgprot_modify(pgprot_default, PTE_TYPE_MASK, PTE_PROT_NONE) |
66 | #define PAGE_SHARED _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_UXN) | 70 | #define PAGE_SHARED _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_UXN) |
67 | #define PAGE_SHARED_EXEC _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN) | 71 | #define PAGE_SHARED_EXEC _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN) |
68 | #define PAGE_COPY _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY) | 72 | #define PAGE_COPY _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY) |
@@ -72,7 +76,7 @@ extern pgprot_t pgprot_default; | |||
72 | #define PAGE_KERNEL _MOD_PROT(pgprot_default, PTE_PXN | PTE_UXN | PTE_DIRTY) | 76 | #define PAGE_KERNEL _MOD_PROT(pgprot_default, PTE_PXN | PTE_UXN | PTE_DIRTY) |
73 | #define PAGE_KERNEL_EXEC _MOD_PROT(pgprot_default, PTE_UXN | PTE_DIRTY) | 77 | #define PAGE_KERNEL_EXEC _MOD_PROT(pgprot_default, PTE_UXN | PTE_DIRTY) |
74 | 78 | ||
75 | #define __PAGE_NONE __pgprot(_PAGE_DEFAULT | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY) | 79 | #define __PAGE_NONE __pgprot(((_PAGE_DEFAULT) & ~PTE_TYPE_MASK) | PTE_PROT_NONE) |
76 | #define __PAGE_SHARED __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_UXN) | 80 | #define __PAGE_SHARED __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_UXN) |
77 | #define __PAGE_SHARED_EXEC __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN) | 81 | #define __PAGE_SHARED_EXEC __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN) |
78 | #define __PAGE_COPY __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY) | 82 | #define __PAGE_COPY __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY) |
@@ -125,16 +129,15 @@ extern struct page *empty_zero_page; | |||
125 | /* | 129 | /* |
126 | * The following only work if pte_present(). Undefined behaviour otherwise. | 130 | * The following only work if pte_present(). Undefined behaviour otherwise. |
127 | */ | 131 | */ |
128 | #define pte_present(pte) (pte_val(pte) & PTE_VALID) | 132 | #define pte_present(pte) (pte_val(pte) & (PTE_VALID | PTE_PROT_NONE)) |
129 | #define pte_dirty(pte) (pte_val(pte) & PTE_DIRTY) | 133 | #define pte_dirty(pte) (pte_val(pte) & PTE_DIRTY) |
130 | #define pte_young(pte) (pte_val(pte) & PTE_AF) | 134 | #define pte_young(pte) (pte_val(pte) & PTE_AF) |
131 | #define pte_special(pte) (pte_val(pte) & PTE_SPECIAL) | 135 | #define pte_special(pte) (pte_val(pte) & PTE_SPECIAL) |
132 | #define pte_write(pte) (!(pte_val(pte) & PTE_RDONLY)) | 136 | #define pte_write(pte) (!(pte_val(pte) & PTE_RDONLY)) |
133 | #define pte_exec(pte) (!(pte_val(pte) & PTE_UXN)) | 137 | #define pte_exec(pte) (!(pte_val(pte) & PTE_UXN)) |
134 | 138 | ||
135 | #define pte_present_exec_user(pte) \ | 139 | #define pte_valid_user(pte) \ |
136 | ((pte_val(pte) & (PTE_VALID | PTE_USER | PTE_UXN)) == \ | 140 | ((pte_val(pte) & (PTE_VALID | PTE_USER)) == (PTE_VALID | PTE_USER)) |
137 | (PTE_VALID | PTE_USER)) | ||
138 | 141 | ||
139 | #define PTE_BIT_FUNC(fn,op) \ | 142 | #define PTE_BIT_FUNC(fn,op) \ |
140 | static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; } | 143 | static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; } |
@@ -157,10 +160,13 @@ extern void __sync_icache_dcache(pte_t pteval, unsigned long addr); | |||
157 | static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, | 160 | static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, |
158 | pte_t *ptep, pte_t pte) | 161 | pte_t *ptep, pte_t pte) |
159 | { | 162 | { |
160 | if (pte_present_exec_user(pte)) | 163 | if (pte_valid_user(pte)) { |
161 | __sync_icache_dcache(pte, addr); | 164 | if (pte_exec(pte)) |
162 | if (!pte_dirty(pte)) | 165 | __sync_icache_dcache(pte, addr); |
163 | pte = pte_wrprotect(pte); | 166 | if (!pte_dirty(pte)) |
167 | pte = pte_wrprotect(pte); | ||
168 | } | ||
169 | |||
164 | set_pte(ptep, pte); | 170 | set_pte(ptep, pte); |
165 | } | 171 | } |
166 | 172 | ||
@@ -170,9 +176,6 @@ static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, | |||
170 | #define pte_huge(pte) ((pte_val(pte) & PTE_TYPE_MASK) == PTE_TYPE_HUGEPAGE) | 176 | #define pte_huge(pte) ((pte_val(pte) & PTE_TYPE_MASK) == PTE_TYPE_HUGEPAGE) |
171 | #define pte_mkhuge(pte) (__pte((pte_val(pte) & ~PTE_TYPE_MASK) | PTE_TYPE_HUGEPAGE)) | 177 | #define pte_mkhuge(pte) (__pte((pte_val(pte) & ~PTE_TYPE_MASK) | PTE_TYPE_HUGEPAGE)) |
172 | 178 | ||
173 | #define __pgprot_modify(prot,mask,bits) \ | ||
174 | __pgprot((pgprot_val(prot) & ~(mask)) | (bits)) | ||
175 | |||
176 | #define __HAVE_ARCH_PTE_SPECIAL | 179 | #define __HAVE_ARCH_PTE_SPECIAL |
177 | 180 | ||
178 | /* | 181 | /* |
@@ -264,7 +267,8 @@ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long addr) | |||
264 | 267 | ||
265 | static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) | 268 | static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) |
266 | { | 269 | { |
267 | const pteval_t mask = PTE_USER | PTE_PXN | PTE_UXN | PTE_RDONLY; | 270 | const pteval_t mask = PTE_USER | PTE_PXN | PTE_UXN | PTE_RDONLY | |
271 | PTE_PROT_NONE | PTE_VALID; | ||
268 | pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask); | 272 | pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask); |
269 | return pte; | 273 | return pte; |
270 | } | 274 | } |
diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h index 58432625fdb3..5ef47ba3ed45 100644 --- a/arch/arm64/include/asm/unistd32.h +++ b/arch/arm64/include/asm/unistd32.h | |||
@@ -395,8 +395,13 @@ __SYSCALL(370, sys_name_to_handle_at) | |||
395 | __SYSCALL(371, compat_sys_open_by_handle_at) | 395 | __SYSCALL(371, compat_sys_open_by_handle_at) |
396 | __SYSCALL(372, compat_sys_clock_adjtime) | 396 | __SYSCALL(372, compat_sys_clock_adjtime) |
397 | __SYSCALL(373, sys_syncfs) | 397 | __SYSCALL(373, sys_syncfs) |
398 | __SYSCALL(374, compat_sys_sendmmsg) | ||
399 | __SYSCALL(375, sys_setns) | ||
400 | __SYSCALL(376, compat_sys_process_vm_readv) | ||
401 | __SYSCALL(377, compat_sys_process_vm_writev) | ||
402 | __SYSCALL(378, sys_ni_syscall) /* 378 for kcmp */ | ||
398 | 403 | ||
399 | #define __NR_compat_syscalls 374 | 404 | #define __NR_compat_syscalls 379 |
400 | 405 | ||
401 | /* | 406 | /* |
402 | * Compat syscall numbers used by the AArch64 kernel. | 407 | * Compat syscall numbers used by the AArch64 kernel. |
diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c index c76c7241125b..f7073c7b1ca9 100644 --- a/arch/arm64/kernel/perf_event.c +++ b/arch/arm64/kernel/perf_event.c | |||
@@ -1221,7 +1221,7 @@ static struct of_device_id armpmu_of_device_ids[] = { | |||
1221 | {}, | 1221 | {}, |
1222 | }; | 1222 | }; |
1223 | 1223 | ||
1224 | static int __devinit armpmu_device_probe(struct platform_device *pdev) | 1224 | static int armpmu_device_probe(struct platform_device *pdev) |
1225 | { | 1225 | { |
1226 | if (!cpu_pmu) | 1226 | if (!cpu_pmu) |
1227 | return -ENODEV; | 1227 | return -ENODEV; |
diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c index c958cb84d75f..6a389dc1bd49 100644 --- a/arch/arm64/kernel/vdso.c +++ b/arch/arm64/kernel/vdso.c | |||
@@ -252,10 +252,6 @@ void update_vsyscall(struct timekeeper *tk) | |||
252 | 252 | ||
253 | void update_vsyscall_tz(void) | 253 | void update_vsyscall_tz(void) |
254 | { | 254 | { |
255 | ++vdso_data->tb_seq_count; | ||
256 | smp_wmb(); | ||
257 | vdso_data->tz_minuteswest = sys_tz.tz_minuteswest; | 255 | vdso_data->tz_minuteswest = sys_tz.tz_minuteswest; |
258 | vdso_data->tz_dsttime = sys_tz.tz_dsttime; | 256 | vdso_data->tz_dsttime = sys_tz.tz_dsttime; |
259 | smp_wmb(); | ||
260 | ++vdso_data->tb_seq_count; | ||
261 | } | 257 | } |
diff --git a/arch/arm64/kernel/vdso/gettimeofday.S b/arch/arm64/kernel/vdso/gettimeofday.S index 8bf658d974f9..f0a6d10b5211 100644 --- a/arch/arm64/kernel/vdso/gettimeofday.S +++ b/arch/arm64/kernel/vdso/gettimeofday.S | |||
@@ -73,8 +73,6 @@ ENTRY(__kernel_gettimeofday) | |||
73 | /* If tz is NULL, return 0. */ | 73 | /* If tz is NULL, return 0. */ |
74 | cbz x1, 3f | 74 | cbz x1, 3f |
75 | ldp w4, w5, [vdso_data, #VDSO_TZ_MINWEST] | 75 | ldp w4, w5, [vdso_data, #VDSO_TZ_MINWEST] |
76 | seqcnt_read w9 | ||
77 | seqcnt_check w9, 1b | ||
78 | stp w4, w5, [x1, #TZ_MINWEST] | 76 | stp w4, w5, [x1, #TZ_MINWEST] |
79 | 3: | 77 | 3: |
80 | mov x0, xzr | 78 | mov x0, xzr |
diff --git a/arch/avr32/lib/delay.c b/arch/avr32/lib/delay.c index 9aa8800830f3..c2f4a07dcda1 100644 --- a/arch/avr32/lib/delay.c +++ b/arch/avr32/lib/delay.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <asm/processor.h> | 20 | #include <asm/processor.h> |
21 | #include <asm/sysreg.h> | 21 | #include <asm/sysreg.h> |
22 | 22 | ||
23 | int __devinit read_current_timer(unsigned long *timer_value) | 23 | int read_current_timer(unsigned long *timer_value) |
24 | { | 24 | { |
25 | *timer_value = sysreg_read(COUNT); | 25 | *timer_value = sysreg_read(COUNT); |
26 | return 0; | 26 | return 0; |
diff --git a/arch/blackfin/mach-common/dpmc.c b/arch/blackfin/mach-common/dpmc.c index 978bb400be06..724a8c5f5578 100644 --- a/arch/blackfin/mach-common/dpmc.c +++ b/arch/blackfin/mach-common/dpmc.c | |||
@@ -129,7 +129,7 @@ static struct notifier_block vreg_cpufreq_notifier_block = { | |||
129 | * bfin_dpmc_probe - | 129 | * bfin_dpmc_probe - |
130 | * | 130 | * |
131 | */ | 131 | */ |
132 | static int __devinit bfin_dpmc_probe(struct platform_device *pdev) | 132 | static int bfin_dpmc_probe(struct platform_device *pdev) |
133 | { | 133 | { |
134 | if (pdev->dev.platform_data) | 134 | if (pdev->dev.platform_data) |
135 | pdata = pdev->dev.platform_data; | 135 | pdata = pdev->dev.platform_data; |
@@ -143,7 +143,7 @@ static int __devinit bfin_dpmc_probe(struct platform_device *pdev) | |||
143 | /** | 143 | /** |
144 | * bfin_dpmc_remove - | 144 | * bfin_dpmc_remove - |
145 | */ | 145 | */ |
146 | static int __devexit bfin_dpmc_remove(struct platform_device *pdev) | 146 | static int bfin_dpmc_remove(struct platform_device *pdev) |
147 | { | 147 | { |
148 | pdata = NULL; | 148 | pdata = NULL; |
149 | return cpufreq_unregister_notifier(&vreg_cpufreq_notifier_block, | 149 | return cpufreq_unregister_notifier(&vreg_cpufreq_notifier_block, |
@@ -152,7 +152,7 @@ static int __devexit bfin_dpmc_remove(struct platform_device *pdev) | |||
152 | 152 | ||
153 | struct platform_driver bfin_dpmc_device_driver = { | 153 | struct platform_driver bfin_dpmc_device_driver = { |
154 | .probe = bfin_dpmc_probe, | 154 | .probe = bfin_dpmc_probe, |
155 | .remove = __devexit_p(bfin_dpmc_remove), | 155 | .remove = bfin_dpmc_remove, |
156 | .driver = { | 156 | .driver = { |
157 | .name = DRIVER_NAME, | 157 | .name = DRIVER_NAME, |
158 | } | 158 | } |
diff --git a/arch/cris/arch-v32/drivers/pci/bios.c b/arch/cris/arch-v32/drivers/pci/bios.c index e3dfc72d0cfd..64a5fb93767d 100644 --- a/arch/cris/arch-v32/drivers/pci/bios.c +++ b/arch/cris/arch-v32/drivers/pci/bios.c | |||
@@ -2,7 +2,7 @@ | |||
2 | #include <linux/kernel.h> | 2 | #include <linux/kernel.h> |
3 | #include <arch/hwregs/intr_vect.h> | 3 | #include <arch/hwregs/intr_vect.h> |
4 | 4 | ||
5 | void __devinit pcibios_fixup_bus(struct pci_bus *b) | 5 | void pcibios_fixup_bus(struct pci_bus *b) |
6 | { | 6 | { |
7 | } | 7 | } |
8 | 8 | ||
diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c index ebe2cb30bd11..04a16edd5401 100644 --- a/arch/cris/arch-v32/kernel/smp.c +++ b/arch/cris/arch-v32/kernel/smp.c | |||
@@ -84,7 +84,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
84 | cpumask_set_cpu(i, &phys_cpu_present_map); | 84 | cpumask_set_cpu(i, &phys_cpu_present_map); |
85 | } | 85 | } |
86 | 86 | ||
87 | void __devinit smp_prepare_boot_cpu(void) | 87 | void smp_prepare_boot_cpu(void) |
88 | { | 88 | { |
89 | /* PGD pointer has moved after per_cpu initialization so | 89 | /* PGD pointer has moved after per_cpu initialization so |
90 | * update the MMU. | 90 | * update the MMU. |
diff --git a/arch/frv/kernel/setup.c b/arch/frv/kernel/setup.c index 3cb3392f799e..a5136474c6fd 100644 --- a/arch/frv/kernel/setup.c +++ b/arch/frv/kernel/setup.c | |||
@@ -852,7 +852,7 @@ void __init setup_arch(char **cmdline_p) | |||
852 | /* | 852 | /* |
853 | * | 853 | * |
854 | */ | 854 | */ |
855 | static int __devinit setup_arch_serial(void) | 855 | static int setup_arch_serial(void) |
856 | { | 856 | { |
857 | /* register those serial ports that are available */ | 857 | /* register those serial ports that are available */ |
858 | #ifndef CONFIG_GDBSTUB_UART0 | 858 | #ifndef CONFIG_GDBSTUB_UART0 |
diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c index 71e9bcf58105..d186b254ce99 100644 --- a/arch/frv/mb93090-mb00/pci-vdk.c +++ b/arch/frv/mb93090-mb00/pci-vdk.c | |||
@@ -268,7 +268,7 @@ static void __init pci_fixup_umc_ide(struct pci_dev *d) | |||
268 | d->resource[i].flags |= PCI_BASE_ADDRESS_SPACE_IO; | 268 | d->resource[i].flags |= PCI_BASE_ADDRESS_SPACE_IO; |
269 | } | 269 | } |
270 | 270 | ||
271 | static void __devinit pci_fixup_ide_bases(struct pci_dev *d) | 271 | static void pci_fixup_ide_bases(struct pci_dev *d) |
272 | { | 272 | { |
273 | int i; | 273 | int i; |
274 | 274 | ||
@@ -287,7 +287,7 @@ static void __devinit pci_fixup_ide_bases(struct pci_dev *d) | |||
287 | } | 287 | } |
288 | } | 288 | } |
289 | 289 | ||
290 | static void __devinit pci_fixup_ide_trash(struct pci_dev *d) | 290 | static void pci_fixup_ide_trash(struct pci_dev *d) |
291 | { | 291 | { |
292 | int i; | 292 | int i; |
293 | 293 | ||
@@ -300,7 +300,7 @@ static void __devinit pci_fixup_ide_trash(struct pci_dev *d) | |||
300 | d->resource[i].start = d->resource[i].end = d->resource[i].flags = 0; | 300 | d->resource[i].start = d->resource[i].end = d->resource[i].flags = 0; |
301 | } | 301 | } |
302 | 302 | ||
303 | static void __devinit pci_fixup_latency(struct pci_dev *d) | 303 | static void pci_fixup_latency(struct pci_dev *d) |
304 | { | 304 | { |
305 | /* | 305 | /* |
306 | * SiS 5597 and 5598 chipsets require latency timer set to | 306 | * SiS 5597 and 5598 chipsets require latency timer set to |
diff --git a/arch/ia64/include/asm/acpi.h b/arch/ia64/include/asm/acpi.h index 301609c3fcec..359e68a03ca3 100644 --- a/arch/ia64/include/asm/acpi.h +++ b/arch/ia64/include/asm/acpi.h | |||
@@ -153,7 +153,7 @@ extern int additional_cpus; | |||
153 | #else | 153 | #else |
154 | #define MAX_PXM_DOMAINS (256) | 154 | #define MAX_PXM_DOMAINS (256) |
155 | #endif | 155 | #endif |
156 | extern int __devinitdata pxm_to_nid_map[MAX_PXM_DOMAINS]; | 156 | extern int pxm_to_nid_map[MAX_PXM_DOMAINS]; |
157 | extern int __initdata nid_to_pxm_map[MAX_NUMNODES]; | 157 | extern int __initdata nid_to_pxm_map[MAX_NUMNODES]; |
158 | #endif | 158 | #endif |
159 | 159 | ||
diff --git a/arch/ia64/include/asm/iosapic.h b/arch/ia64/include/asm/iosapic.h index b9c102e15f22..94c89a2d97fe 100644 --- a/arch/ia64/include/asm/iosapic.h +++ b/arch/ia64/include/asm/iosapic.h | |||
@@ -87,18 +87,13 @@ static inline void iosapic_eoi(char __iomem *iosapic, u32 vector) | |||
87 | } | 87 | } |
88 | 88 | ||
89 | extern void __init iosapic_system_init (int pcat_compat); | 89 | extern void __init iosapic_system_init (int pcat_compat); |
90 | extern int __devinit iosapic_init (unsigned long address, | 90 | extern int iosapic_init (unsigned long address, unsigned int gsi_base); |
91 | unsigned int gsi_base); | ||
92 | #ifdef CONFIG_HOTPLUG | ||
93 | extern int iosapic_remove (unsigned int gsi_base); | 91 | extern int iosapic_remove (unsigned int gsi_base); |
94 | #else | ||
95 | #define iosapic_remove(gsi_base) (-EINVAL) | ||
96 | #endif /* CONFIG_HOTPLUG */ | ||
97 | extern int gsi_to_irq (unsigned int gsi); | 92 | extern int gsi_to_irq (unsigned int gsi); |
98 | extern int iosapic_register_intr (unsigned int gsi, unsigned long polarity, | 93 | extern int iosapic_register_intr (unsigned int gsi, unsigned long polarity, |
99 | unsigned long trigger); | 94 | unsigned long trigger); |
100 | extern void iosapic_unregister_intr (unsigned int irq); | 95 | extern void iosapic_unregister_intr (unsigned int irq); |
101 | extern void __devinit iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi, | 96 | extern void iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi, |
102 | unsigned long polarity, | 97 | unsigned long polarity, |
103 | unsigned long trigger); | 98 | unsigned long trigger); |
104 | extern int __init iosapic_register_platform_intr (u32 int_type, | 99 | extern int __init iosapic_register_platform_intr (u32 int_type, |
@@ -109,7 +104,7 @@ extern int __init iosapic_register_platform_intr (u32 int_type, | |||
109 | unsigned long trigger); | 104 | unsigned long trigger); |
110 | 105 | ||
111 | #ifdef CONFIG_NUMA | 106 | #ifdef CONFIG_NUMA |
112 | extern void __devinit map_iosapic_to_node (unsigned int, int); | 107 | extern void map_iosapic_to_node (unsigned int, int); |
113 | #endif | 108 | #endif |
114 | #else | 109 | #else |
115 | #define iosapic_system_init(pcat_compat) do { } while (0) | 110 | #define iosapic_system_init(pcat_compat) do { } while (0) |
diff --git a/arch/ia64/include/asm/parport.h b/arch/ia64/include/asm/parport.h index 67e16adfcd25..638b4d271b99 100644 --- a/arch/ia64/include/asm/parport.h +++ b/arch/ia64/include/asm/parport.h | |||
@@ -9,10 +9,9 @@ | |||
9 | #ifndef _ASM_IA64_PARPORT_H | 9 | #ifndef _ASM_IA64_PARPORT_H |
10 | #define _ASM_IA64_PARPORT_H 1 | 10 | #define _ASM_IA64_PARPORT_H 1 |
11 | 11 | ||
12 | static int __devinit parport_pc_find_isa_ports (int autoirq, int autodma); | 12 | static int parport_pc_find_isa_ports(int autoirq, int autodma); |
13 | 13 | ||
14 | static int __devinit | 14 | static int parport_pc_find_nonpci_ports(int autoirq, int autodma) |
15 | parport_pc_find_nonpci_ports (int autoirq, int autodma) | ||
16 | { | 15 | { |
17 | return parport_pc_find_isa_ports(autoirq, autodma); | 16 | return parport_pc_find_isa_ports(autoirq, autodma); |
18 | } | 17 | } |
diff --git a/arch/ia64/include/asm/smp.h b/arch/ia64/include/asm/smp.h index 0b3b3997decd..fea21e986022 100644 --- a/arch/ia64/include/asm/smp.h +++ b/arch/ia64/include/asm/smp.h | |||
@@ -55,7 +55,7 @@ extern struct smp_boot_data { | |||
55 | int cpu_phys_id[NR_CPUS]; | 55 | int cpu_phys_id[NR_CPUS]; |
56 | } smp_boot_data __initdata; | 56 | } smp_boot_data __initdata; |
57 | 57 | ||
58 | extern char no_int_routing __devinitdata; | 58 | extern char no_int_routing; |
59 | 59 | ||
60 | extern cpumask_t cpu_core_map[NR_CPUS]; | 60 | extern cpumask_t cpu_core_map[NR_CPUS]; |
61 | DECLARE_PER_CPU_SHARED_ALIGNED(cpumask_t, cpu_sibling_map); | 61 | DECLARE_PER_CPU_SHARED_ALIGNED(cpumask_t, cpu_sibling_map); |
diff --git a/arch/ia64/include/asm/unistd.h b/arch/ia64/include/asm/unistd.h index 8b3ff2f5b861..c3cc42a15af1 100644 --- a/arch/ia64/include/asm/unistd.h +++ b/arch/ia64/include/asm/unistd.h | |||
@@ -11,7 +11,7 @@ | |||
11 | 11 | ||
12 | 12 | ||
13 | 13 | ||
14 | #define NR_syscalls 311 /* length of syscall table */ | 14 | #define NR_syscalls 312 /* length of syscall table */ |
15 | 15 | ||
16 | /* | 16 | /* |
17 | * The following defines stop scripts/checksyscalls.sh from complaining about | 17 | * The following defines stop scripts/checksyscalls.sh from complaining about |
diff --git a/arch/ia64/include/uapi/asm/unistd.h b/arch/ia64/include/uapi/asm/unistd.h index b706aa54df20..34fd6fe46da1 100644 --- a/arch/ia64/include/uapi/asm/unistd.h +++ b/arch/ia64/include/uapi/asm/unistd.h | |||
@@ -324,5 +324,6 @@ | |||
324 | #define __NR_process_vm_readv 1332 | 324 | #define __NR_process_vm_readv 1332 |
325 | #define __NR_process_vm_writev 1333 | 325 | #define __NR_process_vm_writev 1333 |
326 | #define __NR_accept4 1334 | 326 | #define __NR_accept4 1334 |
327 | #define __NR_finit_module 1335 | ||
327 | 328 | ||
328 | #endif /* _UAPI_ASM_IA64_UNISTD_H */ | 329 | #endif /* _UAPI_ASM_IA64_UNISTD_H */ |
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index e9682f5be343..335eb07480fe 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -422,7 +422,7 @@ static int __init acpi_parse_madt(struct acpi_table_header *table) | |||
422 | #define PXM_FLAG_LEN ((MAX_PXM_DOMAINS + 1)/32) | 422 | #define PXM_FLAG_LEN ((MAX_PXM_DOMAINS + 1)/32) |
423 | 423 | ||
424 | static int __initdata srat_num_cpus; /* number of cpus */ | 424 | static int __initdata srat_num_cpus; /* number of cpus */ |
425 | static u32 __devinitdata pxm_flag[PXM_FLAG_LEN]; | 425 | static u32 pxm_flag[PXM_FLAG_LEN]; |
426 | #define pxm_bit_set(bit) (set_bit(bit,(void *)pxm_flag)) | 426 | #define pxm_bit_set(bit) (set_bit(bit,(void *)pxm_flag)) |
427 | #define pxm_bit_test(bit) (test_bit(bit,(void *)pxm_flag)) | 427 | #define pxm_bit_test(bit) (test_bit(bit,(void *)pxm_flag)) |
428 | static struct acpi_table_slit __initdata *slit_table; | 428 | static struct acpi_table_slit __initdata *slit_table; |
@@ -956,8 +956,8 @@ EXPORT_SYMBOL(acpi_unmap_lsapic); | |||
956 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ | 956 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ |
957 | 957 | ||
958 | #ifdef CONFIG_ACPI_NUMA | 958 | #ifdef CONFIG_ACPI_NUMA |
959 | static acpi_status __devinit | 959 | static acpi_status acpi_map_iosapic(acpi_handle handle, u32 depth, |
960 | acpi_map_iosapic(acpi_handle handle, u32 depth, void *context, void **ret) | 960 | void *context, void **ret) |
961 | { | 961 | { |
962 | struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; | 962 | struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; |
963 | union acpi_object *obj; | 963 | union acpi_object *obj; |
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S index e25b784a2b72..6bfd8429ee0f 100644 --- a/arch/ia64/kernel/entry.S +++ b/arch/ia64/kernel/entry.S | |||
@@ -1785,6 +1785,7 @@ sys_call_table: | |||
1785 | data8 sys_process_vm_readv | 1785 | data8 sys_process_vm_readv |
1786 | data8 sys_process_vm_writev | 1786 | data8 sys_process_vm_writev |
1787 | data8 sys_accept4 | 1787 | data8 sys_accept4 |
1788 | data8 sys_finit_module // 1335 | ||
1788 | 1789 | ||
1789 | .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls | 1790 | .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls |
1790 | #endif /* __IA64_ASM_PARAVIRTUALIZED_NATIVE */ | 1791 | #endif /* __IA64_ASM_PARAVIRTUALIZED_NATIVE */ |
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c index ef4b5d877cf2..ee33c3aaa2fc 100644 --- a/arch/ia64/kernel/iosapic.c +++ b/arch/ia64/kernel/iosapic.c | |||
@@ -147,7 +147,7 @@ static struct iosapic_intr_info { | |||
147 | unsigned char trigger : 1; /* trigger mode (see iosapic.h) */ | 147 | unsigned char trigger : 1; /* trigger mode (see iosapic.h) */ |
148 | } iosapic_intr_info[NR_IRQS]; | 148 | } iosapic_intr_info[NR_IRQS]; |
149 | 149 | ||
150 | static unsigned char pcat_compat __devinitdata; /* 8259 compatibility flag */ | 150 | static unsigned char pcat_compat; /* 8259 compatibility flag */ |
151 | 151 | ||
152 | static inline void | 152 | static inline void |
153 | iosapic_write(struct iosapic *iosapic, unsigned int reg, u32 val) | 153 | iosapic_write(struct iosapic *iosapic, unsigned int reg, u32 val) |
@@ -914,10 +914,8 @@ iosapic_register_platform_intr (u32 int_type, unsigned int gsi, | |||
914 | /* | 914 | /* |
915 | * ACPI calls this when it finds an entry for a legacy ISA IRQ override. | 915 | * ACPI calls this when it finds an entry for a legacy ISA IRQ override. |
916 | */ | 916 | */ |
917 | void __devinit | 917 | void iosapic_override_isa_irq(unsigned int isa_irq, unsigned int gsi, |
918 | iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi, | 918 | unsigned long polarity, unsigned long trigger) |
919 | unsigned long polarity, | ||
920 | unsigned long trigger) | ||
921 | { | 919 | { |
922 | int vector, irq; | 920 | int vector, irq; |
923 | unsigned int dest = cpu_physical_id(smp_processor_id()); | 921 | unsigned int dest = cpu_physical_id(smp_processor_id()); |
@@ -1012,8 +1010,7 @@ iosapic_check_gsi_range (unsigned int gsi_base, unsigned int ver) | |||
1012 | return 0; | 1010 | return 0; |
1013 | } | 1011 | } |
1014 | 1012 | ||
1015 | int __devinit | 1013 | int iosapic_init(unsigned long phys_addr, unsigned int gsi_base) |
1016 | iosapic_init (unsigned long phys_addr, unsigned int gsi_base) | ||
1017 | { | 1014 | { |
1018 | int num_rte, err, index; | 1015 | int num_rte, err, index; |
1019 | unsigned int isa_irq, ver; | 1016 | unsigned int isa_irq, ver; |
@@ -1070,9 +1067,7 @@ iosapic_init (unsigned long phys_addr, unsigned int gsi_base) | |||
1070 | return 0; | 1067 | return 0; |
1071 | } | 1068 | } |
1072 | 1069 | ||
1073 | #ifdef CONFIG_HOTPLUG | 1070 | int iosapic_remove(unsigned int gsi_base) |
1074 | int | ||
1075 | iosapic_remove (unsigned int gsi_base) | ||
1076 | { | 1071 | { |
1077 | int index, err = 0; | 1072 | int index, err = 0; |
1078 | unsigned long flags; | 1073 | unsigned long flags; |
@@ -1098,11 +1093,9 @@ iosapic_remove (unsigned int gsi_base) | |||
1098 | spin_unlock_irqrestore(&iosapic_lock, flags); | 1093 | spin_unlock_irqrestore(&iosapic_lock, flags); |
1099 | return err; | 1094 | return err; |
1100 | } | 1095 | } |
1101 | #endif /* CONFIG_HOTPLUG */ | ||
1102 | 1096 | ||
1103 | #ifdef CONFIG_NUMA | 1097 | #ifdef CONFIG_NUMA |
1104 | void __devinit | 1098 | void map_iosapic_to_node(unsigned int gsi_base, int node) |
1105 | map_iosapic_to_node(unsigned int gsi_base, int node) | ||
1106 | { | 1099 | { |
1107 | int index; | 1100 | int index; |
1108 | 1101 | ||
diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c index 4265ff64219b..b7a5fffe0924 100644 --- a/arch/ia64/kernel/ptrace.c +++ b/arch/ia64/kernel/ptrace.c | |||
@@ -672,33 +672,6 @@ ptrace_attach_sync_user_rbs (struct task_struct *child) | |||
672 | read_unlock(&tasklist_lock); | 672 | read_unlock(&tasklist_lock); |
673 | } | 673 | } |
674 | 674 | ||
675 | static inline int | ||
676 | thread_matches (struct task_struct *thread, unsigned long addr) | ||
677 | { | ||
678 | unsigned long thread_rbs_end; | ||
679 | struct pt_regs *thread_regs; | ||
680 | |||
681 | if (ptrace_check_attach(thread, 0) < 0) | ||
682 | /* | ||
683 | * If the thread is not in an attachable state, we'll | ||
684 | * ignore it. The net effect is that if ADDR happens | ||
685 | * to overlap with the portion of the thread's | ||
686 | * register backing store that is currently residing | ||
687 | * on the thread's kernel stack, then ptrace() may end | ||
688 | * up accessing a stale value. But if the thread | ||
689 | * isn't stopped, that's a problem anyhow, so we're | ||
690 | * doing as well as we can... | ||
691 | */ | ||
692 | return 0; | ||
693 | |||
694 | thread_regs = task_pt_regs(thread); | ||
695 | thread_rbs_end = ia64_get_user_rbs_end(thread, thread_regs, NULL); | ||
696 | if (!on_kernel_rbs(addr, thread_regs->ar_bspstore, thread_rbs_end)) | ||
697 | return 0; | ||
698 | |||
699 | return 1; /* looks like we've got a winner */ | ||
700 | } | ||
701 | |||
702 | /* | 675 | /* |
703 | * Write f32-f127 back to task->thread.fph if it has been modified. | 676 | * Write f32-f127 back to task->thread.fph if it has been modified. |
704 | */ | 677 | */ |
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index 6a368cb2043e..500f1e4d9f9d 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -347,8 +347,7 @@ ia64_sync_itc (unsigned int master) | |||
347 | /* | 347 | /* |
348 | * Ideally sets up per-cpu profiling hooks. Doesn't do much now... | 348 | * Ideally sets up per-cpu profiling hooks. Doesn't do much now... |
349 | */ | 349 | */ |
350 | static inline void __devinit | 350 | static inline void smp_setup_percpu_timer(void) |
351 | smp_setup_percpu_timer (void) | ||
352 | { | 351 | { |
353 | } | 352 | } |
354 | 353 | ||
@@ -563,7 +562,7 @@ smp_prepare_cpus (unsigned int max_cpus) | |||
563 | } | 562 | } |
564 | } | 563 | } |
565 | 564 | ||
566 | void __devinit smp_prepare_boot_cpu(void) | 565 | void smp_prepare_boot_cpu(void) |
567 | { | 566 | { |
568 | set_cpu_online(smp_processor_id(), true); | 567 | set_cpu_online(smp_processor_id(), true); |
569 | cpu_set(smp_processor_id(), cpu_callin_map); | 568 | cpu_set(smp_processor_id(), cpu_callin_map); |
@@ -713,8 +712,7 @@ smp_cpus_done (unsigned int dummy) | |||
713 | (int)num_online_cpus(), bogosum/(500000/HZ), (bogosum/(5000/HZ))%100); | 712 | (int)num_online_cpus(), bogosum/(500000/HZ), (bogosum/(5000/HZ))%100); |
714 | } | 713 | } |
715 | 714 | ||
716 | static inline void __devinit | 715 | static inline void set_cpu_sibling_map(int cpu) |
717 | set_cpu_sibling_map(int cpu) | ||
718 | { | 716 | { |
719 | int i; | 717 | int i; |
720 | 718 | ||
@@ -793,8 +791,7 @@ init_smp_config(void) | |||
793 | * identify_siblings(cpu) gets called from identify_cpu. This populates the | 791 | * identify_siblings(cpu) gets called from identify_cpu. This populates the |
794 | * information related to logical execution units in per_cpu_data structure. | 792 | * information related to logical execution units in per_cpu_data structure. |
795 | */ | 793 | */ |
796 | void __devinit | 794 | void identify_siblings(struct cpuinfo_ia64 *c) |
797 | identify_siblings(struct cpuinfo_ia64 *c) | ||
798 | { | 795 | { |
799 | long status; | 796 | long status; |
800 | u16 pltid; | 797 | u16 pltid; |
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index b1995efbfd21..88a794536bc0 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c | |||
@@ -243,8 +243,7 @@ static int __init nojitter_setup(char *str) | |||
243 | __setup("nojitter", nojitter_setup); | 243 | __setup("nojitter", nojitter_setup); |
244 | 244 | ||
245 | 245 | ||
246 | void __devinit | 246 | void ia64_init_itm(void) |
247 | ia64_init_itm (void) | ||
248 | { | 247 | { |
249 | unsigned long platform_base_freq, itc_freq; | 248 | unsigned long platform_base_freq, itc_freq; |
250 | struct pal_freq_ratio itc_ratio, proc_ratio; | 249 | struct pal_freq_ratio itc_ratio, proc_ratio; |
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index 082e383c1b6f..b755ea92aea7 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c | |||
@@ -294,11 +294,10 @@ setup_gate (void) | |||
294 | ia64_patch_gate(); | 294 | ia64_patch_gate(); |
295 | } | 295 | } |
296 | 296 | ||
297 | void __devinit | 297 | void ia64_mmu_init(void *my_cpu_data) |
298 | ia64_mmu_init (void *my_cpu_data) | ||
299 | { | 298 | { |
300 | unsigned long pta, impl_va_bits; | 299 | unsigned long pta, impl_va_bits; |
301 | extern void __devinit tlb_init (void); | 300 | extern void tlb_init(void); |
302 | 301 | ||
303 | #ifdef CONFIG_DISABLE_VHPT | 302 | #ifdef CONFIG_DISABLE_VHPT |
304 | # define VHPT_ENABLE_BIT 0 | 303 | # define VHPT_ENABLE_BIT 0 |
diff --git a/arch/ia64/mm/tlb.c b/arch/ia64/mm/tlb.c index 7b3cdc6c6d91..ed6129768681 100644 --- a/arch/ia64/mm/tlb.c +++ b/arch/ia64/mm/tlb.c | |||
@@ -337,8 +337,7 @@ flush_tlb_range (struct vm_area_struct *vma, unsigned long start, | |||
337 | } | 337 | } |
338 | EXPORT_SYMBOL(flush_tlb_range); | 338 | EXPORT_SYMBOL(flush_tlb_range); |
339 | 339 | ||
340 | void __devinit | 340 | void ia64_tlb_init(void) |
341 | ia64_tlb_init (void) | ||
342 | { | 341 | { |
343 | ia64_ptce_info_t uninitialized_var(ptce_info); /* GCC be quiet */ | 342 | ia64_ptce_info_t uninitialized_var(ptce_info); /* GCC be quiet */ |
344 | u64 tr_pgbits; | 343 | u64 tr_pgbits; |
diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c index eab28e314022..5dc969dd4ac0 100644 --- a/arch/ia64/pci/fixup.c +++ b/arch/ia64/pci/fixup.c | |||
@@ -24,7 +24,7 @@ | |||
24 | * video device at this point. | 24 | * video device at this point. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | static void __devinit pci_fixup_video(struct pci_dev *pdev) | 27 | static void pci_fixup_video(struct pci_dev *pdev) |
28 | { | 28 | { |
29 | struct pci_dev *bridge; | 29 | struct pci_dev *bridge; |
30 | struct pci_bus *bus; | 30 | struct pci_bus *bus; |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 5faa66c5c2a8..55b72ad57329 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -116,8 +116,7 @@ struct pci_ops pci_root_ops = { | |||
116 | 116 | ||
117 | /* Called by ACPI when it finds a new root bus. */ | 117 | /* Called by ACPI when it finds a new root bus. */ |
118 | 118 | ||
119 | static struct pci_controller * __devinit | 119 | static struct pci_controller *alloc_pci_controller(int seg) |
120 | alloc_pci_controller (int seg) | ||
121 | { | 120 | { |
122 | struct pci_controller *controller; | 121 | struct pci_controller *controller; |
123 | 122 | ||
@@ -165,8 +164,8 @@ new_space (u64 phys_base, int sparse) | |||
165 | return i; | 164 | return i; |
166 | } | 165 | } |
167 | 166 | ||
168 | static u64 __devinit | 167 | static u64 add_io_space(struct pci_root_info *info, |
169 | add_io_space (struct pci_root_info *info, struct acpi_resource_address64 *addr) | 168 | struct acpi_resource_address64 *addr) |
170 | { | 169 | { |
171 | struct resource *resource; | 170 | struct resource *resource; |
172 | char *name; | 171 | char *name; |
@@ -226,8 +225,8 @@ out: | |||
226 | return ~0; | 225 | return ~0; |
227 | } | 226 | } |
228 | 227 | ||
229 | static acpi_status __devinit resource_to_window(struct acpi_resource *resource, | 228 | static acpi_status resource_to_window(struct acpi_resource *resource, |
230 | struct acpi_resource_address64 *addr) | 229 | struct acpi_resource_address64 *addr) |
231 | { | 230 | { |
232 | acpi_status status; | 231 | acpi_status status; |
233 | 232 | ||
@@ -249,8 +248,7 @@ static acpi_status __devinit resource_to_window(struct acpi_resource *resource, | |||
249 | return AE_ERROR; | 248 | return AE_ERROR; |
250 | } | 249 | } |
251 | 250 | ||
252 | static acpi_status __devinit | 251 | static acpi_status count_window(struct acpi_resource *resource, void *data) |
253 | count_window (struct acpi_resource *resource, void *data) | ||
254 | { | 252 | { |
255 | unsigned int *windows = (unsigned int *) data; | 253 | unsigned int *windows = (unsigned int *) data; |
256 | struct acpi_resource_address64 addr; | 254 | struct acpi_resource_address64 addr; |
@@ -263,7 +261,7 @@ count_window (struct acpi_resource *resource, void *data) | |||
263 | return AE_OK; | 261 | return AE_OK; |
264 | } | 262 | } |
265 | 263 | ||
266 | static __devinit acpi_status add_window(struct acpi_resource *res, void *data) | 264 | static acpi_status add_window(struct acpi_resource *res, void *data) |
267 | { | 265 | { |
268 | struct pci_root_info *info = data; | 266 | struct pci_root_info *info = data; |
269 | struct pci_window *window; | 267 | struct pci_window *window; |
@@ -324,8 +322,7 @@ static __devinit acpi_status add_window(struct acpi_resource *res, void *data) | |||
324 | return AE_OK; | 322 | return AE_OK; |
325 | } | 323 | } |
326 | 324 | ||
327 | struct pci_bus * __devinit | 325 | struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root) |
328 | pci_acpi_scan_root(struct acpi_pci_root *root) | ||
329 | { | 326 | { |
330 | struct acpi_device *device = root->device; | 327 | struct acpi_device *device = root->device; |
331 | int domain = root->segment; | 328 | int domain = root->segment; |
@@ -396,7 +393,7 @@ out1: | |||
396 | return NULL; | 393 | return NULL; |
397 | } | 394 | } |
398 | 395 | ||
399 | static int __devinit is_valid_resource(struct pci_dev *dev, int idx) | 396 | static int is_valid_resource(struct pci_dev *dev, int idx) |
400 | { | 397 | { |
401 | unsigned int i, type_mask = IORESOURCE_IO | IORESOURCE_MEM; | 398 | unsigned int i, type_mask = IORESOURCE_IO | IORESOURCE_MEM; |
402 | struct resource *devr = &dev->resource[idx], *busr; | 399 | struct resource *devr = &dev->resource[idx], *busr; |
@@ -414,8 +411,7 @@ static int __devinit is_valid_resource(struct pci_dev *dev, int idx) | |||
414 | return 0; | 411 | return 0; |
415 | } | 412 | } |
416 | 413 | ||
417 | static void __devinit | 414 | static void pcibios_fixup_resources(struct pci_dev *dev, int start, int limit) |
418 | pcibios_fixup_resources(struct pci_dev *dev, int start, int limit) | ||
419 | { | 415 | { |
420 | int i; | 416 | int i; |
421 | 417 | ||
@@ -427,13 +423,13 @@ pcibios_fixup_resources(struct pci_dev *dev, int start, int limit) | |||
427 | } | 423 | } |
428 | } | 424 | } |
429 | 425 | ||
430 | void __devinit pcibios_fixup_device_resources(struct pci_dev *dev) | 426 | void pcibios_fixup_device_resources(struct pci_dev *dev) |
431 | { | 427 | { |
432 | pcibios_fixup_resources(dev, 0, PCI_BRIDGE_RESOURCES); | 428 | pcibios_fixup_resources(dev, 0, PCI_BRIDGE_RESOURCES); |
433 | } | 429 | } |
434 | EXPORT_SYMBOL_GPL(pcibios_fixup_device_resources); | 430 | EXPORT_SYMBOL_GPL(pcibios_fixup_device_resources); |
435 | 431 | ||
436 | static void __devinit pcibios_fixup_bridge_resources(struct pci_dev *dev) | 432 | static void pcibios_fixup_bridge_resources(struct pci_dev *dev) |
437 | { | 433 | { |
438 | pcibios_fixup_resources(dev, PCI_BRIDGE_RESOURCES, PCI_NUM_RESOURCES); | 434 | pcibios_fixup_resources(dev, PCI_BRIDGE_RESOURCES, PCI_NUM_RESOURCES); |
439 | } | 435 | } |
@@ -441,8 +437,7 @@ static void __devinit pcibios_fixup_bridge_resources(struct pci_dev *dev) | |||
441 | /* | 437 | /* |
442 | * Called after each bus is probed, but before its children are examined. | 438 | * Called after each bus is probed, but before its children are examined. |
443 | */ | 439 | */ |
444 | void __devinit | 440 | void pcibios_fixup_bus(struct pci_bus *b) |
445 | pcibios_fixup_bus (struct pci_bus *b) | ||
446 | { | 441 | { |
447 | struct pci_dev *dev; | 442 | struct pci_dev *dev; |
448 | 443 | ||
diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c index 8630875e74b5..11f2275570fb 100644 --- a/arch/ia64/sn/kernel/io_common.c +++ b/arch/ia64/sn/kernel/io_common.c | |||
@@ -435,8 +435,7 @@ void sn_generate_path(struct pci_bus *pci_bus, char *address) | |||
435 | geo_slot(geoid)); | 435 | geo_slot(geoid)); |
436 | } | 436 | } |
437 | 437 | ||
438 | void __devinit | 438 | void sn_pci_fixup_bus(struct pci_bus *bus) |
439 | sn_pci_fixup_bus(struct pci_bus *bus) | ||
440 | { | 439 | { |
441 | 440 | ||
442 | if (SN_ACPI_BASE_SUPPORT()) | 441 | if (SN_ACPI_BASE_SUPPORT()) |
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c index 4554f68b7865..b9992571c036 100644 --- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c +++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c | |||
@@ -977,7 +977,7 @@ int sn_hwperf_get_nearest_node(cnodeid_t node, | |||
977 | return e; | 977 | return e; |
978 | } | 978 | } |
979 | 979 | ||
980 | static int __devinit sn_hwperf_misc_register_init(void) | 980 | static int sn_hwperf_misc_register_init(void) |
981 | { | 981 | { |
982 | int e; | 982 | int e; |
983 | 983 | ||
diff --git a/arch/ia64/xen/irq_xen.c b/arch/ia64/xen/irq_xen.c index 01f479ee1c43..efb74dafec4d 100644 --- a/arch/ia64/xen/irq_xen.c +++ b/arch/ia64/xen/irq_xen.c | |||
@@ -273,9 +273,8 @@ xen_bind_early_percpu_irq(void) | |||
273 | */ | 273 | */ |
274 | 274 | ||
275 | #ifdef CONFIG_HOTPLUG_CPU | 275 | #ifdef CONFIG_HOTPLUG_CPU |
276 | static int __devinit | 276 | static int unbind_evtchn_callback(struct notifier_block *nfb, |
277 | unbind_evtchn_callback(struct notifier_block *nfb, | 277 | unsigned long action, void *hcpu) |
278 | unsigned long action, void *hcpu) | ||
279 | { | 278 | { |
280 | unsigned int cpu = (unsigned long)hcpu; | 279 | unsigned int cpu = (unsigned long)hcpu; |
281 | 280 | ||
diff --git a/arch/m32r/kernel/smpboot.c b/arch/m32r/kernel/smpboot.c index a2cfc0abb05c..13168a769f8f 100644 --- a/arch/m32r/kernel/smpboot.c +++ b/arch/m32r/kernel/smpboot.c | |||
@@ -127,7 +127,7 @@ static void unmap_cpu_to_physid(int, int); | |||
127 | /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ | 127 | /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ |
128 | /* Boot up APs Routines : BSP */ | 128 | /* Boot up APs Routines : BSP */ |
129 | /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ | 129 | /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ |
130 | void __devinit smp_prepare_boot_cpu(void) | 130 | void smp_prepare_boot_cpu(void) |
131 | { | 131 | { |
132 | bsp_phys_id = hard_smp_processor_id(); | 132 | bsp_phys_id = hard_smp_processor_id(); |
133 | physid_set(bsp_phys_id, phys_cpu_present_map); | 133 | physid_set(bsp_phys_id, phys_cpu_present_map); |
diff --git a/arch/m68k/emu/nfeth.c b/arch/m68k/emu/nfeth.c index a985a7e87d45..695cd737a42e 100644 --- a/arch/m68k/emu/nfeth.c +++ b/arch/m68k/emu/nfeth.c | |||
@@ -39,7 +39,7 @@ enum { | |||
39 | #define MAX_UNIT 8 | 39 | #define MAX_UNIT 8 |
40 | 40 | ||
41 | /* These identify the driver base version and may not be removed. */ | 41 | /* These identify the driver base version and may not be removed. */ |
42 | static const char version[] __devinitconst = | 42 | static const char version[] = |
43 | KERN_INFO KBUILD_MODNAME ".c:v" DRV_VERSION " " DRV_RELDATE | 43 | KERN_INFO KBUILD_MODNAME ".c:v" DRV_VERSION " " DRV_RELDATE |
44 | " S.Opichal, M.Jurik, P.Stehlik\n" | 44 | " S.Opichal, M.Jurik, P.Stehlik\n" |
45 | KERN_INFO " http://aranym.org/\n"; | 45 | KERN_INFO " http://aranym.org/\n"; |
diff --git a/arch/m68k/include/asm/dma-mapping.h b/arch/m68k/include/asm/dma-mapping.h index 17f7a45948ea..3e6b8445af6a 100644 --- a/arch/m68k/include/asm/dma-mapping.h +++ b/arch/m68k/include/asm/dma-mapping.h | |||
@@ -21,6 +21,22 @@ extern void *dma_alloc_coherent(struct device *, size_t, | |||
21 | extern void dma_free_coherent(struct device *, size_t, | 21 | extern void dma_free_coherent(struct device *, size_t, |
22 | void *, dma_addr_t); | 22 | void *, dma_addr_t); |
23 | 23 | ||
24 | static inline void *dma_alloc_attrs(struct device *dev, size_t size, | ||
25 | dma_addr_t *dma_handle, gfp_t flag, | ||
26 | struct dma_attrs *attrs) | ||
27 | { | ||
28 | /* attrs is not supported and ignored */ | ||
29 | return dma_alloc_coherent(dev, size, dma_handle, flag); | ||
30 | } | ||
31 | |||
32 | static inline void dma_free_attrs(struct device *dev, size_t size, | ||
33 | void *cpu_addr, dma_addr_t dma_handle, | ||
34 | struct dma_attrs *attrs) | ||
35 | { | ||
36 | /* attrs is not supported and ignored */ | ||
37 | dma_free_coherent(dev, size, cpu_addr, dma_handle); | ||
38 | } | ||
39 | |||
24 | static inline void *dma_alloc_noncoherent(struct device *dev, size_t size, | 40 | static inline void *dma_alloc_noncoherent(struct device *dev, size_t size, |
25 | dma_addr_t *handle, gfp_t flag) | 41 | dma_addr_t *handle, gfp_t flag) |
26 | { | 42 | { |
diff --git a/arch/m68k/include/asm/parport.h b/arch/m68k/include/asm/parport.h index 646b1872f73b..5ea75e6a7399 100644 --- a/arch/m68k/include/asm/parport.h +++ b/arch/m68k/include/asm/parport.h | |||
@@ -15,8 +15,8 @@ | |||
15 | #define outsl(port,buf,len) isa_outsb(port,buf,(len)<<2) | 15 | #define outsl(port,buf,len) isa_outsb(port,buf,(len)<<2) |
16 | 16 | ||
17 | /* no dma, or IRQ autoprobing */ | 17 | /* no dma, or IRQ autoprobing */ |
18 | static int __devinit parport_pc_find_isa_ports (int autoirq, int autodma); | 18 | static int parport_pc_find_isa_ports (int autoirq, int autodma); |
19 | static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma) | 19 | static int parport_pc_find_nonpci_ports (int autoirq, int autodma) |
20 | { | 20 | { |
21 | if (! (MACH_IS_Q40)) | 21 | if (! (MACH_IS_Q40)) |
22 | return 0; /* count=0 */ | 22 | return 0; /* count=0 */ |
diff --git a/arch/m68k/include/asm/pgtable_no.h b/arch/m68k/include/asm/pgtable_no.h index bf86b29fe64a..037028f4ab70 100644 --- a/arch/m68k/include/asm/pgtable_no.h +++ b/arch/m68k/include/asm/pgtable_no.h | |||
@@ -64,6 +64,8 @@ extern unsigned int kobjsize(const void *objp); | |||
64 | */ | 64 | */ |
65 | #define VMALLOC_START 0 | 65 | #define VMALLOC_START 0 |
66 | #define VMALLOC_END 0xffffffff | 66 | #define VMALLOC_END 0xffffffff |
67 | #define KMAP_START 0 | ||
68 | #define KMAP_END 0xffffffff | ||
67 | 69 | ||
68 | #include <asm-generic/pgtable.h> | 70 | #include <asm-generic/pgtable.h> |
69 | 71 | ||
diff --git a/arch/m68k/include/asm/unistd.h b/arch/m68k/include/asm/unistd.h index 847994ce6804..f9337f614660 100644 --- a/arch/m68k/include/asm/unistd.h +++ b/arch/m68k/include/asm/unistd.h | |||
@@ -4,7 +4,7 @@ | |||
4 | #include <uapi/asm/unistd.h> | 4 | #include <uapi/asm/unistd.h> |
5 | 5 | ||
6 | 6 | ||
7 | #define NR_syscalls 348 | 7 | #define NR_syscalls 349 |
8 | 8 | ||
9 | #define __ARCH_WANT_OLD_READDIR | 9 | #define __ARCH_WANT_OLD_READDIR |
10 | #define __ARCH_WANT_OLD_STAT | 10 | #define __ARCH_WANT_OLD_STAT |
diff --git a/arch/m68k/include/uapi/asm/unistd.h b/arch/m68k/include/uapi/asm/unistd.h index b94bfbf90705..625f321001dc 100644 --- a/arch/m68k/include/uapi/asm/unistd.h +++ b/arch/m68k/include/uapi/asm/unistd.h | |||
@@ -353,5 +353,6 @@ | |||
353 | #define __NR_process_vm_readv 345 | 353 | #define __NR_process_vm_readv 345 |
354 | #define __NR_process_vm_writev 346 | 354 | #define __NR_process_vm_writev 346 |
355 | #define __NR_kcmp 347 | 355 | #define __NR_kcmp 347 |
356 | #define __NR_finit_module 348 | ||
356 | 357 | ||
357 | #endif /* _UAPI_ASM_M68K_UNISTD_H_ */ | 358 | #endif /* _UAPI_ASM_M68K_UNISTD_H_ */ |
diff --git a/arch/m68k/kernel/pcibios.c b/arch/m68k/kernel/pcibios.c index 73fa0b56a06c..931a31ff59dd 100644 --- a/arch/m68k/kernel/pcibios.c +++ b/arch/m68k/kernel/pcibios.c | |||
@@ -87,7 +87,7 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) | |||
87 | return 0; | 87 | return 0; |
88 | } | 88 | } |
89 | 89 | ||
90 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 90 | void pcibios_fixup_bus(struct pci_bus *bus) |
91 | { | 91 | { |
92 | struct pci_dev *dev; | 92 | struct pci_dev *dev; |
93 | 93 | ||
@@ -97,7 +97,7 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus) | |||
97 | } | 97 | } |
98 | } | 98 | } |
99 | 99 | ||
100 | char __devinit *pcibios_setup(char *str) | 100 | char *pcibios_setup(char *str) |
101 | { | 101 | { |
102 | return str; | 102 | return str; |
103 | } | 103 | } |
diff --git a/arch/m68k/kernel/syscalltable.S b/arch/m68k/kernel/syscalltable.S index c30da5b3f2db..3f04ea0ab802 100644 --- a/arch/m68k/kernel/syscalltable.S +++ b/arch/m68k/kernel/syscalltable.S | |||
@@ -368,4 +368,5 @@ ENTRY(sys_call_table) | |||
368 | .long sys_process_vm_readv /* 345 */ | 368 | .long sys_process_vm_readv /* 345 */ |
369 | .long sys_process_vm_writev | 369 | .long sys_process_vm_writev |
370 | .long sys_kcmp | 370 | .long sys_kcmp |
371 | .long sys_finit_module | ||
371 | 372 | ||
diff --git a/arch/m68k/mm/init.c b/arch/m68k/mm/init.c index f0e05bce92f2..afd8106fd83b 100644 --- a/arch/m68k/mm/init.c +++ b/arch/m68k/mm/init.c | |||
@@ -39,6 +39,11 @@ | |||
39 | void *empty_zero_page; | 39 | void *empty_zero_page; |
40 | EXPORT_SYMBOL(empty_zero_page); | 40 | EXPORT_SYMBOL(empty_zero_page); |
41 | 41 | ||
42 | #if !defined(CONFIG_SUN3) && !defined(CONFIG_COLDFIRE) | ||
43 | extern void init_pointer_table(unsigned long ptable); | ||
44 | extern pmd_t *zero_pgtable; | ||
45 | #endif | ||
46 | |||
42 | #ifdef CONFIG_MMU | 47 | #ifdef CONFIG_MMU |
43 | 48 | ||
44 | pg_data_t pg_data_map[MAX_NUMNODES]; | 49 | pg_data_t pg_data_map[MAX_NUMNODES]; |
@@ -69,9 +74,6 @@ void __init m68k_setup_node(int node) | |||
69 | node_set_online(node); | 74 | node_set_online(node); |
70 | } | 75 | } |
71 | 76 | ||
72 | extern void init_pointer_table(unsigned long ptable); | ||
73 | extern pmd_t *zero_pgtable; | ||
74 | |||
75 | #else /* CONFIG_MMU */ | 77 | #else /* CONFIG_MMU */ |
76 | 78 | ||
77 | /* | 79 | /* |
diff --git a/arch/microblaze/configs/mmu_defconfig b/arch/microblaze/configs/mmu_defconfig index b3f5eecff2a7..d2b097a652d9 100644 --- a/arch/microblaze/configs/mmu_defconfig +++ b/arch/microblaze/configs/mmu_defconfig | |||
@@ -1,25 +1,22 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_POSIX_MQUEUE=y | ||
4 | CONFIG_FHANDLE=y | ||
5 | CONFIG_AUDIT=y | ||
6 | CONFIG_AUDIT_LOGINUID_IMMUTABLE=y | ||
3 | CONFIG_IKCONFIG=y | 7 | CONFIG_IKCONFIG=y |
4 | CONFIG_IKCONFIG_PROC=y | 8 | CONFIG_IKCONFIG_PROC=y |
9 | CONFIG_SYSFS_DEPRECATED=y | ||
5 | CONFIG_SYSFS_DEPRECATED_V2=y | 10 | CONFIG_SYSFS_DEPRECATED_V2=y |
6 | CONFIG_BLK_DEV_INITRD=y | ||
7 | CONFIG_INITRAMFS_SOURCE="rootfs.cpio" | ||
8 | CONFIG_INITRAMFS_COMPRESSION_GZIP=y | ||
9 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
10 | CONFIG_EXPERT=y | ||
11 | CONFIG_KALLSYMS_ALL=y | 11 | CONFIG_KALLSYMS_ALL=y |
12 | CONFIG_KALLSYMS_EXTRA_PASS=y | ||
13 | # CONFIG_HOTPLUG is not set | ||
14 | # CONFIG_BASE_FULL is not set | 12 | # CONFIG_BASE_FULL is not set |
15 | # CONFIG_FUTEX is not set | 13 | CONFIG_EMBEDDED=y |
16 | # CONFIG_EPOLL is not set | ||
17 | # CONFIG_SIGNALFD is not set | ||
18 | # CONFIG_SHMEM is not set | ||
19 | CONFIG_SLAB=y | 14 | CONFIG_SLAB=y |
20 | CONFIG_MODULES=y | 15 | CONFIG_MODULES=y |
21 | CONFIG_MODULE_UNLOAD=y | 16 | CONFIG_MODULE_UNLOAD=y |
22 | # CONFIG_BLK_DEV_BSG is not set | 17 | # CONFIG_BLK_DEV_BSG is not set |
18 | CONFIG_PARTITION_ADVANCED=y | ||
19 | # CONFIG_EFI_PARTITION is not set | ||
23 | CONFIG_OPT_LIB_ASM=y | 20 | CONFIG_OPT_LIB_ASM=y |
24 | CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 | 21 | CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 |
25 | CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1 | 22 | CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1 |
@@ -31,39 +28,62 @@ CONFIG_HZ_100=y | |||
31 | CONFIG_MMU=y | 28 | CONFIG_MMU=y |
32 | CONFIG_CMDLINE_BOOL=y | 29 | CONFIG_CMDLINE_BOOL=y |
33 | CONFIG_CMDLINE_FORCE=y | 30 | CONFIG_CMDLINE_FORCE=y |
31 | CONFIG_HIGHMEM=y | ||
32 | CONFIG_PCI=y | ||
33 | CONFIG_PCI_XILINX=y | ||
34 | CONFIG_NET=y | 34 | CONFIG_NET=y |
35 | CONFIG_PACKET=y | 35 | CONFIG_PACKET=y |
36 | CONFIG_UNIX=y | 36 | CONFIG_UNIX=y |
37 | CONFIG_INET=y | 37 | CONFIG_INET=y |
38 | # CONFIG_INET_LRO is not set | 38 | # CONFIG_INET_LRO is not set |
39 | # CONFIG_IPV6 is not set | 39 | # CONFIG_IPV6 is not set |
40 | CONFIG_MTD=y | ||
40 | CONFIG_PROC_DEVICETREE=y | 41 | CONFIG_PROC_DEVICETREE=y |
41 | CONFIG_BLK_DEV_RAM=y | 42 | CONFIG_BLK_DEV_RAM=y |
42 | CONFIG_BLK_DEV_RAM_SIZE=8192 | 43 | CONFIG_BLK_DEV_RAM_SIZE=8192 |
43 | CONFIG_NETDEVICES=y | 44 | CONFIG_NETDEVICES=y |
44 | CONFIG_NET_ETHERNET=y | ||
45 | CONFIG_XILINX_EMACLITE=y | 45 | CONFIG_XILINX_EMACLITE=y |
46 | CONFIG_XILINX_LL_TEMAC=y | ||
46 | # CONFIG_INPUT is not set | 47 | # CONFIG_INPUT is not set |
47 | # CONFIG_SERIO is not set | 48 | # CONFIG_SERIO is not set |
48 | # CONFIG_VT is not set | 49 | # CONFIG_VT is not set |
50 | CONFIG_SERIAL_8250=y | ||
51 | CONFIG_SERIAL_8250_CONSOLE=y | ||
49 | CONFIG_SERIAL_UARTLITE=y | 52 | CONFIG_SERIAL_UARTLITE=y |
50 | CONFIG_SERIAL_UARTLITE_CONSOLE=y | 53 | CONFIG_SERIAL_UARTLITE_CONSOLE=y |
51 | # CONFIG_HW_RANDOM is not set | 54 | # CONFIG_HW_RANDOM is not set |
55 | CONFIG_XILINX_HWICAP=y | ||
56 | CONFIG_I2C=y | ||
57 | CONFIG_I2C_XILINX=y | ||
58 | CONFIG_SPI=y | ||
59 | CONFIG_SPI_XILINX=y | ||
60 | CONFIG_GPIOLIB=y | ||
61 | CONFIG_GPIO_SYSFS=y | ||
62 | CONFIG_GPIO_XILINX=y | ||
52 | # CONFIG_HWMON is not set | 63 | # CONFIG_HWMON is not set |
64 | CONFIG_WATCHDOG=y | ||
65 | CONFIG_XILINX_WATCHDOG=y | ||
66 | CONFIG_FB=y | ||
67 | CONFIG_FB_XILINX=y | ||
53 | # CONFIG_USB_SUPPORT is not set | 68 | # CONFIG_USB_SUPPORT is not set |
69 | CONFIG_UIO=y | ||
70 | CONFIG_UIO_PDRV=y | ||
71 | CONFIG_UIO_PDRV_GENIRQ=y | ||
72 | CONFIG_UIO_DMEM_GENIRQ=y | ||
54 | CONFIG_EXT2_FS=y | 73 | CONFIG_EXT2_FS=y |
55 | # CONFIG_DNOTIFY is not set | 74 | # CONFIG_DNOTIFY is not set |
75 | CONFIG_CRAMFS=y | ||
76 | CONFIG_ROMFS_FS=y | ||
56 | CONFIG_NFS_FS=y | 77 | CONFIG_NFS_FS=y |
57 | CONFIG_NFS_V3=y | ||
58 | CONFIG_CIFS=y | 78 | CONFIG_CIFS=y |
59 | CONFIG_CIFS_STATS=y | 79 | CONFIG_CIFS_STATS=y |
60 | CONFIG_CIFS_STATS2=y | 80 | CONFIG_CIFS_STATS2=y |
61 | CONFIG_PARTITION_ADVANCED=y | ||
62 | CONFIG_DEBUG_KERNEL=y | ||
63 | CONFIG_DETECT_HUNG_TASK=y | 81 | CONFIG_DETECT_HUNG_TASK=y |
64 | CONFIG_DEBUG_SLAB=y | 82 | CONFIG_DEBUG_SLAB=y |
65 | CONFIG_DEBUG_SPINLOCK=y | 83 | CONFIG_DEBUG_SPINLOCK=y |
66 | CONFIG_DEBUG_INFO=y | 84 | CONFIG_DEBUG_INFO=y |
67 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
68 | CONFIG_EARLY_PRINTK=y | 85 | CONFIG_EARLY_PRINTK=y |
86 | CONFIG_KEYS=y | ||
87 | CONFIG_ENCRYPTED_KEYS=y | ||
88 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
69 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 89 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
diff --git a/arch/microblaze/configs/nommu_defconfig b/arch/microblaze/configs/nommu_defconfig index 0249e4b7e1d3..10b5172283d7 100644 --- a/arch/microblaze/configs/nommu_defconfig +++ b/arch/microblaze/configs/nommu_defconfig | |||
@@ -1,41 +1,42 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_EXPERIMENTAL=y |
2 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
3 | CONFIG_POSIX_MQUEUE=y | 3 | CONFIG_POSIX_MQUEUE=y |
4 | CONFIG_FHANDLE=y | ||
5 | CONFIG_AUDIT=y | ||
6 | CONFIG_AUDIT_LOGINUID_IMMUTABLE=y | ||
4 | CONFIG_BSD_PROCESS_ACCT=y | 7 | CONFIG_BSD_PROCESS_ACCT=y |
5 | CONFIG_BSD_PROCESS_ACCT_V3=y | 8 | CONFIG_BSD_PROCESS_ACCT_V3=y |
6 | CONFIG_IKCONFIG=y | 9 | CONFIG_IKCONFIG=y |
7 | CONFIG_IKCONFIG_PROC=y | 10 | CONFIG_IKCONFIG_PROC=y |
11 | CONFIG_SYSFS_DEPRECATED=y | ||
8 | CONFIG_SYSFS_DEPRECATED_V2=y | 12 | CONFIG_SYSFS_DEPRECATED_V2=y |
9 | CONFIG_EXPERT=y | ||
10 | CONFIG_KALLSYMS_ALL=y | 13 | CONFIG_KALLSYMS_ALL=y |
11 | CONFIG_KALLSYMS_EXTRA_PASS=y | ||
12 | # CONFIG_HOTPLUG is not set | ||
13 | # CONFIG_BASE_FULL is not set | 14 | # CONFIG_BASE_FULL is not set |
15 | CONFIG_EMBEDDED=y | ||
14 | CONFIG_SLAB=y | 16 | CONFIG_SLAB=y |
15 | CONFIG_MODULES=y | 17 | CONFIG_MODULES=y |
16 | CONFIG_MODULE_UNLOAD=y | 18 | CONFIG_MODULE_UNLOAD=y |
17 | # CONFIG_BLK_DEV_BSG is not set | 19 | # CONFIG_BLK_DEV_BSG is not set |
18 | # CONFIG_OPT_LIB_FUNCTION is not set | 20 | CONFIG_PARTITION_ADVANCED=y |
21 | # CONFIG_EFI_PARTITION is not set | ||
19 | CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 | 22 | CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 |
20 | CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1 | 23 | CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1 |
21 | CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1 | 24 | CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1 |
22 | CONFIG_XILINX_MICROBLAZE0_USE_DIV=1 | 25 | CONFIG_XILINX_MICROBLAZE0_USE_DIV=1 |
23 | CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=2 | 26 | CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=2 |
24 | CONFIG_XILINX_MICROBLAZE0_USE_FPU=2 | 27 | CONFIG_XILINX_MICROBLAZE0_USE_FPU=2 |
25 | CONFIG_HIGH_RES_TIMERS=y | ||
26 | CONFIG_HZ_100=y | 28 | CONFIG_HZ_100=y |
27 | CONFIG_CMDLINE_BOOL=y | 29 | CONFIG_CMDLINE_BOOL=y |
28 | CONFIG_BINFMT_FLAT=y | 30 | CONFIG_CMDLINE_FORCE=y |
31 | CONFIG_PCI=y | ||
32 | CONFIG_PCI_XILINX=y | ||
29 | CONFIG_NET=y | 33 | CONFIG_NET=y |
30 | CONFIG_PACKET=y | 34 | CONFIG_PACKET=y |
31 | CONFIG_UNIX=y | 35 | CONFIG_UNIX=y |
32 | CONFIG_INET=y | 36 | CONFIG_INET=y |
33 | # CONFIG_INET_LRO is not set | 37 | # CONFIG_INET_LRO is not set |
34 | # CONFIG_IPV6 is not set | 38 | # CONFIG_IPV6 is not set |
35 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
36 | CONFIG_MTD=y | 39 | CONFIG_MTD=y |
37 | CONFIG_MTD_CONCAT=y | ||
38 | CONFIG_MTD_PARTITIONS=y | ||
39 | CONFIG_MTD_CMDLINE_PARTS=y | 40 | CONFIG_MTD_CMDLINE_PARTS=y |
40 | CONFIG_MTD_CHAR=y | 41 | CONFIG_MTD_CHAR=y |
41 | CONFIG_MTD_BLOCK=y | 42 | CONFIG_MTD_BLOCK=y |
@@ -45,41 +46,55 @@ CONFIG_MTD_CFI_AMDSTD=y | |||
45 | CONFIG_MTD_RAM=y | 46 | CONFIG_MTD_RAM=y |
46 | CONFIG_MTD_UCLINUX=y | 47 | CONFIG_MTD_UCLINUX=y |
47 | CONFIG_PROC_DEVICETREE=y | 48 | CONFIG_PROC_DEVICETREE=y |
48 | CONFIG_BLK_DEV_NBD=y | ||
49 | CONFIG_BLK_DEV_RAM=y | 49 | CONFIG_BLK_DEV_RAM=y |
50 | CONFIG_BLK_DEV_RAM_SIZE=8192 | ||
50 | CONFIG_NETDEVICES=y | 51 | CONFIG_NETDEVICES=y |
51 | CONFIG_NET_ETHERNET=y | 52 | CONFIG_XILINX_EMACLITE=y |
53 | CONFIG_XILINX_LL_TEMAC=y | ||
52 | # CONFIG_INPUT is not set | 54 | # CONFIG_INPUT is not set |
53 | # CONFIG_SERIO is not set | 55 | # CONFIG_SERIO is not set |
54 | # CONFIG_VT is not set | 56 | # CONFIG_VT is not set |
57 | CONFIG_SERIAL_8250=y | ||
58 | CONFIG_SERIAL_8250_CONSOLE=y | ||
55 | CONFIG_SERIAL_UARTLITE=y | 59 | CONFIG_SERIAL_UARTLITE=y |
56 | CONFIG_SERIAL_UARTLITE_CONSOLE=y | 60 | CONFIG_SERIAL_UARTLITE_CONSOLE=y |
57 | CONFIG_HW_RANDOM=y | 61 | # CONFIG_HW_RANDOM is not set |
62 | CONFIG_XILINX_HWICAP=y | ||
63 | CONFIG_I2C=y | ||
64 | CONFIG_I2C_XILINX=y | ||
65 | CONFIG_SPI=y | ||
66 | CONFIG_SPI_XILINX=y | ||
67 | CONFIG_GPIOLIB=y | ||
68 | CONFIG_GPIO_SYSFS=y | ||
69 | CONFIG_GPIO_XILINX=y | ||
58 | # CONFIG_HWMON is not set | 70 | # CONFIG_HWMON is not set |
59 | CONFIG_VIDEO_OUTPUT_CONTROL=y | 71 | CONFIG_WATCHDOG=y |
72 | CONFIG_XILINX_WATCHDOG=y | ||
73 | CONFIG_FB=y | ||
74 | CONFIG_FB_XILINX=y | ||
75 | # CONFIG_USB_SUPPORT is not set | ||
76 | CONFIG_UIO=y | ||
77 | CONFIG_UIO_PDRV=y | ||
78 | CONFIG_UIO_PDRV_GENIRQ=y | ||
79 | CONFIG_UIO_DMEM_GENIRQ=y | ||
60 | CONFIG_EXT2_FS=y | 80 | CONFIG_EXT2_FS=y |
61 | # CONFIG_DNOTIFY is not set | 81 | # CONFIG_DNOTIFY is not set |
62 | CONFIG_CRAMFS=y | 82 | CONFIG_CRAMFS=y |
63 | CONFIG_ROMFS_FS=y | 83 | CONFIG_ROMFS_FS=y |
64 | CONFIG_NFS_FS=y | 84 | CONFIG_NFS_FS=y |
65 | CONFIG_NFS_V3=y | ||
66 | CONFIG_NFS_V3_ACL=y | 85 | CONFIG_NFS_V3_ACL=y |
67 | CONFIG_UNUSED_SYMBOLS=y | 86 | CONFIG_NLS=y |
68 | CONFIG_DEBUG_FS=y | ||
69 | CONFIG_DEBUG_KERNEL=y | ||
70 | CONFIG_DEBUG_SHIRQ=y | ||
71 | CONFIG_DETECT_HUNG_TASK=y | 87 | CONFIG_DETECT_HUNG_TASK=y |
72 | CONFIG_SCHEDSTATS=y | 88 | CONFIG_DEBUG_SLAB=y |
73 | CONFIG_TIMER_STATS=y | 89 | CONFIG_DEBUG_SPINLOCK=y |
74 | CONFIG_DEBUG_OBJECTS=y | ||
75 | CONFIG_DEBUG_OBJECTS_SELFTEST=y | ||
76 | CONFIG_DEBUG_OBJECTS_FREE=y | ||
77 | CONFIG_DEBUG_OBJECTS_TIMERS=y | ||
78 | CONFIG_DEBUG_INFO=y | 90 | CONFIG_DEBUG_INFO=y |
79 | CONFIG_DEBUG_LIST=y | ||
80 | CONFIG_DEBUG_SG=y | ||
81 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
82 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
83 | CONFIG_EARLY_PRINTK=y | 91 | CONFIG_EARLY_PRINTK=y |
92 | CONFIG_KEYS=y | ||
93 | CONFIG_ENCRYPTED_KEYS=y | ||
94 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
95 | CONFIG_CRYPTO_ECB=y | ||
96 | CONFIG_CRYPTO_MD4=y | ||
97 | CONFIG_CRYPTO_MD5=y | ||
98 | CONFIG_CRYPTO_ARC4=y | ||
99 | CONFIG_CRYPTO_DES=y | ||
84 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 100 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
85 | # CONFIG_CRC32 is not set | ||
diff --git a/arch/microblaze/include/asm/highmem.h b/arch/microblaze/include/asm/highmem.h index 2446a73140ac..d04638932438 100644 --- a/arch/microblaze/include/asm/highmem.h +++ b/arch/microblaze/include/asm/highmem.h | |||
@@ -71,7 +71,7 @@ static inline void kunmap(struct page *page) | |||
71 | kunmap_high(page); | 71 | kunmap_high(page); |
72 | } | 72 | } |
73 | 73 | ||
74 | static inline void *__kmap_atomic(struct page *page) | 74 | static inline void *kmap_atomic(struct page *page) |
75 | { | 75 | { |
76 | return kmap_atomic_prot(page, kmap_prot); | 76 | return kmap_atomic_prot(page, kmap_prot); |
77 | } | 77 | } |
diff --git a/arch/microblaze/include/asm/uaccess.h b/arch/microblaze/include/asm/uaccess.h index 927540d3cb7d..a1ab5f0009ef 100644 --- a/arch/microblaze/include/asm/uaccess.h +++ b/arch/microblaze/include/asm/uaccess.h | |||
@@ -108,7 +108,7 @@ static inline int ___range_ok(unsigned long addr, unsigned long size) | |||
108 | # define __EX_TABLE_SECTION ".section __ex_table,\"a\"\n" | 108 | # define __EX_TABLE_SECTION ".section __ex_table,\"a\"\n" |
109 | #else | 109 | #else |
110 | # define __FIXUP_SECTION ".section .discard,\"ax\"\n" | 110 | # define __FIXUP_SECTION ".section .discard,\"ax\"\n" |
111 | # define __EX_TABLE_SECTION ".section .discard,\"a\"\n" | 111 | # define __EX_TABLE_SECTION ".section .discard,\"ax\"\n" |
112 | #endif | 112 | #endif |
113 | 113 | ||
114 | extern unsigned long __copy_tofrom_user(void __user *to, | 114 | extern unsigned long __copy_tofrom_user(void __user *to, |
diff --git a/arch/microblaze/include/asm/unistd.h b/arch/microblaze/include/asm/unistd.h index a5f06ac97113..10f8ac186855 100644 --- a/arch/microblaze/include/asm/unistd.h +++ b/arch/microblaze/include/asm/unistd.h | |||
@@ -37,9 +37,7 @@ | |||
37 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | 37 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND |
38 | #define __ARCH_WANT_SYS_CLONE | 38 | #define __ARCH_WANT_SYS_CLONE |
39 | #define __ARCH_WANT_SYS_VFORK | 39 | #define __ARCH_WANT_SYS_VFORK |
40 | #ifdef CONFIG_MMU | ||
41 | #define __ARCH_WANT_SYS_FORK | 40 | #define __ARCH_WANT_SYS_FORK |
42 | #endif | ||
43 | 41 | ||
44 | /* | 42 | /* |
45 | * "Conditional" syscalls | 43 | * "Conditional" syscalls |
diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h index ccb6920f3b33..5f7fe7582f3a 100644 --- a/arch/microblaze/include/uapi/asm/unistd.h +++ b/arch/microblaze/include/uapi/asm/unistd.h | |||
@@ -395,7 +395,8 @@ | |||
395 | #define __NR_process_vm_readv 377 | 395 | #define __NR_process_vm_readv 377 |
396 | #define __NR_process_vm_writev 378 | 396 | #define __NR_process_vm_writev 378 |
397 | #define __NR_kcmp 379 | 397 | #define __NR_kcmp 379 |
398 | #define __NR_finit_module 380 | ||
398 | 399 | ||
399 | #define __NR_syscalls 380 | 400 | #define __NR_syscalls 381 |
400 | 401 | ||
401 | #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */ | 402 | #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */ |
diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S index 1cbace29b5e2..4fca56cf02f6 100644 --- a/arch/microblaze/kernel/syscall_table.S +++ b/arch/microblaze/kernel/syscall_table.S | |||
@@ -380,3 +380,4 @@ ENTRY(sys_call_table) | |||
380 | .long sys_process_vm_readv | 380 | .long sys_process_vm_readv |
381 | .long sys_process_vm_writev | 381 | .long sys_process_vm_writev |
382 | .long sys_kcmp | 382 | .long sys_kcmp |
383 | .long sys_finit_module | ||
diff --git a/arch/microblaze/pci/pci-common.c b/arch/microblaze/pci/pci-common.c index a1c5b996d66d..96416553cb36 100644 --- a/arch/microblaze/pci/pci-common.c +++ b/arch/microblaze/pci/pci-common.c | |||
@@ -287,7 +287,7 @@ static struct resource *__pci_mmap_make_offset(struct pci_dev *dev, | |||
287 | unsigned long io_offset = 0; | 287 | unsigned long io_offset = 0; |
288 | int i, res_bit; | 288 | int i, res_bit; |
289 | 289 | ||
290 | if (hose == 0) | 290 | if (!hose) |
291 | return NULL; /* should never happen */ | 291 | return NULL; /* should never happen */ |
292 | 292 | ||
293 | /* If memory, add on the PCI bridge address offset */ | 293 | /* If memory, add on the PCI bridge address offset */ |
@@ -655,9 +655,8 @@ void pci_resource_to_user(const struct pci_dev *dev, int bar, | |||
655 | * - Some 32 bits platforms such as 4xx can have physical space larger than | 655 | * - Some 32 bits platforms such as 4xx can have physical space larger than |
656 | * 32 bits so we need to use 64 bits values for the parsing | 656 | * 32 bits so we need to use 64 bits values for the parsing |
657 | */ | 657 | */ |
658 | void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose, | 658 | void pci_process_bridge_OF_ranges(struct pci_controller *hose, |
659 | struct device_node *dev, | 659 | struct device_node *dev, int primary) |
660 | int primary) | ||
661 | { | 660 | { |
662 | const u32 *ranges; | 661 | const u32 *ranges; |
663 | int rlen; | 662 | int rlen; |
@@ -822,15 +821,13 @@ void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose, | |||
822 | /* Decide whether to display the domain number in /proc */ | 821 | /* Decide whether to display the domain number in /proc */ |
823 | int pci_proc_domain(struct pci_bus *bus) | 822 | int pci_proc_domain(struct pci_bus *bus) |
824 | { | 823 | { |
825 | struct pci_controller *hose = pci_bus_to_host(bus); | ||
826 | |||
827 | return 0; | 824 | return 0; |
828 | } | 825 | } |
829 | 826 | ||
830 | /* This header fixup will do the resource fixup for all devices as they are | 827 | /* This header fixup will do the resource fixup for all devices as they are |
831 | * probed, but not for bridge ranges | 828 | * probed, but not for bridge ranges |
832 | */ | 829 | */ |
833 | static void __devinit pcibios_fixup_resources(struct pci_dev *dev) | 830 | static void pcibios_fixup_resources(struct pci_dev *dev) |
834 | { | 831 | { |
835 | struct pci_controller *hose = pci_bus_to_host(dev->bus); | 832 | struct pci_controller *hose = pci_bus_to_host(dev->bus); |
836 | int i; | 833 | int i; |
@@ -871,8 +868,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_fixup_resources); | |||
871 | * things go more smoothly when it gets it right. It should covers cases such | 868 | * things go more smoothly when it gets it right. It should covers cases such |
872 | * as Apple "closed" bridge resources and bare-metal pSeries unassigned bridges | 869 | * as Apple "closed" bridge resources and bare-metal pSeries unassigned bridges |
873 | */ | 870 | */ |
874 | static int __devinit pcibios_uninitialized_bridge_resource(struct pci_bus *bus, | 871 | static int pcibios_uninitialized_bridge_resource(struct pci_bus *bus, |
875 | struct resource *res) | 872 | struct resource *res) |
876 | { | 873 | { |
877 | struct pci_controller *hose = pci_bus_to_host(bus); | 874 | struct pci_controller *hose = pci_bus_to_host(bus); |
878 | struct pci_dev *dev = bus->self; | 875 | struct pci_dev *dev = bus->self; |
@@ -933,7 +930,7 @@ static int __devinit pcibios_uninitialized_bridge_resource(struct pci_bus *bus, | |||
933 | } | 930 | } |
934 | 931 | ||
935 | /* Fixup resources of a PCI<->PCI bridge */ | 932 | /* Fixup resources of a PCI<->PCI bridge */ |
936 | static void __devinit pcibios_fixup_bridge(struct pci_bus *bus) | 933 | static void pcibios_fixup_bridge(struct pci_bus *bus) |
937 | { | 934 | { |
938 | struct resource *res; | 935 | struct resource *res; |
939 | int i; | 936 | int i; |
@@ -970,14 +967,14 @@ static void __devinit pcibios_fixup_bridge(struct pci_bus *bus) | |||
970 | } | 967 | } |
971 | } | 968 | } |
972 | 969 | ||
973 | void __devinit pcibios_setup_bus_self(struct pci_bus *bus) | 970 | void pcibios_setup_bus_self(struct pci_bus *bus) |
974 | { | 971 | { |
975 | /* Fix up the bus resources for P2P bridges */ | 972 | /* Fix up the bus resources for P2P bridges */ |
976 | if (bus->self != NULL) | 973 | if (bus->self != NULL) |
977 | pcibios_fixup_bridge(bus); | 974 | pcibios_fixup_bridge(bus); |
978 | } | 975 | } |
979 | 976 | ||
980 | void __devinit pcibios_setup_bus_devices(struct pci_bus *bus) | 977 | void pcibios_setup_bus_devices(struct pci_bus *bus) |
981 | { | 978 | { |
982 | struct pci_dev *dev; | 979 | struct pci_dev *dev; |
983 | 980 | ||
@@ -1002,7 +999,7 @@ void __devinit pcibios_setup_bus_devices(struct pci_bus *bus) | |||
1002 | } | 999 | } |
1003 | } | 1000 | } |
1004 | 1001 | ||
1005 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 1002 | void pcibios_fixup_bus(struct pci_bus *bus) |
1006 | { | 1003 | { |
1007 | /* When called from the generic PCI probe, read PCI<->PCI bridge | 1004 | /* When called from the generic PCI probe, read PCI<->PCI bridge |
1008 | * bases. This is -not- called when generating the PCI tree from | 1005 | * bases. This is -not- called when generating the PCI tree from |
@@ -1124,7 +1121,7 @@ static int __init reparent_resources(struct resource *parent, | |||
1124 | * as well. | 1121 | * as well. |
1125 | */ | 1122 | */ |
1126 | 1123 | ||
1127 | void pcibios_allocate_bus_resources(struct pci_bus *bus) | 1124 | static void pcibios_allocate_bus_resources(struct pci_bus *bus) |
1128 | { | 1125 | { |
1129 | struct pci_bus *b; | 1126 | struct pci_bus *b; |
1130 | int i; | 1127 | int i; |
@@ -1179,7 +1176,7 @@ void pcibios_allocate_bus_resources(struct pci_bus *bus) | |||
1179 | } | 1176 | } |
1180 | printk(KERN_WARNING "PCI: Cannot allocate resource region " | 1177 | printk(KERN_WARNING "PCI: Cannot allocate resource region " |
1181 | "%d of PCI bridge %d, will remap\n", i, bus->number); | 1178 | "%d of PCI bridge %d, will remap\n", i, bus->number); |
1182 | clear_resource: | 1179 | |
1183 | res->start = res->end = 0; | 1180 | res->start = res->end = 0; |
1184 | res->flags = 0; | 1181 | res->flags = 0; |
1185 | } | 1182 | } |
@@ -1188,7 +1185,7 @@ clear_resource: | |||
1188 | pcibios_allocate_bus_resources(b); | 1185 | pcibios_allocate_bus_resources(b); |
1189 | } | 1186 | } |
1190 | 1187 | ||
1191 | static inline void __devinit alloc_resource(struct pci_dev *dev, int idx) | 1188 | static inline void alloc_resource(struct pci_dev *dev, int idx) |
1192 | { | 1189 | { |
1193 | struct resource *pr, *r = &dev->resource[idx]; | 1190 | struct resource *pr, *r = &dev->resource[idx]; |
1194 | 1191 | ||
@@ -1351,7 +1348,7 @@ void __init pcibios_resource_survey(void) | |||
1351 | * rest of the code later, for now, keep it as-is as our main | 1348 | * rest of the code later, for now, keep it as-is as our main |
1352 | * resource allocation function doesn't deal with sub-trees yet. | 1349 | * resource allocation function doesn't deal with sub-trees yet. |
1353 | */ | 1350 | */ |
1354 | void __devinit pcibios_claim_one_bus(struct pci_bus *bus) | 1351 | void pcibios_claim_one_bus(struct pci_bus *bus) |
1355 | { | 1352 | { |
1356 | struct pci_dev *dev; | 1353 | struct pci_dev *dev; |
1357 | struct pci_bus *child_bus; | 1354 | struct pci_bus *child_bus; |
@@ -1410,7 +1407,8 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) | |||
1410 | return pci_enable_resources(dev, mask); | 1407 | return pci_enable_resources(dev, mask); |
1411 | } | 1408 | } |
1412 | 1409 | ||
1413 | static void __devinit pcibios_setup_phb_resources(struct pci_controller *hose, struct list_head *resources) | 1410 | static void pcibios_setup_phb_resources(struct pci_controller *hose, |
1411 | struct list_head *resources) | ||
1414 | { | 1412 | { |
1415 | unsigned long io_offset; | 1413 | unsigned long io_offset; |
1416 | struct resource *res; | 1414 | struct resource *res; |
@@ -1433,7 +1431,8 @@ static void __devinit pcibios_setup_phb_resources(struct pci_controller *hose, s | |||
1433 | res->end = res->start + IO_SPACE_LIMIT; | 1431 | res->end = res->start + IO_SPACE_LIMIT; |
1434 | res->flags = IORESOURCE_IO; | 1432 | res->flags = IORESOURCE_IO; |
1435 | } | 1433 | } |
1436 | pci_add_resource_offset(resources, res, hose->io_base_virt - _IO_BASE); | 1434 | pci_add_resource_offset(resources, res, |
1435 | (__force resource_size_t)(hose->io_base_virt - _IO_BASE)); | ||
1437 | 1436 | ||
1438 | pr_debug("PCI: PHB IO resource = %016llx-%016llx [%lx]\n", | 1437 | pr_debug("PCI: PHB IO resource = %016llx-%016llx [%lx]\n", |
1439 | (unsigned long long)res->start, | 1438 | (unsigned long long)res->start, |
@@ -1477,7 +1476,7 @@ struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus) | |||
1477 | return of_node_get(hose->dn); | 1476 | return of_node_get(hose->dn); |
1478 | } | 1477 | } |
1479 | 1478 | ||
1480 | static void __devinit pcibios_scan_phb(struct pci_controller *hose) | 1479 | static void pcibios_scan_phb(struct pci_controller *hose) |
1481 | { | 1480 | { |
1482 | LIST_HEAD(resources); | 1481 | LIST_HEAD(resources); |
1483 | struct pci_bus *bus; | 1482 | struct pci_bus *bus; |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index b7dc39c6c849..2ac626ab9d43 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -39,8 +39,8 @@ config MIPS | |||
39 | select GENERIC_CLOCKEVENTS | 39 | select GENERIC_CLOCKEVENTS |
40 | select GENERIC_CMOS_UPDATE | 40 | select GENERIC_CMOS_UPDATE |
41 | select HAVE_MOD_ARCH_SPECIFIC | 41 | select HAVE_MOD_ARCH_SPECIFIC |
42 | select MODULES_USE_ELF_REL | 42 | select MODULES_USE_ELF_REL if MODULES |
43 | select MODULES_USE_ELF_RELA if 64BIT | 43 | select MODULES_USE_ELF_RELA if MODULES && 64BIT |
44 | 44 | ||
45 | menu "Machine selection" | 45 | menu "Machine selection" |
46 | 46 | ||
diff --git a/arch/mips/alchemy/common/time.c b/arch/mips/alchemy/common/time.c index a7193ae13a5d..b67930d19325 100644 --- a/arch/mips/alchemy/common/time.c +++ b/arch/mips/alchemy/common/time.c | |||
@@ -53,7 +53,7 @@ static struct clocksource au1x_counter1_clocksource = { | |||
53 | .read = au1x_counter1_read, | 53 | .read = au1x_counter1_read, |
54 | .mask = CLOCKSOURCE_MASK(32), | 54 | .mask = CLOCKSOURCE_MASK(32), |
55 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | 55 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, |
56 | .rating = 100, | 56 | .rating = 1500, |
57 | }; | 57 | }; |
58 | 58 | ||
59 | static int au1x_rtcmatch2_set_next_event(unsigned long delta, | 59 | static int au1x_rtcmatch2_set_next_event(unsigned long delta, |
@@ -84,7 +84,7 @@ static irqreturn_t au1x_rtcmatch2_irq(int irq, void *dev_id) | |||
84 | static struct clock_event_device au1x_rtcmatch2_clockdev = { | 84 | static struct clock_event_device au1x_rtcmatch2_clockdev = { |
85 | .name = "rtcmatch2", | 85 | .name = "rtcmatch2", |
86 | .features = CLOCK_EVT_FEAT_ONESHOT, | 86 | .features = CLOCK_EVT_FEAT_ONESHOT, |
87 | .rating = 100, | 87 | .rating = 1500, |
88 | .set_next_event = au1x_rtcmatch2_set_next_event, | 88 | .set_next_event = au1x_rtcmatch2_set_next_event, |
89 | .set_mode = au1x_rtcmatch2_set_mode, | 89 | .set_mode = au1x_rtcmatch2_set_mode, |
90 | .cpumask = cpu_all_mask, | 90 | .cpumask = cpu_all_mask, |
@@ -158,20 +158,6 @@ cntr_err: | |||
158 | return -1; | 158 | return -1; |
159 | } | 159 | } |
160 | 160 | ||
161 | static void __init alchemy_setup_c0timer(void) | ||
162 | { | ||
163 | /* | ||
164 | * MIPS kernel assigns 'au1k_wait' to 'cpu_wait' before this | ||
165 | * function is called. Because the Alchemy counters are unusable | ||
166 | * the C0 timekeeping code is installed and use of the 'wait' | ||
167 | * instruction must be prohibited, which is done most easily by | ||
168 | * assigning NULL to cpu_wait. | ||
169 | */ | ||
170 | cpu_wait = NULL; | ||
171 | r4k_clockevent_init(); | ||
172 | init_r4k_clocksource(); | ||
173 | } | ||
174 | |||
175 | static int alchemy_m2inttab[] __initdata = { | 161 | static int alchemy_m2inttab[] __initdata = { |
176 | AU1000_RTC_MATCH2_INT, | 162 | AU1000_RTC_MATCH2_INT, |
177 | AU1500_RTC_MATCH2_INT, | 163 | AU1500_RTC_MATCH2_INT, |
@@ -186,8 +172,7 @@ void __init plat_time_init(void) | |||
186 | int t; | 172 | int t; |
187 | 173 | ||
188 | t = alchemy_get_cputype(); | 174 | t = alchemy_get_cputype(); |
189 | if (t == ALCHEMY_CPU_UNKNOWN) | 175 | if (t == ALCHEMY_CPU_UNKNOWN || |
190 | alchemy_setup_c0timer(); | 176 | alchemy_time_init(alchemy_m2inttab[t])) |
191 | else if (alchemy_time_init(alchemy_m2inttab[t])) | 177 | cpu_wait = NULL; /* wait doesn't work with r4k timer */ |
192 | alchemy_setup_c0timer(); | ||
193 | } | 178 | } |
diff --git a/arch/mips/cavium-octeon/serial.c b/arch/mips/cavium-octeon/serial.c index 569f41bdcc46..f393f65f3923 100644 --- a/arch/mips/cavium-octeon/serial.c +++ b/arch/mips/cavium-octeon/serial.c | |||
@@ -43,7 +43,7 @@ void octeon_serial_out(struct uart_port *up, int offset, int value) | |||
43 | cvmx_write_csr((uint64_t)(up->membase + (offset << 3)), (u8)value); | 43 | cvmx_write_csr((uint64_t)(up->membase + (offset << 3)), (u8)value); |
44 | } | 44 | } |
45 | 45 | ||
46 | static int __devinit octeon_serial_probe(struct platform_device *pdev) | 46 | static int octeon_serial_probe(struct platform_device *pdev) |
47 | { | 47 | { |
48 | int irq, res; | 48 | int irq, res; |
49 | struct resource *res_mem; | 49 | struct resource *res_mem; |
diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h index 31ab10f02bad..dbaec94046da 100644 --- a/arch/mips/include/asm/page.h +++ b/arch/mips/include/asm/page.h | |||
@@ -45,8 +45,6 @@ | |||
45 | #define HUGETLB_PAGE_ORDER ({BUILD_BUG(); 0; }) | 45 | #define HUGETLB_PAGE_ORDER ({BUILD_BUG(); 0; }) |
46 | #endif /* CONFIG_MIPS_HUGE_TLB_SUPPORT */ | 46 | #endif /* CONFIG_MIPS_HUGE_TLB_SUPPORT */ |
47 | 47 | ||
48 | #ifndef __ASSEMBLY__ | ||
49 | |||
50 | #include <linux/pfn.h> | 48 | #include <linux/pfn.h> |
51 | #include <asm/io.h> | 49 | #include <asm/io.h> |
52 | 50 | ||
@@ -139,8 +137,6 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
139 | */ | 137 | */ |
140 | #define ptep_buddy(x) ((pte_t *)((unsigned long)(x) ^ sizeof(pte_t))) | 138 | #define ptep_buddy(x) ((pte_t *)((unsigned long)(x) ^ sizeof(pte_t))) |
141 | 139 | ||
142 | #endif /* !__ASSEMBLY__ */ | ||
143 | |||
144 | /* | 140 | /* |
145 | * __pa()/__va() should be used only during mem init. | 141 | * __pa()/__va() should be used only during mem init. |
146 | */ | 142 | */ |
@@ -202,7 +198,10 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
202 | #endif | 198 | #endif |
203 | 199 | ||
204 | #define virt_to_page(kaddr) pfn_to_page(PFN_DOWN(virt_to_phys(kaddr))) | 200 | #define virt_to_page(kaddr) pfn_to_page(PFN_DOWN(virt_to_phys(kaddr))) |
205 | #define virt_addr_valid(kaddr) pfn_valid(PFN_DOWN(virt_to_phys(kaddr))) | 201 | |
202 | extern int __virt_addr_valid(const volatile void *kaddr); | ||
203 | #define virt_addr_valid(kaddr) \ | ||
204 | __virt_addr_valid((const volatile void *) (kaddr)) | ||
206 | 205 | ||
207 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ | 206 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ |
208 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | 207 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) |
diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h index 90bf3b3fce19..d69ea743272b 100644 --- a/arch/mips/include/asm/pci.h +++ b/arch/mips/include/asm/pci.h | |||
@@ -145,7 +145,7 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) | |||
145 | extern char * (*pcibios_plat_setup)(char *str); | 145 | extern char * (*pcibios_plat_setup)(char *str); |
146 | 146 | ||
147 | /* this function parses memory ranges from a device node */ | 147 | /* this function parses memory ranges from a device node */ |
148 | extern void __devinit pci_load_of_ranges(struct pci_controller *hose, | 148 | extern void pci_load_of_ranges(struct pci_controller *hose, |
149 | struct device_node *node); | 149 | struct device_node *node); |
150 | 150 | ||
151 | #endif /* _ASM_PCI_H */ | 151 | #endif /* _ASM_PCI_H */ |
diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h index 18806a52061c..b2050b9e64b1 100644 --- a/arch/mips/include/asm/thread_info.h +++ b/arch/mips/include/asm/thread_info.h | |||
@@ -29,10 +29,11 @@ struct thread_info { | |||
29 | __u32 cpu; /* current CPU */ | 29 | __u32 cpu; /* current CPU */ |
30 | int preempt_count; /* 0 => preemptable, <0 => BUG */ | 30 | int preempt_count; /* 0 => preemptable, <0 => BUG */ |
31 | 31 | ||
32 | mm_segment_t addr_limit; /* thread address space: | 32 | mm_segment_t addr_limit; /* |
33 | 0-0xBFFFFFFF for user-thead | 33 | * thread address space limit: |
34 | 0-0xFFFFFFFF for kernel-thread | 34 | * 0x7fffffff for user-thead |
35 | */ | 35 | * 0xffffffff for kernel-thread |
36 | */ | ||
36 | struct restart_block restart_block; | 37 | struct restart_block restart_block; |
37 | struct pt_regs *regs; | 38 | struct pt_regs *regs; |
38 | }; | 39 | }; |
diff --git a/arch/mips/include/uapi/asm/unistd.h b/arch/mips/include/uapi/asm/unistd.h index cc98a9dcb01b..0eebf3c3e03c 100644 --- a/arch/mips/include/uapi/asm/unistd.h +++ b/arch/mips/include/uapi/asm/unistd.h | |||
@@ -368,16 +368,17 @@ | |||
368 | #define __NR_process_vm_readv (__NR_Linux + 345) | 368 | #define __NR_process_vm_readv (__NR_Linux + 345) |
369 | #define __NR_process_vm_writev (__NR_Linux + 346) | 369 | #define __NR_process_vm_writev (__NR_Linux + 346) |
370 | #define __NR_kcmp (__NR_Linux + 347) | 370 | #define __NR_kcmp (__NR_Linux + 347) |
371 | #define __NR_finit_module (__NR_Linux + 348) | ||
371 | 372 | ||
372 | /* | 373 | /* |
373 | * Offset of the last Linux o32 flavoured syscall | 374 | * Offset of the last Linux o32 flavoured syscall |
374 | */ | 375 | */ |
375 | #define __NR_Linux_syscalls 347 | 376 | #define __NR_Linux_syscalls 348 |
376 | 377 | ||
377 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ | 378 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ |
378 | 379 | ||
379 | #define __NR_O32_Linux 4000 | 380 | #define __NR_O32_Linux 4000 |
380 | #define __NR_O32_Linux_syscalls 347 | 381 | #define __NR_O32_Linux_syscalls 348 |
381 | 382 | ||
382 | #if _MIPS_SIM == _MIPS_SIM_ABI64 | 383 | #if _MIPS_SIM == _MIPS_SIM_ABI64 |
383 | 384 | ||
@@ -692,16 +693,17 @@ | |||
692 | #define __NR_process_vm_readv (__NR_Linux + 304) | 693 | #define __NR_process_vm_readv (__NR_Linux + 304) |
693 | #define __NR_process_vm_writev (__NR_Linux + 305) | 694 | #define __NR_process_vm_writev (__NR_Linux + 305) |
694 | #define __NR_kcmp (__NR_Linux + 306) | 695 | #define __NR_kcmp (__NR_Linux + 306) |
696 | #define __NR_finit_module (__NR_Linux + 307) | ||
695 | 697 | ||
696 | /* | 698 | /* |
697 | * Offset of the last Linux 64-bit flavoured syscall | 699 | * Offset of the last Linux 64-bit flavoured syscall |
698 | */ | 700 | */ |
699 | #define __NR_Linux_syscalls 306 | 701 | #define __NR_Linux_syscalls 307 |
700 | 702 | ||
701 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ | 703 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ |
702 | 704 | ||
703 | #define __NR_64_Linux 5000 | 705 | #define __NR_64_Linux 5000 |
704 | #define __NR_64_Linux_syscalls 306 | 706 | #define __NR_64_Linux_syscalls 307 |
705 | 707 | ||
706 | #if _MIPS_SIM == _MIPS_SIM_NABI32 | 708 | #if _MIPS_SIM == _MIPS_SIM_NABI32 |
707 | 709 | ||
@@ -1021,15 +1023,16 @@ | |||
1021 | #define __NR_process_vm_readv (__NR_Linux + 309) | 1023 | #define __NR_process_vm_readv (__NR_Linux + 309) |
1022 | #define __NR_process_vm_writev (__NR_Linux + 310) | 1024 | #define __NR_process_vm_writev (__NR_Linux + 310) |
1023 | #define __NR_kcmp (__NR_Linux + 311) | 1025 | #define __NR_kcmp (__NR_Linux + 311) |
1026 | #define __NR_finit_module (__NR_Linux + 312) | ||
1024 | 1027 | ||
1025 | /* | 1028 | /* |
1026 | * Offset of the last N32 flavoured syscall | 1029 | * Offset of the last N32 flavoured syscall |
1027 | */ | 1030 | */ |
1028 | #define __NR_Linux_syscalls 311 | 1031 | #define __NR_Linux_syscalls 312 |
1029 | 1032 | ||
1030 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ | 1033 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ |
1031 | 1034 | ||
1032 | #define __NR_N32_Linux 6000 | 1035 | #define __NR_N32_Linux 6000 |
1033 | #define __NR_N32_Linux_syscalls 311 | 1036 | #define __NR_N32_Linux_syscalls 312 |
1034 | 1037 | ||
1035 | #endif /* _UAPI_ASM_UNISTD_H */ | 1038 | #endif /* _UAPI_ASM_UNISTD_H */ |
diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c index 9690998d4ef3..50285b2c7ffe 100644 --- a/arch/mips/kernel/asm-offsets.c +++ b/arch/mips/kernel/asm-offsets.c | |||
@@ -200,6 +200,9 @@ void output_mm_defines(void) | |||
200 | DEFINE(_PTRS_PER_PMD, PTRS_PER_PMD); | 200 | DEFINE(_PTRS_PER_PMD, PTRS_PER_PMD); |
201 | DEFINE(_PTRS_PER_PTE, PTRS_PER_PTE); | 201 | DEFINE(_PTRS_PER_PTE, PTRS_PER_PTE); |
202 | BLANK(); | 202 | BLANK(); |
203 | DEFINE(_PAGE_SHIFT, PAGE_SHIFT); | ||
204 | DEFINE(_PAGE_SIZE, PAGE_SIZE); | ||
205 | BLANK(); | ||
203 | } | 206 | } |
204 | 207 | ||
205 | #ifdef CONFIG_32BIT | 208 | #ifdef CONFIG_32BIT |
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S index 8882e5766f27..8a0096d62812 100644 --- a/arch/mips/kernel/genex.S +++ b/arch/mips/kernel/genex.S | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <asm/mipsregs.h> | 19 | #include <asm/mipsregs.h> |
20 | #include <asm/stackframe.h> | 20 | #include <asm/stackframe.h> |
21 | #include <asm/war.h> | 21 | #include <asm/war.h> |
22 | #include <asm/page.h> | ||
23 | #include <asm/thread_info.h> | 22 | #include <asm/thread_info.h> |
24 | 23 | ||
25 | #define PANIC_PIC(msg) \ | 24 | #define PANIC_PIC(msg) \ |
@@ -483,8 +482,8 @@ NESTED(nmi_handler, PT_SIZE, sp) | |||
483 | MFC0 k1, CP0_ENTRYHI | 482 | MFC0 k1, CP0_ENTRYHI |
484 | andi k1, 0xff /* ASID_MASK */ | 483 | andi k1, 0xff /* ASID_MASK */ |
485 | MFC0 k0, CP0_EPC | 484 | MFC0 k0, CP0_EPC |
486 | PTR_SRL k0, PAGE_SHIFT + 1 | 485 | PTR_SRL k0, _PAGE_SHIFT + 1 |
487 | PTR_SLL k0, PAGE_SHIFT + 1 | 486 | PTR_SLL k0, _PAGE_SHIFT + 1 |
488 | or k1, k0 | 487 | or k1, k0 |
489 | MTC0 k1, CP0_ENTRYHI | 488 | MTC0 k1, CP0_ENTRYHI |
490 | mtc0_tlbw_hazard | 489 | mtc0_tlbw_hazard |
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S index ea695d9605e9..fcf97312f328 100644 --- a/arch/mips/kernel/head.S +++ b/arch/mips/kernel/head.S | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <asm/asmmacro.h> | 21 | #include <asm/asmmacro.h> |
22 | #include <asm/irqflags.h> | 22 | #include <asm/irqflags.h> |
23 | #include <asm/regdef.h> | 23 | #include <asm/regdef.h> |
24 | #include <asm/page.h> | ||
25 | #include <asm/pgtable-bits.h> | 24 | #include <asm/pgtable-bits.h> |
26 | #include <asm/mipsregs.h> | 25 | #include <asm/mipsregs.h> |
27 | #include <asm/stackframe.h> | 26 | #include <asm/stackframe.h> |
diff --git a/arch/mips/kernel/octeon_switch.S b/arch/mips/kernel/octeon_switch.S index 0441f54b2a6a..207f1341578b 100644 --- a/arch/mips/kernel/octeon_switch.S +++ b/arch/mips/kernel/octeon_switch.S | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <asm/fpregdef.h> | 15 | #include <asm/fpregdef.h> |
16 | #include <asm/mipsregs.h> | 16 | #include <asm/mipsregs.h> |
17 | #include <asm/asm-offsets.h> | 17 | #include <asm/asm-offsets.h> |
18 | #include <asm/page.h> | ||
19 | #include <asm/pgtable-bits.h> | 18 | #include <asm/pgtable-bits.h> |
20 | #include <asm/regdef.h> | 19 | #include <asm/regdef.h> |
21 | #include <asm/stackframe.h> | 20 | #include <asm/stackframe.h> |
diff --git a/arch/mips/kernel/perf_event_mipsxx.c b/arch/mips/kernel/perf_event_mipsxx.c index b14c14d90fc2..d9c81c5a6c90 100644 --- a/arch/mips/kernel/perf_event_mipsxx.c +++ b/arch/mips/kernel/perf_event_mipsxx.c | |||
@@ -847,7 +847,6 @@ static const struct mips_perf_event xlp_event_map[PERF_COUNT_HW_MAX] = { | |||
847 | [PERF_COUNT_HW_CACHE_MISSES] = { 0x07, CNTR_ALL }, /* PAPI_L1_ICM */ | 847 | [PERF_COUNT_HW_CACHE_MISSES] = { 0x07, CNTR_ALL }, /* PAPI_L1_ICM */ |
848 | [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = { 0x1b, CNTR_ALL }, /* PAPI_BR_CN */ | 848 | [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = { 0x1b, CNTR_ALL }, /* PAPI_BR_CN */ |
849 | [PERF_COUNT_HW_BRANCH_MISSES] = { 0x1c, CNTR_ALL }, /* PAPI_BR_MSP */ | 849 | [PERF_COUNT_HW_BRANCH_MISSES] = { 0x1c, CNTR_ALL }, /* PAPI_BR_MSP */ |
850 | [PERF_COUNT_HW_BUS_CYCLES] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
851 | }; | 850 | }; |
852 | 851 | ||
853 | /* 24K/34K/1004K cores can share the same cache event map. */ | 852 | /* 24K/34K/1004K cores can share the same cache event map. */ |
@@ -1115,24 +1114,12 @@ static const struct mips_perf_event xlp_cache_map | |||
1115 | [C(RESULT_ACCESS)] = { 0x2f, CNTR_ALL }, /* PAPI_L1_DCW */ | 1114 | [C(RESULT_ACCESS)] = { 0x2f, CNTR_ALL }, /* PAPI_L1_DCW */ |
1116 | [C(RESULT_MISS)] = { 0x2e, CNTR_ALL }, /* PAPI_L1_STM */ | 1115 | [C(RESULT_MISS)] = { 0x2e, CNTR_ALL }, /* PAPI_L1_STM */ |
1117 | }, | 1116 | }, |
1118 | [C(OP_PREFETCH)] = { | ||
1119 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1120 | [C(RESULT_MISS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1121 | }, | ||
1122 | }, | 1117 | }, |
1123 | [C(L1I)] = { | 1118 | [C(L1I)] = { |
1124 | [C(OP_READ)] = { | 1119 | [C(OP_READ)] = { |
1125 | [C(RESULT_ACCESS)] = { 0x04, CNTR_ALL }, /* PAPI_L1_ICA */ | 1120 | [C(RESULT_ACCESS)] = { 0x04, CNTR_ALL }, /* PAPI_L1_ICA */ |
1126 | [C(RESULT_MISS)] = { 0x07, CNTR_ALL }, /* PAPI_L1_ICM */ | 1121 | [C(RESULT_MISS)] = { 0x07, CNTR_ALL }, /* PAPI_L1_ICM */ |
1127 | }, | 1122 | }, |
1128 | [C(OP_WRITE)] = { | ||
1129 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1130 | [C(RESULT_MISS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1131 | }, | ||
1132 | [C(OP_PREFETCH)] = { | ||
1133 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1134 | [C(RESULT_MISS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1135 | }, | ||
1136 | }, | 1123 | }, |
1137 | [C(LL)] = { | 1124 | [C(LL)] = { |
1138 | [C(OP_READ)] = { | 1125 | [C(OP_READ)] = { |
@@ -1143,10 +1130,6 @@ static const struct mips_perf_event xlp_cache_map | |||
1143 | [C(RESULT_ACCESS)] = { 0x34, CNTR_ALL }, /* PAPI_L2_DCA */ | 1130 | [C(RESULT_ACCESS)] = { 0x34, CNTR_ALL }, /* PAPI_L2_DCA */ |
1144 | [C(RESULT_MISS)] = { 0x36, CNTR_ALL }, /* PAPI_L2_DCM */ | 1131 | [C(RESULT_MISS)] = { 0x36, CNTR_ALL }, /* PAPI_L2_DCM */ |
1145 | }, | 1132 | }, |
1146 | [C(OP_PREFETCH)] = { | ||
1147 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1148 | [C(RESULT_MISS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1149 | }, | ||
1150 | }, | 1133 | }, |
1151 | [C(DTLB)] = { | 1134 | [C(DTLB)] = { |
1152 | /* | 1135 | /* |
@@ -1154,45 +1137,24 @@ static const struct mips_perf_event xlp_cache_map | |||
1154 | * read and write. | 1137 | * read and write. |
1155 | */ | 1138 | */ |
1156 | [C(OP_READ)] = { | 1139 | [C(OP_READ)] = { |
1157 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1158 | [C(RESULT_MISS)] = { 0x2d, CNTR_ALL }, /* PAPI_TLB_DM */ | 1140 | [C(RESULT_MISS)] = { 0x2d, CNTR_ALL }, /* PAPI_TLB_DM */ |
1159 | }, | 1141 | }, |
1160 | [C(OP_WRITE)] = { | 1142 | [C(OP_WRITE)] = { |
1161 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1162 | [C(RESULT_MISS)] = { 0x2d, CNTR_ALL }, /* PAPI_TLB_DM */ | 1143 | [C(RESULT_MISS)] = { 0x2d, CNTR_ALL }, /* PAPI_TLB_DM */ |
1163 | }, | 1144 | }, |
1164 | [C(OP_PREFETCH)] = { | ||
1165 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1166 | [C(RESULT_MISS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1167 | }, | ||
1168 | }, | 1145 | }, |
1169 | [C(ITLB)] = { | 1146 | [C(ITLB)] = { |
1170 | [C(OP_READ)] = { | 1147 | [C(OP_READ)] = { |
1171 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1172 | [C(RESULT_MISS)] = { 0x08, CNTR_ALL }, /* PAPI_TLB_IM */ | 1148 | [C(RESULT_MISS)] = { 0x08, CNTR_ALL }, /* PAPI_TLB_IM */ |
1173 | }, | 1149 | }, |
1174 | [C(OP_WRITE)] = { | 1150 | [C(OP_WRITE)] = { |
1175 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1176 | [C(RESULT_MISS)] = { 0x08, CNTR_ALL }, /* PAPI_TLB_IM */ | 1151 | [C(RESULT_MISS)] = { 0x08, CNTR_ALL }, /* PAPI_TLB_IM */ |
1177 | }, | 1152 | }, |
1178 | [C(OP_PREFETCH)] = { | ||
1179 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1180 | [C(RESULT_MISS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1181 | }, | ||
1182 | }, | 1153 | }, |
1183 | [C(BPU)] = { | 1154 | [C(BPU)] = { |
1184 | [C(OP_READ)] = { | 1155 | [C(OP_READ)] = { |
1185 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1186 | [C(RESULT_MISS)] = { 0x25, CNTR_ALL }, | 1156 | [C(RESULT_MISS)] = { 0x25, CNTR_ALL }, |
1187 | }, | 1157 | }, |
1188 | [C(OP_WRITE)] = { | ||
1189 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1190 | [C(RESULT_MISS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1191 | }, | ||
1192 | [C(OP_PREFETCH)] = { | ||
1193 | [C(RESULT_ACCESS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1194 | [C(RESULT_MISS)] = { UNSUPPORTED_PERF_EVENT_ID }, | ||
1195 | }, | ||
1196 | }, | 1158 | }, |
1197 | }; | 1159 | }; |
1198 | 1160 | ||
diff --git a/arch/mips/kernel/r2300_switch.S b/arch/mips/kernel/r2300_switch.S index 9c51be5a163a..8d32d5a6b460 100644 --- a/arch/mips/kernel/r2300_switch.S +++ b/arch/mips/kernel/r2300_switch.S | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <asm/fpregdef.h> | 15 | #include <asm/fpregdef.h> |
16 | #include <asm/mipsregs.h> | 16 | #include <asm/mipsregs.h> |
17 | #include <asm/asm-offsets.h> | 17 | #include <asm/asm-offsets.h> |
18 | #include <asm/page.h> | ||
19 | #include <asm/regdef.h> | 18 | #include <asm/regdef.h> |
20 | #include <asm/stackframe.h> | 19 | #include <asm/stackframe.h> |
21 | #include <asm/thread_info.h> | 20 | #include <asm/thread_info.h> |
diff --git a/arch/mips/kernel/r4k_switch.S b/arch/mips/kernel/r4k_switch.S index 42d2a3938420..8decdfacb448 100644 --- a/arch/mips/kernel/r4k_switch.S +++ b/arch/mips/kernel/r4k_switch.S | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <asm/fpregdef.h> | 15 | #include <asm/fpregdef.h> |
16 | #include <asm/mipsregs.h> | 16 | #include <asm/mipsregs.h> |
17 | #include <asm/asm-offsets.h> | 17 | #include <asm/asm-offsets.h> |
18 | #include <asm/page.h> | ||
19 | #include <asm/pgtable-bits.h> | 18 | #include <asm/pgtable-bits.h> |
20 | #include <asm/regdef.h> | 19 | #include <asm/regdef.h> |
21 | #include <asm/stackframe.h> | 20 | #include <asm/stackframe.h> |
diff --git a/arch/mips/kernel/relocate_kernel.S b/arch/mips/kernel/relocate_kernel.S index e4142c5f7c2b..804ebb2c34a6 100644 --- a/arch/mips/kernel/relocate_kernel.S +++ b/arch/mips/kernel/relocate_kernel.S | |||
@@ -9,7 +9,6 @@ | |||
9 | #include <asm/asm.h> | 9 | #include <asm/asm.h> |
10 | #include <asm/asmmacro.h> | 10 | #include <asm/asmmacro.h> |
11 | #include <asm/regdef.h> | 11 | #include <asm/regdef.h> |
12 | #include <asm/page.h> | ||
13 | #include <asm/mipsregs.h> | 12 | #include <asm/mipsregs.h> |
14 | #include <asm/stackframe.h> | 13 | #include <asm/stackframe.h> |
15 | #include <asm/addrspace.h> | 14 | #include <asm/addrspace.h> |
@@ -50,7 +49,7 @@ process_entry: | |||
50 | and s3, s2, 0x8 | 49 | and s3, s2, 0x8 |
51 | beq s3, zero, process_entry | 50 | beq s3, zero, process_entry |
52 | and s2, s2, ~0x8 | 51 | and s2, s2, ~0x8 |
53 | li s6, (1 << PAGE_SHIFT) / SZREG | 52 | li s6, (1 << _PAGE_SHIFT) / SZREG |
54 | 53 | ||
55 | copy_word: | 54 | copy_word: |
56 | /* copy page word by word */ | 55 | /* copy page word by word */ |
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S index 374f66e05f3d..d20a4bc9ed05 100644 --- a/arch/mips/kernel/scall32-o32.S +++ b/arch/mips/kernel/scall32-o32.S | |||
@@ -583,6 +583,7 @@ einval: li v0, -ENOSYS | |||
583 | sys sys_process_vm_readv 6 /* 4345 */ | 583 | sys sys_process_vm_readv 6 /* 4345 */ |
584 | sys sys_process_vm_writev 6 | 584 | sys sys_process_vm_writev 6 |
585 | sys sys_kcmp 5 | 585 | sys sys_kcmp 5 |
586 | sys sys_finit_module 3 | ||
586 | .endm | 587 | .endm |
587 | 588 | ||
588 | /* We pre-compute the number of _instruction_ bytes needed to | 589 | /* We pre-compute the number of _instruction_ bytes needed to |
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S index 169de6a6d916..b64f642da073 100644 --- a/arch/mips/kernel/scall64-64.S +++ b/arch/mips/kernel/scall64-64.S | |||
@@ -422,4 +422,5 @@ sys_call_table: | |||
422 | PTR sys_process_vm_readv | 422 | PTR sys_process_vm_readv |
423 | PTR sys_process_vm_writev /* 5305 */ | 423 | PTR sys_process_vm_writev /* 5305 */ |
424 | PTR sys_kcmp | 424 | PTR sys_kcmp |
425 | PTR sys_finit_module | ||
425 | .size sys_call_table,.-sys_call_table | 426 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S index ad3de9668da9..c29ac197f446 100644 --- a/arch/mips/kernel/scall64-n32.S +++ b/arch/mips/kernel/scall64-n32.S | |||
@@ -416,4 +416,5 @@ EXPORT(sysn32_call_table) | |||
416 | PTR compat_sys_process_vm_readv | 416 | PTR compat_sys_process_vm_readv |
417 | PTR compat_sys_process_vm_writev /* 6310 */ | 417 | PTR compat_sys_process_vm_writev /* 6310 */ |
418 | PTR sys_kcmp | 418 | PTR sys_kcmp |
419 | PTR sys_finit_module | ||
419 | .size sysn32_call_table,.-sysn32_call_table | 420 | .size sysn32_call_table,.-sysn32_call_table |
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S index 9601be6afa3d..cf3e75e46650 100644 --- a/arch/mips/kernel/scall64-o32.S +++ b/arch/mips/kernel/scall64-o32.S | |||
@@ -540,4 +540,5 @@ sys_call_table: | |||
540 | PTR compat_sys_process_vm_readv /* 4345 */ | 540 | PTR compat_sys_process_vm_readv /* 4345 */ |
541 | PTR compat_sys_process_vm_writev | 541 | PTR compat_sys_process_vm_writev |
542 | PTR sys_kcmp | 542 | PTR sys_kcmp |
543 | PTR sys_finit_module | ||
543 | .size sys_call_table,.-sys_call_table | 544 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index 2e6374a589ec..66bf4e22d9b9 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c | |||
@@ -188,7 +188,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
188 | } | 188 | } |
189 | 189 | ||
190 | /* preload SMP state for boot cpu */ | 190 | /* preload SMP state for boot cpu */ |
191 | void __devinit smp_prepare_boot_cpu(void) | 191 | void smp_prepare_boot_cpu(void) |
192 | { | 192 | { |
193 | set_cpu_possible(0, true); | 193 | set_cpu_possible(0, true); |
194 | set_cpu_online(0, true); | 194 | set_cpu_online(0, true); |
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index 007ccbe1e264..0a4336b803e9 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S | |||
@@ -1,7 +1,8 @@ | |||
1 | #include <asm/asm-offsets.h> | 1 | #include <asm/asm-offsets.h> |
2 | #include <asm/page.h> | ||
3 | #include <asm/thread_info.h> | 2 | #include <asm/thread_info.h> |
4 | 3 | ||
4 | #define PAGE_SIZE _PAGE_SIZE | ||
5 | |||
5 | /* | 6 | /* |
6 | * Put .bss..swapper_pg_dir as the first thing in .bss. This will | 7 | * Put .bss..swapper_pg_dir as the first thing in .bss. This will |
7 | * ensure that it has .bss alignment (64K). | 8 | * ensure that it has .bss alignment (64K). |
diff --git a/arch/mips/lantiq/xway/dma.c b/arch/mips/lantiq/xway/dma.c index 6453962ac898..e44a1866653f 100644 --- a/arch/mips/lantiq/xway/dma.c +++ b/arch/mips/lantiq/xway/dma.c | |||
@@ -210,7 +210,7 @@ ltq_dma_init_port(int p) | |||
210 | } | 210 | } |
211 | EXPORT_SYMBOL_GPL(ltq_dma_init_port); | 211 | EXPORT_SYMBOL_GPL(ltq_dma_init_port); |
212 | 212 | ||
213 | static int __devinit | 213 | static int |
214 | ltq_dma_init(struct platform_device *pdev) | 214 | ltq_dma_init(struct platform_device *pdev) |
215 | { | 215 | { |
216 | struct clk *clk; | 216 | struct clk *clk; |
diff --git a/arch/mips/lantiq/xway/gptu.c b/arch/mips/lantiq/xway/gptu.c index cbb56fc022bc..e30b1ed1b936 100644 --- a/arch/mips/lantiq/xway/gptu.c +++ b/arch/mips/lantiq/xway/gptu.c | |||
@@ -133,7 +133,7 @@ static inline void clkdev_add_gptu(struct device *dev, const char *con, | |||
133 | clkdev_add(&clk->cl); | 133 | clkdev_add(&clk->cl); |
134 | } | 134 | } |
135 | 135 | ||
136 | static int __devinit gptu_probe(struct platform_device *pdev) | 136 | static int gptu_probe(struct platform_device *pdev) |
137 | { | 137 | { |
138 | struct clk *clk; | 138 | struct clk *clk; |
139 | struct resource *res; | 139 | struct resource *res; |
diff --git a/arch/mips/lantiq/xway/xrx200_phy_fw.c b/arch/mips/lantiq/xway/xrx200_phy_fw.c index fe808bf5366d..d4d9d31f152e 100644 --- a/arch/mips/lantiq/xway/xrx200_phy_fw.c +++ b/arch/mips/lantiq/xway/xrx200_phy_fw.c | |||
@@ -54,7 +54,7 @@ static dma_addr_t xway_gphy_load(struct platform_device *pdev) | |||
54 | return dev_addr; | 54 | return dev_addr; |
55 | } | 55 | } |
56 | 56 | ||
57 | static int __devinit xway_phy_fw_probe(struct platform_device *pdev) | 57 | static int xway_phy_fw_probe(struct platform_device *pdev) |
58 | { | 58 | { |
59 | dma_addr_t fw_addr; | 59 | dma_addr_t fw_addr; |
60 | struct property *pp; | 60 | struct property *pp; |
diff --git a/arch/mips/mm/ioremap.c b/arch/mips/mm/ioremap.c index cacfd31e8ec9..7657fd21cd3f 100644 --- a/arch/mips/mm/ioremap.c +++ b/arch/mips/mm/ioremap.c | |||
@@ -190,3 +190,9 @@ void __iounmap(const volatile void __iomem *addr) | |||
190 | 190 | ||
191 | EXPORT_SYMBOL(__ioremap); | 191 | EXPORT_SYMBOL(__ioremap); |
192 | EXPORT_SYMBOL(__iounmap); | 192 | EXPORT_SYMBOL(__iounmap); |
193 | |||
194 | int __virt_addr_valid(const volatile void *kaddr) | ||
195 | { | ||
196 | return pfn_valid(PFN_DOWN(virt_to_phys(kaddr))); | ||
197 | } | ||
198 | EXPORT_SYMBOL_GPL(__virt_addr_valid); | ||
diff --git a/arch/mips/mm/tlbex-fault.S b/arch/mips/mm/tlbex-fault.S index e99eaa1fbedc..318855eb5f80 100644 --- a/arch/mips/mm/tlbex-fault.S +++ b/arch/mips/mm/tlbex-fault.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1999 Silicon Graphics, Inc. | 7 | * Copyright (C) 1999 Silicon Graphics, Inc. |
8 | */ | 8 | */ |
9 | #include <asm/mipsregs.h> | 9 | #include <asm/mipsregs.h> |
10 | #include <asm/page.h> | ||
11 | #include <asm/regdef.h> | 10 | #include <asm/regdef.h> |
12 | #include <asm/stackframe.h> | 11 | #include <asm/stackframe.h> |
13 | 12 | ||
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c index 05613355627b..1c8ac49ec72c 100644 --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c | |||
@@ -976,13 +976,6 @@ build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr) | |||
976 | #endif | 976 | #endif |
977 | uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */ | 977 | uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */ |
978 | uasm_i_lw(p, ptr, uasm_rel_lo(pgdc), ptr); | 978 | uasm_i_lw(p, ptr, uasm_rel_lo(pgdc), ptr); |
979 | |||
980 | if (cpu_has_mips_r2) { | ||
981 | uasm_i_ext(p, tmp, tmp, PGDIR_SHIFT, (32 - PGDIR_SHIFT)); | ||
982 | uasm_i_ins(p, ptr, tmp, PGD_T_LOG2, (32 - PGDIR_SHIFT)); | ||
983 | return; | ||
984 | } | ||
985 | |||
986 | uasm_i_srl(p, tmp, tmp, PGDIR_SHIFT); /* get pgd only bits */ | 979 | uasm_i_srl(p, tmp, tmp, PGDIR_SHIFT); /* get pgd only bits */ |
987 | uasm_i_sll(p, tmp, tmp, PGD_T_LOG2); | 980 | uasm_i_sll(p, tmp, tmp, PGD_T_LOG2); |
988 | uasm_i_addu(p, ptr, ptr, tmp); /* add in pgd offset */ | 981 | uasm_i_addu(p, ptr, ptr, tmp); /* add in pgd offset */ |
@@ -1018,15 +1011,6 @@ static void __cpuinit build_adjust_context(u32 **p, unsigned int ctx) | |||
1018 | 1011 | ||
1019 | static void __cpuinit build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr) | 1012 | static void __cpuinit build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr) |
1020 | { | 1013 | { |
1021 | if (cpu_has_mips_r2) { | ||
1022 | /* PTE ptr offset is obtained from BadVAddr */ | ||
1023 | UASM_i_MFC0(p, tmp, C0_BADVADDR); | ||
1024 | UASM_i_LW(p, ptr, 0, ptr); | ||
1025 | uasm_i_ext(p, tmp, tmp, PAGE_SHIFT+1, PGDIR_SHIFT-PAGE_SHIFT-1); | ||
1026 | uasm_i_ins(p, ptr, tmp, PTE_T_LOG2+1, PGDIR_SHIFT-PAGE_SHIFT-1); | ||
1027 | return; | ||
1028 | } | ||
1029 | |||
1030 | /* | 1014 | /* |
1031 | * Bug workaround for the Nevada. It seems as if under certain | 1015 | * Bug workaround for the Nevada. It seems as if under certain |
1032 | * circumstances the move from cp0_context might produce a | 1016 | * circumstances the move from cp0_context might produce a |
diff --git a/arch/mips/mti-sead3/sead3-i2c-drv.c b/arch/mips/mti-sead3/sead3-i2c-drv.c index 0375ee66bca3..7aa2225e75b9 100644 --- a/arch/mips/mti-sead3/sead3-i2c-drv.c +++ b/arch/mips/mti-sead3/sead3-i2c-drv.c | |||
@@ -297,7 +297,7 @@ static void sead3_i2c_platform_setup(struct pic32_i2c_platform_data *priv) | |||
297 | priv->base + PIC32_I2CxSTATCLR); | 297 | priv->base + PIC32_I2CxSTATCLR); |
298 | } | 298 | } |
299 | 299 | ||
300 | static int __devinit sead3_i2c_platform_probe(struct platform_device *pdev) | 300 | static int sead3_i2c_platform_probe(struct platform_device *pdev) |
301 | { | 301 | { |
302 | struct pic32_i2c_platform_data *priv; | 302 | struct pic32_i2c_platform_data *priv; |
303 | struct resource *r; | 303 | struct resource *r; |
@@ -345,7 +345,7 @@ out: | |||
345 | return ret; | 345 | return ret; |
346 | } | 346 | } |
347 | 347 | ||
348 | static int __devexit sead3_i2c_platform_remove(struct platform_device *pdev) | 348 | static int sead3_i2c_platform_remove(struct platform_device *pdev) |
349 | { | 349 | { |
350 | struct pic32_i2c_platform_data *priv = platform_get_drvdata(pdev); | 350 | struct pic32_i2c_platform_data *priv = platform_get_drvdata(pdev); |
351 | 351 | ||
@@ -383,7 +383,7 @@ static struct platform_driver sead3_i2c_platform_driver = { | |||
383 | .owner = THIS_MODULE, | 383 | .owner = THIS_MODULE, |
384 | }, | 384 | }, |
385 | .probe = sead3_i2c_platform_probe, | 385 | .probe = sead3_i2c_platform_probe, |
386 | .remove = __devexit_p(sead3_i2c_platform_remove), | 386 | .remove = sead3_i2c_platform_remove, |
387 | .suspend = sead3_i2c_platform_suspend, | 387 | .suspend = sead3_i2c_platform_suspend, |
388 | .resume = sead3_i2c_platform_resume, | 388 | .resume = sead3_i2c_platform_resume, |
389 | }; | 389 | }; |
diff --git a/arch/mips/mti-sead3/sead3-pic32-i2c-drv.c b/arch/mips/mti-sead3/sead3-pic32-i2c-drv.c index 46509b0a620d..514675ed0cde 100644 --- a/arch/mips/mti-sead3/sead3-pic32-i2c-drv.c +++ b/arch/mips/mti-sead3/sead3-pic32-i2c-drv.c | |||
@@ -304,8 +304,7 @@ static void i2c_platform_disable(struct i2c_platform_data *priv) | |||
304 | pr_debug("i2c_platform_disable\n"); | 304 | pr_debug("i2c_platform_disable\n"); |
305 | } | 305 | } |
306 | 306 | ||
307 | static int __devinit | 307 | static int i2c_platform_probe(struct platform_device *pdev) |
308 | i2c_platform_probe(struct platform_device *pdev) | ||
309 | { | 308 | { |
310 | struct i2c_platform_data *priv; | 309 | struct i2c_platform_data *priv; |
311 | struct resource *r; | 310 | struct resource *r; |
@@ -362,8 +361,7 @@ out: | |||
362 | return ret; | 361 | return ret; |
363 | } | 362 | } |
364 | 363 | ||
365 | static int __devexit | 364 | static int i2c_platform_remove(struct platform_device *pdev) |
366 | i2c_platform_remove(struct platform_device *pdev) | ||
367 | { | 365 | { |
368 | struct i2c_platform_data *priv = platform_get_drvdata(pdev); | 366 | struct i2c_platform_data *priv = platform_get_drvdata(pdev); |
369 | 367 | ||
@@ -408,7 +406,7 @@ static struct platform_driver i2c_platform_driver = { | |||
408 | .owner = THIS_MODULE, | 406 | .owner = THIS_MODULE, |
409 | }, | 407 | }, |
410 | .probe = i2c_platform_probe, | 408 | .probe = i2c_platform_probe, |
411 | .remove = __devexit_p(i2c_platform_remove), | 409 | .remove = i2c_platform_remove, |
412 | .suspend = i2c_platform_suspend, | 410 | .suspend = i2c_platform_suspend, |
413 | .resume = i2c_platform_resume, | 411 | .resume = i2c_platform_resume, |
414 | }; | 412 | }; |
diff --git a/arch/mips/pci/fixup-cobalt.c b/arch/mips/pci/fixup-cobalt.c index 3e7ce65d776c..9553b14002dd 100644 --- a/arch/mips/pci/fixup-cobalt.c +++ b/arch/mips/pci/fixup-cobalt.c | |||
@@ -37,7 +37,7 @@ | |||
37 | #define VIA_COBALT_BRD_ID_REG 0x94 | 37 | #define VIA_COBALT_BRD_ID_REG 0x94 |
38 | #define VIA_COBALT_BRD_REG_to_ID(reg) ((unsigned char)(reg) >> 4) | 38 | #define VIA_COBALT_BRD_REG_to_ID(reg) ((unsigned char)(reg) >> 4) |
39 | 39 | ||
40 | static void __devinit qube_raq_galileo_early_fixup(struct pci_dev *dev) | 40 | static void qube_raq_galileo_early_fixup(struct pci_dev *dev) |
41 | { | 41 | { |
42 | if (dev->devfn == PCI_DEVFN(0, 0) && | 42 | if (dev->devfn == PCI_DEVFN(0, 0) && |
43 | (dev->class >> 8) == PCI_CLASS_MEMORY_OTHER) { | 43 | (dev->class >> 8) == PCI_CLASS_MEMORY_OTHER) { |
@@ -51,7 +51,7 @@ static void __devinit qube_raq_galileo_early_fixup(struct pci_dev *dev) | |||
51 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_GT64111, | 51 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_GT64111, |
52 | qube_raq_galileo_early_fixup); | 52 | qube_raq_galileo_early_fixup); |
53 | 53 | ||
54 | static void __devinit qube_raq_via_bmIDE_fixup(struct pci_dev *dev) | 54 | static void qube_raq_via_bmIDE_fixup(struct pci_dev *dev) |
55 | { | 55 | { |
56 | unsigned short cfgword; | 56 | unsigned short cfgword; |
57 | unsigned char lt; | 57 | unsigned char lt; |
@@ -74,7 +74,7 @@ static void __devinit qube_raq_via_bmIDE_fixup(struct pci_dev *dev) | |||
74 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, | 74 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, |
75 | qube_raq_via_bmIDE_fixup); | 75 | qube_raq_via_bmIDE_fixup); |
76 | 76 | ||
77 | static void __devinit qube_raq_galileo_fixup(struct pci_dev *dev) | 77 | static void qube_raq_galileo_fixup(struct pci_dev *dev) |
78 | { | 78 | { |
79 | if (dev->devfn != PCI_DEVFN(0, 0)) | 79 | if (dev->devfn != PCI_DEVFN(0, 0)) |
80 | return; | 80 | return; |
@@ -129,7 +129,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_GT64111, | |||
129 | 129 | ||
130 | int cobalt_board_id; | 130 | int cobalt_board_id; |
131 | 131 | ||
132 | static void __devinit qube_raq_via_board_id_fixup(struct pci_dev *dev) | 132 | static void qube_raq_via_board_id_fixup(struct pci_dev *dev) |
133 | { | 133 | { |
134 | u8 id; | 134 | u8 id; |
135 | int retval; | 135 | int retval; |
diff --git a/arch/mips/pci/fixup-emma2rh.c b/arch/mips/pci/fixup-emma2rh.c index 0d9ccf4dfc5a..beaec32b02e5 100644 --- a/arch/mips/pci/fixup-emma2rh.c +++ b/arch/mips/pci/fixup-emma2rh.c | |||
@@ -52,7 +52,7 @@ static unsigned char irq_map[][5] __initdata = { | |||
52 | MARKEINS_PCI_IRQ_INTA, MARKEINS_PCI_IRQ_INTB,}, | 52 | MARKEINS_PCI_IRQ_INTA, MARKEINS_PCI_IRQ_INTB,}, |
53 | }; | 53 | }; |
54 | 54 | ||
55 | static void __devinit nec_usb_controller_fixup(struct pci_dev *dev) | 55 | static void nec_usb_controller_fixup(struct pci_dev *dev) |
56 | { | 56 | { |
57 | if (PCI_SLOT(dev->devfn) == EMMA2RH_USB_SLOT) | 57 | if (PCI_SLOT(dev->devfn) == EMMA2RH_USB_SLOT) |
58 | /* on board USB controller configuration */ | 58 | /* on board USB controller configuration */ |
@@ -67,7 +67,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_USB, | |||
67 | * if it is the host bridge by marking it as such. These resources are of | 67 | * if it is the host bridge by marking it as such. These resources are of |
68 | * no consequence to the PCI layer (they are handled elsewhere). | 68 | * no consequence to the PCI layer (they are handled elsewhere). |
69 | */ | 69 | */ |
70 | static void __devinit emma2rh_pci_host_fixup(struct pci_dev *dev) | 70 | static void emma2rh_pci_host_fixup(struct pci_dev *dev) |
71 | { | 71 | { |
72 | int i; | 72 | int i; |
73 | 73 | ||
diff --git a/arch/mips/pci/fixup-fuloong2e.c b/arch/mips/pci/fixup-fuloong2e.c index 0857ab8c3919..63ab4a042cd6 100644 --- a/arch/mips/pci/fixup-fuloong2e.c +++ b/arch/mips/pci/fixup-fuloong2e.c | |||
@@ -48,7 +48,7 @@ int pcibios_plat_dev_init(struct pci_dev *dev) | |||
48 | return 0; | 48 | return 0; |
49 | } | 49 | } |
50 | 50 | ||
51 | static void __devinit loongson2e_nec_fixup(struct pci_dev *pdev) | 51 | static void loongson2e_nec_fixup(struct pci_dev *pdev) |
52 | { | 52 | { |
53 | unsigned int val; | 53 | unsigned int val; |
54 | 54 | ||
@@ -60,7 +60,7 @@ static void __devinit loongson2e_nec_fixup(struct pci_dev *pdev) | |||
60 | pci_write_config_dword(pdev, 0xe4, 1 << 5); | 60 | pci_write_config_dword(pdev, 0xe4, 1 << 5); |
61 | } | 61 | } |
62 | 62 | ||
63 | static void __devinit loongson2e_686b_func0_fixup(struct pci_dev *pdev) | 63 | static void loongson2e_686b_func0_fixup(struct pci_dev *pdev) |
64 | { | 64 | { |
65 | unsigned char c; | 65 | unsigned char c; |
66 | 66 | ||
@@ -135,7 +135,7 @@ static void __devinit loongson2e_686b_func0_fixup(struct pci_dev *pdev) | |||
135 | printk(KERN_INFO"via686b fix: ISA bridge done\n"); | 135 | printk(KERN_INFO"via686b fix: ISA bridge done\n"); |
136 | } | 136 | } |
137 | 137 | ||
138 | static void __devinit loongson2e_686b_func1_fixup(struct pci_dev *pdev) | 138 | static void loongson2e_686b_func1_fixup(struct pci_dev *pdev) |
139 | { | 139 | { |
140 | printk(KERN_INFO"via686b fix: IDE\n"); | 140 | printk(KERN_INFO"via686b fix: IDE\n"); |
141 | 141 | ||
@@ -168,19 +168,19 @@ static void __devinit loongson2e_686b_func1_fixup(struct pci_dev *pdev) | |||
168 | printk(KERN_INFO"via686b fix: IDE done\n"); | 168 | printk(KERN_INFO"via686b fix: IDE done\n"); |
169 | } | 169 | } |
170 | 170 | ||
171 | static void __devinit loongson2e_686b_func2_fixup(struct pci_dev *pdev) | 171 | static void loongson2e_686b_func2_fixup(struct pci_dev *pdev) |
172 | { | 172 | { |
173 | /* irq routing */ | 173 | /* irq routing */ |
174 | pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, 10); | 174 | pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, 10); |
175 | } | 175 | } |
176 | 176 | ||
177 | static void __devinit loongson2e_686b_func3_fixup(struct pci_dev *pdev) | 177 | static void loongson2e_686b_func3_fixup(struct pci_dev *pdev) |
178 | { | 178 | { |
179 | /* irq routing */ | 179 | /* irq routing */ |
180 | pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, 11); | 180 | pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, 11); |
181 | } | 181 | } |
182 | 182 | ||
183 | static void __devinit loongson2e_686b_func5_fixup(struct pci_dev *pdev) | 183 | static void loongson2e_686b_func5_fixup(struct pci_dev *pdev) |
184 | { | 184 | { |
185 | unsigned int val; | 185 | unsigned int val; |
186 | unsigned char c; | 186 | unsigned char c; |
diff --git a/arch/mips/pci/fixup-lemote2f.c b/arch/mips/pci/fixup-lemote2f.c index a7b917dcf604..519daaebb5da 100644 --- a/arch/mips/pci/fixup-lemote2f.c +++ b/arch/mips/pci/fixup-lemote2f.c | |||
@@ -96,21 +96,21 @@ int pcibios_plat_dev_init(struct pci_dev *dev) | |||
96 | } | 96 | } |
97 | 97 | ||
98 | /* CS5536 SPEC. fixup */ | 98 | /* CS5536 SPEC. fixup */ |
99 | static void __devinit loongson_cs5536_isa_fixup(struct pci_dev *pdev) | 99 | static void loongson_cs5536_isa_fixup(struct pci_dev *pdev) |
100 | { | 100 | { |
101 | /* the uart1 and uart2 interrupt in PIC is enabled as default */ | 101 | /* the uart1 and uart2 interrupt in PIC is enabled as default */ |
102 | pci_write_config_dword(pdev, PCI_UART1_INT_REG, 1); | 102 | pci_write_config_dword(pdev, PCI_UART1_INT_REG, 1); |
103 | pci_write_config_dword(pdev, PCI_UART2_INT_REG, 1); | 103 | pci_write_config_dword(pdev, PCI_UART2_INT_REG, 1); |
104 | } | 104 | } |
105 | 105 | ||
106 | static void __devinit loongson_cs5536_ide_fixup(struct pci_dev *pdev) | 106 | static void loongson_cs5536_ide_fixup(struct pci_dev *pdev) |
107 | { | 107 | { |
108 | /* setting the mutex pin as IDE function */ | 108 | /* setting the mutex pin as IDE function */ |
109 | pci_write_config_dword(pdev, PCI_IDE_CFG_REG, | 109 | pci_write_config_dword(pdev, PCI_IDE_CFG_REG, |
110 | CS5536_IDE_FLASH_SIGNATURE); | 110 | CS5536_IDE_FLASH_SIGNATURE); |
111 | } | 111 | } |
112 | 112 | ||
113 | static void __devinit loongson_cs5536_acc_fixup(struct pci_dev *pdev) | 113 | static void loongson_cs5536_acc_fixup(struct pci_dev *pdev) |
114 | { | 114 | { |
115 | /* enable the AUDIO interrupt in PIC */ | 115 | /* enable the AUDIO interrupt in PIC */ |
116 | pci_write_config_dword(pdev, PCI_ACC_INT_REG, 1); | 116 | pci_write_config_dword(pdev, PCI_ACC_INT_REG, 1); |
@@ -118,14 +118,14 @@ static void __devinit loongson_cs5536_acc_fixup(struct pci_dev *pdev) | |||
118 | pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0xc0); | 118 | pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0xc0); |
119 | } | 119 | } |
120 | 120 | ||
121 | static void __devinit loongson_cs5536_ohci_fixup(struct pci_dev *pdev) | 121 | static void loongson_cs5536_ohci_fixup(struct pci_dev *pdev) |
122 | { | 122 | { |
123 | /* enable the OHCI interrupt in PIC */ | 123 | /* enable the OHCI interrupt in PIC */ |
124 | /* THE OHCI, EHCI, UDC, OTG are shared with interrupt in PIC */ | 124 | /* THE OHCI, EHCI, UDC, OTG are shared with interrupt in PIC */ |
125 | pci_write_config_dword(pdev, PCI_OHCI_INT_REG, 1); | 125 | pci_write_config_dword(pdev, PCI_OHCI_INT_REG, 1); |
126 | } | 126 | } |
127 | 127 | ||
128 | static void __devinit loongson_cs5536_ehci_fixup(struct pci_dev *pdev) | 128 | static void loongson_cs5536_ehci_fixup(struct pci_dev *pdev) |
129 | { | 129 | { |
130 | u32 hi, lo; | 130 | u32 hi, lo; |
131 | 131 | ||
@@ -137,7 +137,7 @@ static void __devinit loongson_cs5536_ehci_fixup(struct pci_dev *pdev) | |||
137 | pci_write_config_dword(pdev, PCI_EHCI_FLADJ_REG, 0x2000); | 137 | pci_write_config_dword(pdev, PCI_EHCI_FLADJ_REG, 0x2000); |
138 | } | 138 | } |
139 | 139 | ||
140 | static void __devinit loongson_nec_fixup(struct pci_dev *pdev) | 140 | static void loongson_nec_fixup(struct pci_dev *pdev) |
141 | { | 141 | { |
142 | unsigned int val; | 142 | unsigned int val; |
143 | 143 | ||
diff --git a/arch/mips/pci/fixup-malta.c b/arch/mips/pci/fixup-malta.c index 9a1a2244522a..75d03f6be3bd 100644 --- a/arch/mips/pci/fixup-malta.c +++ b/arch/mips/pci/fixup-malta.c | |||
@@ -8,7 +8,7 @@ | |||
8 | #define PCID 4 | 8 | #define PCID 4 |
9 | 9 | ||
10 | /* This table is filled in by interrogating the PIIX4 chip */ | 10 | /* This table is filled in by interrogating the PIIX4 chip */ |
11 | static char pci_irq[5] __devinitdata = { | 11 | static char pci_irq[5] = { |
12 | }; | 12 | }; |
13 | 13 | ||
14 | static char irq_tab[][5] __initdata = { | 14 | static char irq_tab[][5] __initdata = { |
@@ -50,10 +50,10 @@ int pcibios_plat_dev_init(struct pci_dev *dev) | |||
50 | return 0; | 50 | return 0; |
51 | } | 51 | } |
52 | 52 | ||
53 | static void __devinit malta_piix_func0_fixup(struct pci_dev *pdev) | 53 | static void malta_piix_func0_fixup(struct pci_dev *pdev) |
54 | { | 54 | { |
55 | unsigned char reg_val; | 55 | unsigned char reg_val; |
56 | static int piixirqmap[16] __devinitdata = { /* PIIX PIRQC[A:D] irq mappings */ | 56 | static int piixirqmap[16] = { /* PIIX PIRQC[A:D] irq mappings */ |
57 | 0, 0, 0, 3, | 57 | 0, 0, 0, 3, |
58 | 4, 5, 6, 7, | 58 | 4, 5, 6, 7, |
59 | 0, 9, 10, 11, | 59 | 0, 9, 10, 11, |
@@ -84,7 +84,7 @@ static void __devinit malta_piix_func0_fixup(struct pci_dev *pdev) | |||
84 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_0, | 84 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_0, |
85 | malta_piix_func0_fixup); | 85 | malta_piix_func0_fixup); |
86 | 86 | ||
87 | static void __devinit malta_piix_func1_fixup(struct pci_dev *pdev) | 87 | static void malta_piix_func1_fixup(struct pci_dev *pdev) |
88 | { | 88 | { |
89 | unsigned char reg_val; | 89 | unsigned char reg_val; |
90 | 90 | ||
@@ -104,7 +104,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB, | |||
104 | malta_piix_func1_fixup); | 104 | malta_piix_func1_fixup); |
105 | 105 | ||
106 | /* Enable PCI 2.1 compatibility in PIIX4 */ | 106 | /* Enable PCI 2.1 compatibility in PIIX4 */ |
107 | static void __devinit quirk_dlcsetup(struct pci_dev *dev) | 107 | static void quirk_dlcsetup(struct pci_dev *dev) |
108 | { | 108 | { |
109 | u8 odlc, ndlc; | 109 | u8 odlc, ndlc; |
110 | 110 | ||
diff --git a/arch/mips/pci/fixup-rc32434.c b/arch/mips/pci/fixup-rc32434.c index 76bb1be99d43..d0f6ecbf35f7 100644 --- a/arch/mips/pci/fixup-rc32434.c +++ b/arch/mips/pci/fixup-rc32434.c | |||
@@ -32,12 +32,12 @@ | |||
32 | #include <asm/mach-rc32434/rc32434.h> | 32 | #include <asm/mach-rc32434/rc32434.h> |
33 | #include <asm/mach-rc32434/irq.h> | 33 | #include <asm/mach-rc32434/irq.h> |
34 | 34 | ||
35 | static int __devinitdata irq_map[2][12] = { | 35 | static int irq_map[2][12] = { |
36 | {0, 0, 2, 3, 2, 3, 0, 0, 0, 0, 0, 1}, | 36 | {0, 0, 2, 3, 2, 3, 0, 0, 0, 0, 0, 1}, |
37 | {0, 0, 1, 3, 0, 2, 1, 3, 0, 2, 1, 3} | 37 | {0, 0, 1, 3, 0, 2, 1, 3, 0, 2, 1, 3} |
38 | }; | 38 | }; |
39 | 39 | ||
40 | int __devinit pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | 40 | int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
41 | { | 41 | { |
42 | int irq = 0; | 42 | int irq = 0; |
43 | 43 | ||
@@ -47,7 +47,7 @@ int __devinit pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | |||
47 | return irq + GROUP4_IRQ_BASE + 4; | 47 | return irq + GROUP4_IRQ_BASE + 4; |
48 | } | 48 | } |
49 | 49 | ||
50 | static void __devinit rc32434_pci_early_fixup(struct pci_dev *dev) | 50 | static void rc32434_pci_early_fixup(struct pci_dev *dev) |
51 | { | 51 | { |
52 | if (PCI_SLOT(dev->devfn) == 6 && dev->bus->number == 0) { | 52 | if (PCI_SLOT(dev->devfn) == 6 && dev->bus->number == 0) { |
53 | /* disable prefetched memory range */ | 53 | /* disable prefetched memory range */ |
diff --git a/arch/mips/pci/fixup-sb1250.c b/arch/mips/pci/fixup-sb1250.c index d02900a72916..1441becdcb6c 100644 --- a/arch/mips/pci/fixup-sb1250.c +++ b/arch/mips/pci/fixup-sb1250.c | |||
@@ -15,7 +15,7 @@ | |||
15 | * Set the BCM1250, etc. PCI host bridge's TRDY timeout | 15 | * Set the BCM1250, etc. PCI host bridge's TRDY timeout |
16 | * to the finite max. | 16 | * to the finite max. |
17 | */ | 17 | */ |
18 | static void __devinit quirk_sb1250_pci(struct pci_dev *dev) | 18 | static void quirk_sb1250_pci(struct pci_dev *dev) |
19 | { | 19 | { |
20 | pci_write_config_byte(dev, 0x40, 0xff); | 20 | pci_write_config_byte(dev, 0x40, 0xff); |
21 | } | 21 | } |
@@ -25,7 +25,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SIBYTE, PCI_DEVICE_ID_BCM1250_PCI, | |||
25 | /* | 25 | /* |
26 | * The BCM1250, etc. PCI/HT bridge reports as a host bridge. | 26 | * The BCM1250, etc. PCI/HT bridge reports as a host bridge. |
27 | */ | 27 | */ |
28 | static void __devinit quirk_sb1250_ht(struct pci_dev *dev) | 28 | static void quirk_sb1250_ht(struct pci_dev *dev) |
29 | { | 29 | { |
30 | dev->class = PCI_CLASS_BRIDGE_PCI << 8; | 30 | dev->class = PCI_CLASS_BRIDGE_PCI << 8; |
31 | } | 31 | } |
@@ -35,7 +35,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SIBYTE, PCI_DEVICE_ID_BCM1250_HT, | |||
35 | /* | 35 | /* |
36 | * Set the SP1011 HT/PCI bridge's TRDY timeout to the finite max. | 36 | * Set the SP1011 HT/PCI bridge's TRDY timeout to the finite max. |
37 | */ | 37 | */ |
38 | static void __devinit quirk_sp1011(struct pci_dev *dev) | 38 | static void quirk_sp1011(struct pci_dev *dev) |
39 | { | 39 | { |
40 | pci_write_config_byte(dev, 0x64, 0xff); | 40 | pci_write_config_byte(dev, 0x64, 0xff); |
41 | } | 41 | } |
diff --git a/arch/mips/pci/ops-bcm63xx.c b/arch/mips/pci/ops-bcm63xx.c index 65c7bd100486..4a156629e958 100644 --- a/arch/mips/pci/ops-bcm63xx.c +++ b/arch/mips/pci/ops-bcm63xx.c | |||
@@ -411,7 +411,7 @@ struct pci_ops bcm63xx_cb_ops = { | |||
411 | * only one IO window, so it cannot be shared by PCI and cardbus, use | 411 | * only one IO window, so it cannot be shared by PCI and cardbus, use |
412 | * fixup to choose and detect unhandled configuration | 412 | * fixup to choose and detect unhandled configuration |
413 | */ | 413 | */ |
414 | static void __devinit bcm63xx_fixup(struct pci_dev *dev) | 414 | static void bcm63xx_fixup(struct pci_dev *dev) |
415 | { | 415 | { |
416 | static int io_window = -1; | 416 | static int io_window = -1; |
417 | int i, found, new_io_window; | 417 | int i, found, new_io_window; |
diff --git a/arch/mips/pci/ops-tx4927.c b/arch/mips/pci/ops-tx4927.c index bc13e29d2bb3..0d69d6f4ea44 100644 --- a/arch/mips/pci/ops-tx4927.c +++ b/arch/mips/pci/ops-tx4927.c | |||
@@ -191,13 +191,13 @@ static struct { | |||
191 | u8 trdyto; | 191 | u8 trdyto; |
192 | u8 retryto; | 192 | u8 retryto; |
193 | u16 gbwc; | 193 | u16 gbwc; |
194 | } tx4927_pci_opts __devinitdata = { | 194 | } tx4927_pci_opts = { |
195 | .trdyto = 0, | 195 | .trdyto = 0, |
196 | .retryto = 0, | 196 | .retryto = 0, |
197 | .gbwc = 0xfe0, /* 4064 GBUSCLK for CCFG.GTOT=0b11 */ | 197 | .gbwc = 0xfe0, /* 4064 GBUSCLK for CCFG.GTOT=0b11 */ |
198 | }; | 198 | }; |
199 | 199 | ||
200 | char *__devinit tx4927_pcibios_setup(char *str) | 200 | char *tx4927_pcibios_setup(char *str) |
201 | { | 201 | { |
202 | unsigned long val; | 202 | unsigned long val; |
203 | 203 | ||
@@ -495,7 +495,7 @@ irqreturn_t tx4927_pcierr_interrupt(int irq, void *dev_id) | |||
495 | } | 495 | } |
496 | 496 | ||
497 | #ifdef CONFIG_TOSHIBA_FPCIB0 | 497 | #ifdef CONFIG_TOSHIBA_FPCIB0 |
498 | static void __devinit tx4927_quirk_slc90e66_bridge(struct pci_dev *dev) | 498 | static void tx4927_quirk_slc90e66_bridge(struct pci_dev *dev) |
499 | { | 499 | { |
500 | struct tx4927_pcic_reg __iomem *pcicptr = pci_bus_to_pcicptr(dev->bus); | 500 | struct tx4927_pcic_reg __iomem *pcicptr = pci_bus_to_pcicptr(dev->bus); |
501 | 501 | ||
diff --git a/arch/mips/pci/pci-alchemy.c b/arch/mips/pci/pci-alchemy.c index ec125bed721c..c4ea6cc55f94 100644 --- a/arch/mips/pci/pci-alchemy.c +++ b/arch/mips/pci/pci-alchemy.c | |||
@@ -356,7 +356,7 @@ static struct syscore_ops alchemy_pci_pmops = { | |||
356 | .resume = alchemy_pci_resume, | 356 | .resume = alchemy_pci_resume, |
357 | }; | 357 | }; |
358 | 358 | ||
359 | static int __devinit alchemy_pci_probe(struct platform_device *pdev) | 359 | static int alchemy_pci_probe(struct platform_device *pdev) |
360 | { | 360 | { |
361 | struct alchemy_pci_platdata *pd = pdev->dev.platform_data; | 361 | struct alchemy_pci_platdata *pd = pdev->dev.platform_data; |
362 | struct alchemy_pci_context *ctx; | 362 | struct alchemy_pci_context *ctx; |
diff --git a/arch/mips/pci/pci-ip27.c b/arch/mips/pci/pci-ip27.c index fdc24440294c..7f4f49b09b5b 100644 --- a/arch/mips/pci/pci-ip27.c +++ b/arch/mips/pci/pci-ip27.c | |||
@@ -143,7 +143,7 @@ int __cpuinit bridge_probe(nasid_t nasid, int widget_id, int masterwid) | |||
143 | * A given PCI device, in general, should be able to intr any of the cpus | 143 | * A given PCI device, in general, should be able to intr any of the cpus |
144 | * on any one of the hubs connected to its xbow. | 144 | * on any one of the hubs connected to its xbow. |
145 | */ | 145 | */ |
146 | int __devinit pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | 146 | int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
147 | { | 147 | { |
148 | return 0; | 148 | return 0; |
149 | } | 149 | } |
@@ -212,7 +212,7 @@ static inline void pci_enable_swapping(struct pci_dev *dev) | |||
212 | bridge->b_widget.w_tflush; /* Flush */ | 212 | bridge->b_widget.w_tflush; /* Flush */ |
213 | } | 213 | } |
214 | 214 | ||
215 | static void __devinit pci_fixup_ioc3(struct pci_dev *d) | 215 | static void pci_fixup_ioc3(struct pci_dev *d) |
216 | { | 216 | { |
217 | pci_disable_swapping(d); | 217 | pci_disable_swapping(d); |
218 | } | 218 | } |
diff --git a/arch/mips/pci/pci-lantiq.c b/arch/mips/pci/pci-lantiq.c index 075d87acd12a..95681789b51e 100644 --- a/arch/mips/pci/pci-lantiq.c +++ b/arch/mips/pci/pci-lantiq.c | |||
@@ -95,7 +95,7 @@ static inline u32 ltq_calc_bar11mask(void) | |||
95 | return bar11mask; | 95 | return bar11mask; |
96 | } | 96 | } |
97 | 97 | ||
98 | static int __devinit ltq_pci_startup(struct platform_device *pdev) | 98 | static int ltq_pci_startup(struct platform_device *pdev) |
99 | { | 99 | { |
100 | struct device_node *node = pdev->dev.of_node; | 100 | struct device_node *node = pdev->dev.of_node; |
101 | const __be32 *req_mask, *bus_clk; | 101 | const __be32 *req_mask, *bus_clk; |
@@ -201,7 +201,7 @@ static int __devinit ltq_pci_startup(struct platform_device *pdev) | |||
201 | return 0; | 201 | return 0; |
202 | } | 202 | } |
203 | 203 | ||
204 | static int __devinit ltq_pci_probe(struct platform_device *pdev) | 204 | static int ltq_pci_probe(struct platform_device *pdev) |
205 | { | 205 | { |
206 | struct resource *res_cfg, *res_bridge; | 206 | struct resource *res_cfg, *res_bridge; |
207 | 207 | ||
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c index 4040416e0603..a1843448fad3 100644 --- a/arch/mips/pci/pci.c +++ b/arch/mips/pci/pci.c | |||
@@ -76,7 +76,7 @@ pcibios_align_resource(void *data, const struct resource *res, | |||
76 | return start; | 76 | return start; |
77 | } | 77 | } |
78 | 78 | ||
79 | static void __devinit pcibios_scanbus(struct pci_controller *hose) | 79 | static void pcibios_scanbus(struct pci_controller *hose) |
80 | { | 80 | { |
81 | static int next_busno; | 81 | static int next_busno; |
82 | static int need_domain_info; | 82 | static int need_domain_info; |
@@ -120,8 +120,7 @@ static void __devinit pcibios_scanbus(struct pci_controller *hose) | |||
120 | } | 120 | } |
121 | 121 | ||
122 | #ifdef CONFIG_OF | 122 | #ifdef CONFIG_OF |
123 | void __devinit pci_load_of_ranges(struct pci_controller *hose, | 123 | void pci_load_of_ranges(struct pci_controller *hose, struct device_node *node) |
124 | struct device_node *node) | ||
125 | { | 124 | { |
126 | const __be32 *ranges; | 125 | const __be32 *ranges; |
127 | int rlen; | 126 | int rlen; |
@@ -174,7 +173,7 @@ void __devinit pci_load_of_ranges(struct pci_controller *hose, | |||
174 | 173 | ||
175 | static DEFINE_MUTEX(pci_scan_mutex); | 174 | static DEFINE_MUTEX(pci_scan_mutex); |
176 | 175 | ||
177 | void __devinit register_pci_controller(struct pci_controller *hose) | 176 | void register_pci_controller(struct pci_controller *hose) |
178 | { | 177 | { |
179 | if (request_resource(&iomem_resource, hose->mem_resource) < 0) | 178 | if (request_resource(&iomem_resource, hose->mem_resource) < 0) |
180 | goto out; | 179 | goto out; |
@@ -303,7 +302,7 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) | |||
303 | return pcibios_plat_dev_init(dev); | 302 | return pcibios_plat_dev_init(dev); |
304 | } | 303 | } |
305 | 304 | ||
306 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 305 | void pcibios_fixup_bus(struct pci_bus *bus) |
307 | { | 306 | { |
308 | struct pci_dev *dev = bus->self; | 307 | struct pci_dev *dev = bus->self; |
309 | 308 | ||
diff --git a/arch/mips/power/hibernate.S b/arch/mips/power/hibernate.S index f8a751c03282..61e2558a2dcb 100644 --- a/arch/mips/power/hibernate.S +++ b/arch/mips/power/hibernate.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * Wu Zhangjin <wuzhangjin@gmail.com> | 8 | * Wu Zhangjin <wuzhangjin@gmail.com> |
9 | */ | 9 | */ |
10 | #include <asm/asm-offsets.h> | 10 | #include <asm/asm-offsets.h> |
11 | #include <asm/page.h> | ||
12 | #include <asm/regdef.h> | 11 | #include <asm/regdef.h> |
13 | #include <asm/asm.h> | 12 | #include <asm/asm.h> |
14 | 13 | ||
@@ -35,7 +34,7 @@ LEAF(swsusp_arch_resume) | |||
35 | 0: | 34 | 0: |
36 | PTR_L t1, PBE_ADDRESS(t0) /* source */ | 35 | PTR_L t1, PBE_ADDRESS(t0) /* source */ |
37 | PTR_L t2, PBE_ORIG_ADDRESS(t0) /* destination */ | 36 | PTR_L t2, PBE_ORIG_ADDRESS(t0) /* destination */ |
38 | PTR_ADDU t3, t1, PAGE_SIZE | 37 | PTR_ADDU t3, t1, _PAGE_SIZE |
39 | 1: | 38 | 1: |
40 | REG_L t8, (t1) | 39 | REG_L t8, (t1) |
41 | REG_S t8, (t2) | 40 | REG_S t8, (t2) |
diff --git a/arch/mips/sni/setup.c b/arch/mips/sni/setup.c index d6c7bd4b5ab0..2e9c283b8e68 100644 --- a/arch/mips/sni/setup.c +++ b/arch/mips/sni/setup.c | |||
@@ -236,7 +236,7 @@ void __init plat_mem_setup(void) | |||
236 | #include <video/vga.h> | 236 | #include <video/vga.h> |
237 | #include <video/cirrus.h> | 237 | #include <video/cirrus.h> |
238 | 238 | ||
239 | static void __devinit quirk_cirrus_ram_size(struct pci_dev *dev) | 239 | static void quirk_cirrus_ram_size(struct pci_dev *dev) |
240 | { | 240 | { |
241 | u16 cmd; | 241 | u16 cmd; |
242 | 242 | ||
diff --git a/arch/mips/txx9/generic/pci.c b/arch/mips/txx9/generic/pci.c index b14ee53581a9..ce8f8b9b930c 100644 --- a/arch/mips/txx9/generic/pci.c +++ b/arch/mips/txx9/generic/pci.c | |||
@@ -256,8 +256,7 @@ static irqreturn_t i8259_interrupt(int irq, void *dev_id) | |||
256 | return IRQ_HANDLED; | 256 | return IRQ_HANDLED; |
257 | } | 257 | } |
258 | 258 | ||
259 | static int __devinit | 259 | static int txx9_i8259_irq_setup(int irq) |
260 | txx9_i8259_irq_setup(int irq) | ||
261 | { | 260 | { |
262 | int err; | 261 | int err; |
263 | 262 | ||
@@ -269,7 +268,7 @@ txx9_i8259_irq_setup(int irq) | |||
269 | return err; | 268 | return err; |
270 | } | 269 | } |
271 | 270 | ||
272 | static void __devinit quirk_slc90e66_bridge(struct pci_dev *dev) | 271 | static void quirk_slc90e66_bridge(struct pci_dev *dev) |
273 | { | 272 | { |
274 | int irq; /* PCI/ISA Bridge interrupt */ | 273 | int irq; /* PCI/ISA Bridge interrupt */ |
275 | u8 reg_64; | 274 | u8 reg_64; |
@@ -304,7 +303,7 @@ static void __devinit quirk_slc90e66_bridge(struct pci_dev *dev) | |||
304 | smsc_fdc37m81x_config_end(); | 303 | smsc_fdc37m81x_config_end(); |
305 | } | 304 | } |
306 | 305 | ||
307 | static void __devinit quirk_slc90e66_ide(struct pci_dev *dev) | 306 | static void quirk_slc90e66_ide(struct pci_dev *dev) |
308 | { | 307 | { |
309 | unsigned char dat; | 308 | unsigned char dat; |
310 | int regs[2] = {0x41, 0x43}; | 309 | int regs[2] = {0x41, 0x43}; |
@@ -339,7 +338,7 @@ static void __devinit quirk_slc90e66_ide(struct pci_dev *dev) | |||
339 | } | 338 | } |
340 | #endif /* CONFIG_TOSHIBA_FPCIB0 */ | 339 | #endif /* CONFIG_TOSHIBA_FPCIB0 */ |
341 | 340 | ||
342 | static void __devinit tc35815_fixup(struct pci_dev *dev) | 341 | static void tc35815_fixup(struct pci_dev *dev) |
343 | { | 342 | { |
344 | /* This device may have PM registers but not they are not supported. */ | 343 | /* This device may have PM registers but not they are not supported. */ |
345 | if (dev->pm_cap) { | 344 | if (dev->pm_cap) { |
@@ -348,7 +347,7 @@ static void __devinit tc35815_fixup(struct pci_dev *dev) | |||
348 | } | 347 | } |
349 | } | 348 | } |
350 | 349 | ||
351 | static void __devinit final_fixup(struct pci_dev *dev) | 350 | static void final_fixup(struct pci_dev *dev) |
352 | { | 351 | { |
353 | unsigned char bist; | 352 | unsigned char bist; |
354 | 353 | ||
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig index aa03f2e13385..e70001cfa05b 100644 --- a/arch/mn10300/Kconfig +++ b/arch/mn10300/Kconfig | |||
@@ -6,6 +6,7 @@ config MN10300 | |||
6 | select ARCH_WANT_IPC_PARSE_VERSION | 6 | select ARCH_WANT_IPC_PARSE_VERSION |
7 | select HAVE_ARCH_TRACEHOOK | 7 | select HAVE_ARCH_TRACEHOOK |
8 | select HAVE_ARCH_KGDB | 8 | select HAVE_ARCH_KGDB |
9 | select GENERIC_ATOMIC64 | ||
9 | select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER | 10 | select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER |
10 | select GENERIC_CLOCKEVENTS | 11 | select GENERIC_CLOCKEVENTS |
11 | select MODULES_USE_ELF_RELA | 12 | select MODULES_USE_ELF_RELA |
diff --git a/arch/mn10300/kernel/smp.c b/arch/mn10300/kernel/smp.c index 95983cd21e77..5d7e152a23b7 100644 --- a/arch/mn10300/kernel/smp.c +++ b/arch/mn10300/kernel/smp.c | |||
@@ -905,7 +905,7 @@ void __init smp_cpus_done(unsigned int max_cpus) | |||
905 | * Set up the cpu_online_mask, cpu_callout_map and cpu_callin_map of the boot | 905 | * Set up the cpu_online_mask, cpu_callout_map and cpu_callin_map of the boot |
906 | * processor (CPU 0). | 906 | * processor (CPU 0). |
907 | */ | 907 | */ |
908 | void __devinit smp_prepare_boot_cpu(void) | 908 | void smp_prepare_boot_cpu(void) |
909 | { | 909 | { |
910 | cpumask_set_cpu(0, &cpu_callout_map); | 910 | cpumask_set_cpu(0, &cpu_callout_map); |
911 | cpumask_set_cpu(0, &cpu_callin_map); | 911 | cpumask_set_cpu(0, &cpu_callin_map); |
@@ -930,7 +930,7 @@ void initialize_secondary(void) | |||
930 | * __cpu_up - Set smp_commenced_mask for the nominated CPU | 930 | * __cpu_up - Set smp_commenced_mask for the nominated CPU |
931 | * @cpu: The target CPU. | 931 | * @cpu: The target CPU. |
932 | */ | 932 | */ |
933 | int __devinit __cpu_up(unsigned int cpu, struct task_struct *tidle) | 933 | int __cpu_up(unsigned int cpu, struct task_struct *tidle) |
934 | { | 934 | { |
935 | int timeout; | 935 | int timeout; |
936 | 936 | ||
diff --git a/arch/mn10300/unit-asb2305/pci.c b/arch/mn10300/unit-asb2305/pci.c index e2059486d3f8..6911e845b8cd 100644 --- a/arch/mn10300/unit-asb2305/pci.c +++ b/arch/mn10300/unit-asb2305/pci.c | |||
@@ -282,7 +282,7 @@ static int __init pci_check_direct(void) | |||
282 | return -ENODEV; | 282 | return -ENODEV; |
283 | } | 283 | } |
284 | 284 | ||
285 | static int __devinit is_valid_resource(struct pci_dev *dev, int idx) | 285 | static int is_valid_resource(struct pci_dev *dev, int idx) |
286 | { | 286 | { |
287 | unsigned int i, type_mask = IORESOURCE_IO | IORESOURCE_MEM; | 287 | unsigned int i, type_mask = IORESOURCE_IO | IORESOURCE_MEM; |
288 | struct resource *devr = &dev->resource[idx], *busr; | 288 | struct resource *devr = &dev->resource[idx], *busr; |
@@ -302,7 +302,7 @@ static int __devinit is_valid_resource(struct pci_dev *dev, int idx) | |||
302 | return 0; | 302 | return 0; |
303 | } | 303 | } |
304 | 304 | ||
305 | static void __devinit pcibios_fixup_device_resources(struct pci_dev *dev) | 305 | static void pcibios_fixup_device_resources(struct pci_dev *dev) |
306 | { | 306 | { |
307 | int limit, i; | 307 | int limit, i; |
308 | 308 | ||
@@ -325,7 +325,7 @@ static void __devinit pcibios_fixup_device_resources(struct pci_dev *dev) | |||
325 | * Called after each bus is probed, but before its children | 325 | * Called after each bus is probed, but before its children |
326 | * are examined. | 326 | * are examined. |
327 | */ | 327 | */ |
328 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 328 | void pcibios_fixup_bus(struct pci_bus *bus) |
329 | { | 329 | { |
330 | struct pci_dev *dev; | 330 | struct pci_dev *dev; |
331 | 331 | ||
diff --git a/arch/openrisc/lib/delay.c b/arch/openrisc/lib/delay.c index c330767c9217..c82b09f4a106 100644 --- a/arch/openrisc/lib/delay.c +++ b/arch/openrisc/lib/delay.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <asm/timex.h> | 22 | #include <asm/timex.h> |
23 | #include <asm/processor.h> | 23 | #include <asm/processor.h> |
24 | 24 | ||
25 | int __devinit read_current_timer(unsigned long *timer_value) | 25 | int read_current_timer(unsigned long *timer_value) |
26 | { | 26 | { |
27 | *timer_value = mfspr(SPR_TTCR); | 27 | *timer_value = mfspr(SPR_TTCR); |
28 | return 0; | 28 | return 0; |
diff --git a/arch/parisc/include/asm/parport.h b/arch/parisc/include/asm/parport.h index 00d9cc3e7b97..c391d7cbc223 100644 --- a/arch/parisc/include/asm/parport.h +++ b/arch/parisc/include/asm/parport.h | |||
@@ -8,7 +8,7 @@ | |||
8 | #define _ASM_PARPORT_H 1 | 8 | #define _ASM_PARPORT_H 1 |
9 | 9 | ||
10 | 10 | ||
11 | static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma) | 11 | static int parport_pc_find_nonpci_ports (int autoirq, int autodma) |
12 | { | 12 | { |
13 | /* nothing ! */ | 13 | /* nothing ! */ |
14 | return 0; | 14 | return 0; |
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index bfb44247d7a7..eb7850b46c25 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S | |||
@@ -1865,7 +1865,7 @@ syscall_restore: | |||
1865 | 1865 | ||
1866 | /* Are we being ptraced? */ | 1866 | /* Are we being ptraced? */ |
1867 | ldw TASK_FLAGS(%r1),%r19 | 1867 | ldw TASK_FLAGS(%r1),%r19 |
1868 | ldi (_TIF_SINGLESTEP|_TIF_BLOCKSTEP),%r2 | 1868 | ldi _TIF_SYSCALL_TRACE_MASK,%r2 |
1869 | and,COND(=) %r19,%r2,%r0 | 1869 | and,COND(=) %r19,%r2,%r0 |
1870 | b,n syscall_restore_rfi | 1870 | b,n syscall_restore_rfi |
1871 | 1871 | ||
@@ -1978,15 +1978,23 @@ syscall_restore_rfi: | |||
1978 | /* sr2 should be set to zero for userspace syscalls */ | 1978 | /* sr2 should be set to zero for userspace syscalls */ |
1979 | STREG %r0,TASK_PT_SR2(%r1) | 1979 | STREG %r0,TASK_PT_SR2(%r1) |
1980 | 1980 | ||
1981 | pt_regs_ok: | ||
1982 | LDREG TASK_PT_GR31(%r1),%r2 | 1981 | LDREG TASK_PT_GR31(%r1),%r2 |
1983 | depi 3,31,2,%r2 /* ensure return to user mode. */ | 1982 | depi 3,31,2,%r2 /* ensure return to user mode. */ |
1984 | STREG %r2,TASK_PT_IAOQ0(%r1) | 1983 | STREG %r2,TASK_PT_IAOQ0(%r1) |
1985 | ldo 4(%r2),%r2 | 1984 | ldo 4(%r2),%r2 |
1986 | STREG %r2,TASK_PT_IAOQ1(%r1) | 1985 | STREG %r2,TASK_PT_IAOQ1(%r1) |
1986 | b intr_restore | ||
1987 | copy %r25,%r16 | 1987 | copy %r25,%r16 |
1988 | |||
1989 | pt_regs_ok: | ||
1990 | LDREG TASK_PT_IAOQ0(%r1),%r2 | ||
1991 | depi 3,31,2,%r2 /* ensure return to user mode. */ | ||
1992 | STREG %r2,TASK_PT_IAOQ0(%r1) | ||
1993 | LDREG TASK_PT_IAOQ1(%r1),%r2 | ||
1994 | depi 3,31,2,%r2 | ||
1995 | STREG %r2,TASK_PT_IAOQ1(%r1) | ||
1988 | b intr_restore | 1996 | b intr_restore |
1989 | nop | 1997 | copy %r25,%r16 |
1990 | 1998 | ||
1991 | .import schedule,code | 1999 | .import schedule,code |
1992 | syscall_do_resched: | 2000 | syscall_do_resched: |
diff --git a/arch/parisc/kernel/hardware.c b/arch/parisc/kernel/hardware.c index f48a640b55fb..f7752f6af29e 100644 --- a/arch/parisc/kernel/hardware.c +++ b/arch/parisc/kernel/hardware.c | |||
@@ -38,7 +38,7 @@ | |||
38 | * so don't reference this table after starting the init process | 38 | * so don't reference this table after starting the init process |
39 | */ | 39 | */ |
40 | 40 | ||
41 | static struct hp_hardware hp_hardware_list[] __devinitdata = { | 41 | static struct hp_hardware hp_hardware_list[] = { |
42 | {HPHW_NPROC,0x01,0x4,0x0,"Indigo (840, 930)"}, | 42 | {HPHW_NPROC,0x01,0x4,0x0,"Indigo (840, 930)"}, |
43 | {HPHW_NPROC,0x8,0x4,0x01,"Firefox(825,925)"}, | 43 | {HPHW_NPROC,0x8,0x4,0x01,"Firefox(825,925)"}, |
44 | {HPHW_NPROC,0xA,0x4,0x01,"Top Gun (835,834,935,635)"}, | 44 | {HPHW_NPROC,0xA,0x4,0x01,"Top Gun (835,834,935,635)"}, |
@@ -1230,7 +1230,7 @@ static struct hp_cpu_type_mask { | |||
1230 | unsigned short model; | 1230 | unsigned short model; |
1231 | unsigned short mask; | 1231 | unsigned short mask; |
1232 | enum cpu_type cpu; | 1232 | enum cpu_type cpu; |
1233 | } hp_cpu_type_mask_list[] __devinitdata = { | 1233 | } hp_cpu_type_mask_list[] = { |
1234 | 1234 | ||
1235 | { 0x0000, 0x0ff0, pcx }, /* 0x0000 - 0x000f */ | 1235 | { 0x0000, 0x0ff0, pcx }, /* 0x0000 - 0x000f */ |
1236 | { 0x0048, 0x0ff0, pcxl }, /* 0x0040 - 0x004f */ | 1236 | { 0x0048, 0x0ff0, pcxl }, /* 0x0040 - 0x004f */ |
@@ -1327,8 +1327,7 @@ const char * const cpu_name_version[][2] = { | |||
1327 | [mako2] = { "PA8900 (Shortfin)", "2.0" } | 1327 | [mako2] = { "PA8900 (Shortfin)", "2.0" } |
1328 | }; | 1328 | }; |
1329 | 1329 | ||
1330 | const char * __devinit | 1330 | const char *parisc_hardware_description(struct parisc_device_id *id) |
1331 | parisc_hardware_description(struct parisc_device_id *id) | ||
1332 | { | 1331 | { |
1333 | struct hp_hardware *listptr; | 1332 | struct hp_hardware *listptr; |
1334 | 1333 | ||
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index c0b1affc06a8..0299d63cd112 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c | |||
@@ -410,11 +410,13 @@ void __init init_IRQ(void) | |||
410 | { | 410 | { |
411 | local_irq_disable(); /* PARANOID - should already be disabled */ | 411 | local_irq_disable(); /* PARANOID - should already be disabled */ |
412 | mtctl(~0UL, 23); /* EIRR : clear all pending external intr */ | 412 | mtctl(~0UL, 23); /* EIRR : clear all pending external intr */ |
413 | claim_cpu_irqs(); | ||
414 | #ifdef CONFIG_SMP | 413 | #ifdef CONFIG_SMP |
415 | if (!cpu_eiem) | 414 | if (!cpu_eiem) { |
415 | claim_cpu_irqs(); | ||
416 | cpu_eiem = EIEM_MASK(IPI_IRQ) | EIEM_MASK(TIMER_IRQ); | 416 | cpu_eiem = EIEM_MASK(IPI_IRQ) | EIEM_MASK(TIMER_IRQ); |
417 | } | ||
417 | #else | 418 | #else |
419 | claim_cpu_irqs(); | ||
418 | cpu_eiem = EIEM_MASK(TIMER_IRQ); | 420 | cpu_eiem = EIEM_MASK(TIMER_IRQ); |
419 | #endif | 421 | #endif |
420 | set_eiem(cpu_eiem); /* EIEM : enable all external intr */ | 422 | set_eiem(cpu_eiem); /* EIEM : enable all external intr */ |
diff --git a/arch/parisc/kernel/ptrace.c b/arch/parisc/kernel/ptrace.c index 857c2f545470..534abd4936e1 100644 --- a/arch/parisc/kernel/ptrace.c +++ b/arch/parisc/kernel/ptrace.c | |||
@@ -26,7 +26,7 @@ | |||
26 | #include <asm/asm-offsets.h> | 26 | #include <asm/asm-offsets.h> |
27 | 27 | ||
28 | /* PSW bits we allow the debugger to modify */ | 28 | /* PSW bits we allow the debugger to modify */ |
29 | #define USER_PSW_BITS (PSW_N | PSW_V | PSW_CB) | 29 | #define USER_PSW_BITS (PSW_N | PSW_B | PSW_V | PSW_CB) |
30 | 30 | ||
31 | /* | 31 | /* |
32 | * Called by kernel/ptrace.c when detaching.. | 32 | * Called by kernel/ptrace.c when detaching.. |
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c index 537996955998..fd051705a407 100644 --- a/arch/parisc/kernel/signal.c +++ b/arch/parisc/kernel/signal.c | |||
@@ -190,8 +190,10 @@ get_sigframe(struct k_sigaction *ka, unsigned long sp, size_t frame_size) | |||
190 | DBG(1,"get_sigframe: ka = %#lx, sp = %#lx, frame_size = %#lx\n", | 190 | DBG(1,"get_sigframe: ka = %#lx, sp = %#lx, frame_size = %#lx\n", |
191 | (unsigned long)ka, sp, frame_size); | 191 | (unsigned long)ka, sp, frame_size); |
192 | 192 | ||
193 | /* Align alternate stack and reserve 64 bytes for the signal | ||
194 | handler's frame marker. */ | ||
193 | if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && ! sas_ss_flags(sp)) | 195 | if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && ! sas_ss_flags(sp)) |
194 | sp = current->sas_ss_sp; /* Stacks grow up! */ | 196 | sp = (current->sas_ss_sp + 0x7f) & ~0x3f; /* Stacks grow up! */ |
195 | 197 | ||
196 | DBG(1,"get_sigframe: Returning sp = %#lx\n", (unsigned long)sp); | 198 | DBG(1,"get_sigframe: Returning sp = %#lx\n", (unsigned long)sp); |
197 | return (void __user *) sp; /* Stacks grow up. Fun. */ | 199 | return (void __user *) sp; /* Stacks grow up. Fun. */ |
diff --git a/arch/parisc/math-emu/cnv_float.h b/arch/parisc/math-emu/cnv_float.h index 9071e093164a..933423fa5144 100644 --- a/arch/parisc/math-emu/cnv_float.h +++ b/arch/parisc/math-emu/cnv_float.h | |||
@@ -347,16 +347,15 @@ | |||
347 | Sgl_isinexact_to_fix(sgl_value,exponent) | 347 | Sgl_isinexact_to_fix(sgl_value,exponent) |
348 | 348 | ||
349 | #define Duint_from_sgl_mantissa(sgl_value,exponent,dresultA,dresultB) \ | 349 | #define Duint_from_sgl_mantissa(sgl_value,exponent,dresultA,dresultB) \ |
350 | {Sall(sgl_value) <<= SGL_EXP_LENGTH; /* left-justify */ \ | 350 | {unsigned int val = Sall(sgl_value) << SGL_EXP_LENGTH; \ |
351 | if (exponent <= 31) { \ | 351 | if (exponent <= 31) { \ |
352 | Dintp1(dresultA) = 0; \ | 352 | Dintp1(dresultA) = 0; \ |
353 | Dintp2(dresultB) = (unsigned)Sall(sgl_value) >> (31 - exponent); \ | 353 | Dintp2(dresultB) = val >> (31 - exponent); \ |
354 | } \ | 354 | } \ |
355 | else { \ | 355 | else { \ |
356 | Dintp1(dresultA) = Sall(sgl_value) >> (63 - exponent); \ | 356 | Dintp1(dresultA) = val >> (63 - exponent); \ |
357 | Dintp2(dresultB) = Sall(sgl_value) << (exponent - 31); \ | 357 | Dintp2(dresultB) = exponent <= 62 ? val << (exponent - 31) : 0; \ |
358 | } \ | 358 | } \ |
359 | Sall(sgl_value) >>= SGL_EXP_LENGTH; /* return to original */ \ | ||
360 | } | 359 | } |
361 | 360 | ||
362 | #define Duint_setzero(dresultA,dresultB) \ | 361 | #define Duint_setzero(dresultA,dresultB) \ |
diff --git a/arch/powerpc/include/asm/eeh.h b/arch/powerpc/include/asm/eeh.h index b0ef73882b38..a8fb03e22770 100644 --- a/arch/powerpc/include/asm/eeh.h +++ b/arch/powerpc/include/asm/eeh.h | |||
@@ -183,7 +183,7 @@ static inline void eeh_unlock(void) | |||
183 | #define EEH_MAX_ALLOWED_FREEZES 5 | 183 | #define EEH_MAX_ALLOWED_FREEZES 5 |
184 | 184 | ||
185 | typedef void *(*eeh_traverse_func)(void *data, void *flag); | 185 | typedef void *(*eeh_traverse_func)(void *data, void *flag); |
186 | int __devinit eeh_phb_pe_create(struct pci_controller *phb); | 186 | int eeh_phb_pe_create(struct pci_controller *phb); |
187 | int eeh_add_to_parent_pe(struct eeh_dev *edev); | 187 | int eeh_add_to_parent_pe(struct eeh_dev *edev); |
188 | int eeh_rmv_from_parent_pe(struct eeh_dev *edev, int purge_pe); | 188 | int eeh_rmv_from_parent_pe(struct eeh_dev *edev, int purge_pe); |
189 | void *eeh_pe_dev_traverse(struct eeh_pe *root, | 189 | void *eeh_pe_dev_traverse(struct eeh_pe *root, |
@@ -191,8 +191,8 @@ void *eeh_pe_dev_traverse(struct eeh_pe *root, | |||
191 | void eeh_pe_restore_bars(struct eeh_pe *pe); | 191 | void eeh_pe_restore_bars(struct eeh_pe *pe); |
192 | struct pci_bus *eeh_pe_bus_get(struct eeh_pe *pe); | 192 | struct pci_bus *eeh_pe_bus_get(struct eeh_pe *pe); |
193 | 193 | ||
194 | void * __devinit eeh_dev_init(struct device_node *dn, void *data); | 194 | void *eeh_dev_init(struct device_node *dn, void *data); |
195 | void __devinit eeh_dev_phb_init_dynamic(struct pci_controller *phb); | 195 | void eeh_dev_phb_init_dynamic(struct pci_controller *phb); |
196 | int __init eeh_ops_register(struct eeh_ops *ops); | 196 | int __init eeh_ops_register(struct eeh_ops *ops); |
197 | int __exit eeh_ops_unregister(const char *name); | 197 | int __exit eeh_ops_unregister(const char *name); |
198 | unsigned long eeh_check_failure(const volatile void __iomem *token, | 198 | unsigned long eeh_check_failure(const volatile void __iomem *token, |
diff --git a/arch/powerpc/include/asm/io-workarounds.h b/arch/powerpc/include/asm/io-workarounds.h index fbae49286926..f96dd096ff4e 100644 --- a/arch/powerpc/include/asm/io-workarounds.h +++ b/arch/powerpc/include/asm/io-workarounds.h | |||
@@ -31,8 +31,8 @@ struct iowa_bus { | |||
31 | void *private; | 31 | void *private; |
32 | }; | 32 | }; |
33 | 33 | ||
34 | void __devinit iowa_register_bus(struct pci_controller *, struct ppc_pci_io *, | 34 | void iowa_register_bus(struct pci_controller *, struct ppc_pci_io *, |
35 | int (*)(struct iowa_bus *, void *), void *); | 35 | int (*)(struct iowa_bus *, void *), void *); |
36 | struct iowa_bus *iowa_mem_find_bus(const PCI_IO_ADDR); | 36 | struct iowa_bus *iowa_mem_find_bus(const PCI_IO_ADDR); |
37 | struct iowa_bus *iowa_pio_find_bus(unsigned long); | 37 | struct iowa_bus *iowa_pio_find_bus(unsigned long); |
38 | 38 | ||
diff --git a/arch/powerpc/include/asm/parport.h b/arch/powerpc/include/asm/parport.h index 1ca1102b4a2f..6dc2577932b1 100644 --- a/arch/powerpc/include/asm/parport.h +++ b/arch/powerpc/include/asm/parport.h | |||
@@ -12,7 +12,7 @@ | |||
12 | 12 | ||
13 | #include <asm/prom.h> | 13 | #include <asm/prom.h> |
14 | 14 | ||
15 | static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma) | 15 | static int parport_pc_find_nonpci_ports (int autoirq, int autodma) |
16 | { | 16 | { |
17 | struct device_node *np; | 17 | struct device_node *np; |
18 | const u32 *prop; | 18 | const u32 *prop; |
diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h index 5a4e437c238d..195ce2ac5691 100644 --- a/arch/powerpc/include/asm/smp.h +++ b/arch/powerpc/include/asm/smp.h | |||
@@ -54,8 +54,8 @@ struct smp_ops_t { | |||
54 | 54 | ||
55 | extern void smp_send_debugger_break(void); | 55 | extern void smp_send_debugger_break(void); |
56 | extern void start_secondary_resume(void); | 56 | extern void start_secondary_resume(void); |
57 | extern void __devinit smp_generic_give_timebase(void); | 57 | extern void smp_generic_give_timebase(void); |
58 | extern void __devinit smp_generic_take_timebase(void); | 58 | extern void smp_generic_take_timebase(void); |
59 | 59 | ||
60 | DECLARE_PER_CPU(unsigned int, cpu_pvr); | 60 | DECLARE_PER_CPU(unsigned int, cpu_pvr); |
61 | 61 | ||
diff --git a/arch/powerpc/include/asm/vio.h b/arch/powerpc/include/asm/vio.h index df81cb72d1e0..68d0cc998b1b 100644 --- a/arch/powerpc/include/asm/vio.h +++ b/arch/powerpc/include/asm/vio.h | |||
@@ -139,7 +139,7 @@ extern void vio_unregister_driver(struct vio_driver *drv); | |||
139 | extern int vio_cmo_entitlement_update(size_t); | 139 | extern int vio_cmo_entitlement_update(size_t); |
140 | extern void vio_cmo_set_dev_desired(struct vio_dev *viodev, size_t desired); | 140 | extern void vio_cmo_set_dev_desired(struct vio_dev *viodev, size_t desired); |
141 | 141 | ||
142 | extern void __devinit vio_unregister_device(struct vio_dev *dev); | 142 | extern void vio_unregister_device(struct vio_dev *dev); |
143 | 143 | ||
144 | extern int vio_h_cop_sync(struct vio_dev *vdev, struct vio_pfo_op *op); | 144 | extern int vio_h_cop_sync(struct vio_dev *vdev, struct vio_pfo_op *op); |
145 | 145 | ||
diff --git a/arch/powerpc/include/uapi/asm/kvm_para.h b/arch/powerpc/include/uapi/asm/kvm_para.h index ed0e0254b47f..e3af3286a068 100644 --- a/arch/powerpc/include/uapi/asm/kvm_para.h +++ b/arch/powerpc/include/uapi/asm/kvm_para.h | |||
@@ -78,7 +78,7 @@ struct kvm_vcpu_arch_shared { | |||
78 | 78 | ||
79 | #define KVM_HCALL_TOKEN(num) _EV_HCALL_TOKEN(EV_KVM_VENDOR_ID, num) | 79 | #define KVM_HCALL_TOKEN(num) _EV_HCALL_TOKEN(EV_KVM_VENDOR_ID, num) |
80 | 80 | ||
81 | #include <uapi/asm/epapr_hcalls.h> | 81 | #include <asm/epapr_hcalls.h> |
82 | 82 | ||
83 | #define KVM_FEATURE_MAGIC_PAGE 1 | 83 | #define KVM_FEATURE_MAGIC_PAGE 1 |
84 | 84 | ||
diff --git a/arch/powerpc/kernel/io-workarounds.c b/arch/powerpc/kernel/io-workarounds.c index 12d329bcbb98..50e90b7e7139 100644 --- a/arch/powerpc/kernel/io-workarounds.c +++ b/arch/powerpc/kernel/io-workarounds.c | |||
@@ -118,7 +118,7 @@ static void iowa_##name at \ | |||
118 | #undef DEF_PCI_AC_RET | 118 | #undef DEF_PCI_AC_RET |
119 | #undef DEF_PCI_AC_NORET | 119 | #undef DEF_PCI_AC_NORET |
120 | 120 | ||
121 | static const struct ppc_pci_io __devinitconst iowa_pci_io = { | 121 | static const struct ppc_pci_io iowa_pci_io = { |
122 | 122 | ||
123 | #define DEF_PCI_AC_RET(name, ret, at, al, space, aa) .name = iowa_##name, | 123 | #define DEF_PCI_AC_RET(name, ret, at, al, space, aa) .name = iowa_##name, |
124 | #define DEF_PCI_AC_NORET(name, at, al, space, aa) .name = iowa_##name, | 124 | #define DEF_PCI_AC_NORET(name, at, al, space, aa) .name = iowa_##name, |
@@ -146,7 +146,7 @@ static void __iomem *iowa_ioremap(phys_addr_t addr, unsigned long size, | |||
146 | } | 146 | } |
147 | 147 | ||
148 | /* Enable IO workaround */ | 148 | /* Enable IO workaround */ |
149 | static void __devinit io_workaround_init(void) | 149 | static void io_workaround_init(void) |
150 | { | 150 | { |
151 | static int io_workaround_inited; | 151 | static int io_workaround_inited; |
152 | 152 | ||
@@ -158,9 +158,8 @@ static void __devinit io_workaround_init(void) | |||
158 | } | 158 | } |
159 | 159 | ||
160 | /* Register new bus to support workaround */ | 160 | /* Register new bus to support workaround */ |
161 | void __devinit iowa_register_bus(struct pci_controller *phb, | 161 | void iowa_register_bus(struct pci_controller *phb, struct ppc_pci_io *ops, |
162 | struct ppc_pci_io *ops, | 162 | int (*initfunc)(struct iowa_bus *, void *), void *data) |
163 | int (*initfunc)(struct iowa_bus *, void *), void *data) | ||
164 | { | 163 | { |
165 | struct iowa_bus *bus; | 164 | struct iowa_bus *bus; |
166 | struct device_node *np = phb->dn; | 165 | struct device_node *np = phb->dn; |
diff --git a/arch/powerpc/kernel/isa-bridge.c b/arch/powerpc/kernel/isa-bridge.c index d45ec58703ce..0f1997097960 100644 --- a/arch/powerpc/kernel/isa-bridge.c +++ b/arch/powerpc/kernel/isa-bridge.c | |||
@@ -41,8 +41,8 @@ EXPORT_SYMBOL_GPL(isa_bridge_pcidev); | |||
41 | #define ISA_SPACE_MASK 0x1 | 41 | #define ISA_SPACE_MASK 0x1 |
42 | #define ISA_SPACE_IO 0x1 | 42 | #define ISA_SPACE_IO 0x1 |
43 | 43 | ||
44 | static void __devinit pci_process_ISA_OF_ranges(struct device_node *isa_node, | 44 | static void pci_process_ISA_OF_ranges(struct device_node *isa_node, |
45 | unsigned long phb_io_base_phys) | 45 | unsigned long phb_io_base_phys) |
46 | { | 46 | { |
47 | /* We should get some saner parsing here and remove these structs */ | 47 | /* We should get some saner parsing here and remove these structs */ |
48 | struct pci_address { | 48 | struct pci_address { |
@@ -170,8 +170,8 @@ void __init isa_bridge_find_early(struct pci_controller *hose) | |||
170 | * isa_bridge_find_late - Find and map the ISA IO space upon discovery of | 170 | * isa_bridge_find_late - Find and map the ISA IO space upon discovery of |
171 | * a new ISA bridge | 171 | * a new ISA bridge |
172 | */ | 172 | */ |
173 | static void __devinit isa_bridge_find_late(struct pci_dev *pdev, | 173 | static void isa_bridge_find_late(struct pci_dev *pdev, |
174 | struct device_node *devnode) | 174 | struct device_node *devnode) |
175 | { | 175 | { |
176 | struct pci_controller *hose = pci_bus_to_host(pdev->bus); | 176 | struct pci_controller *hose = pci_bus_to_host(pdev->bus); |
177 | 177 | ||
@@ -215,8 +215,8 @@ static void isa_bridge_remove(void) | |||
215 | /** | 215 | /** |
216 | * isa_bridge_notify - Get notified of PCI devices addition/removal | 216 | * isa_bridge_notify - Get notified of PCI devices addition/removal |
217 | */ | 217 | */ |
218 | static int __devinit isa_bridge_notify(struct notifier_block *nb, | 218 | static int isa_bridge_notify(struct notifier_block *nb, unsigned long action, |
219 | unsigned long action, void *data) | 219 | void *data) |
220 | { | 220 | { |
221 | struct device *dev = data; | 221 | struct device *dev = data; |
222 | struct pci_dev *pdev = to_pci_dev(dev); | 222 | struct pci_dev *pdev = to_pci_dev(dev); |
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c index 9db8ec07ec94..07c12697d708 100644 --- a/arch/powerpc/kernel/of_platform.c +++ b/arch/powerpc/kernel/of_platform.c | |||
@@ -37,7 +37,7 @@ | |||
37 | * lacking some bits needed here. | 37 | * lacking some bits needed here. |
38 | */ | 38 | */ |
39 | 39 | ||
40 | static int __devinit of_pci_phb_probe(struct platform_device *dev) | 40 | static int of_pci_phb_probe(struct platform_device *dev) |
41 | { | 41 | { |
42 | struct pci_controller *phb; | 42 | struct pci_controller *phb; |
43 | 43 | ||
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index abc0d0856994..7c37379ea9b1 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
@@ -673,9 +673,8 @@ void pci_resource_to_user(const struct pci_dev *dev, int bar, | |||
673 | * - Some 32 bits platforms such as 4xx can have physical space larger than | 673 | * - Some 32 bits platforms such as 4xx can have physical space larger than |
674 | * 32 bits so we need to use 64 bits values for the parsing | 674 | * 32 bits so we need to use 64 bits values for the parsing |
675 | */ | 675 | */ |
676 | void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose, | 676 | void pci_process_bridge_OF_ranges(struct pci_controller *hose, |
677 | struct device_node *dev, | 677 | struct device_node *dev, int primary) |
678 | int primary) | ||
679 | { | 678 | { |
680 | const u32 *ranges; | 679 | const u32 *ranges; |
681 | int rlen; | 680 | int rlen; |
@@ -848,7 +847,7 @@ int pci_proc_domain(struct pci_bus *bus) | |||
848 | /* This header fixup will do the resource fixup for all devices as they are | 847 | /* This header fixup will do the resource fixup for all devices as they are |
849 | * probed, but not for bridge ranges | 848 | * probed, but not for bridge ranges |
850 | */ | 849 | */ |
851 | static void __devinit pcibios_fixup_resources(struct pci_dev *dev) | 850 | static void pcibios_fixup_resources(struct pci_dev *dev) |
852 | { | 851 | { |
853 | struct pci_controller *hose = pci_bus_to_host(dev->bus); | 852 | struct pci_controller *hose = pci_bus_to_host(dev->bus); |
854 | int i; | 853 | int i; |
@@ -902,8 +901,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_fixup_resources); | |||
902 | * things go more smoothly when it gets it right. It should covers cases such | 901 | * things go more smoothly when it gets it right. It should covers cases such |
903 | * as Apple "closed" bridge resources and bare-metal pSeries unassigned bridges | 902 | * as Apple "closed" bridge resources and bare-metal pSeries unassigned bridges |
904 | */ | 903 | */ |
905 | static int __devinit pcibios_uninitialized_bridge_resource(struct pci_bus *bus, | 904 | static int pcibios_uninitialized_bridge_resource(struct pci_bus *bus, |
906 | struct resource *res) | 905 | struct resource *res) |
907 | { | 906 | { |
908 | struct pci_controller *hose = pci_bus_to_host(bus); | 907 | struct pci_controller *hose = pci_bus_to_host(bus); |
909 | struct pci_dev *dev = bus->self; | 908 | struct pci_dev *dev = bus->self; |
@@ -967,7 +966,7 @@ static int __devinit pcibios_uninitialized_bridge_resource(struct pci_bus *bus, | |||
967 | } | 966 | } |
968 | 967 | ||
969 | /* Fixup resources of a PCI<->PCI bridge */ | 968 | /* Fixup resources of a PCI<->PCI bridge */ |
970 | static void __devinit pcibios_fixup_bridge(struct pci_bus *bus) | 969 | static void pcibios_fixup_bridge(struct pci_bus *bus) |
971 | { | 970 | { |
972 | struct resource *res; | 971 | struct resource *res; |
973 | int i; | 972 | int i; |
@@ -1007,7 +1006,7 @@ static void __devinit pcibios_fixup_bridge(struct pci_bus *bus) | |||
1007 | } | 1006 | } |
1008 | } | 1007 | } |
1009 | 1008 | ||
1010 | void __devinit pcibios_setup_bus_self(struct pci_bus *bus) | 1009 | void pcibios_setup_bus_self(struct pci_bus *bus) |
1011 | { | 1010 | { |
1012 | /* Fix up the bus resources for P2P bridges */ | 1011 | /* Fix up the bus resources for P2P bridges */ |
1013 | if (bus->self != NULL) | 1012 | if (bus->self != NULL) |
@@ -1024,7 +1023,7 @@ void __devinit pcibios_setup_bus_self(struct pci_bus *bus) | |||
1024 | ppc_md.pci_dma_bus_setup(bus); | 1023 | ppc_md.pci_dma_bus_setup(bus); |
1025 | } | 1024 | } |
1026 | 1025 | ||
1027 | void __devinit pcibios_setup_bus_devices(struct pci_bus *bus) | 1026 | void pcibios_setup_bus_devices(struct pci_bus *bus) |
1028 | { | 1027 | { |
1029 | struct pci_dev *dev; | 1028 | struct pci_dev *dev; |
1030 | 1029 | ||
@@ -1063,7 +1062,7 @@ void pcibios_set_master(struct pci_dev *dev) | |||
1063 | /* No special bus mastering setup handling */ | 1062 | /* No special bus mastering setup handling */ |
1064 | } | 1063 | } |
1065 | 1064 | ||
1066 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 1065 | void pcibios_fixup_bus(struct pci_bus *bus) |
1067 | { | 1066 | { |
1068 | /* When called from the generic PCI probe, read PCI<->PCI bridge | 1067 | /* When called from the generic PCI probe, read PCI<->PCI bridge |
1069 | * bases. This is -not- called when generating the PCI tree from | 1068 | * bases. This is -not- called when generating the PCI tree from |
@@ -1080,7 +1079,7 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus) | |||
1080 | } | 1079 | } |
1081 | EXPORT_SYMBOL(pcibios_fixup_bus); | 1080 | EXPORT_SYMBOL(pcibios_fixup_bus); |
1082 | 1081 | ||
1083 | void __devinit pci_fixup_cardbus(struct pci_bus *bus) | 1082 | void pci_fixup_cardbus(struct pci_bus *bus) |
1084 | { | 1083 | { |
1085 | /* Now fixup devices on that bus */ | 1084 | /* Now fixup devices on that bus */ |
1086 | pcibios_setup_bus_devices(bus); | 1085 | pcibios_setup_bus_devices(bus); |
@@ -1264,7 +1263,7 @@ void pcibios_allocate_bus_resources(struct pci_bus *bus) | |||
1264 | pcibios_allocate_bus_resources(b); | 1263 | pcibios_allocate_bus_resources(b); |
1265 | } | 1264 | } |
1266 | 1265 | ||
1267 | static inline void __devinit alloc_resource(struct pci_dev *dev, int idx) | 1266 | static inline void alloc_resource(struct pci_dev *dev, int idx) |
1268 | { | 1267 | { |
1269 | struct resource *pr, *r = &dev->resource[idx]; | 1268 | struct resource *pr, *r = &dev->resource[idx]; |
1270 | 1269 | ||
@@ -1500,7 +1499,8 @@ resource_size_t pcibios_io_space_offset(struct pci_controller *hose) | |||
1500 | return (unsigned long) hose->io_base_virt - _IO_BASE; | 1499 | return (unsigned long) hose->io_base_virt - _IO_BASE; |
1501 | } | 1500 | } |
1502 | 1501 | ||
1503 | static void __devinit pcibios_setup_phb_resources(struct pci_controller *hose, struct list_head *resources) | 1502 | static void pcibios_setup_phb_resources(struct pci_controller *hose, |
1503 | struct list_head *resources) | ||
1504 | { | 1504 | { |
1505 | struct resource *res; | 1505 | struct resource *res; |
1506 | int i; | 1506 | int i; |
@@ -1639,7 +1639,7 @@ struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus) | |||
1639 | * pci_scan_phb - Given a pci_controller, setup and scan the PCI bus | 1639 | * pci_scan_phb - Given a pci_controller, setup and scan the PCI bus |
1640 | * @hose: Pointer to the PCI host controller instance structure | 1640 | * @hose: Pointer to the PCI host controller instance structure |
1641 | */ | 1641 | */ |
1642 | void __devinit pcibios_scan_phb(struct pci_controller *hose) | 1642 | void pcibios_scan_phb(struct pci_controller *hose) |
1643 | { | 1643 | { |
1644 | LIST_HEAD(resources); | 1644 | LIST_HEAD(resources); |
1645 | struct pci_bus *bus; | 1645 | struct pci_bus *bus; |
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c index 64f526a321f5..e37c2152acf4 100644 --- a/arch/powerpc/kernel/pci_32.c +++ b/arch/powerpc/kernel/pci_32.c | |||
@@ -213,7 +213,7 @@ pci_create_OF_bus_map(void) | |||
213 | } | 213 | } |
214 | } | 214 | } |
215 | 215 | ||
216 | void __devinit pcibios_setup_phb_io_space(struct pci_controller *hose) | 216 | void pcibios_setup_phb_io_space(struct pci_controller *hose) |
217 | { | 217 | { |
218 | unsigned long io_offset; | 218 | unsigned long io_offset; |
219 | struct resource *res = &hose->io_resource; | 219 | struct resource *res = &hose->io_resource; |
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index 2cbe6768fddd..51a133a78a09 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
@@ -122,7 +122,7 @@ int pcibios_unmap_io_space(struct pci_bus *bus) | |||
122 | } | 122 | } |
123 | EXPORT_SYMBOL_GPL(pcibios_unmap_io_space); | 123 | EXPORT_SYMBOL_GPL(pcibios_unmap_io_space); |
124 | 124 | ||
125 | static int __devinit pcibios_map_phb_io_space(struct pci_controller *hose) | 125 | static int pcibios_map_phb_io_space(struct pci_controller *hose) |
126 | { | 126 | { |
127 | struct vm_struct *area; | 127 | struct vm_struct *area; |
128 | unsigned long phys_page; | 128 | unsigned long phys_page; |
@@ -173,7 +173,7 @@ static int __devinit pcibios_map_phb_io_space(struct pci_controller *hose) | |||
173 | return 0; | 173 | return 0; |
174 | } | 174 | } |
175 | 175 | ||
176 | int __devinit pcibios_map_io_space(struct pci_bus *bus) | 176 | int pcibios_map_io_space(struct pci_bus *bus) |
177 | { | 177 | { |
178 | WARN_ON(bus == NULL); | 178 | WARN_ON(bus == NULL); |
179 | 179 | ||
@@ -193,7 +193,7 @@ int __devinit pcibios_map_io_space(struct pci_bus *bus) | |||
193 | } | 193 | } |
194 | EXPORT_SYMBOL_GPL(pcibios_map_io_space); | 194 | EXPORT_SYMBOL_GPL(pcibios_map_io_space); |
195 | 195 | ||
196 | void __devinit pcibios_setup_phb_io_space(struct pci_controller *hose) | 196 | void pcibios_setup_phb_io_space(struct pci_controller *hose) |
197 | { | 197 | { |
198 | pcibios_map_phb_io_space(hose); | 198 | pcibios_map_phb_io_space(hose); |
199 | } | 199 | } |
diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c index dd9e4a04bf79..e7af165f8b9d 100644 --- a/arch/powerpc/kernel/pci_dn.c +++ b/arch/powerpc/kernel/pci_dn.c | |||
@@ -36,7 +36,7 @@ | |||
36 | * Traverse_func that inits the PCI fields of the device node. | 36 | * Traverse_func that inits the PCI fields of the device node. |
37 | * NOTE: this *must* be done before read/write config to the device. | 37 | * NOTE: this *must* be done before read/write config to the device. |
38 | */ | 38 | */ |
39 | void * __devinit update_dn_pci_info(struct device_node *dn, void *data) | 39 | void *update_dn_pci_info(struct device_node *dn, void *data) |
40 | { | 40 | { |
41 | struct pci_controller *phb = data; | 41 | struct pci_controller *phb = data; |
42 | const int *type = | 42 | const int *type = |
@@ -129,7 +129,7 @@ void *traverse_pci_devices(struct device_node *start, traverse_func pre, | |||
129 | * subsystem is set up, before kmalloc is valid) and during the | 129 | * subsystem is set up, before kmalloc is valid) and during the |
130 | * dynamic lpar operation of adding a PHB to a running system. | 130 | * dynamic lpar operation of adding a PHB to a running system. |
131 | */ | 131 | */ |
132 | void __devinit pci_devs_phb_init_dynamic(struct pci_controller *phb) | 132 | void pci_devs_phb_init_dynamic(struct pci_controller *phb) |
133 | { | 133 | { |
134 | struct device_node *dn = phb->dn; | 134 | struct device_node *dn = phb->dn; |
135 | struct pci_dn *pdn; | 135 | struct pci_dn *pdn; |
diff --git a/arch/powerpc/kernel/pci_of_scan.c b/arch/powerpc/kernel/pci_of_scan.c index 30378a19f65d..2a67e9baa59f 100644 --- a/arch/powerpc/kernel/pci_of_scan.c +++ b/arch/powerpc/kernel/pci_of_scan.c | |||
@@ -204,7 +204,7 @@ EXPORT_SYMBOL(of_create_pci_dev); | |||
204 | * this routine in turn call of_scan_bus() recusively to scan for more child | 204 | * this routine in turn call of_scan_bus() recusively to scan for more child |
205 | * devices. | 205 | * devices. |
206 | */ | 206 | */ |
207 | void __devinit of_scan_pci_bridge(struct pci_dev *dev) | 207 | void of_scan_pci_bridge(struct pci_dev *dev) |
208 | { | 208 | { |
209 | struct device_node *node = dev->dev.of_node; | 209 | struct device_node *node = dev->dev.of_node; |
210 | struct pci_bus *bus; | 210 | struct pci_bus *bus; |
@@ -299,8 +299,8 @@ EXPORT_SYMBOL(of_scan_pci_bridge); | |||
299 | * @bus: pci_bus structure for the PCI bus | 299 | * @bus: pci_bus structure for the PCI bus |
300 | * @rescan_existing: Flag indicating bus has already been set up | 300 | * @rescan_existing: Flag indicating bus has already been set up |
301 | */ | 301 | */ |
302 | static void __devinit __of_scan_bus(struct device_node *node, | 302 | static void __of_scan_bus(struct device_node *node, struct pci_bus *bus, |
303 | struct pci_bus *bus, int rescan_existing) | 303 | int rescan_existing) |
304 | { | 304 | { |
305 | struct device_node *child; | 305 | struct device_node *child; |
306 | const u32 *reg; | 306 | const u32 *reg; |
@@ -348,8 +348,7 @@ static void __devinit __of_scan_bus(struct device_node *node, | |||
348 | * @node: device tree node for the PCI bus | 348 | * @node: device tree node for the PCI bus |
349 | * @bus: pci_bus structure for the PCI bus | 349 | * @bus: pci_bus structure for the PCI bus |
350 | */ | 350 | */ |
351 | void __devinit of_scan_bus(struct device_node *node, | 351 | void of_scan_bus(struct device_node *node, struct pci_bus *bus) |
352 | struct pci_bus *bus) | ||
353 | { | 352 | { |
354 | __of_scan_bus(node, bus, 0); | 353 | __of_scan_bus(node, bus, 0); |
355 | } | 354 | } |
@@ -363,8 +362,7 @@ EXPORT_SYMBOL_GPL(of_scan_bus); | |||
363 | * Same as of_scan_bus, but for a pci_bus structure that has already been | 362 | * Same as of_scan_bus, but for a pci_bus structure that has already been |
364 | * setup. | 363 | * setup. |
365 | */ | 364 | */ |
366 | void __devinit of_rescan_bus(struct device_node *node, | 365 | void of_rescan_bus(struct device_node *node, struct pci_bus *bus) |
367 | struct pci_bus *bus) | ||
368 | { | 366 | { |
369 | __of_scan_bus(node, bus, 1); | 367 | __of_scan_bus(node, bus, 1); |
370 | } | 368 | } |
diff --git a/arch/powerpc/kernel/rtas_pci.c b/arch/powerpc/kernel/rtas_pci.c index 6de63e3250bb..71cb20d6ec61 100644 --- a/arch/powerpc/kernel/rtas_pci.c +++ b/arch/powerpc/kernel/rtas_pci.c | |||
@@ -209,7 +209,7 @@ void __init init_pci_config_tokens (void) | |||
209 | ibm_write_pci_config = rtas_token("ibm,write-pci-config"); | 209 | ibm_write_pci_config = rtas_token("ibm,write-pci-config"); |
210 | } | 210 | } |
211 | 211 | ||
212 | unsigned long __devinit get_phb_buid (struct device_node *phb) | 212 | unsigned long get_phb_buid (struct device_node *phb) |
213 | { | 213 | { |
214 | struct resource r; | 214 | struct resource r; |
215 | 215 | ||
@@ -237,7 +237,7 @@ static int phb_set_bus_ranges(struct device_node *dev, | |||
237 | return 0; | 237 | return 0; |
238 | } | 238 | } |
239 | 239 | ||
240 | int __devinit rtas_setup_phb(struct pci_controller *phb) | 240 | int rtas_setup_phb(struct pci_controller *phb) |
241 | { | 241 | { |
242 | struct device_node *dev = phb->dn; | 242 | struct device_node *dev = phb->dn; |
243 | 243 | ||
diff --git a/arch/powerpc/kernel/smp-tbsync.c b/arch/powerpc/kernel/smp-tbsync.c index 640de836e466..e68fd1ae727a 100644 --- a/arch/powerpc/kernel/smp-tbsync.c +++ b/arch/powerpc/kernel/smp-tbsync.c | |||
@@ -36,13 +36,13 @@ static struct { | |||
36 | 36 | ||
37 | static volatile int running; | 37 | static volatile int running; |
38 | 38 | ||
39 | static void __devinit enter_contest(u64 mark, long add) | 39 | static void enter_contest(u64 mark, long add) |
40 | { | 40 | { |
41 | while (get_tb() < mark) | 41 | while (get_tb() < mark) |
42 | tbsync->race_result = add; | 42 | tbsync->race_result = add; |
43 | } | 43 | } |
44 | 44 | ||
45 | void __devinit smp_generic_take_timebase(void) | 45 | void smp_generic_take_timebase(void) |
46 | { | 46 | { |
47 | int cmd; | 47 | int cmd; |
48 | u64 tb; | 48 | u64 tb; |
@@ -75,7 +75,7 @@ void __devinit smp_generic_take_timebase(void) | |||
75 | local_irq_restore(flags); | 75 | local_irq_restore(flags); |
76 | } | 76 | } |
77 | 77 | ||
78 | static int __devinit start_contest(int cmd, long offset, int num) | 78 | static int start_contest(int cmd, long offset, int num) |
79 | { | 79 | { |
80 | int i, score=0; | 80 | int i, score=0; |
81 | u64 tb; | 81 | u64 tb; |
@@ -110,7 +110,7 @@ static int __devinit start_contest(int cmd, long offset, int num) | |||
110 | return score; | 110 | return score; |
111 | } | 111 | } |
112 | 112 | ||
113 | void __devinit smp_generic_give_timebase(void) | 113 | void smp_generic_give_timebase(void) |
114 | { | 114 | { |
115 | int i, score, score2, old, min=0, max=5000, offset=1000; | 115 | int i, score, score2, old, min=0, max=5000, offset=1000; |
116 | 116 | ||
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index e5b133ebd8a5..793401e65088 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c | |||
@@ -82,7 +82,7 @@ int smt_enabled_at_boot = 1; | |||
82 | static void (*crash_ipi_function_ptr)(struct pt_regs *) = NULL; | 82 | static void (*crash_ipi_function_ptr)(struct pt_regs *) = NULL; |
83 | 83 | ||
84 | #ifdef CONFIG_PPC64 | 84 | #ifdef CONFIG_PPC64 |
85 | int __devinit smp_generic_kick_cpu(int nr) | 85 | int smp_generic_kick_cpu(int nr) |
86 | { | 86 | { |
87 | BUG_ON(nr < 0 || nr >= NR_CPUS); | 87 | BUG_ON(nr < 0 || nr >= NR_CPUS); |
88 | 88 | ||
@@ -311,7 +311,7 @@ void smp_send_stop(void) | |||
311 | 311 | ||
312 | struct thread_info *current_set[NR_CPUS]; | 312 | struct thread_info *current_set[NR_CPUS]; |
313 | 313 | ||
314 | static void __devinit smp_store_cpu_info(int id) | 314 | static void smp_store_cpu_info(int id) |
315 | { | 315 | { |
316 | per_cpu(cpu_pvr, id) = mfspr(SPRN_PVR); | 316 | per_cpu(cpu_pvr, id) = mfspr(SPRN_PVR); |
317 | #ifdef CONFIG_PPC_FSL_BOOK3E | 317 | #ifdef CONFIG_PPC_FSL_BOOK3E |
@@ -355,7 +355,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
355 | max_cpus = 1; | 355 | max_cpus = 1; |
356 | } | 356 | } |
357 | 357 | ||
358 | void __devinit smp_prepare_boot_cpu(void) | 358 | void smp_prepare_boot_cpu(void) |
359 | { | 359 | { |
360 | BUG_ON(smp_processor_id() != boot_cpuid); | 360 | BUG_ON(smp_processor_id() != boot_cpuid); |
361 | #ifdef CONFIG_PPC64 | 361 | #ifdef CONFIG_PPC64 |
@@ -610,7 +610,7 @@ static struct device_node *cpu_to_l2cache(int cpu) | |||
610 | } | 610 | } |
611 | 611 | ||
612 | /* Activate a secondary processor. */ | 612 | /* Activate a secondary processor. */ |
613 | void __devinit start_secondary(void *unused) | 613 | void start_secondary(void *unused) |
614 | { | 614 | { |
615 | unsigned int cpu = smp_processor_id(); | 615 | unsigned int cpu = smp_processor_id(); |
616 | struct device_node *l2_cache; | 616 | struct device_node *l2_cache; |
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index b3b14352b05e..6f6b1cccc916 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -770,13 +770,8 @@ void update_vsyscall_old(struct timespec *wall_time, struct timespec *wtm, | |||
770 | 770 | ||
771 | void update_vsyscall_tz(void) | 771 | void update_vsyscall_tz(void) |
772 | { | 772 | { |
773 | /* Make userspace gettimeofday spin until we're done. */ | ||
774 | ++vdso_data->tb_update_count; | ||
775 | smp_mb(); | ||
776 | vdso_data->tz_minuteswest = sys_tz.tz_minuteswest; | 773 | vdso_data->tz_minuteswest = sys_tz.tz_minuteswest; |
777 | vdso_data->tz_dsttime = sys_tz.tz_dsttime; | 774 | vdso_data->tz_dsttime = sys_tz.tz_dsttime; |
778 | smp_mb(); | ||
779 | ++vdso_data->tb_update_count; | ||
780 | } | 775 | } |
781 | 776 | ||
782 | static void __init clocksource_init(void) | 777 | static void __init clocksource_init(void) |
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c index 201ba59738be..536016d792ba 100644 --- a/arch/powerpc/kernel/vio.c +++ b/arch/powerpc/kernel/vio.c | |||
@@ -1289,7 +1289,7 @@ void vio_unregister_driver(struct vio_driver *viodrv) | |||
1289 | EXPORT_SYMBOL(vio_unregister_driver); | 1289 | EXPORT_SYMBOL(vio_unregister_driver); |
1290 | 1290 | ||
1291 | /* vio_dev refcount hit 0 */ | 1291 | /* vio_dev refcount hit 0 */ |
1292 | static void __devinit vio_dev_release(struct device *dev) | 1292 | static void vio_dev_release(struct device *dev) |
1293 | { | 1293 | { |
1294 | struct iommu_table *tbl = get_iommu_table_base(dev); | 1294 | struct iommu_table *tbl = get_iommu_table_base(dev); |
1295 | 1295 | ||
@@ -1545,7 +1545,7 @@ static struct device_attribute vio_dev_attrs[] = { | |||
1545 | __ATTR_NULL | 1545 | __ATTR_NULL |
1546 | }; | 1546 | }; |
1547 | 1547 | ||
1548 | void __devinit vio_unregister_device(struct vio_dev *viodev) | 1548 | void vio_unregister_device(struct vio_dev *viodev) |
1549 | { | 1549 | { |
1550 | device_unregister(&viodev->dev); | 1550 | device_unregister(&viodev->dev); |
1551 | } | 1551 | } |
diff --git a/arch/powerpc/kvm/book3s_hv_ras.c b/arch/powerpc/kvm/book3s_hv_ras.c index 35f3cf0269b3..a353c485808c 100644 --- a/arch/powerpc/kvm/book3s_hv_ras.c +++ b/arch/powerpc/kvm/book3s_hv_ras.c | |||
@@ -79,7 +79,9 @@ static void flush_tlb_power7(struct kvm_vcpu *vcpu) | |||
79 | static long kvmppc_realmode_mc_power7(struct kvm_vcpu *vcpu) | 79 | static long kvmppc_realmode_mc_power7(struct kvm_vcpu *vcpu) |
80 | { | 80 | { |
81 | unsigned long srr1 = vcpu->arch.shregs.msr; | 81 | unsigned long srr1 = vcpu->arch.shregs.msr; |
82 | #ifdef CONFIG_PPC_POWERNV | ||
82 | struct opal_machine_check_event *opal_evt; | 83 | struct opal_machine_check_event *opal_evt; |
84 | #endif | ||
83 | long handled = 1; | 85 | long handled = 1; |
84 | 86 | ||
85 | if (srr1 & SRR1_MC_LDSTERR) { | 87 | if (srr1 & SRR1_MC_LDSTERR) { |
@@ -117,6 +119,7 @@ static long kvmppc_realmode_mc_power7(struct kvm_vcpu *vcpu) | |||
117 | handled = 0; | 119 | handled = 0; |
118 | } | 120 | } |
119 | 121 | ||
122 | #ifdef CONFIG_PPC_POWERNV | ||
120 | /* | 123 | /* |
121 | * See if OPAL has already handled the condition. | 124 | * See if OPAL has already handled the condition. |
122 | * We assume that if the condition is recovered then OPAL | 125 | * We assume that if the condition is recovered then OPAL |
@@ -131,6 +134,7 @@ static long kvmppc_realmode_mc_power7(struct kvm_vcpu *vcpu) | |||
131 | 134 | ||
132 | if (handled) | 135 | if (handled) |
133 | opal_evt->in_use = 0; | 136 | opal_evt->in_use = 0; |
137 | #endif | ||
134 | 138 | ||
135 | return handled; | 139 | return handled; |
136 | } | 140 | } |
diff --git a/arch/powerpc/kvm/emulate.c b/arch/powerpc/kvm/emulate.c index b0855e5d8905..9d9cddc5b346 100644 --- a/arch/powerpc/kvm/emulate.c +++ b/arch/powerpc/kvm/emulate.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #define OP_31_XOP_TRAP 4 | 39 | #define OP_31_XOP_TRAP 4 |
40 | #define OP_31_XOP_LWZX 23 | 40 | #define OP_31_XOP_LWZX 23 |
41 | #define OP_31_XOP_TRAP_64 68 | 41 | #define OP_31_XOP_TRAP_64 68 |
42 | #define OP_31_XOP_DCBF 86 | ||
42 | #define OP_31_XOP_LBZX 87 | 43 | #define OP_31_XOP_LBZX 87 |
43 | #define OP_31_XOP_STWX 151 | 44 | #define OP_31_XOP_STWX 151 |
44 | #define OP_31_XOP_STBX 215 | 45 | #define OP_31_XOP_STBX 215 |
@@ -374,6 +375,7 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu) | |||
374 | emulated = kvmppc_emulate_mtspr(vcpu, sprn, rs); | 375 | emulated = kvmppc_emulate_mtspr(vcpu, sprn, rs); |
375 | break; | 376 | break; |
376 | 377 | ||
378 | case OP_31_XOP_DCBF: | ||
377 | case OP_31_XOP_DCBI: | 379 | case OP_31_XOP_DCBI: |
378 | /* Do nothing. The guest is performing dcbi because | 380 | /* Do nothing. The guest is performing dcbi because |
379 | * hardware DMA is not snooped by the dcache, but | 381 | * hardware DMA is not snooped by the dcache, but |
diff --git a/arch/powerpc/mm/tlb_hash64.c b/arch/powerpc/mm/tlb_hash64.c index ae758b3ff72c..0d82ef50dc3f 100644 --- a/arch/powerpc/mm/tlb_hash64.c +++ b/arch/powerpc/mm/tlb_hash64.c | |||
@@ -186,8 +186,6 @@ void tlb_flush(struct mmu_gather *tlb) | |||
186 | * Because of that usage pattern, it's only available with CONFIG_HOTPLUG | 186 | * Because of that usage pattern, it's only available with CONFIG_HOTPLUG |
187 | * and is implemented for small size rather than speed. | 187 | * and is implemented for small size rather than speed. |
188 | */ | 188 | */ |
189 | #ifdef CONFIG_HOTPLUG | ||
190 | |||
191 | void __flush_hash_table_range(struct mm_struct *mm, unsigned long start, | 189 | void __flush_hash_table_range(struct mm_struct *mm, unsigned long start, |
192 | unsigned long end) | 190 | unsigned long end) |
193 | { | 191 | { |
@@ -221,5 +219,3 @@ void __flush_hash_table_range(struct mm_struct *mm, unsigned long start, | |||
221 | arch_leave_lazy_mmu_mode(); | 219 | arch_leave_lazy_mmu_mode(); |
222 | local_irq_restore(flags); | 220 | local_irq_restore(flags); |
223 | } | 221 | } |
224 | |||
225 | #endif /* CONFIG_HOTPLUG */ | ||
diff --git a/arch/powerpc/platforms/40x/ppc40x_simple.c b/arch/powerpc/platforms/40x/ppc40x_simple.c index 969dddcf3320..8f3920e5a046 100644 --- a/arch/powerpc/platforms/40x/ppc40x_simple.c +++ b/arch/powerpc/platforms/40x/ppc40x_simple.c | |||
@@ -57,7 +57,8 @@ static const char * const board[] __initconst = { | |||
57 | "amcc,makalu", | 57 | "amcc,makalu", |
58 | "apm,klondike", | 58 | "apm,klondike", |
59 | "est,hotfoot", | 59 | "est,hotfoot", |
60 | "plathome,obs600" | 60 | "plathome,obs600", |
61 | NULL | ||
61 | }; | 62 | }; |
62 | 63 | ||
63 | static int __init ppc40x_probe(void) | 64 | static int __init ppc40x_probe(void) |
diff --git a/arch/powerpc/platforms/44x/currituck.c b/arch/powerpc/platforms/44x/currituck.c index 6bd89a0e0dea..ecd3890c40d7 100644 --- a/arch/powerpc/platforms/44x/currituck.c +++ b/arch/powerpc/platforms/44x/currituck.c | |||
@@ -46,7 +46,7 @@ static __initdata struct of_device_id ppc47x_of_bus[] = { | |||
46 | 46 | ||
47 | /* The EEPROM is missing and the default values are bogus. This forces USB in | 47 | /* The EEPROM is missing and the default values are bogus. This forces USB in |
48 | * to EHCI mode */ | 48 | * to EHCI mode */ |
49 | static void __devinit quirk_ppc_currituck_usb_fixup(struct pci_dev *dev) | 49 | static void quirk_ppc_currituck_usb_fixup(struct pci_dev *dev) |
50 | { | 50 | { |
51 | if (of_machine_is_compatible("ibm,currituck")) { | 51 | if (of_machine_is_compatible("ibm,currituck")) { |
52 | pci_write_config_dword(dev, 0xe0, 0x0114231f); | 52 | pci_write_config_dword(dev, 0xe0, 0x0114231f); |
diff --git a/arch/powerpc/platforms/44x/virtex_ml510.c b/arch/powerpc/platforms/44x/virtex_ml510.c index ba4a6e388a46..1fdb8748638d 100644 --- a/arch/powerpc/platforms/44x/virtex_ml510.c +++ b/arch/powerpc/platforms/44x/virtex_ml510.c | |||
@@ -5,7 +5,7 @@ | |||
5 | /** | 5 | /** |
6 | * ml510_ail_quirk | 6 | * ml510_ail_quirk |
7 | */ | 7 | */ |
8 | static void __devinit ml510_ali_quirk(struct pci_dev *dev) | 8 | static void ml510_ali_quirk(struct pci_dev *dev) |
9 | { | 9 | { |
10 | /* Enable the IDE controller */ | 10 | /* Enable the IDE controller */ |
11 | pci_write_config_byte(dev, 0x58, 0x4c); | 11 | pci_write_config_byte(dev, 0x58, 0x4c); |
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c index a51cb07bd663..692998244d2c 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c | |||
@@ -669,7 +669,7 @@ static struct miscdevice mpc52xx_wdt_miscdev = { | |||
669 | .fops = &mpc52xx_wdt_fops, | 669 | .fops = &mpc52xx_wdt_fops, |
670 | }; | 670 | }; |
671 | 671 | ||
672 | static int __devinit mpc52xx_gpt_wdt_init(void) | 672 | static int mpc52xx_gpt_wdt_init(void) |
673 | { | 673 | { |
674 | int err; | 674 | int err; |
675 | 675 | ||
@@ -704,7 +704,7 @@ static int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt, | |||
704 | 704 | ||
705 | #else | 705 | #else |
706 | 706 | ||
707 | static int __devinit mpc52xx_gpt_wdt_init(void) | 707 | static int mpc52xx_gpt_wdt_init(void) |
708 | { | 708 | { |
709 | return 0; | 709 | return 0; |
710 | } | 710 | } |
@@ -720,7 +720,7 @@ static inline int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt, | |||
720 | /* --------------------------------------------------------------------- | 720 | /* --------------------------------------------------------------------- |
721 | * of_platform bus binding code | 721 | * of_platform bus binding code |
722 | */ | 722 | */ |
723 | static int __devinit mpc52xx_gpt_probe(struct platform_device *ofdev) | 723 | static int mpc52xx_gpt_probe(struct platform_device *ofdev) |
724 | { | 724 | { |
725 | struct mpc52xx_gpt_priv *gpt; | 725 | struct mpc52xx_gpt_priv *gpt; |
726 | 726 | ||
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c b/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c index 16150fa430f9..f9f4537f546d 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c | |||
@@ -470,7 +470,7 @@ void mpc52xx_lpbfifo_abort(struct mpc52xx_lpbfifo_request *req) | |||
470 | } | 470 | } |
471 | EXPORT_SYMBOL(mpc52xx_lpbfifo_abort); | 471 | EXPORT_SYMBOL(mpc52xx_lpbfifo_abort); |
472 | 472 | ||
473 | static int __devinit mpc52xx_lpbfifo_probe(struct platform_device *op) | 473 | static int mpc52xx_lpbfifo_probe(struct platform_device *op) |
474 | { | 474 | { |
475 | struct resource res; | 475 | struct resource res; |
476 | int rc = -ENOMEM; | 476 | int rc = -ENOMEM; |
@@ -540,7 +540,7 @@ static int __devinit mpc52xx_lpbfifo_probe(struct platform_device *op) | |||
540 | } | 540 | } |
541 | 541 | ||
542 | 542 | ||
543 | static int __devexit mpc52xx_lpbfifo_remove(struct platform_device *op) | 543 | static int mpc52xx_lpbfifo_remove(struct platform_device *op) |
544 | { | 544 | { |
545 | if (lpbfifo.dev != &op->dev) | 545 | if (lpbfifo.dev != &op->dev) |
546 | return 0; | 546 | return 0; |
@@ -564,7 +564,7 @@ static int __devexit mpc52xx_lpbfifo_remove(struct platform_device *op) | |||
564 | return 0; | 564 | return 0; |
565 | } | 565 | } |
566 | 566 | ||
567 | static struct of_device_id mpc52xx_lpbfifo_match[] __devinitconst = { | 567 | static struct of_device_id mpc52xx_lpbfifo_match[] = { |
568 | { .compatible = "fsl,mpc5200-lpbfifo", }, | 568 | { .compatible = "fsl,mpc5200-lpbfifo", }, |
569 | {}, | 569 | {}, |
570 | }; | 570 | }; |
@@ -576,6 +576,6 @@ static struct platform_driver mpc52xx_lpbfifo_driver = { | |||
576 | .of_match_table = mpc52xx_lpbfifo_match, | 576 | .of_match_table = mpc52xx_lpbfifo_match, |
577 | }, | 577 | }, |
578 | .probe = mpc52xx_lpbfifo_probe, | 578 | .probe = mpc52xx_lpbfifo_probe, |
579 | .remove = __devexit_p(mpc52xx_lpbfifo_remove), | 579 | .remove = mpc52xx_lpbfifo_remove, |
580 | }; | 580 | }; |
581 | module_platform_driver(mpc52xx_lpbfifo_driver); | 581 | module_platform_driver(mpc52xx_lpbfifo_driver); |
diff --git a/arch/powerpc/platforms/82xx/ep8248e.c b/arch/powerpc/platforms/82xx/ep8248e.c index 10ff526cd046..79799b29ffe2 100644 --- a/arch/powerpc/platforms/82xx/ep8248e.c +++ b/arch/powerpc/platforms/82xx/ep8248e.c | |||
@@ -111,7 +111,7 @@ static struct mdiobb_ctrl ep8248e_mdio_ctrl = { | |||
111 | .ops = &ep8248e_mdio_ops, | 111 | .ops = &ep8248e_mdio_ops, |
112 | }; | 112 | }; |
113 | 113 | ||
114 | static int __devinit ep8248e_mdio_probe(struct platform_device *ofdev) | 114 | static int ep8248e_mdio_probe(struct platform_device *ofdev) |
115 | { | 115 | { |
116 | struct mii_bus *bus; | 116 | struct mii_bus *bus; |
117 | struct resource res; | 117 | struct resource res; |
diff --git a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c index ef6537b8ed33..624cb51d19c9 100644 --- a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c +++ b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c | |||
@@ -145,8 +145,7 @@ static int mcu_gpiochip_remove(struct mcu *mcu) | |||
145 | return gpiochip_remove(&mcu->gc); | 145 | return gpiochip_remove(&mcu->gc); |
146 | } | 146 | } |
147 | 147 | ||
148 | static int __devinit mcu_probe(struct i2c_client *client, | 148 | static int mcu_probe(struct i2c_client *client, const struct i2c_device_id *id) |
149 | const struct i2c_device_id *id) | ||
150 | { | 149 | { |
151 | struct mcu *mcu; | 150 | struct mcu *mcu; |
152 | int ret; | 151 | int ret; |
@@ -188,7 +187,7 @@ err: | |||
188 | return ret; | 187 | return ret; |
189 | } | 188 | } |
190 | 189 | ||
191 | static int __devexit mcu_remove(struct i2c_client *client) | 190 | static int mcu_remove(struct i2c_client *client) |
192 | { | 191 | { |
193 | struct mcu *mcu = i2c_get_clientdata(client); | 192 | struct mcu *mcu = i2c_get_clientdata(client); |
194 | int ret; | 193 | int ret; |
@@ -216,7 +215,7 @@ static const struct i2c_device_id mcu_ids[] = { | |||
216 | }; | 215 | }; |
217 | MODULE_DEVICE_TABLE(i2c, mcu_ids); | 216 | MODULE_DEVICE_TABLE(i2c, mcu_ids); |
218 | 217 | ||
219 | static struct of_device_id mcu_of_match_table[] __devinitdata = { | 218 | static struct of_device_id mcu_of_match_table[] = { |
220 | { .compatible = "fsl,mcu-mpc8349emitx", }, | 219 | { .compatible = "fsl,mcu-mpc8349emitx", }, |
221 | { }, | 220 | { }, |
222 | }; | 221 | }; |
@@ -228,7 +227,7 @@ static struct i2c_driver mcu_driver = { | |||
228 | .of_match_table = mcu_of_match_table, | 227 | .of_match_table = mcu_of_match_table, |
229 | }, | 228 | }, |
230 | .probe = mcu_probe, | 229 | .probe = mcu_probe, |
231 | .remove = __devexit_p(mcu_remove), | 230 | .remove = mcu_remove, |
232 | .id_table = mcu_ids, | 231 | .id_table = mcu_ids, |
233 | }; | 232 | }; |
234 | 233 | ||
diff --git a/arch/powerpc/platforms/85xx/corenet_ds.c b/arch/powerpc/platforms/85xx/corenet_ds.c index ed69c9250717..6f355d8c92f6 100644 --- a/arch/powerpc/platforms/85xx/corenet_ds.c +++ b/arch/powerpc/platforms/85xx/corenet_ds.c | |||
@@ -64,7 +64,7 @@ void __init corenet_ds_setup_arch(void) | |||
64 | pr_info("%s board from Freescale Semiconductor\n", ppc_md.name); | 64 | pr_info("%s board from Freescale Semiconductor\n", ppc_md.name); |
65 | } | 65 | } |
66 | 66 | ||
67 | static const struct of_device_id of_device_ids[] __devinitconst = { | 67 | static const struct of_device_id of_device_ids[] = { |
68 | { | 68 | { |
69 | .compatible = "simple-bus" | 69 | .compatible = "simple-bus" |
70 | }, | 70 | }, |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c index c474505ad0d0..7a31a0e1df29 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c | |||
@@ -154,7 +154,7 @@ static void __init mpc85xx_cds_pci_irq_fixup(struct pci_dev *dev) | |||
154 | } | 154 | } |
155 | } | 155 | } |
156 | 156 | ||
157 | static void __devinit skip_fake_bridge(struct pci_dev *dev) | 157 | static void skip_fake_bridge(struct pci_dev *dev) |
158 | { | 158 | { |
159 | /* Make it an error to skip the fake bridge | 159 | /* Make it an error to skip the fake bridge |
160 | * in pci_setup_device() in probe.c */ | 160 | * in pci_setup_device() in probe.c */ |
diff --git a/arch/powerpc/platforms/85xx/tqm85xx.c b/arch/powerpc/platforms/85xx/tqm85xx.c index b4e58cdc09a5..ec0b7272fae2 100644 --- a/arch/powerpc/platforms/85xx/tqm85xx.c +++ b/arch/powerpc/platforms/85xx/tqm85xx.c | |||
@@ -85,7 +85,7 @@ static void tqm85xx_show_cpuinfo(struct seq_file *m) | |||
85 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); | 85 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); |
86 | } | 86 | } |
87 | 87 | ||
88 | static void __devinit tqm85xx_ti1520_fixup(struct pci_dev *pdev) | 88 | static void tqm85xx_ti1520_fixup(struct pci_dev *pdev) |
89 | { | 89 | { |
90 | unsigned int val; | 90 | unsigned int val; |
91 | 91 | ||
diff --git a/arch/powerpc/platforms/86xx/gef_ppc9a.c b/arch/powerpc/platforms/86xx/gef_ppc9a.c index bf5338754c5a..c23f3443880a 100644 --- a/arch/powerpc/platforms/86xx/gef_ppc9a.c +++ b/arch/powerpc/platforms/86xx/gef_ppc9a.c | |||
@@ -159,7 +159,7 @@ static void gef_ppc9a_show_cpuinfo(struct seq_file *m) | |||
159 | gef_ppc9a_get_vme_is_syscon() ? "yes" : "no"); | 159 | gef_ppc9a_get_vme_is_syscon() ? "yes" : "no"); |
160 | } | 160 | } |
161 | 161 | ||
162 | static void __devinit gef_ppc9a_nec_fixup(struct pci_dev *pdev) | 162 | static void gef_ppc9a_nec_fixup(struct pci_dev *pdev) |
163 | { | 163 | { |
164 | unsigned int val; | 164 | unsigned int val; |
165 | 165 | ||
diff --git a/arch/powerpc/platforms/86xx/gef_sbc310.c b/arch/powerpc/platforms/86xx/gef_sbc310.c index 0b7851330a07..8a6ac20686ea 100644 --- a/arch/powerpc/platforms/86xx/gef_sbc310.c +++ b/arch/powerpc/platforms/86xx/gef_sbc310.c | |||
@@ -146,7 +146,7 @@ static void gef_sbc310_show_cpuinfo(struct seq_file *m) | |||
146 | 146 | ||
147 | } | 147 | } |
148 | 148 | ||
149 | static void __devinit gef_sbc310_nec_fixup(struct pci_dev *pdev) | 149 | static void gef_sbc310_nec_fixup(struct pci_dev *pdev) |
150 | { | 150 | { |
151 | unsigned int val; | 151 | unsigned int val; |
152 | 152 | ||
diff --git a/arch/powerpc/platforms/86xx/gef_sbc610.c b/arch/powerpc/platforms/86xx/gef_sbc610.c index b9eb174897b1..06c72636f299 100644 --- a/arch/powerpc/platforms/86xx/gef_sbc610.c +++ b/arch/powerpc/platforms/86xx/gef_sbc610.c | |||
@@ -136,7 +136,7 @@ static void gef_sbc610_show_cpuinfo(struct seq_file *m) | |||
136 | seq_printf(m, "SVR\t\t: 0x%x\n", svid); | 136 | seq_printf(m, "SVR\t\t: 0x%x\n", svid); |
137 | } | 137 | } |
138 | 138 | ||
139 | static void __devinit gef_sbc610_nec_fixup(struct pci_dev *pdev) | 139 | static void gef_sbc610_nec_fixup(struct pci_dev *pdev) |
140 | { | 140 | { |
141 | unsigned int val; | 141 | unsigned int val; |
142 | 142 | ||
diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c index 4ab087671185..6ae25fb62015 100644 --- a/arch/powerpc/platforms/cell/setup.c +++ b/arch/powerpc/platforms/cell/setup.c | |||
@@ -117,7 +117,7 @@ static void cell_fixup_pcie_rootcomplex(struct pci_dev *dev) | |||
117 | } | 117 | } |
118 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, cell_fixup_pcie_rootcomplex); | 118 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, cell_fixup_pcie_rootcomplex); |
119 | 119 | ||
120 | static int __devinit cell_setup_phb(struct pci_controller *phb) | 120 | static int cell_setup_phb(struct pci_controller *phb) |
121 | { | 121 | { |
122 | const char *model; | 122 | const char *model; |
123 | struct device_node *np; | 123 | struct device_node *np; |
diff --git a/arch/powerpc/platforms/cell/smp.c b/arch/powerpc/platforms/cell/smp.c index 49a65e2dfc71..d35dbbc8ec79 100644 --- a/arch/powerpc/platforms/cell/smp.c +++ b/arch/powerpc/platforms/cell/smp.c | |||
@@ -67,7 +67,7 @@ static cpumask_t of_spin_map; | |||
67 | * 0 - failure | 67 | * 0 - failure |
68 | * 1 - success | 68 | * 1 - success |
69 | */ | 69 | */ |
70 | static inline int __devinit smp_startup_cpu(unsigned int lcpu) | 70 | static inline int smp_startup_cpu(unsigned int lcpu) |
71 | { | 71 | { |
72 | int status; | 72 | int status; |
73 | unsigned long start_here = __pa((u32)*((unsigned long *) | 73 | unsigned long start_here = __pa((u32)*((unsigned long *) |
@@ -108,7 +108,7 @@ static int __init smp_iic_probe(void) | |||
108 | return cpumask_weight(cpu_possible_mask); | 108 | return cpumask_weight(cpu_possible_mask); |
109 | } | 109 | } |
110 | 110 | ||
111 | static void __devinit smp_cell_setup_cpu(int cpu) | 111 | static void smp_cell_setup_cpu(int cpu) |
112 | { | 112 | { |
113 | if (cpu != boot_cpuid) | 113 | if (cpu != boot_cpuid) |
114 | iic_setup_cpu(); | 114 | iic_setup_cpu(); |
@@ -119,7 +119,7 @@ static void __devinit smp_cell_setup_cpu(int cpu) | |||
119 | mtspr(SPRN_DABRX, DABRX_KERNEL | DABRX_USER); | 119 | mtspr(SPRN_DABRX, DABRX_KERNEL | DABRX_USER); |
120 | } | 120 | } |
121 | 121 | ||
122 | static int __devinit smp_cell_kick_cpu(int nr) | 122 | static int smp_cell_kick_cpu(int nr) |
123 | { | 123 | { |
124 | BUG_ON(nr < 0 || nr >= NR_CPUS); | 124 | BUG_ON(nr < 0 || nr >= NR_CPUS); |
125 | 125 | ||
diff --git a/arch/powerpc/platforms/chrp/pci.c b/arch/powerpc/platforms/chrp/pci.c index 83285c5a2049..1b87e198faa7 100644 --- a/arch/powerpc/platforms/chrp/pci.c +++ b/arch/powerpc/platforms/chrp/pci.c | |||
@@ -323,7 +323,7 @@ chrp_find_bridges(void) | |||
323 | * ATA controller to be set to fully native mode or bad things | 323 | * ATA controller to be set to fully native mode or bad things |
324 | * will happen. | 324 | * will happen. |
325 | */ | 325 | */ |
326 | static void __devinit chrp_pci_fixup_winbond_ata(struct pci_dev *sl82c105) | 326 | static void chrp_pci_fixup_winbond_ata(struct pci_dev *sl82c105) |
327 | { | 327 | { |
328 | u8 progif; | 328 | u8 progif; |
329 | 329 | ||
diff --git a/arch/powerpc/platforms/chrp/smp.c b/arch/powerpc/platforms/chrp/smp.c index feab30bbae23..dead91b177b9 100644 --- a/arch/powerpc/platforms/chrp/smp.c +++ b/arch/powerpc/platforms/chrp/smp.c | |||
@@ -30,7 +30,7 @@ | |||
30 | #include <asm/mpic.h> | 30 | #include <asm/mpic.h> |
31 | #include <asm/rtas.h> | 31 | #include <asm/rtas.h> |
32 | 32 | ||
33 | static int __devinit smp_chrp_kick_cpu(int nr) | 33 | static int smp_chrp_kick_cpu(int nr) |
34 | { | 34 | { |
35 | *(unsigned long *)KERNELBASE = nr; | 35 | *(unsigned long *)KERNELBASE = nr; |
36 | asm volatile("dcbf 0,%0"::"r"(KERNELBASE):"memory"); | 36 | asm volatile("dcbf 0,%0"::"r"(KERNELBASE):"memory"); |
@@ -38,7 +38,7 @@ static int __devinit smp_chrp_kick_cpu(int nr) | |||
38 | return 0; | 38 | return 0; |
39 | } | 39 | } |
40 | 40 | ||
41 | static void __devinit smp_chrp_setup_cpu(int cpu_nr) | 41 | static void smp_chrp_setup_cpu(int cpu_nr) |
42 | { | 42 | { |
43 | mpic_setup_this_cpu(); | 43 | mpic_setup_this_cpu(); |
44 | } | 44 | } |
diff --git a/arch/powerpc/platforms/fsl_uli1575.c b/arch/powerpc/platforms/fsl_uli1575.c index 64fde058e545..92ac9b52b32d 100644 --- a/arch/powerpc/platforms/fsl_uli1575.c +++ b/arch/powerpc/platforms/fsl_uli1575.c | |||
@@ -59,7 +59,7 @@ static inline bool is_quirk_valid(void) | |||
59 | } | 59 | } |
60 | 60 | ||
61 | /* Bridge */ | 61 | /* Bridge */ |
62 | static void __devinit early_uli5249(struct pci_dev *dev) | 62 | static void early_uli5249(struct pci_dev *dev) |
63 | { | 63 | { |
64 | unsigned char temp; | 64 | unsigned char temp; |
65 | 65 | ||
@@ -82,7 +82,7 @@ static void __devinit early_uli5249(struct pci_dev *dev) | |||
82 | } | 82 | } |
83 | 83 | ||
84 | 84 | ||
85 | static void __devinit quirk_uli1575(struct pci_dev *dev) | 85 | static void quirk_uli1575(struct pci_dev *dev) |
86 | { | 86 | { |
87 | int i; | 87 | int i; |
88 | 88 | ||
@@ -139,7 +139,7 @@ static void __devinit quirk_uli1575(struct pci_dev *dev) | |||
139 | pci_write_config_byte(dev, 0x75, ULI_8259_IRQ15); | 139 | pci_write_config_byte(dev, 0x75, ULI_8259_IRQ15); |
140 | } | 140 | } |
141 | 141 | ||
142 | static void __devinit quirk_final_uli1575(struct pci_dev *dev) | 142 | static void quirk_final_uli1575(struct pci_dev *dev) |
143 | { | 143 | { |
144 | /* Set i8259 interrupt trigger | 144 | /* Set i8259 interrupt trigger |
145 | * IRQ 3: Level | 145 | * IRQ 3: Level |
@@ -175,7 +175,7 @@ static void __devinit quirk_final_uli1575(struct pci_dev *dev) | |||
175 | } | 175 | } |
176 | 176 | ||
177 | /* SATA */ | 177 | /* SATA */ |
178 | static void __devinit quirk_uli5288(struct pci_dev *dev) | 178 | static void quirk_uli5288(struct pci_dev *dev) |
179 | { | 179 | { |
180 | unsigned char c; | 180 | unsigned char c; |
181 | unsigned int d; | 181 | unsigned int d; |
@@ -200,7 +200,7 @@ static void __devinit quirk_uli5288(struct pci_dev *dev) | |||
200 | } | 200 | } |
201 | 201 | ||
202 | /* PATA */ | 202 | /* PATA */ |
203 | static void __devinit quirk_uli5229(struct pci_dev *dev) | 203 | static void quirk_uli5229(struct pci_dev *dev) |
204 | { | 204 | { |
205 | unsigned short temp; | 205 | unsigned short temp; |
206 | 206 | ||
@@ -216,7 +216,7 @@ static void __devinit quirk_uli5229(struct pci_dev *dev) | |||
216 | } | 216 | } |
217 | 217 | ||
218 | /* We have to do a dummy read on the P2P for the RTC to work, WTF */ | 218 | /* We have to do a dummy read on the P2P for the RTC to work, WTF */ |
219 | static void __devinit quirk_final_uli5249(struct pci_dev *dev) | 219 | static void quirk_final_uli5249(struct pci_dev *dev) |
220 | { | 220 | { |
221 | int i; | 221 | int i; |
222 | u8 *dummy; | 222 | u8 *dummy; |
@@ -253,7 +253,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x5249, quirk_final_uli5249); | |||
253 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x1575, quirk_final_uli1575); | 253 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x1575, quirk_final_uli1575); |
254 | DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229); | 254 | DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229); |
255 | 255 | ||
256 | static void __devinit hpcd_quirk_uli1575(struct pci_dev *dev) | 256 | static void hpcd_quirk_uli1575(struct pci_dev *dev) |
257 | { | 257 | { |
258 | u32 temp32; | 258 | u32 temp32; |
259 | 259 | ||
@@ -269,7 +269,7 @@ static void __devinit hpcd_quirk_uli1575(struct pci_dev *dev) | |||
269 | pci_write_config_dword(dev, 0x90, (temp32 | 1<<22)); | 269 | pci_write_config_dword(dev, 0x90, (temp32 | 1<<22)); |
270 | } | 270 | } |
271 | 271 | ||
272 | static void __devinit hpcd_quirk_uli5288(struct pci_dev *dev) | 272 | static void hpcd_quirk_uli5288(struct pci_dev *dev) |
273 | { | 273 | { |
274 | unsigned char c; | 274 | unsigned char c; |
275 | 275 | ||
@@ -295,7 +295,7 @@ static void __devinit hpcd_quirk_uli5288(struct pci_dev *dev) | |||
295 | * IRQ14 is a sideband interrupt from IDE device to CPU and we use this | 295 | * IRQ14 is a sideband interrupt from IDE device to CPU and we use this |
296 | * as the interrupt for IDE device. | 296 | * as the interrupt for IDE device. |
297 | */ | 297 | */ |
298 | static void __devinit hpcd_quirk_uli5229(struct pci_dev *dev) | 298 | static void hpcd_quirk_uli5229(struct pci_dev *dev) |
299 | { | 299 | { |
300 | unsigned char c; | 300 | unsigned char c; |
301 | 301 | ||
@@ -317,7 +317,7 @@ static void __devinit hpcd_quirk_uli5229(struct pci_dev *dev) | |||
317 | * bug by re-assigning a correct irq to 5288. | 317 | * bug by re-assigning a correct irq to 5288. |
318 | * | 318 | * |
319 | */ | 319 | */ |
320 | static void __devinit hpcd_final_uli5288(struct pci_dev *dev) | 320 | static void hpcd_final_uli5288(struct pci_dev *dev) |
321 | { | 321 | { |
322 | struct pci_controller *hose = pci_bus_to_host(dev->bus); | 322 | struct pci_controller *hose = pci_bus_to_host(dev->bus); |
323 | struct device_node *hosenode = hose ? hose->dn : NULL; | 323 | struct device_node *hosenode = hose ? hose->dn : NULL; |
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c index 465ee8f5c086..f7136aae8bbf 100644 --- a/arch/powerpc/platforms/maple/pci.c +++ b/arch/powerpc/platforms/maple/pci.c | |||
@@ -543,7 +543,7 @@ static int __init maple_add_bridge(struct device_node *dev) | |||
543 | } | 543 | } |
544 | 544 | ||
545 | 545 | ||
546 | void __devinit maple_pci_irq_fixup(struct pci_dev *dev) | 546 | void maple_pci_irq_fixup(struct pci_dev *dev) |
547 | { | 547 | { |
548 | DBG(" -> maple_pci_irq_fixup\n"); | 548 | DBG(" -> maple_pci_irq_fixup\n"); |
549 | 549 | ||
@@ -648,7 +648,7 @@ int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel) | |||
648 | return irq; | 648 | return irq; |
649 | } | 649 | } |
650 | 650 | ||
651 | static void __devinit quirk_ipr_msi(struct pci_dev *dev) | 651 | static void quirk_ipr_msi(struct pci_dev *dev) |
652 | { | 652 | { |
653 | /* Something prevents MSIs from the IPR from working on Bimini, | 653 | /* Something prevents MSIs from the IPR from working on Bimini, |
654 | * and the driver has no smarts to recover. So disable MSI | 654 | * and the driver has no smarts to recover. So disable MSI |
diff --git a/arch/powerpc/platforms/pasemi/gpio_mdio.c b/arch/powerpc/platforms/pasemi/gpio_mdio.c index 9886296e08da..0237ab782fb8 100644 --- a/arch/powerpc/platforms/pasemi/gpio_mdio.c +++ b/arch/powerpc/platforms/pasemi/gpio_mdio.c | |||
@@ -216,7 +216,7 @@ static int gpio_mdio_reset(struct mii_bus *bus) | |||
216 | } | 216 | } |
217 | 217 | ||
218 | 218 | ||
219 | static int __devinit gpio_mdio_probe(struct platform_device *ofdev) | 219 | static int gpio_mdio_probe(struct platform_device *ofdev) |
220 | { | 220 | { |
221 | struct device *dev = &ofdev->dev; | 221 | struct device *dev = &ofdev->dev; |
222 | struct device_node *np = ofdev->dev.of_node; | 222 | struct device_node *np = ofdev->dev.of_node; |
diff --git a/arch/powerpc/platforms/pasemi/pasemi.h b/arch/powerpc/platforms/pasemi/pasemi.h index b1e524f7489d..ea65bf0eb897 100644 --- a/arch/powerpc/platforms/pasemi/pasemi.h +++ b/arch/powerpc/platforms/pasemi/pasemi.h | |||
@@ -3,8 +3,8 @@ | |||
3 | 3 | ||
4 | extern unsigned long pas_get_boot_time(void); | 4 | extern unsigned long pas_get_boot_time(void); |
5 | extern void pas_pci_init(void); | 5 | extern void pas_pci_init(void); |
6 | extern void __devinit pas_pci_irq_fixup(struct pci_dev *dev); | 6 | extern void pas_pci_irq_fixup(struct pci_dev *dev); |
7 | extern void __devinit pas_pci_dma_dev_setup(struct pci_dev *dev); | 7 | extern void pas_pci_dma_dev_setup(struct pci_dev *dev); |
8 | 8 | ||
9 | extern void __iomem *pasemi_pci_getcfgaddr(struct pci_dev *dev, int offset); | 9 | extern void __iomem *pasemi_pci_getcfgaddr(struct pci_dev *dev, int offset); |
10 | 10 | ||
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c index 2ed9212d7d59..8c54de6d8ec4 100644 --- a/arch/powerpc/platforms/pasemi/setup.c +++ b/arch/powerpc/platforms/pasemi/setup.c | |||
@@ -76,7 +76,7 @@ static void pas_restart(char *cmd) | |||
76 | static arch_spinlock_t timebase_lock; | 76 | static arch_spinlock_t timebase_lock; |
77 | static unsigned long timebase; | 77 | static unsigned long timebase; |
78 | 78 | ||
79 | static void __devinit pas_give_timebase(void) | 79 | static void pas_give_timebase(void) |
80 | { | 80 | { |
81 | unsigned long flags; | 81 | unsigned long flags; |
82 | 82 | ||
@@ -94,7 +94,7 @@ static void __devinit pas_give_timebase(void) | |||
94 | local_irq_restore(flags); | 94 | local_irq_restore(flags); |
95 | } | 95 | } |
96 | 96 | ||
97 | static void __devinit pas_take_timebase(void) | 97 | static void pas_take_timebase(void) |
98 | { | 98 | { |
99 | while (!timebase) | 99 | while (!timebase) |
100 | smp_rmb(); | 100 | smp_rmb(); |
diff --git a/arch/powerpc/platforms/powermac/pci.c b/arch/powerpc/platforms/powermac/pci.c index 43bbe1bda939..2b8af75abc23 100644 --- a/arch/powerpc/platforms/powermac/pci.c +++ b/arch/powerpc/platforms/powermac/pci.c | |||
@@ -561,7 +561,7 @@ static struct pci_ops u4_pcie_pci_ops = | |||
561 | .write = u4_pcie_write_config, | 561 | .write = u4_pcie_write_config, |
562 | }; | 562 | }; |
563 | 563 | ||
564 | static void __devinit pmac_pci_fixup_u4_of_node(struct pci_dev *dev) | 564 | static void pmac_pci_fixup_u4_of_node(struct pci_dev *dev) |
565 | { | 565 | { |
566 | /* Apple's device-tree "hides" the root complex virtual P2P bridge | 566 | /* Apple's device-tree "hides" the root complex virtual P2P bridge |
567 | * on U4. However, Linux sees it, causing the PCI <-> OF matching | 567 | * on U4. However, Linux sees it, causing the PCI <-> OF matching |
@@ -988,7 +988,7 @@ static int __init pmac_add_bridge(struct device_node *dev) | |||
988 | return 0; | 988 | return 0; |
989 | } | 989 | } |
990 | 990 | ||
991 | void __devinit pmac_pci_irq_fixup(struct pci_dev *dev) | 991 | void pmac_pci_irq_fixup(struct pci_dev *dev) |
992 | { | 992 | { |
993 | #ifdef CONFIG_PPC32 | 993 | #ifdef CONFIG_PPC32 |
994 | /* Fixup interrupt for the modem/ethernet combo controller. | 994 | /* Fixup interrupt for the modem/ethernet combo controller. |
@@ -1138,7 +1138,7 @@ int pmac_pci_enable_device_hook(struct pci_dev *dev) | |||
1138 | return 0; | 1138 | return 0; |
1139 | } | 1139 | } |
1140 | 1140 | ||
1141 | void __devinit pmac_pci_fixup_ohci(struct pci_dev *dev) | 1141 | void pmac_pci_fixup_ohci(struct pci_dev *dev) |
1142 | { | 1142 | { |
1143 | struct device_node *node = pci_device_to_OF_node(dev); | 1143 | struct device_node *node = pci_device_to_OF_node(dev); |
1144 | 1144 | ||
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c index b4ddaa3fbb29..bdb738a69e41 100644 --- a/arch/powerpc/platforms/powermac/smp.c +++ b/arch/powerpc/platforms/powermac/smp.c | |||
@@ -484,7 +484,7 @@ static void smp_core99_give_timebase(void) | |||
484 | } | 484 | } |
485 | 485 | ||
486 | 486 | ||
487 | static void __devinit smp_core99_take_timebase(void) | 487 | static void smp_core99_take_timebase(void) |
488 | { | 488 | { |
489 | unsigned long flags; | 489 | unsigned long flags; |
490 | 490 | ||
@@ -669,7 +669,7 @@ static void smp_core99_gpio_tb_freeze(int freeze) | |||
669 | volatile static long int core99_l2_cache; | 669 | volatile static long int core99_l2_cache; |
670 | volatile static long int core99_l3_cache; | 670 | volatile static long int core99_l3_cache; |
671 | 671 | ||
672 | static void __devinit core99_init_caches(int cpu) | 672 | static void core99_init_caches(int cpu) |
673 | { | 673 | { |
674 | #ifndef CONFIG_PPC64 | 674 | #ifndef CONFIG_PPC64 |
675 | if (!cpu_has_feature(CPU_FTR_L2CR)) | 675 | if (!cpu_has_feature(CPU_FTR_L2CR)) |
@@ -801,7 +801,7 @@ static int __init smp_core99_probe(void) | |||
801 | return ncpus; | 801 | return ncpus; |
802 | } | 802 | } |
803 | 803 | ||
804 | static int __devinit smp_core99_kick_cpu(int nr) | 804 | static int smp_core99_kick_cpu(int nr) |
805 | { | 805 | { |
806 | unsigned int save_vector; | 806 | unsigned int save_vector; |
807 | unsigned long target, flags; | 807 | unsigned long target, flags; |
@@ -844,7 +844,7 @@ static int __devinit smp_core99_kick_cpu(int nr) | |||
844 | return 0; | 844 | return 0; |
845 | } | 845 | } |
846 | 846 | ||
847 | static void __devinit smp_core99_setup_cpu(int cpu_nr) | 847 | static void smp_core99_setup_cpu(int cpu_nr) |
848 | { | 848 | { |
849 | /* Setup L2/L3 */ | 849 | /* Setup L2/L3 */ |
850 | if (cpu_nr != 0) | 850 | if (cpu_nr != 0) |
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c index 53d052e95cfc..8e90e8906df3 100644 --- a/arch/powerpc/platforms/powernv/pci-ioda.c +++ b/arch/powerpc/platforms/powernv/pci-ioda.c | |||
@@ -76,7 +76,7 @@ static struct pci_dn *pnv_ioda_get_pdn(struct pci_dev *dev) | |||
76 | return PCI_DN(np); | 76 | return PCI_DN(np); |
77 | } | 77 | } |
78 | 78 | ||
79 | static int __devinit pnv_ioda_alloc_pe(struct pnv_phb *phb) | 79 | static int pnv_ioda_alloc_pe(struct pnv_phb *phb) |
80 | { | 80 | { |
81 | unsigned long pe; | 81 | unsigned long pe; |
82 | 82 | ||
@@ -91,7 +91,7 @@ static int __devinit pnv_ioda_alloc_pe(struct pnv_phb *phb) | |||
91 | return pe; | 91 | return pe; |
92 | } | 92 | } |
93 | 93 | ||
94 | static void __devinit pnv_ioda_free_pe(struct pnv_phb *phb, int pe) | 94 | static void pnv_ioda_free_pe(struct pnv_phb *phb, int pe) |
95 | { | 95 | { |
96 | WARN_ON(phb->ioda.pe_array[pe].pdev); | 96 | WARN_ON(phb->ioda.pe_array[pe].pdev); |
97 | 97 | ||
@@ -103,7 +103,7 @@ static void __devinit pnv_ioda_free_pe(struct pnv_phb *phb, int pe) | |||
103 | * but in the meantime, we need to protect them to avoid warnings | 103 | * but in the meantime, we need to protect them to avoid warnings |
104 | */ | 104 | */ |
105 | #ifdef CONFIG_PCI_MSI | 105 | #ifdef CONFIG_PCI_MSI |
106 | static struct pnv_ioda_pe * __devinit pnv_ioda_get_pe(struct pci_dev *dev) | 106 | static struct pnv_ioda_pe *pnv_ioda_get_pe(struct pci_dev *dev) |
107 | { | 107 | { |
108 | struct pci_controller *hose = pci_bus_to_host(dev->bus); | 108 | struct pci_controller *hose = pci_bus_to_host(dev->bus); |
109 | struct pnv_phb *phb = hose->private_data; | 109 | struct pnv_phb *phb = hose->private_data; |
@@ -117,8 +117,7 @@ static struct pnv_ioda_pe * __devinit pnv_ioda_get_pe(struct pci_dev *dev) | |||
117 | } | 117 | } |
118 | #endif /* CONFIG_PCI_MSI */ | 118 | #endif /* CONFIG_PCI_MSI */ |
119 | 119 | ||
120 | static int __devinit pnv_ioda_configure_pe(struct pnv_phb *phb, | 120 | static int pnv_ioda_configure_pe(struct pnv_phb *phb, struct pnv_ioda_pe *pe) |
121 | struct pnv_ioda_pe *pe) | ||
122 | { | 121 | { |
123 | struct pci_dev *parent; | 122 | struct pci_dev *parent; |
124 | uint8_t bcomp, dcomp, fcomp; | 123 | uint8_t bcomp, dcomp, fcomp; |
@@ -207,8 +206,8 @@ static int __devinit pnv_ioda_configure_pe(struct pnv_phb *phb, | |||
207 | return 0; | 206 | return 0; |
208 | } | 207 | } |
209 | 208 | ||
210 | static void __devinit pnv_ioda_link_pe_by_weight(struct pnv_phb *phb, | 209 | static void pnv_ioda_link_pe_by_weight(struct pnv_phb *phb, |
211 | struct pnv_ioda_pe *pe) | 210 | struct pnv_ioda_pe *pe) |
212 | { | 211 | { |
213 | struct pnv_ioda_pe *lpe; | 212 | struct pnv_ioda_pe *lpe; |
214 | 213 | ||
@@ -246,7 +245,7 @@ static unsigned int pnv_ioda_dma_weight(struct pci_dev *dev) | |||
246 | } | 245 | } |
247 | 246 | ||
248 | #if 0 | 247 | #if 0 |
249 | static struct pnv_ioda_pe * __devinit pnv_ioda_setup_dev_PE(struct pci_dev *dev) | 248 | static struct pnv_ioda_pe *pnv_ioda_setup_dev_PE(struct pci_dev *dev) |
250 | { | 249 | { |
251 | struct pci_controller *hose = pci_bus_to_host(dev->bus); | 250 | struct pci_controller *hose = pci_bus_to_host(dev->bus); |
252 | struct pnv_phb *phb = hose->private_data; | 251 | struct pnv_phb *phb = hose->private_data; |
@@ -343,7 +342,7 @@ static void pnv_ioda_setup_same_PE(struct pci_bus *bus, struct pnv_ioda_pe *pe) | |||
343 | * subordinate PCI devices and buses. The second type of PE is normally | 342 | * subordinate PCI devices and buses. The second type of PE is normally |
344 | * orgiriated by PCIe-to-PCI bridge or PLX switch downstream ports. | 343 | * orgiriated by PCIe-to-PCI bridge or PLX switch downstream ports. |
345 | */ | 344 | */ |
346 | static void __devinit pnv_ioda_setup_bus_PE(struct pci_bus *bus, int all) | 345 | static void pnv_ioda_setup_bus_PE(struct pci_bus *bus, int all) |
347 | { | 346 | { |
348 | struct pci_controller *hose = pci_bus_to_host(bus); | 347 | struct pci_controller *hose = pci_bus_to_host(bus); |
349 | struct pnv_phb *phb = hose->private_data; | 348 | struct pnv_phb *phb = hose->private_data; |
@@ -399,7 +398,7 @@ static void __devinit pnv_ioda_setup_bus_PE(struct pci_bus *bus, int all) | |||
399 | pnv_ioda_link_pe_by_weight(phb, pe); | 398 | pnv_ioda_link_pe_by_weight(phb, pe); |
400 | } | 399 | } |
401 | 400 | ||
402 | static void __devinit pnv_ioda_setup_PEs(struct pci_bus *bus) | 401 | static void pnv_ioda_setup_PEs(struct pci_bus *bus) |
403 | { | 402 | { |
404 | struct pci_dev *dev; | 403 | struct pci_dev *dev; |
405 | 404 | ||
@@ -423,7 +422,7 @@ static void __devinit pnv_ioda_setup_PEs(struct pci_bus *bus) | |||
423 | * port to PE# here. The game rule here is expected to be changed | 422 | * port to PE# here. The game rule here is expected to be changed |
424 | * as soon as we can detected PLX bridge correctly. | 423 | * as soon as we can detected PLX bridge correctly. |
425 | */ | 424 | */ |
426 | static void __devinit pnv_pci_ioda_setup_PEs(void) | 425 | static void pnv_pci_ioda_setup_PEs(void) |
427 | { | 426 | { |
428 | struct pci_controller *hose, *tmp; | 427 | struct pci_controller *hose, *tmp; |
429 | 428 | ||
@@ -432,14 +431,12 @@ static void __devinit pnv_pci_ioda_setup_PEs(void) | |||
432 | } | 431 | } |
433 | } | 432 | } |
434 | 433 | ||
435 | static void __devinit pnv_pci_ioda_dma_dev_setup(struct pnv_phb *phb, | 434 | static void pnv_pci_ioda_dma_dev_setup(struct pnv_phb *phb, struct pci_dev *dev) |
436 | struct pci_dev *dev) | ||
437 | { | 435 | { |
438 | /* We delay DMA setup after we have assigned all PE# */ | 436 | /* We delay DMA setup after we have assigned all PE# */ |
439 | } | 437 | } |
440 | 438 | ||
441 | static void __devinit pnv_ioda_setup_bus_dma(struct pnv_ioda_pe *pe, | 439 | static void pnv_ioda_setup_bus_dma(struct pnv_ioda_pe *pe, struct pci_bus *bus) |
442 | struct pci_bus *bus) | ||
443 | { | 440 | { |
444 | struct pci_dev *dev; | 441 | struct pci_dev *dev; |
445 | 442 | ||
@@ -450,10 +447,9 @@ static void __devinit pnv_ioda_setup_bus_dma(struct pnv_ioda_pe *pe, | |||
450 | } | 447 | } |
451 | } | 448 | } |
452 | 449 | ||
453 | static void __devinit pnv_pci_ioda_setup_dma_pe(struct pnv_phb *phb, | 450 | static void pnv_pci_ioda_setup_dma_pe(struct pnv_phb *phb, |
454 | struct pnv_ioda_pe *pe, | 451 | struct pnv_ioda_pe *pe, unsigned int base, |
455 | unsigned int base, | 452 | unsigned int segs) |
456 | unsigned int segs) | ||
457 | { | 453 | { |
458 | 454 | ||
459 | struct page *tce_mem = NULL; | 455 | struct page *tce_mem = NULL; |
@@ -541,7 +537,7 @@ static void __devinit pnv_pci_ioda_setup_dma_pe(struct pnv_phb *phb, | |||
541 | __free_pages(tce_mem, get_order(TCE32_TABLE_SIZE * segs)); | 537 | __free_pages(tce_mem, get_order(TCE32_TABLE_SIZE * segs)); |
542 | } | 538 | } |
543 | 539 | ||
544 | static void __devinit pnv_ioda_setup_dma(struct pnv_phb *phb) | 540 | static void pnv_ioda_setup_dma(struct pnv_phb *phb) |
545 | { | 541 | { |
546 | struct pci_controller *hose = phb->hose; | 542 | struct pci_controller *hose = phb->hose; |
547 | unsigned int residual, remaining, segs, tw, base; | 543 | unsigned int residual, remaining, segs, tw, base; |
@@ -684,8 +680,8 @@ static void pnv_pci_init_ioda_msis(struct pnv_phb *phb) { } | |||
684 | * to bottom style. So the the I/O or MMIO segment assigned to | 680 | * to bottom style. So the the I/O or MMIO segment assigned to |
685 | * parent PE could be overrided by its child PEs if necessary. | 681 | * parent PE could be overrided by its child PEs if necessary. |
686 | */ | 682 | */ |
687 | static void __devinit pnv_ioda_setup_pe_seg(struct pci_controller *hose, | 683 | static void pnv_ioda_setup_pe_seg(struct pci_controller *hose, |
688 | struct pnv_ioda_pe *pe) | 684 | struct pnv_ioda_pe *pe) |
689 | { | 685 | { |
690 | struct pnv_phb *phb = hose->private_data; | 686 | struct pnv_phb *phb = hose->private_data; |
691 | struct pci_bus_region region; | 687 | struct pci_bus_region region; |
@@ -753,7 +749,7 @@ static void __devinit pnv_ioda_setup_pe_seg(struct pci_controller *hose, | |||
753 | } | 749 | } |
754 | } | 750 | } |
755 | 751 | ||
756 | static void __devinit pnv_pci_ioda_setup_seg(void) | 752 | static void pnv_pci_ioda_setup_seg(void) |
757 | { | 753 | { |
758 | struct pci_controller *tmp, *hose; | 754 | struct pci_controller *tmp, *hose; |
759 | struct pnv_phb *phb; | 755 | struct pnv_phb *phb; |
@@ -767,7 +763,7 @@ static void __devinit pnv_pci_ioda_setup_seg(void) | |||
767 | } | 763 | } |
768 | } | 764 | } |
769 | 765 | ||
770 | static void __devinit pnv_pci_ioda_setup_DMA(void) | 766 | static void pnv_pci_ioda_setup_DMA(void) |
771 | { | 767 | { |
772 | struct pci_controller *hose, *tmp; | 768 | struct pci_controller *hose, *tmp; |
773 | struct pnv_phb *phb; | 769 | struct pnv_phb *phb; |
@@ -781,7 +777,7 @@ static void __devinit pnv_pci_ioda_setup_DMA(void) | |||
781 | } | 777 | } |
782 | } | 778 | } |
783 | 779 | ||
784 | static void __devinit pnv_pci_ioda_fixup(void) | 780 | static void pnv_pci_ioda_fixup(void) |
785 | { | 781 | { |
786 | pnv_pci_ioda_setup_PEs(); | 782 | pnv_pci_ioda_setup_PEs(); |
787 | pnv_pci_ioda_setup_seg(); | 783 | pnv_pci_ioda_setup_seg(); |
@@ -829,7 +825,7 @@ static resource_size_t pnv_pci_window_alignment(struct pci_bus *bus, | |||
829 | /* Prevent enabling devices for which we couldn't properly | 825 | /* Prevent enabling devices for which we couldn't properly |
830 | * assign a PE | 826 | * assign a PE |
831 | */ | 827 | */ |
832 | static int __devinit pnv_pci_enable_device_hook(struct pci_dev *dev) | 828 | static int pnv_pci_enable_device_hook(struct pci_dev *dev) |
833 | { | 829 | { |
834 | struct pci_controller *hose = pci_bus_to_host(dev->bus); | 830 | struct pci_controller *hose = pci_bus_to_host(dev->bus); |
835 | struct pnv_phb *phb = hose->private_data; | 831 | struct pnv_phb *phb = hose->private_data; |
diff --git a/arch/powerpc/platforms/powernv/pci-p5ioc2.c b/arch/powerpc/platforms/powernv/pci-p5ioc2.c index 6b4bef4e9d82..7db8771a40f5 100644 --- a/arch/powerpc/platforms/powernv/pci-p5ioc2.c +++ b/arch/powerpc/platforms/powernv/pci-p5ioc2.c | |||
@@ -84,8 +84,8 @@ static void pnv_pci_init_p5ioc2_msis(struct pnv_phb *phb) | |||
84 | static void pnv_pci_init_p5ioc2_msis(struct pnv_phb *phb) { } | 84 | static void pnv_pci_init_p5ioc2_msis(struct pnv_phb *phb) { } |
85 | #endif /* CONFIG_PCI_MSI */ | 85 | #endif /* CONFIG_PCI_MSI */ |
86 | 86 | ||
87 | static void __devinit pnv_pci_p5ioc2_dma_dev_setup(struct pnv_phb *phb, | 87 | static void pnv_pci_p5ioc2_dma_dev_setup(struct pnv_phb *phb, |
88 | struct pci_dev *pdev) | 88 | struct pci_dev *pdev) |
89 | { | 89 | { |
90 | if (phb->p5ioc2.iommu_table.it_map == NULL) | 90 | if (phb->p5ioc2.iommu_table.it_map == NULL) |
91 | iommu_init_table(&phb->p5ioc2.iommu_table, phb->hose->node); | 91 | iommu_init_table(&phb->p5ioc2.iommu_table, phb->hose->node); |
diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c index c01688a1a741..b8b8e0bd9897 100644 --- a/arch/powerpc/platforms/powernv/pci.c +++ b/arch/powerpc/platforms/powernv/pci.c | |||
@@ -464,8 +464,7 @@ void pnv_pci_setup_iommu_table(struct iommu_table *tbl, | |||
464 | tbl->it_type = TCE_PCI; | 464 | tbl->it_type = TCE_PCI; |
465 | } | 465 | } |
466 | 466 | ||
467 | static struct iommu_table * __devinit | 467 | static struct iommu_table *pnv_pci_setup_bml_iommu(struct pci_controller *hose) |
468 | pnv_pci_setup_bml_iommu(struct pci_controller *hose) | ||
469 | { | 468 | { |
470 | struct iommu_table *tbl; | 469 | struct iommu_table *tbl; |
471 | const __be64 *basep, *swinvp; | 470 | const __be64 *basep, *swinvp; |
@@ -496,8 +495,8 @@ pnv_pci_setup_bml_iommu(struct pci_controller *hose) | |||
496 | return tbl; | 495 | return tbl; |
497 | } | 496 | } |
498 | 497 | ||
499 | static void __devinit pnv_pci_dma_fallback_setup(struct pci_controller *hose, | 498 | static void pnv_pci_dma_fallback_setup(struct pci_controller *hose, |
500 | struct pci_dev *pdev) | 499 | struct pci_dev *pdev) |
501 | { | 500 | { |
502 | struct device_node *np = pci_bus_to_OF_node(hose->bus); | 501 | struct device_node *np = pci_bus_to_OF_node(hose->bus); |
503 | struct pci_dn *pdn; | 502 | struct pci_dn *pdn; |
@@ -512,7 +511,7 @@ static void __devinit pnv_pci_dma_fallback_setup(struct pci_controller *hose, | |||
512 | set_iommu_table_base(&pdev->dev, pdn->iommu_table); | 511 | set_iommu_table_base(&pdev->dev, pdn->iommu_table); |
513 | } | 512 | } |
514 | 513 | ||
515 | static void __devinit pnv_pci_dma_dev_setup(struct pci_dev *pdev) | 514 | static void pnv_pci_dma_dev_setup(struct pci_dev *pdev) |
516 | { | 515 | { |
517 | struct pci_controller *hose = pci_bus_to_host(pdev->bus); | 516 | struct pci_controller *hose = pci_bus_to_host(pdev->bus); |
518 | struct pnv_phb *phb = hose->private_data; | 517 | struct pnv_phb *phb = hose->private_data; |
@@ -527,7 +526,7 @@ static void __devinit pnv_pci_dma_dev_setup(struct pci_dev *pdev) | |||
527 | } | 526 | } |
528 | 527 | ||
529 | /* Fixup wrong class code in p7ioc root complex */ | 528 | /* Fixup wrong class code in p7ioc root complex */ |
530 | static void __devinit pnv_p7ioc_rc_quirk(struct pci_dev *dev) | 529 | static void pnv_p7ioc_rc_quirk(struct pci_dev *dev) |
531 | { | 530 | { |
532 | dev->class = PCI_CLASS_BRIDGE_PCI << 8; | 531 | dev->class = PCI_CLASS_BRIDGE_PCI << 8; |
533 | } | 532 | } |
diff --git a/arch/powerpc/platforms/powernv/smp.c b/arch/powerpc/platforms/powernv/smp.c index 7698b6e13c57..0bdc735db16f 100644 --- a/arch/powerpc/platforms/powernv/smp.c +++ b/arch/powerpc/platforms/powernv/smp.c | |||
@@ -62,7 +62,7 @@ static int pnv_smp_cpu_bootable(unsigned int nr) | |||
62 | return 1; | 62 | return 1; |
63 | } | 63 | } |
64 | 64 | ||
65 | int __devinit pnv_smp_kick_cpu(int nr) | 65 | int pnv_smp_kick_cpu(int nr) |
66 | { | 66 | { |
67 | unsigned int pcpu = get_hard_smp_processor_id(nr); | 67 | unsigned int pcpu = get_hard_smp_processor_id(nr); |
68 | unsigned long start_here = __pa(*((unsigned long *) | 68 | unsigned long start_here = __pa(*((unsigned long *) |
diff --git a/arch/powerpc/platforms/ps3/repository.c b/arch/powerpc/platforms/ps3/repository.c index 9b47ba7a5de7..bfccdc7cb85f 100644 --- a/arch/powerpc/platforms/ps3/repository.c +++ b/arch/powerpc/platforms/ps3/repository.c | |||
@@ -437,7 +437,7 @@ found_dev: | |||
437 | return 0; | 437 | return 0; |
438 | } | 438 | } |
439 | 439 | ||
440 | int __devinit ps3_repository_find_devices(enum ps3_bus_type bus_type, | 440 | int ps3_repository_find_devices(enum ps3_bus_type bus_type, |
441 | int (*callback)(const struct ps3_repository_device *repo)) | 441 | int (*callback)(const struct ps3_repository_device *repo)) |
442 | { | 442 | { |
443 | int result = 0; | 443 | int result = 0; |
diff --git a/arch/powerpc/platforms/pseries/eeh_dev.c b/arch/powerpc/platforms/pseries/eeh_dev.c index 66442341d3a6..1efa28f5fc54 100644 --- a/arch/powerpc/platforms/pseries/eeh_dev.c +++ b/arch/powerpc/platforms/pseries/eeh_dev.c | |||
@@ -49,7 +49,7 @@ | |||
49 | * It will create EEH device according to the given OF node. The function | 49 | * It will create EEH device according to the given OF node. The function |
50 | * might be called by PCI emunation, DR, PHB hotplug. | 50 | * might be called by PCI emunation, DR, PHB hotplug. |
51 | */ | 51 | */ |
52 | void * __devinit eeh_dev_init(struct device_node *dn, void *data) | 52 | void *eeh_dev_init(struct device_node *dn, void *data) |
53 | { | 53 | { |
54 | struct pci_controller *phb = data; | 54 | struct pci_controller *phb = data; |
55 | struct eeh_dev *edev; | 55 | struct eeh_dev *edev; |
@@ -77,7 +77,7 @@ void * __devinit eeh_dev_init(struct device_node *dn, void *data) | |||
77 | * Scan the PHB OF node and its child association, then create the | 77 | * Scan the PHB OF node and its child association, then create the |
78 | * EEH devices accordingly | 78 | * EEH devices accordingly |
79 | */ | 79 | */ |
80 | void __devinit eeh_dev_phb_init_dynamic(struct pci_controller *phb) | 80 | void eeh_dev_phb_init_dynamic(struct pci_controller *phb) |
81 | { | 81 | { |
82 | struct device_node *dn = phb->dn; | 82 | struct device_node *dn = phb->dn; |
83 | 83 | ||
diff --git a/arch/powerpc/platforms/pseries/eeh_pe.c b/arch/powerpc/platforms/pseries/eeh_pe.c index d16c8ded1084..fe43d1aa2cf1 100644 --- a/arch/powerpc/platforms/pseries/eeh_pe.c +++ b/arch/powerpc/platforms/pseries/eeh_pe.c | |||
@@ -66,7 +66,7 @@ static struct eeh_pe *eeh_pe_alloc(struct pci_controller *phb, int type) | |||
66 | * The function should be called while the PHB is detected during | 66 | * The function should be called while the PHB is detected during |
67 | * system boot or PCI hotplug in order to create PHB PE. | 67 | * system boot or PCI hotplug in order to create PHB PE. |
68 | */ | 68 | */ |
69 | int __devinit eeh_phb_pe_create(struct pci_controller *phb) | 69 | int eeh_phb_pe_create(struct pci_controller *phb) |
70 | { | 70 | { |
71 | struct eeh_pe *pe; | 71 | struct eeh_pe *pe; |
72 | 72 | ||
diff --git a/arch/powerpc/platforms/pseries/pci_dlpar.c b/arch/powerpc/platforms/pseries/pci_dlpar.c index 261a577a3dd2..c91b22be9288 100644 --- a/arch/powerpc/platforms/pseries/pci_dlpar.c +++ b/arch/powerpc/platforms/pseries/pci_dlpar.c | |||
@@ -149,7 +149,7 @@ void pcibios_add_pci_devices(struct pci_bus * bus) | |||
149 | } | 149 | } |
150 | EXPORT_SYMBOL_GPL(pcibios_add_pci_devices); | 150 | EXPORT_SYMBOL_GPL(pcibios_add_pci_devices); |
151 | 151 | ||
152 | struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn) | 152 | struct pci_controller *init_phb_dynamic(struct device_node *dn) |
153 | { | 153 | { |
154 | struct pci_controller *phb; | 154 | struct pci_controller *phb; |
155 | 155 | ||
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c index 9fc0a4941908..80cd0be71e06 100644 --- a/arch/powerpc/platforms/pseries/smp.c +++ b/arch/powerpc/platforms/pseries/smp.c | |||
@@ -87,7 +87,7 @@ int smp_query_cpu_stopped(unsigned int pcpu) | |||
87 | * 0 - failure | 87 | * 0 - failure |
88 | * 1 - success | 88 | * 1 - success |
89 | */ | 89 | */ |
90 | static inline int __devinit smp_startup_cpu(unsigned int lcpu) | 90 | static inline int smp_startup_cpu(unsigned int lcpu) |
91 | { | 91 | { |
92 | int status; | 92 | int status; |
93 | unsigned long start_here = __pa((u32)*((unsigned long *) | 93 | unsigned long start_here = __pa((u32)*((unsigned long *) |
@@ -133,7 +133,7 @@ out: | |||
133 | return 1; | 133 | return 1; |
134 | } | 134 | } |
135 | 135 | ||
136 | static void __devinit smp_xics_setup_cpu(int cpu) | 136 | static void smp_xics_setup_cpu(int cpu) |
137 | { | 137 | { |
138 | if (cpu != boot_cpuid) | 138 | if (cpu != boot_cpuid) |
139 | xics_setup_cpu(); | 139 | xics_setup_cpu(); |
@@ -148,7 +148,7 @@ static void __devinit smp_xics_setup_cpu(int cpu) | |||
148 | #endif | 148 | #endif |
149 | } | 149 | } |
150 | 150 | ||
151 | static int __devinit smp_pSeries_kick_cpu(int nr) | 151 | static int smp_pSeries_kick_cpu(int nr) |
152 | { | 152 | { |
153 | BUG_ON(nr < 0 || nr >= NR_CPUS); | 153 | BUG_ON(nr < 0 || nr >= NR_CPUS); |
154 | 154 | ||
diff --git a/arch/powerpc/platforms/wsp/scom_smp.c b/arch/powerpc/platforms/wsp/scom_smp.c index 141e78032097..b56b70aeb497 100644 --- a/arch/powerpc/platforms/wsp/scom_smp.c +++ b/arch/powerpc/platforms/wsp/scom_smp.c | |||
@@ -337,8 +337,7 @@ scom_fail: | |||
337 | return rc; | 337 | return rc; |
338 | } | 338 | } |
339 | 339 | ||
340 | int __devinit a2_scom_startup_cpu(unsigned int lcpu, int thr_idx, | 340 | int a2_scom_startup_cpu(unsigned int lcpu, int thr_idx, struct device_node *np) |
341 | struct device_node *np) | ||
342 | { | 341 | { |
343 | u64 init_iar, init_msr, init_ccr2; | 342 | u64 init_iar, init_msr, init_ccr2; |
344 | unsigned long start_here; | 343 | unsigned long start_here; |
diff --git a/arch/powerpc/platforms/wsp/smp.c b/arch/powerpc/platforms/wsp/smp.c index 0ba103ae83a5..332a18b81403 100644 --- a/arch/powerpc/platforms/wsp/smp.c +++ b/arch/powerpc/platforms/wsp/smp.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #include "ics.h" | 23 | #include "ics.h" |
24 | #include "wsp.h" | 24 | #include "wsp.h" |
25 | 25 | ||
26 | static void __devinit smp_a2_setup_cpu(int cpu) | 26 | static void smp_a2_setup_cpu(int cpu) |
27 | { | 27 | { |
28 | doorbell_setup_this_cpu(); | 28 | doorbell_setup_this_cpu(); |
29 | 29 | ||
@@ -31,7 +31,7 @@ static void __devinit smp_a2_setup_cpu(int cpu) | |||
31 | xics_setup_cpu(); | 31 | xics_setup_cpu(); |
32 | } | 32 | } |
33 | 33 | ||
34 | int __devinit smp_a2_kick_cpu(int nr) | 34 | int smp_a2_kick_cpu(int nr) |
35 | { | 35 | { |
36 | const char *enable_method; | 36 | const char *enable_method; |
37 | struct device_node *np; | 37 | struct device_node *np; |
diff --git a/arch/powerpc/platforms/wsp/wsp.h b/arch/powerpc/platforms/wsp/wsp.h index 10c1d1fff362..62ef21afb89a 100644 --- a/arch/powerpc/platforms/wsp/wsp.h +++ b/arch/powerpc/platforms/wsp/wsp.h | |||
@@ -18,7 +18,7 @@ extern void a2_setup_smp(void); | |||
18 | extern int a2_scom_startup_cpu(unsigned int lcpu, int thr_idx, | 18 | extern int a2_scom_startup_cpu(unsigned int lcpu, int thr_idx, |
19 | struct device_node *np); | 19 | struct device_node *np); |
20 | extern int smp_a2_cpu_bootable(unsigned int nr); | 20 | extern int smp_a2_cpu_bootable(unsigned int nr); |
21 | extern int __devinit smp_a2_kick_cpu(int nr); | 21 | extern int smp_a2_kick_cpu(int nr); |
22 | 22 | ||
23 | extern void opb_pic_init(void); | 23 | extern void opb_pic_init(void); |
24 | 24 | ||
diff --git a/arch/powerpc/platforms/wsp/wsp_pci.c b/arch/powerpc/platforms/wsp/wsp_pci.c index 1526551f9fe6..8e22f561d171 100644 --- a/arch/powerpc/platforms/wsp/wsp_pci.c +++ b/arch/powerpc/platforms/wsp/wsp_pci.c | |||
@@ -402,7 +402,7 @@ static struct wsp_dma_table *wsp_pci_create_dma32_table(struct wsp_phb *phb, | |||
402 | return ERR_PTR(-ENOMEM); | 402 | return ERR_PTR(-ENOMEM); |
403 | } | 403 | } |
404 | 404 | ||
405 | static void __devinit wsp_pci_dma_dev_setup(struct pci_dev *pdev) | 405 | static void wsp_pci_dma_dev_setup(struct pci_dev *pdev) |
406 | { | 406 | { |
407 | struct dev_archdata *archdata = &pdev->dev.archdata; | 407 | struct dev_archdata *archdata = &pdev->dev.archdata; |
408 | struct pci_controller *hose = pci_bus_to_host(pdev->bus); | 408 | struct pci_controller *hose = pci_bus_to_host(pdev->bus); |
diff --git a/arch/powerpc/sysdev/bestcomm/bestcomm.c b/arch/powerpc/sysdev/bestcomm/bestcomm.c index b3fbb271be87..d9130630f7ef 100644 --- a/arch/powerpc/sysdev/bestcomm/bestcomm.c +++ b/arch/powerpc/sysdev/bestcomm/bestcomm.c | |||
@@ -30,7 +30,7 @@ | |||
30 | #define DRIVER_NAME "bestcomm-core" | 30 | #define DRIVER_NAME "bestcomm-core" |
31 | 31 | ||
32 | /* MPC5200 device tree match tables */ | 32 | /* MPC5200 device tree match tables */ |
33 | static struct of_device_id mpc52xx_sram_ids[] __devinitdata = { | 33 | static struct of_device_id mpc52xx_sram_ids[] = { |
34 | { .compatible = "fsl,mpc5200-sram", }, | 34 | { .compatible = "fsl,mpc5200-sram", }, |
35 | { .compatible = "mpc5200-sram", }, | 35 | { .compatible = "mpc5200-sram", }, |
36 | {} | 36 | {} |
@@ -273,8 +273,7 @@ static u32 fdt_ops[] = { | |||
273 | }; | 273 | }; |
274 | 274 | ||
275 | 275 | ||
276 | static int __devinit | 276 | static int bcom_engine_init(void) |
277 | bcom_engine_init(void) | ||
278 | { | 277 | { |
279 | int task; | 278 | int task; |
280 | phys_addr_t tdt_pa, ctx_pa, var_pa, fdt_pa; | 279 | phys_addr_t tdt_pa, ctx_pa, var_pa, fdt_pa; |
@@ -365,7 +364,7 @@ bcom_engine_cleanup(void) | |||
365 | /* OF platform driver */ | 364 | /* OF platform driver */ |
366 | /* ======================================================================== */ | 365 | /* ======================================================================== */ |
367 | 366 | ||
368 | static int __devinit mpc52xx_bcom_probe(struct platform_device *op) | 367 | static int mpc52xx_bcom_probe(struct platform_device *op) |
369 | { | 368 | { |
370 | struct device_node *ofn_sram; | 369 | struct device_node *ofn_sram; |
371 | struct resource res_bcom; | 370 | struct resource res_bcom; |
diff --git a/arch/powerpc/sysdev/fsl_85xx_l2ctlr.c b/arch/powerpc/sysdev/fsl_85xx_l2ctlr.c index d131c8a1cb15..8cf93f029e17 100644 --- a/arch/powerpc/sysdev/fsl_85xx_l2ctlr.c +++ b/arch/powerpc/sysdev/fsl_85xx_l2ctlr.c | |||
@@ -69,7 +69,7 @@ static int __init get_offset_from_cmdline(char *str) | |||
69 | __setup("cache-sram-size=", get_size_from_cmdline); | 69 | __setup("cache-sram-size=", get_size_from_cmdline); |
70 | __setup("cache-sram-offset=", get_offset_from_cmdline); | 70 | __setup("cache-sram-offset=", get_offset_from_cmdline); |
71 | 71 | ||
72 | static int __devinit mpc85xx_l2ctlr_of_probe(struct platform_device *dev) | 72 | static int mpc85xx_l2ctlr_of_probe(struct platform_device *dev) |
73 | { | 73 | { |
74 | long rval; | 74 | long rval; |
75 | unsigned int rem; | 75 | unsigned int rem; |
@@ -160,7 +160,7 @@ static int __devinit mpc85xx_l2ctlr_of_probe(struct platform_device *dev) | |||
160 | return 0; | 160 | return 0; |
161 | } | 161 | } |
162 | 162 | ||
163 | static int __devexit mpc85xx_l2ctlr_of_remove(struct platform_device *dev) | 163 | static int mpc85xx_l2ctlr_of_remove(struct platform_device *dev) |
164 | { | 164 | { |
165 | BUG_ON(!l2ctlr); | 165 | BUG_ON(!l2ctlr); |
166 | 166 | ||
@@ -213,7 +213,7 @@ static struct platform_driver mpc85xx_l2ctlr_of_platform_driver = { | |||
213 | .of_match_table = mpc85xx_l2ctlr_of_match, | 213 | .of_match_table = mpc85xx_l2ctlr_of_match, |
214 | }, | 214 | }, |
215 | .probe = mpc85xx_l2ctlr_of_probe, | 215 | .probe = mpc85xx_l2ctlr_of_probe, |
216 | .remove = __devexit_p(mpc85xx_l2ctlr_of_remove), | 216 | .remove = mpc85xx_l2ctlr_of_remove, |
217 | }; | 217 | }; |
218 | 218 | ||
219 | static __init int mpc85xx_l2ctlr_of_init(void) | 219 | static __init int mpc85xx_l2ctlr_of_init(void) |
diff --git a/arch/powerpc/sysdev/fsl_ifc.c b/arch/powerpc/sysdev/fsl_ifc.c index 097cc9d2585b..2a36fd6a9583 100644 --- a/arch/powerpc/sysdev/fsl_ifc.c +++ b/arch/powerpc/sysdev/fsl_ifc.c | |||
@@ -73,7 +73,7 @@ int fsl_ifc_find(phys_addr_t addr_base) | |||
73 | } | 73 | } |
74 | EXPORT_SYMBOL(fsl_ifc_find); | 74 | EXPORT_SYMBOL(fsl_ifc_find); |
75 | 75 | ||
76 | static int __devinit fsl_ifc_ctrl_init(struct fsl_ifc_ctrl *ctrl) | 76 | static int fsl_ifc_ctrl_init(struct fsl_ifc_ctrl *ctrl) |
77 | { | 77 | { |
78 | struct fsl_ifc_regs __iomem *ifc = ctrl->regs; | 78 | struct fsl_ifc_regs __iomem *ifc = ctrl->regs; |
79 | 79 | ||
@@ -211,7 +211,7 @@ static irqreturn_t fsl_ifc_ctrl_irq(int irqno, void *data) | |||
211 | * resources for the NAND banks themselves are allocated | 211 | * resources for the NAND banks themselves are allocated |
212 | * in the chip probe function. | 212 | * in the chip probe function. |
213 | */ | 213 | */ |
214 | static int __devinit fsl_ifc_ctrl_probe(struct platform_device *dev) | 214 | static int fsl_ifc_ctrl_probe(struct platform_device *dev) |
215 | { | 215 | { |
216 | int ret = 0; | 216 | int ret = 0; |
217 | 217 | ||
diff --git a/arch/powerpc/sysdev/fsl_lbc.c b/arch/powerpc/sysdev/fsl_lbc.c index 483126d7b3c0..300be2d06a26 100644 --- a/arch/powerpc/sysdev/fsl_lbc.c +++ b/arch/powerpc/sysdev/fsl_lbc.c | |||
@@ -185,8 +185,8 @@ int fsl_upm_run_pattern(struct fsl_upm *upm, void __iomem *io_base, u32 mar) | |||
185 | } | 185 | } |
186 | EXPORT_SYMBOL(fsl_upm_run_pattern); | 186 | EXPORT_SYMBOL(fsl_upm_run_pattern); |
187 | 187 | ||
188 | static int __devinit fsl_lbc_ctrl_init(struct fsl_lbc_ctrl *ctrl, | 188 | static int fsl_lbc_ctrl_init(struct fsl_lbc_ctrl *ctrl, |
189 | struct device_node *node) | 189 | struct device_node *node) |
190 | { | 190 | { |
191 | struct fsl_lbc_regs __iomem *lbc = ctrl->regs; | 191 | struct fsl_lbc_regs __iomem *lbc = ctrl->regs; |
192 | 192 | ||
@@ -273,7 +273,7 @@ static irqreturn_t fsl_lbc_ctrl_irq(int irqno, void *data) | |||
273 | * in the chip probe function. | 273 | * in the chip probe function. |
274 | */ | 274 | */ |
275 | 275 | ||
276 | static int __devinit fsl_lbc_ctrl_probe(struct platform_device *dev) | 276 | static int fsl_lbc_ctrl_probe(struct platform_device *dev) |
277 | { | 277 | { |
278 | int ret; | 278 | int ret; |
279 | 279 | ||
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c index 63c5f04ea580..6e53d97abd3f 100644 --- a/arch/powerpc/sysdev/fsl_msi.c +++ b/arch/powerpc/sysdev/fsl_msi.c | |||
@@ -333,9 +333,8 @@ static int fsl_of_msi_remove(struct platform_device *ofdev) | |||
333 | return 0; | 333 | return 0; |
334 | } | 334 | } |
335 | 335 | ||
336 | static int __devinit fsl_msi_setup_hwirq(struct fsl_msi *msi, | 336 | static int fsl_msi_setup_hwirq(struct fsl_msi *msi, struct platform_device *dev, |
337 | struct platform_device *dev, | 337 | int offset, int irq_index) |
338 | int offset, int irq_index) | ||
339 | { | 338 | { |
340 | struct fsl_msi_cascade_data *cascade_data = NULL; | 339 | struct fsl_msi_cascade_data *cascade_data = NULL; |
341 | int virt_msir; | 340 | int virt_msir; |
@@ -363,7 +362,7 @@ static int __devinit fsl_msi_setup_hwirq(struct fsl_msi *msi, | |||
363 | } | 362 | } |
364 | 363 | ||
365 | static const struct of_device_id fsl_of_msi_ids[]; | 364 | static const struct of_device_id fsl_of_msi_ids[]; |
366 | static int __devinit fsl_of_msi_probe(struct platform_device *dev) | 365 | static int fsl_of_msi_probe(struct platform_device *dev) |
367 | { | 366 | { |
368 | const struct of_device_id *match; | 367 | const struct of_device_id *match; |
369 | struct fsl_msi *msi; | 368 | struct fsl_msi *msi; |
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index 5ba325bff3a2..92a5915b1827 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c | |||
@@ -36,7 +36,7 @@ | |||
36 | 36 | ||
37 | static int fsl_pcie_bus_fixup, is_mpc83xx_pci; | 37 | static int fsl_pcie_bus_fixup, is_mpc83xx_pci; |
38 | 38 | ||
39 | static void __devinit quirk_fsl_pcie_header(struct pci_dev *dev) | 39 | static void quirk_fsl_pcie_header(struct pci_dev *dev) |
40 | { | 40 | { |
41 | u8 hdr_type; | 41 | u8 hdr_type; |
42 | 42 | ||
@@ -871,7 +871,7 @@ void fsl_pci_assign_primary(void) | |||
871 | } | 871 | } |
872 | } | 872 | } |
873 | 873 | ||
874 | static int __devinit fsl_pci_probe(struct platform_device *pdev) | 874 | static int fsl_pci_probe(struct platform_device *pdev) |
875 | { | 875 | { |
876 | int ret; | 876 | int ret; |
877 | struct device_node *node; | 877 | struct device_node *node; |
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c index 5b6f556094dd..e2fb3171f41b 100644 --- a/arch/powerpc/sysdev/fsl_rio.c +++ b/arch/powerpc/sysdev/fsl_rio.c | |||
@@ -644,7 +644,7 @@ err_rio_regs: | |||
644 | 644 | ||
645 | /* The probe function for RapidIO peer-to-peer network. | 645 | /* The probe function for RapidIO peer-to-peer network. |
646 | */ | 646 | */ |
647 | static int __devinit fsl_of_rio_rpn_probe(struct platform_device *dev) | 647 | static int fsl_of_rio_rpn_probe(struct platform_device *dev) |
648 | { | 648 | { |
649 | printk(KERN_INFO "Setting up RapidIO peer-to-peer network %s\n", | 649 | printk(KERN_INFO "Setting up RapidIO peer-to-peer network %s\n", |
650 | dev->dev.of_node->full_name); | 650 | dev->dev.of_node->full_name); |
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 9c6e535daad2..3b2efd41abf2 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
@@ -1864,7 +1864,7 @@ int __init smp_mpic_probe(void) | |||
1864 | return nr_cpus; | 1864 | return nr_cpus; |
1865 | } | 1865 | } |
1866 | 1866 | ||
1867 | void __devinit smp_mpic_setup_cpu(int cpu) | 1867 | void smp_mpic_setup_cpu(int cpu) |
1868 | { | 1868 | { |
1869 | mpic_setup_this_cpu(); | 1869 | mpic_setup_this_cpu(); |
1870 | } | 1870 | } |
diff --git a/arch/powerpc/sysdev/mpic_msgr.c b/arch/powerpc/sysdev/mpic_msgr.c index e961f8c4a8f0..c75325865a85 100644 --- a/arch/powerpc/sysdev/mpic_msgr.c +++ b/arch/powerpc/sysdev/mpic_msgr.c | |||
@@ -160,7 +160,7 @@ static int mpic_msgr_block_number(struct device_node *node) | |||
160 | 160 | ||
161 | /* The probe function for a single message register block. | 161 | /* The probe function for a single message register block. |
162 | */ | 162 | */ |
163 | static __devinit int mpic_msgr_probe(struct platform_device *dev) | 163 | static int mpic_msgr_probe(struct platform_device *dev) |
164 | { | 164 | { |
165 | void __iomem *msgr_block_addr; | 165 | void __iomem *msgr_block_addr; |
166 | int block_number; | 166 | int block_number; |
diff --git a/arch/powerpc/sysdev/mv64x60_pci.c b/arch/powerpc/sysdev/mv64x60_pci.c index 364b14d4754b..330d56613c5a 100644 --- a/arch/powerpc/sysdev/mv64x60_pci.c +++ b/arch/powerpc/sysdev/mv64x60_pci.c | |||
@@ -104,7 +104,7 @@ subsys_initcall(mv64x60_sysfs_init); | |||
104 | 104 | ||
105 | #endif /* CONFIG_SYSFS */ | 105 | #endif /* CONFIG_SYSFS */ |
106 | 106 | ||
107 | static void __devinit mv64x60_pci_fixup_early(struct pci_dev *dev) | 107 | static void mv64x60_pci_fixup_early(struct pci_dev *dev) |
108 | { | 108 | { |
109 | /* | 109 | /* |
110 | * Set the host bridge hdr_type to an invalid value so that | 110 | * Set the host bridge hdr_type to an invalid value so that |
diff --git a/arch/powerpc/sysdev/ppc4xx_msi.c b/arch/powerpc/sysdev/ppc4xx_msi.c index 82c6702dcbab..43948da837a7 100644 --- a/arch/powerpc/sysdev/ppc4xx_msi.c +++ b/arch/powerpc/sysdev/ppc4xx_msi.c | |||
@@ -220,7 +220,7 @@ static int ppc4xx_of_msi_remove(struct platform_device *dev) | |||
220 | return 0; | 220 | return 0; |
221 | } | 221 | } |
222 | 222 | ||
223 | static int __devinit ppc4xx_msi_probe(struct platform_device *dev) | 223 | static int ppc4xx_msi_probe(struct platform_device *dev) |
224 | { | 224 | { |
225 | struct ppc4xx_msi *msi; | 225 | struct ppc4xx_msi *msi; |
226 | struct resource res; | 226 | struct resource res; |
diff --git a/arch/s390/Makefile b/arch/s390/Makefile index 4b8e08b56f49..7e3ce78d4290 100644 --- a/arch/s390/Makefile +++ b/arch/s390/Makefile | |||
@@ -24,8 +24,8 @@ CHECKFLAGS += -D__s390__ -msize-long | |||
24 | else | 24 | else |
25 | LD_BFD := elf64-s390 | 25 | LD_BFD := elf64-s390 |
26 | LDFLAGS := -m elf64_s390 | 26 | LDFLAGS := -m elf64_s390 |
27 | KBUILD_AFLAGS_MODULE += -fpic -D__PIC__ | 27 | KBUILD_AFLAGS_MODULE += -fPIC |
28 | KBUILD_CFLAGS_MODULE += -fpic -D__PIC__ | 28 | KBUILD_CFLAGS_MODULE += -fPIC |
29 | KBUILD_CFLAGS += -m64 | 29 | KBUILD_CFLAGS += -m64 |
30 | KBUILD_AFLAGS += -m64 | 30 | KBUILD_AFLAGS += -m64 |
31 | UTS_MACHINE := s390x | 31 | UTS_MACHINE := s390x |
diff --git a/arch/s390/include/asm/dma.h b/arch/s390/include/asm/dma.h index de015d85e3e5..bb9bdcd20864 100644 --- a/arch/s390/include/asm/dma.h +++ b/arch/s390/include/asm/dma.h | |||
@@ -10,4 +10,10 @@ | |||
10 | */ | 10 | */ |
11 | #define MAX_DMA_ADDRESS 0x80000000 | 11 | #define MAX_DMA_ADDRESS 0x80000000 |
12 | 12 | ||
13 | #ifdef CONFIG_PCI | ||
14 | extern int isa_dma_bridge_buggy; | ||
15 | #else | ||
16 | #define isa_dma_bridge_buggy (0) | ||
17 | #endif | ||
18 | |||
13 | #endif /* _ASM_S390_DMA_H */ | 19 | #endif /* _ASM_S390_DMA_H */ |
diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h index 16c3eb164f4f..27cb32185ce1 100644 --- a/arch/s390/include/asm/io.h +++ b/arch/s390/include/asm/io.h | |||
@@ -85,6 +85,11 @@ static inline void iounmap(volatile void __iomem *addr) | |||
85 | #define __raw_writel zpci_write_u32 | 85 | #define __raw_writel zpci_write_u32 |
86 | #define __raw_writeq zpci_write_u64 | 86 | #define __raw_writeq zpci_write_u64 |
87 | 87 | ||
88 | #define readb_relaxed readb | ||
89 | #define readw_relaxed readw | ||
90 | #define readl_relaxed readl | ||
91 | #define readq_relaxed readq | ||
92 | |||
88 | #endif /* CONFIG_PCI */ | 93 | #endif /* CONFIG_PCI */ |
89 | 94 | ||
90 | #include <asm-generic/io.h> | 95 | #include <asm-generic/io.h> |
diff --git a/arch/s390/include/asm/irq.h b/arch/s390/include/asm/irq.h index e6972f85d2b0..7def77302d63 100644 --- a/arch/s390/include/asm/irq.h +++ b/arch/s390/include/asm/irq.h | |||
@@ -2,43 +2,61 @@ | |||
2 | #define _ASM_IRQ_H | 2 | #define _ASM_IRQ_H |
3 | 3 | ||
4 | #include <linux/hardirq.h> | 4 | #include <linux/hardirq.h> |
5 | #include <linux/percpu.h> | ||
6 | #include <linux/cache.h> | ||
5 | #include <linux/types.h> | 7 | #include <linux/types.h> |
6 | 8 | ||
7 | enum interruption_class { | 9 | enum interruption_main_class { |
8 | EXTERNAL_INTERRUPT, | 10 | EXTERNAL_INTERRUPT, |
9 | IO_INTERRUPT, | 11 | IO_INTERRUPT, |
10 | EXTINT_CLK, | 12 | NR_IRQS |
11 | EXTINT_EXC, | 13 | }; |
12 | EXTINT_EMS, | 14 | |
13 | EXTINT_TMR, | 15 | enum interruption_class { |
14 | EXTINT_TLA, | 16 | IRQEXT_CLK, |
15 | EXTINT_PFL, | 17 | IRQEXT_EXC, |
16 | EXTINT_DSD, | 18 | IRQEXT_EMS, |
17 | EXTINT_VRT, | 19 | IRQEXT_TMR, |
18 | EXTINT_SCP, | 20 | IRQEXT_TLA, |
19 | EXTINT_IUC, | 21 | IRQEXT_PFL, |
20 | EXTINT_CMS, | 22 | IRQEXT_DSD, |
21 | EXTINT_CMC, | 23 | IRQEXT_VRT, |
22 | EXTINT_CMR, | 24 | IRQEXT_SCP, |
23 | IOINT_CIO, | 25 | IRQEXT_IUC, |
24 | IOINT_QAI, | 26 | IRQEXT_CMS, |
25 | IOINT_DAS, | 27 | IRQEXT_CMC, |
26 | IOINT_C15, | 28 | IRQEXT_CMR, |
27 | IOINT_C70, | 29 | IRQIO_CIO, |
28 | IOINT_TAP, | 30 | IRQIO_QAI, |
29 | IOINT_VMR, | 31 | IRQIO_DAS, |
30 | IOINT_LCS, | 32 | IRQIO_C15, |
31 | IOINT_CLW, | 33 | IRQIO_C70, |
32 | IOINT_CTC, | 34 | IRQIO_TAP, |
33 | IOINT_APB, | 35 | IRQIO_VMR, |
34 | IOINT_ADM, | 36 | IRQIO_LCS, |
35 | IOINT_CSC, | 37 | IRQIO_CLW, |
36 | IOINT_PCI, | 38 | IRQIO_CTC, |
37 | IOINT_MSI, | 39 | IRQIO_APB, |
40 | IRQIO_ADM, | ||
41 | IRQIO_CSC, | ||
42 | IRQIO_PCI, | ||
43 | IRQIO_MSI, | ||
38 | NMI_NMI, | 44 | NMI_NMI, |
39 | NR_IRQS, | 45 | CPU_RST, |
46 | NR_ARCH_IRQS | ||
40 | }; | 47 | }; |
41 | 48 | ||
49 | struct irq_stat { | ||
50 | unsigned int irqs[NR_ARCH_IRQS]; | ||
51 | }; | ||
52 | |||
53 | DECLARE_PER_CPU_SHARED_ALIGNED(struct irq_stat, irq_stat); | ||
54 | |||
55 | static __always_inline void inc_irq_stat(enum interruption_class irq) | ||
56 | { | ||
57 | __get_cpu_var(irq_stat).irqs[irq]++; | ||
58 | } | ||
59 | |||
42 | struct ext_code { | 60 | struct ext_code { |
43 | unsigned short subcode; | 61 | unsigned short subcode; |
44 | unsigned short code; | 62 | unsigned short code; |
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index c928dc1938f2..c1d7930a82f4 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h | |||
@@ -1387,10 +1387,7 @@ static inline int has_transparent_hugepage(void) | |||
1387 | 1387 | ||
1388 | static inline unsigned long pmd_pfn(pmd_t pmd) | 1388 | static inline unsigned long pmd_pfn(pmd_t pmd) |
1389 | { | 1389 | { |
1390 | if (pmd_trans_huge(pmd)) | 1390 | return pmd_val(pmd) >> PAGE_SHIFT; |
1391 | return pmd_val(pmd) >> HPAGE_SHIFT; | ||
1392 | else | ||
1393 | return pmd_val(pmd) >> PAGE_SHIFT; | ||
1394 | } | 1391 | } |
1395 | #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ | 1392 | #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ |
1396 | 1393 | ||
diff --git a/arch/s390/include/asm/timex.h b/arch/s390/include/asm/timex.h index fba4d66788a2..4c060bb5b8ea 100644 --- a/arch/s390/include/asm/timex.h +++ b/arch/s390/include/asm/timex.h | |||
@@ -128,4 +128,32 @@ static inline unsigned long long get_clock_monotonic(void) | |||
128 | return get_clock_xt() - sched_clock_base_cc; | 128 | return get_clock_xt() - sched_clock_base_cc; |
129 | } | 129 | } |
130 | 130 | ||
131 | /** | ||
132 | * tod_to_ns - convert a TOD format value to nanoseconds | ||
133 | * @todval: to be converted TOD format value | ||
134 | * Returns: number of nanoseconds that correspond to the TOD format value | ||
135 | * | ||
136 | * Converting a 64 Bit TOD format value to nanoseconds means that the value | ||
137 | * must be divided by 4.096. In order to achieve that we multiply with 125 | ||
138 | * and divide by 512: | ||
139 | * | ||
140 | * ns = (todval * 125) >> 9; | ||
141 | * | ||
142 | * In order to avoid an overflow with the multiplication we can rewrite this. | ||
143 | * With a split todval == 2^32 * th + tl (th upper 32 bits, tl lower 32 bits) | ||
144 | * we end up with | ||
145 | * | ||
146 | * ns = ((2^32 * th + tl) * 125 ) >> 9; | ||
147 | * -> ns = (2^23 * th * 125) + ((tl * 125) >> 9); | ||
148 | * | ||
149 | */ | ||
150 | static inline unsigned long long tod_to_ns(unsigned long long todval) | ||
151 | { | ||
152 | unsigned long long ns; | ||
153 | |||
154 | ns = ((todval >> 32) << 23) * 125; | ||
155 | ns += ((todval & 0xffffffff) * 125) >> 9; | ||
156 | return ns; | ||
157 | } | ||
158 | |||
131 | #endif | 159 | #endif |
diff --git a/arch/s390/include/uapi/asm/unistd.h b/arch/s390/include/uapi/asm/unistd.h index 63e6078699f1..864f693c237f 100644 --- a/arch/s390/include/uapi/asm/unistd.h +++ b/arch/s390/include/uapi/asm/unistd.h | |||
@@ -279,7 +279,8 @@ | |||
279 | #define __NR_process_vm_writev 341 | 279 | #define __NR_process_vm_writev 341 |
280 | #define __NR_s390_runtime_instr 342 | 280 | #define __NR_s390_runtime_instr 342 |
281 | #define __NR_kcmp 343 | 281 | #define __NR_kcmp 343 |
282 | #define NR_syscalls 344 | 282 | #define __NR_finit_module 344 |
283 | #define NR_syscalls 345 | ||
283 | 284 | ||
284 | /* | 285 | /* |
285 | * There are some system calls that are not present on 64 bit, some | 286 | * There are some system calls that are not present on 64 bit, some |
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 827e094a2f49..9b9a805656b5 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -1659,3 +1659,9 @@ ENTRY(sys_kcmp_wrapper) | |||
1659 | llgfr %r5,%r5 # unsigned long | 1659 | llgfr %r5,%r5 # unsigned long |
1660 | llgfr %r6,%r6 # unsigned long | 1660 | llgfr %r6,%r6 # unsigned long |
1661 | jg sys_kcmp | 1661 | jg sys_kcmp |
1662 | |||
1663 | ENTRY(sys_finit_module_wrapper) | ||
1664 | lgfr %r2,%r2 # int | ||
1665 | llgtr %r3,%r3 # const char __user * | ||
1666 | lgfr %r4,%r4 # int | ||
1667 | jg sys_finit_module | ||
diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c index ba500d8dc392..4e8215e0d4b6 100644 --- a/arch/s390/kernel/debug.c +++ b/arch/s390/kernel/debug.c | |||
@@ -1127,13 +1127,14 @@ debug_register_view(debug_info_t * id, struct debug_view *view) | |||
1127 | if (i == DEBUG_MAX_VIEWS) { | 1127 | if (i == DEBUG_MAX_VIEWS) { |
1128 | pr_err("Registering view %s/%s would exceed the maximum " | 1128 | pr_err("Registering view %s/%s would exceed the maximum " |
1129 | "number of views %i\n", id->name, view->name, i); | 1129 | "number of views %i\n", id->name, view->name, i); |
1130 | debugfs_remove(pde); | ||
1131 | rc = -1; | 1130 | rc = -1; |
1132 | } else { | 1131 | } else { |
1133 | id->views[i] = view; | 1132 | id->views[i] = view; |
1134 | id->debugfs_entries[i] = pde; | 1133 | id->debugfs_entries[i] = pde; |
1135 | } | 1134 | } |
1136 | spin_unlock_irqrestore(&id->lock, flags); | 1135 | spin_unlock_irqrestore(&id->lock, flags); |
1136 | if (rc) | ||
1137 | debugfs_remove(pde); | ||
1137 | out: | 1138 | out: |
1138 | return rc; | 1139 | return rc; |
1139 | } | 1140 | } |
@@ -1146,9 +1147,9 @@ EXPORT_SYMBOL(debug_register_view); | |||
1146 | int | 1147 | int |
1147 | debug_unregister_view(debug_info_t * id, struct debug_view *view) | 1148 | debug_unregister_view(debug_info_t * id, struct debug_view *view) |
1148 | { | 1149 | { |
1149 | int rc = 0; | 1150 | struct dentry *dentry = NULL; |
1150 | int i; | ||
1151 | unsigned long flags; | 1151 | unsigned long flags; |
1152 | int i, rc = 0; | ||
1152 | 1153 | ||
1153 | if (!id) | 1154 | if (!id) |
1154 | goto out; | 1155 | goto out; |
@@ -1160,10 +1161,12 @@ debug_unregister_view(debug_info_t * id, struct debug_view *view) | |||
1160 | if (i == DEBUG_MAX_VIEWS) | 1161 | if (i == DEBUG_MAX_VIEWS) |
1161 | rc = -1; | 1162 | rc = -1; |
1162 | else { | 1163 | else { |
1163 | debugfs_remove(id->debugfs_entries[i]); | 1164 | dentry = id->debugfs_entries[i]; |
1164 | id->views[i] = NULL; | 1165 | id->views[i] = NULL; |
1166 | id->debugfs_entries[i] = NULL; | ||
1165 | } | 1167 | } |
1166 | spin_unlock_irqrestore(&id->lock, flags); | 1168 | spin_unlock_irqrestore(&id->lock, flags); |
1169 | debugfs_remove(dentry); | ||
1167 | out: | 1170 | out: |
1168 | return rc; | 1171 | return rc; |
1169 | } | 1172 | } |
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c index bf24293970ce..9df824ea1667 100644 --- a/arch/s390/kernel/irq.c +++ b/arch/s390/kernel/irq.c | |||
@@ -24,43 +24,65 @@ | |||
24 | #include <asm/irq.h> | 24 | #include <asm/irq.h> |
25 | #include "entry.h" | 25 | #include "entry.h" |
26 | 26 | ||
27 | DEFINE_PER_CPU_SHARED_ALIGNED(struct irq_stat, irq_stat); | ||
28 | EXPORT_PER_CPU_SYMBOL_GPL(irq_stat); | ||
29 | |||
27 | struct irq_class { | 30 | struct irq_class { |
28 | char *name; | 31 | char *name; |
29 | char *desc; | 32 | char *desc; |
30 | }; | 33 | }; |
31 | 34 | ||
32 | static const struct irq_class intrclass_names[] = { | 35 | /* |
36 | * The list of "main" irq classes on s390. This is the list of interrrupts | ||
37 | * that appear both in /proc/stat ("intr" line) and /proc/interrupts. | ||
38 | * Historically only external and I/O interrupts have been part of /proc/stat. | ||
39 | * We can't add the split external and I/O sub classes since the first field | ||
40 | * in the "intr" line in /proc/stat is supposed to be the sum of all other | ||
41 | * fields. | ||
42 | * Since the external and I/O interrupt fields are already sums we would end | ||
43 | * up with having a sum which accounts each interrupt twice. | ||
44 | */ | ||
45 | static const struct irq_class irqclass_main_desc[NR_IRQS] = { | ||
33 | [EXTERNAL_INTERRUPT] = {.name = "EXT"}, | 46 | [EXTERNAL_INTERRUPT] = {.name = "EXT"}, |
34 | [IO_INTERRUPT] = {.name = "I/O"}, | 47 | [IO_INTERRUPT] = {.name = "I/O"} |
35 | [EXTINT_CLK] = {.name = "CLK", .desc = "[EXT] Clock Comparator"}, | 48 | }; |
36 | [EXTINT_EXC] = {.name = "EXC", .desc = "[EXT] External Call"}, | 49 | |
37 | [EXTINT_EMS] = {.name = "EMS", .desc = "[EXT] Emergency Signal"}, | 50 | /* |
38 | [EXTINT_TMR] = {.name = "TMR", .desc = "[EXT] CPU Timer"}, | 51 | * The list of split external and I/O interrupts that appear only in |
39 | [EXTINT_TLA] = {.name = "TAL", .desc = "[EXT] Timing Alert"}, | 52 | * /proc/interrupts. |
40 | [EXTINT_PFL] = {.name = "PFL", .desc = "[EXT] Pseudo Page Fault"}, | 53 | * In addition this list contains non external / I/O events like NMIs. |
41 | [EXTINT_DSD] = {.name = "DSD", .desc = "[EXT] DASD Diag"}, | 54 | */ |
42 | [EXTINT_VRT] = {.name = "VRT", .desc = "[EXT] Virtio"}, | 55 | static const struct irq_class irqclass_sub_desc[NR_ARCH_IRQS] = { |
43 | [EXTINT_SCP] = {.name = "SCP", .desc = "[EXT] Service Call"}, | 56 | [IRQEXT_CLK] = {.name = "CLK", .desc = "[EXT] Clock Comparator"}, |
44 | [EXTINT_IUC] = {.name = "IUC", .desc = "[EXT] IUCV"}, | 57 | [IRQEXT_EXC] = {.name = "EXC", .desc = "[EXT] External Call"}, |
45 | [EXTINT_CMS] = {.name = "CMS", .desc = "[EXT] CPU-Measurement: Sampling"}, | 58 | [IRQEXT_EMS] = {.name = "EMS", .desc = "[EXT] Emergency Signal"}, |
46 | [EXTINT_CMC] = {.name = "CMC", .desc = "[EXT] CPU-Measurement: Counter"}, | 59 | [IRQEXT_TMR] = {.name = "TMR", .desc = "[EXT] CPU Timer"}, |
47 | [EXTINT_CMR] = {.name = "CMR", .desc = "[EXT] CPU-Measurement: RI"}, | 60 | [IRQEXT_TLA] = {.name = "TAL", .desc = "[EXT] Timing Alert"}, |
48 | [IOINT_CIO] = {.name = "CIO", .desc = "[I/O] Common I/O Layer Interrupt"}, | 61 | [IRQEXT_PFL] = {.name = "PFL", .desc = "[EXT] Pseudo Page Fault"}, |
49 | [IOINT_QAI] = {.name = "QAI", .desc = "[I/O] QDIO Adapter Interrupt"}, | 62 | [IRQEXT_DSD] = {.name = "DSD", .desc = "[EXT] DASD Diag"}, |
50 | [IOINT_DAS] = {.name = "DAS", .desc = "[I/O] DASD"}, | 63 | [IRQEXT_VRT] = {.name = "VRT", .desc = "[EXT] Virtio"}, |
51 | [IOINT_C15] = {.name = "C15", .desc = "[I/O] 3215"}, | 64 | [IRQEXT_SCP] = {.name = "SCP", .desc = "[EXT] Service Call"}, |
52 | [IOINT_C70] = {.name = "C70", .desc = "[I/O] 3270"}, | 65 | [IRQEXT_IUC] = {.name = "IUC", .desc = "[EXT] IUCV"}, |
53 | [IOINT_TAP] = {.name = "TAP", .desc = "[I/O] Tape"}, | 66 | [IRQEXT_CMS] = {.name = "CMS", .desc = "[EXT] CPU-Measurement: Sampling"}, |
54 | [IOINT_VMR] = {.name = "VMR", .desc = "[I/O] Unit Record Devices"}, | 67 | [IRQEXT_CMC] = {.name = "CMC", .desc = "[EXT] CPU-Measurement: Counter"}, |
55 | [IOINT_LCS] = {.name = "LCS", .desc = "[I/O] LCS"}, | 68 | [IRQEXT_CMR] = {.name = "CMR", .desc = "[EXT] CPU-Measurement: RI"}, |
56 | [IOINT_CLW] = {.name = "CLW", .desc = "[I/O] CLAW"}, | 69 | [IRQIO_CIO] = {.name = "CIO", .desc = "[I/O] Common I/O Layer Interrupt"}, |
57 | [IOINT_CTC] = {.name = "CTC", .desc = "[I/O] CTC"}, | 70 | [IRQIO_QAI] = {.name = "QAI", .desc = "[I/O] QDIO Adapter Interrupt"}, |
58 | [IOINT_APB] = {.name = "APB", .desc = "[I/O] AP Bus"}, | 71 | [IRQIO_DAS] = {.name = "DAS", .desc = "[I/O] DASD"}, |
59 | [IOINT_ADM] = {.name = "ADM", .desc = "[I/O] EADM Subchannel"}, | 72 | [IRQIO_C15] = {.name = "C15", .desc = "[I/O] 3215"}, |
60 | [IOINT_CSC] = {.name = "CSC", .desc = "[I/O] CHSC Subchannel"}, | 73 | [IRQIO_C70] = {.name = "C70", .desc = "[I/O] 3270"}, |
61 | [IOINT_PCI] = {.name = "PCI", .desc = "[I/O] PCI Interrupt" }, | 74 | [IRQIO_TAP] = {.name = "TAP", .desc = "[I/O] Tape"}, |
62 | [IOINT_MSI] = {.name = "MSI", .desc = "[I/O] MSI Interrupt" }, | 75 | [IRQIO_VMR] = {.name = "VMR", .desc = "[I/O] Unit Record Devices"}, |
76 | [IRQIO_LCS] = {.name = "LCS", .desc = "[I/O] LCS"}, | ||
77 | [IRQIO_CLW] = {.name = "CLW", .desc = "[I/O] CLAW"}, | ||
78 | [IRQIO_CTC] = {.name = "CTC", .desc = "[I/O] CTC"}, | ||
79 | [IRQIO_APB] = {.name = "APB", .desc = "[I/O] AP Bus"}, | ||
80 | [IRQIO_ADM] = {.name = "ADM", .desc = "[I/O] EADM Subchannel"}, | ||
81 | [IRQIO_CSC] = {.name = "CSC", .desc = "[I/O] CHSC Subchannel"}, | ||
82 | [IRQIO_PCI] = {.name = "PCI", .desc = "[I/O] PCI Interrupt" }, | ||
83 | [IRQIO_MSI] = {.name = "MSI", .desc = "[I/O] MSI Interrupt" }, | ||
63 | [NMI_NMI] = {.name = "NMI", .desc = "[NMI] Machine Check"}, | 84 | [NMI_NMI] = {.name = "NMI", .desc = "[NMI] Machine Check"}, |
85 | [CPU_RST] = {.name = "RST", .desc = "[CPU] CPU Restart"}, | ||
64 | }; | 86 | }; |
65 | 87 | ||
66 | /* | 88 | /* |
@@ -68,30 +90,34 @@ static const struct irq_class intrclass_names[] = { | |||
68 | */ | 90 | */ |
69 | int show_interrupts(struct seq_file *p, void *v) | 91 | int show_interrupts(struct seq_file *p, void *v) |
70 | { | 92 | { |
71 | int i = *(loff_t *) v, j; | 93 | int irq = *(loff_t *) v; |
94 | int cpu; | ||
72 | 95 | ||
73 | get_online_cpus(); | 96 | get_online_cpus(); |
74 | if (i == 0) { | 97 | if (irq == 0) { |
75 | seq_puts(p, " "); | 98 | seq_puts(p, " "); |
76 | for_each_online_cpu(j) | 99 | for_each_online_cpu(cpu) |
77 | seq_printf(p, "CPU%d ",j); | 100 | seq_printf(p, "CPU%d ", cpu); |
78 | seq_putc(p, '\n'); | 101 | seq_putc(p, '\n'); |
79 | } | 102 | } |
80 | 103 | if (irq < NR_IRQS) { | |
81 | if (i < NR_IRQS) { | 104 | seq_printf(p, "%s: ", irqclass_main_desc[irq].name); |
82 | seq_printf(p, "%s: ", intrclass_names[i].name); | 105 | for_each_online_cpu(cpu) |
83 | #ifndef CONFIG_SMP | 106 | seq_printf(p, "%10u ", kstat_cpu(cpu).irqs[irq]); |
84 | seq_printf(p, "%10u ", kstat_irqs(i)); | 107 | seq_putc(p, '\n'); |
85 | #else | 108 | goto skip_arch_irqs; |
86 | for_each_online_cpu(j) | 109 | } |
87 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); | 110 | for (irq = 0; irq < NR_ARCH_IRQS; irq++) { |
88 | #endif | 111 | seq_printf(p, "%s: ", irqclass_sub_desc[irq].name); |
89 | if (intrclass_names[i].desc) | 112 | for_each_online_cpu(cpu) |
90 | seq_printf(p, " %s", intrclass_names[i].desc); | 113 | seq_printf(p, "%10u ", per_cpu(irq_stat, cpu).irqs[irq]); |
91 | seq_putc(p, '\n'); | 114 | if (irqclass_sub_desc[irq].desc) |
92 | } | 115 | seq_printf(p, " %s", irqclass_sub_desc[irq].desc); |
116 | seq_putc(p, '\n'); | ||
117 | } | ||
118 | skip_arch_irqs: | ||
93 | put_online_cpus(); | 119 | put_online_cpus(); |
94 | return 0; | 120 | return 0; |
95 | } | 121 | } |
96 | 122 | ||
97 | /* | 123 | /* |
@@ -222,7 +248,7 @@ void __irq_entry do_extint(struct pt_regs *regs, struct ext_code ext_code, | |||
222 | /* Serve timer interrupts first. */ | 248 | /* Serve timer interrupts first. */ |
223 | clock_comparator_work(); | 249 | clock_comparator_work(); |
224 | } | 250 | } |
225 | kstat_cpu(smp_processor_id()).irqs[EXTERNAL_INTERRUPT]++; | 251 | kstat_incr_irqs_this_cpu(EXTERNAL_INTERRUPT, NULL); |
226 | if (ext_code.code != 0x1004) | 252 | if (ext_code.code != 0x1004) |
227 | __get_cpu_var(s390_idle).nohz_delay = 1; | 253 | __get_cpu_var(s390_idle).nohz_delay = 1; |
228 | 254 | ||
diff --git a/arch/s390/kernel/nmi.c b/arch/s390/kernel/nmi.c index a6daa5c5cdb0..7918fbea36bb 100644 --- a/arch/s390/kernel/nmi.c +++ b/arch/s390/kernel/nmi.c | |||
@@ -254,7 +254,7 @@ void notrace s390_do_machine_check(struct pt_regs *regs) | |||
254 | int umode; | 254 | int umode; |
255 | 255 | ||
256 | nmi_enter(); | 256 | nmi_enter(); |
257 | kstat_cpu(smp_processor_id()).irqs[NMI_NMI]++; | 257 | inc_irq_stat(NMI_NMI); |
258 | mci = (struct mci *) &S390_lowcore.mcck_interruption_code; | 258 | mci = (struct mci *) &S390_lowcore.mcck_interruption_code; |
259 | mcck = &__get_cpu_var(cpu_mcck); | 259 | mcck = &__get_cpu_var(cpu_mcck); |
260 | umode = user_mode(regs); | 260 | umode = user_mode(regs); |
diff --git a/arch/s390/kernel/perf_cpum_cf.c b/arch/s390/kernel/perf_cpum_cf.c index c4e7269d4a09..86ec7447e1f5 100644 --- a/arch/s390/kernel/perf_cpum_cf.c +++ b/arch/s390/kernel/perf_cpum_cf.c | |||
@@ -229,7 +229,7 @@ static void cpumf_measurement_alert(struct ext_code ext_code, | |||
229 | if (!(alert & CPU_MF_INT_CF_MASK)) | 229 | if (!(alert & CPU_MF_INT_CF_MASK)) |
230 | return; | 230 | return; |
231 | 231 | ||
232 | kstat_cpu(smp_processor_id()).irqs[EXTINT_CMC]++; | 232 | inc_irq_stat(IRQEXT_CMC); |
233 | cpuhw = &__get_cpu_var(cpu_hw_events); | 233 | cpuhw = &__get_cpu_var(cpu_hw_events); |
234 | 234 | ||
235 | /* Measurement alerts are shared and might happen when the PMU | 235 | /* Measurement alerts are shared and might happen when the PMU |
diff --git a/arch/s390/kernel/runtime_instr.c b/arch/s390/kernel/runtime_instr.c index 61066f6f71a5..077a99389b07 100644 --- a/arch/s390/kernel/runtime_instr.c +++ b/arch/s390/kernel/runtime_instr.c | |||
@@ -71,7 +71,7 @@ static void runtime_instr_int_handler(struct ext_code ext_code, | |||
71 | if (!(param32 & CPU_MF_INT_RI_MASK)) | 71 | if (!(param32 & CPU_MF_INT_RI_MASK)) |
72 | return; | 72 | return; |
73 | 73 | ||
74 | kstat_cpu(smp_processor_id()).irqs[EXTINT_CMR]++; | 74 | inc_irq_stat(IRQEXT_CMR); |
75 | 75 | ||
76 | if (!current->thread.ri_cb) | 76 | if (!current->thread.ri_cb) |
77 | return; | 77 | return; |
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index 2568590973ad..a5360de85ec7 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -16,7 +16,7 @@ | |||
16 | #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt | 16 | #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt |
17 | 17 | ||
18 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
19 | #include <linux/module.h> | 19 | #include <linux/export.h> |
20 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
22 | #include <linux/memblock.h> | 22 | #include <linux/memblock.h> |
@@ -289,6 +289,7 @@ void machine_power_off(void) | |||
289 | * Dummy power off function. | 289 | * Dummy power off function. |
290 | */ | 290 | */ |
291 | void (*pm_power_off)(void) = machine_power_off; | 291 | void (*pm_power_off)(void) = machine_power_off; |
292 | EXPORT_SYMBOL_GPL(pm_power_off); | ||
292 | 293 | ||
293 | static int __init early_parse_mem(char *p) | 294 | static int __init early_parse_mem(char *p) |
294 | { | 295 | { |
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index ea431e551c6b..7433a2f9e5cc 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
@@ -433,9 +433,9 @@ static void do_ext_call_interrupt(struct ext_code ext_code, | |||
433 | 433 | ||
434 | cpu = smp_processor_id(); | 434 | cpu = smp_processor_id(); |
435 | if (ext_code.code == 0x1202) | 435 | if (ext_code.code == 0x1202) |
436 | kstat_cpu(cpu).irqs[EXTINT_EXC]++; | 436 | inc_irq_stat(IRQEXT_EXC); |
437 | else | 437 | else |
438 | kstat_cpu(cpu).irqs[EXTINT_EMS]++; | 438 | inc_irq_stat(IRQEXT_EMS); |
439 | /* | 439 | /* |
440 | * handle bit signal external calls | 440 | * handle bit signal external calls |
441 | */ | 441 | */ |
@@ -623,9 +623,9 @@ static struct sclp_cpu_info *smp_get_cpu_info(void) | |||
623 | return info; | 623 | return info; |
624 | } | 624 | } |
625 | 625 | ||
626 | static int __devinit smp_add_present_cpu(int cpu); | 626 | static int __cpuinit smp_add_present_cpu(int cpu); |
627 | 627 | ||
628 | static int __devinit __smp_rescan_cpus(struct sclp_cpu_info *info, | 628 | static int __cpuinit __smp_rescan_cpus(struct sclp_cpu_info *info, |
629 | int sysfs_add) | 629 | int sysfs_add) |
630 | { | 630 | { |
631 | struct pcpu *pcpu; | 631 | struct pcpu *pcpu; |
@@ -709,6 +709,7 @@ static void __cpuinit smp_start_secondary(void *cpuvoid) | |||
709 | pfault_init(); | 709 | pfault_init(); |
710 | notify_cpu_starting(smp_processor_id()); | 710 | notify_cpu_starting(smp_processor_id()); |
711 | set_cpu_online(smp_processor_id(), true); | 711 | set_cpu_online(smp_processor_id(), true); |
712 | inc_irq_stat(CPU_RST); | ||
712 | local_irq_enable(); | 713 | local_irq_enable(); |
713 | /* cpu_idle will call schedule for us */ | 714 | /* cpu_idle will call schedule for us */ |
714 | cpu_idle(); | 715 | cpu_idle(); |
@@ -986,7 +987,7 @@ static int __cpuinit smp_cpu_notify(struct notifier_block *self, | |||
986 | return notifier_from_errno(err); | 987 | return notifier_from_errno(err); |
987 | } | 988 | } |
988 | 989 | ||
989 | static int __devinit smp_add_present_cpu(int cpu) | 990 | static int __cpuinit smp_add_present_cpu(int cpu) |
990 | { | 991 | { |
991 | struct cpu *c = &pcpu_devices[cpu].cpu; | 992 | struct cpu *c = &pcpu_devices[cpu].cpu; |
992 | struct device *s = &c->dev; | 993 | struct device *s = &c->dev; |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index 48174850f3b0..6a6c61f94dd3 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -352,3 +352,4 @@ SYSCALL(sys_process_vm_readv,sys_process_vm_readv,compat_sys_process_vm_readv_wr | |||
352 | SYSCALL(sys_process_vm_writev,sys_process_vm_writev,compat_sys_process_vm_writev_wrapper) | 352 | SYSCALL(sys_process_vm_writev,sys_process_vm_writev,compat_sys_process_vm_writev_wrapper) |
353 | SYSCALL(sys_ni_syscall,sys_s390_runtime_instr,sys_s390_runtime_instr_wrapper) | 353 | SYSCALL(sys_ni_syscall,sys_s390_runtime_instr,sys_s390_runtime_instr_wrapper) |
354 | SYSCALL(sys_kcmp,sys_kcmp,sys_kcmp_wrapper) | 354 | SYSCALL(sys_kcmp,sys_kcmp,sys_kcmp_wrapper) |
355 | SYSCALL(sys_finit_module,sys_finit_module,sys_finit_module_wrapper) | ||
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index 7fcd690d42c7..a5f4f5a1d24b 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
@@ -63,7 +63,7 @@ static DEFINE_PER_CPU(struct clock_event_device, comparators); | |||
63 | */ | 63 | */ |
64 | unsigned long long notrace __kprobes sched_clock(void) | 64 | unsigned long long notrace __kprobes sched_clock(void) |
65 | { | 65 | { |
66 | return (get_clock_monotonic() * 125) >> 9; | 66 | return tod_to_ns(get_clock_monotonic()); |
67 | } | 67 | } |
68 | 68 | ||
69 | /* | 69 | /* |
@@ -168,7 +168,7 @@ static void clock_comparator_interrupt(struct ext_code ext_code, | |||
168 | unsigned int param32, | 168 | unsigned int param32, |
169 | unsigned long param64) | 169 | unsigned long param64) |
170 | { | 170 | { |
171 | kstat_cpu(smp_processor_id()).irqs[EXTINT_CLK]++; | 171 | inc_irq_stat(IRQEXT_CLK); |
172 | if (S390_lowcore.clock_comparator == -1ULL) | 172 | if (S390_lowcore.clock_comparator == -1ULL) |
173 | set_clock_comparator(S390_lowcore.clock_comparator); | 173 | set_clock_comparator(S390_lowcore.clock_comparator); |
174 | } | 174 | } |
@@ -179,7 +179,7 @@ static void stp_timing_alert(struct stp_irq_parm *); | |||
179 | static void timing_alert_interrupt(struct ext_code ext_code, | 179 | static void timing_alert_interrupt(struct ext_code ext_code, |
180 | unsigned int param32, unsigned long param64) | 180 | unsigned int param32, unsigned long param64) |
181 | { | 181 | { |
182 | kstat_cpu(smp_processor_id()).irqs[EXTINT_TLA]++; | 182 | inc_irq_stat(IRQEXT_TLA); |
183 | if (param32 & 0x00c40000) | 183 | if (param32 & 0x00c40000) |
184 | etr_timing_alert((struct etr_irq_parm *) ¶m32); | 184 | etr_timing_alert((struct etr_irq_parm *) ¶m32); |
185 | if (param32 & 0x00038000) | 185 | if (param32 & 0x00038000) |
diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c index f1aba87cceb8..4b2e3e317004 100644 --- a/arch/s390/kernel/topology.c +++ b/arch/s390/kernel/topology.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/bootmem.h> | 10 | #include <linux/bootmem.h> |
11 | #include <linux/cpuset.h> | 11 | #include <linux/cpuset.h> |
12 | #include <linux/device.h> | 12 | #include <linux/device.h> |
13 | #include <linux/export.h> | ||
13 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
14 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
15 | #include <linux/init.h> | 16 | #include <linux/init.h> |
@@ -42,6 +43,7 @@ static struct mask_info socket_info; | |||
42 | static struct mask_info book_info; | 43 | static struct mask_info book_info; |
43 | 44 | ||
44 | struct cpu_topology_s390 cpu_topology[NR_CPUS]; | 45 | struct cpu_topology_s390 cpu_topology[NR_CPUS]; |
46 | EXPORT_SYMBOL_GPL(cpu_topology); | ||
45 | 47 | ||
46 | static cpumask_t cpu_group_map(struct mask_info *info, unsigned int cpu) | 48 | static cpumask_t cpu_group_map(struct mask_info *info, unsigned int cpu) |
47 | { | 49 | { |
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c index c30615e605ac..82c481ddef76 100644 --- a/arch/s390/kvm/interrupt.c +++ b/arch/s390/kvm/interrupt.c | |||
@@ -408,7 +408,7 @@ int kvm_s390_handle_wait(struct kvm_vcpu *vcpu) | |||
408 | return 0; | 408 | return 0; |
409 | } | 409 | } |
410 | 410 | ||
411 | sltime = ((vcpu->arch.sie_block->ckc - now)*125)>>9; | 411 | sltime = tod_to_ns(vcpu->arch.sie_block->ckc - now); |
412 | 412 | ||
413 | hrtimer_start(&vcpu->arch.ckc_timer, ktime_set (0, sltime) , HRTIMER_MODE_REL); | 413 | hrtimer_start(&vcpu->arch.ckc_timer, ktime_set (0, sltime) , HRTIMER_MODE_REL); |
414 | VCPU_EVENT(vcpu, 5, "enabled wait via clock comparator: %llx ns", sltime); | 414 | VCPU_EVENT(vcpu, 5, "enabled wait via clock comparator: %llx ns", sltime); |
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index c9011bfaabbe..f090e819bf71 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c | |||
@@ -613,7 +613,9 @@ static int __vcpu_run(struct kvm_vcpu *vcpu) | |||
613 | kvm_s390_deliver_pending_interrupts(vcpu); | 613 | kvm_s390_deliver_pending_interrupts(vcpu); |
614 | 614 | ||
615 | vcpu->arch.sie_block->icptcode = 0; | 615 | vcpu->arch.sie_block->icptcode = 0; |
616 | preempt_disable(); | ||
616 | kvm_guest_enter(); | 617 | kvm_guest_enter(); |
618 | preempt_enable(); | ||
617 | VCPU_EVENT(vcpu, 6, "entering sie flags %x", | 619 | VCPU_EVENT(vcpu, 6, "entering sie flags %x", |
618 | atomic_read(&vcpu->arch.sie_block->cpuflags)); | 620 | atomic_read(&vcpu->arch.sie_block->cpuflags)); |
619 | trace_kvm_s390_sie_enter(vcpu, | 621 | trace_kvm_s390_sie_enter(vcpu, |
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c index 42601d6e166f..2fb9e63b8fc4 100644 --- a/arch/s390/mm/fault.c +++ b/arch/s390/mm/fault.c | |||
@@ -569,7 +569,7 @@ static void pfault_interrupt(struct ext_code ext_code, | |||
569 | subcode = ext_code.subcode; | 569 | subcode = ext_code.subcode; |
570 | if ((subcode & 0xff00) != __SUBCODE_MASK) | 570 | if ((subcode & 0xff00) != __SUBCODE_MASK) |
571 | return; | 571 | return; |
572 | kstat_cpu(smp_processor_id()).irqs[EXTINT_PFL]++; | 572 | inc_irq_stat(IRQEXT_PFL); |
573 | /* Get the token (= pid of the affected task). */ | 573 | /* Get the token (= pid of the affected task). */ |
574 | pid = sizeof(void *) == 4 ? param32 : param64; | 574 | pid = sizeof(void *) == 4 ? param32 : param64; |
575 | rcu_read_lock(); | 575 | rcu_read_lock(); |
diff --git a/arch/s390/oprofile/hwsampler.c b/arch/s390/oprofile/hwsampler.c index 0cb385da202c..b5b2916895e0 100644 --- a/arch/s390/oprofile/hwsampler.c +++ b/arch/s390/oprofile/hwsampler.c | |||
@@ -233,7 +233,7 @@ static void hws_ext_handler(struct ext_code ext_code, | |||
233 | if (!(param32 & CPU_MF_INT_SF_MASK)) | 233 | if (!(param32 & CPU_MF_INT_SF_MASK)) |
234 | return; | 234 | return; |
235 | 235 | ||
236 | kstat_cpu(smp_processor_id()).irqs[EXTINT_CMS]++; | 236 | inc_irq_stat(IRQEXT_CMS); |
237 | atomic_xchg(&cb->ext_params, atomic_read(&cb->ext_params) | param32); | 237 | atomic_xchg(&cb->ext_params, atomic_read(&cb->ext_params) | param32); |
238 | 238 | ||
239 | if (hws_wq) | 239 | if (hws_wq) |
diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c index 8fa416b8775f..60e0372545d2 100644 --- a/arch/s390/pci/pci.c +++ b/arch/s390/pci/pci.c | |||
@@ -160,35 +160,6 @@ int pci_proc_domain(struct pci_bus *bus) | |||
160 | } | 160 | } |
161 | EXPORT_SYMBOL_GPL(pci_proc_domain); | 161 | EXPORT_SYMBOL_GPL(pci_proc_domain); |
162 | 162 | ||
163 | /* Store PCI function information block */ | ||
164 | static int zpci_store_fib(struct zpci_dev *zdev, u8 *fc) | ||
165 | { | ||
166 | struct zpci_fib *fib; | ||
167 | u8 status, cc; | ||
168 | |||
169 | fib = (void *) get_zeroed_page(GFP_KERNEL); | ||
170 | if (!fib) | ||
171 | return -ENOMEM; | ||
172 | |||
173 | do { | ||
174 | cc = __stpcifc(zdev->fh, 0, fib, &status); | ||
175 | if (cc == 2) { | ||
176 | msleep(ZPCI_INSN_BUSY_DELAY); | ||
177 | memset(fib, 0, PAGE_SIZE); | ||
178 | } | ||
179 | } while (cc == 2); | ||
180 | |||
181 | if (cc) | ||
182 | pr_err_once("%s: cc: %u status: %u\n", | ||
183 | __func__, cc, status); | ||
184 | |||
185 | /* Return PCI function controls */ | ||
186 | *fc = fib->fc; | ||
187 | |||
188 | free_page((unsigned long) fib); | ||
189 | return (cc) ? -EIO : 0; | ||
190 | } | ||
191 | |||
192 | /* Modify PCI: Register adapter interruptions */ | 163 | /* Modify PCI: Register adapter interruptions */ |
193 | static int zpci_register_airq(struct zpci_dev *zdev, unsigned int aisb, | 164 | static int zpci_register_airq(struct zpci_dev *zdev, unsigned int aisb, |
194 | u64 aibv) | 165 | u64 aibv) |
@@ -385,7 +356,7 @@ unsigned int probe_irq_mask(unsigned long val) | |||
385 | } | 356 | } |
386 | EXPORT_SYMBOL_GPL(probe_irq_mask); | 357 | EXPORT_SYMBOL_GPL(probe_irq_mask); |
387 | 358 | ||
388 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 359 | void pcibios_fixup_bus(struct pci_bus *bus) |
389 | { | 360 | { |
390 | } | 361 | } |
391 | 362 | ||
@@ -469,7 +440,7 @@ static void zpci_irq_handler(void *dont, void *need) | |||
469 | int rescan = 0, max = aisb_max; | 440 | int rescan = 0, max = aisb_max; |
470 | struct zdev_irq_map *imap; | 441 | struct zdev_irq_map *imap; |
471 | 442 | ||
472 | kstat_cpu(smp_processor_id()).irqs[IOINT_PCI]++; | 443 | inc_irq_stat(IRQIO_PCI); |
473 | sbit = start; | 444 | sbit = start; |
474 | 445 | ||
475 | scan: | 446 | scan: |
@@ -481,7 +452,7 @@ scan: | |||
481 | /* find vector bit */ | 452 | /* find vector bit */ |
482 | imap = bucket->imap[sbit]; | 453 | imap = bucket->imap[sbit]; |
483 | for_each_set_bit_left(mbit, &imap->aibv, imap->msi_vecs) { | 454 | for_each_set_bit_left(mbit, &imap->aibv, imap->msi_vecs) { |
484 | kstat_cpu(smp_processor_id()).irqs[IOINT_MSI]++; | 455 | inc_irq_stat(IRQIO_MSI); |
485 | clear_bit(63 - mbit, &imap->aibv); | 456 | clear_bit(63 - mbit, &imap->aibv); |
486 | 457 | ||
487 | spin_lock(&imap->lock); | 458 | spin_lock(&imap->lock); |
diff --git a/arch/s390/pci/pci_dma.c b/arch/s390/pci/pci_dma.c index 6138468b420f..a547419907c3 100644 --- a/arch/s390/pci/pci_dma.c +++ b/arch/s390/pci/pci_dma.c | |||
@@ -13,8 +13,6 @@ | |||
13 | #include <linux/pci.h> | 13 | #include <linux/pci.h> |
14 | #include <asm/pci_dma.h> | 14 | #include <asm/pci_dma.h> |
15 | 15 | ||
16 | static enum zpci_ioat_dtype zpci_ioat_dt = ZPCI_IOTA_RTTO; | ||
17 | |||
18 | static struct kmem_cache *dma_region_table_cache; | 16 | static struct kmem_cache *dma_region_table_cache; |
19 | static struct kmem_cache *dma_page_table_cache; | 17 | static struct kmem_cache *dma_page_table_cache; |
20 | 18 | ||
diff --git a/arch/score/mm/cache.c b/arch/score/mm/cache.c index b25e95743600..f85ec1a7c88e 100644 --- a/arch/score/mm/cache.c +++ b/arch/score/mm/cache.c | |||
@@ -113,7 +113,7 @@ static inline void setup_protection_map(void) | |||
113 | protection_map[15] = PAGE_SHARED; | 113 | protection_map[15] = PAGE_SHARED; |
114 | } | 114 | } |
115 | 115 | ||
116 | void __devinit cpu_cache_init(void) | 116 | void cpu_cache_init(void) |
117 | { | 117 | { |
118 | setup_protection_map(); | 118 | setup_protection_map(); |
119 | } | 119 | } |
diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c index 3fede4556c91..a0fa5791cd44 100644 --- a/arch/sh/boards/mach-ecovec24/setup.c +++ b/arch/sh/boards/mach-ecovec24/setup.c | |||
@@ -70,6 +70,16 @@ | |||
70 | * OFF-ON : MMC | 70 | * OFF-ON : MMC |
71 | */ | 71 | */ |
72 | 72 | ||
73 | /* | ||
74 | * FSI - DA7210 | ||
75 | * | ||
76 | * it needs amixer settings for playing | ||
77 | * | ||
78 | * amixer set 'HeadPhone' 80 | ||
79 | * amixer set 'Out Mixer Left DAC Left' on | ||
80 | * amixer set 'Out Mixer Right DAC Right' on | ||
81 | */ | ||
82 | |||
73 | /* Heartbeat */ | 83 | /* Heartbeat */ |
74 | static unsigned char led_pos[] = { 0, 1, 2, 3 }; | 84 | static unsigned char led_pos[] = { 0, 1, 2, 3 }; |
75 | 85 | ||
diff --git a/arch/sh/drivers/pci/fixups-dreamcast.c b/arch/sh/drivers/pci/fixups-dreamcast.c index a5fe1b54c952..d6cde700e316 100644 --- a/arch/sh/drivers/pci/fixups-dreamcast.c +++ b/arch/sh/drivers/pci/fixups-dreamcast.c | |||
@@ -28,7 +28,7 @@ | |||
28 | #include <asm/irq.h> | 28 | #include <asm/irq.h> |
29 | #include <mach/pci.h> | 29 | #include <mach/pci.h> |
30 | 30 | ||
31 | static void __devinit gapspci_fixup_resources(struct pci_dev *dev) | 31 | static void gapspci_fixup_resources(struct pci_dev *dev) |
32 | { | 32 | { |
33 | struct pci_channel *p = dev->sysdata; | 33 | struct pci_channel *p = dev->sysdata; |
34 | 34 | ||
diff --git a/arch/sh/drivers/pci/pci.c b/arch/sh/drivers/pci/pci.c index 81e5dafed3e4..102f5d58b037 100644 --- a/arch/sh/drivers/pci/pci.c +++ b/arch/sh/drivers/pci/pci.c | |||
@@ -32,7 +32,7 @@ static struct pci_channel *hose_head, **hose_tail = &hose_head; | |||
32 | 32 | ||
33 | static int pci_initialized; | 33 | static int pci_initialized; |
34 | 34 | ||
35 | static void __devinit pcibios_scanbus(struct pci_channel *hose) | 35 | static void pcibios_scanbus(struct pci_channel *hose) |
36 | { | 36 | { |
37 | static int next_busno; | 37 | static int next_busno; |
38 | static int need_domain_info; | 38 | static int need_domain_info; |
@@ -82,7 +82,7 @@ static void __devinit pcibios_scanbus(struct pci_channel *hose) | |||
82 | DEFINE_RAW_SPINLOCK(pci_config_lock); | 82 | DEFINE_RAW_SPINLOCK(pci_config_lock); |
83 | static DEFINE_MUTEX(pci_scan_mutex); | 83 | static DEFINE_MUTEX(pci_scan_mutex); |
84 | 84 | ||
85 | int __devinit register_pci_controller(struct pci_channel *hose) | 85 | int register_pci_controller(struct pci_channel *hose) |
86 | { | 86 | { |
87 | int i; | 87 | int i; |
88 | 88 | ||
@@ -156,7 +156,7 @@ subsys_initcall(pcibios_init); | |||
156 | * Called after each bus is probed, but before its children | 156 | * Called after each bus is probed, but before its children |
157 | * are examined. | 157 | * are examined. |
158 | */ | 158 | */ |
159 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 159 | void pcibios_fixup_bus(struct pci_bus *bus) |
160 | { | 160 | { |
161 | } | 161 | } |
162 | 162 | ||
diff --git a/arch/sh/drivers/pci/pcie-sh7786.c b/arch/sh/drivers/pci/pcie-sh7786.c index 9e702f2f8045..c2c85f6cd738 100644 --- a/arch/sh/drivers/pci/pcie-sh7786.c +++ b/arch/sh/drivers/pci/pcie-sh7786.c | |||
@@ -132,7 +132,7 @@ static struct clk fixed_pciexclkp = { | |||
132 | .rate = 100000000, /* 100 MHz reference clock */ | 132 | .rate = 100000000, /* 100 MHz reference clock */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static void __devinit sh7786_pci_fixup(struct pci_dev *dev) | 135 | static void sh7786_pci_fixup(struct pci_dev *dev) |
136 | { | 136 | { |
137 | /* | 137 | /* |
138 | * Prevent enumeration of root complex resources. | 138 | * Prevent enumeration of root complex resources. |
diff --git a/arch/sh/include/asm/elf.h b/arch/sh/include/asm/elf.h index 37924afa8d8a..bf9f44f17c29 100644 --- a/arch/sh/include/asm/elf.h +++ b/arch/sh/include/asm/elf.h | |||
@@ -203,9 +203,9 @@ extern void __kernel_vsyscall; | |||
203 | if (vdso_enabled) \ | 203 | if (vdso_enabled) \ |
204 | NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_BASE); \ | 204 | NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_BASE); \ |
205 | else \ | 205 | else \ |
206 | NEW_AUX_ENT(AT_IGNORE, 0); | 206 | NEW_AUX_ENT(AT_IGNORE, 0) |
207 | #else | 207 | #else |
208 | #define VSYSCALL_AUX_ENT | 208 | #define VSYSCALL_AUX_ENT NEW_AUX_ENT(AT_IGNORE, 0) |
209 | #endif /* CONFIG_VSYSCALL */ | 209 | #endif /* CONFIG_VSYSCALL */ |
210 | 210 | ||
211 | #ifdef CONFIG_SH_FPU | 211 | #ifdef CONFIG_SH_FPU |
diff --git a/arch/sh/include/asm/processor_32.h b/arch/sh/include/asm/processor_32.h index b1320d55ca30..e699a12cdcca 100644 --- a/arch/sh/include/asm/processor_32.h +++ b/arch/sh/include/asm/processor_32.h | |||
@@ -39,7 +39,7 @@ | |||
39 | /* This decides where the kernel will search for a free chunk of vm | 39 | /* This decides where the kernel will search for a free chunk of vm |
40 | * space during mmap's. | 40 | * space during mmap's. |
41 | */ | 41 | */ |
42 | #define TASK_UNMAPPED_BASE (TASK_SIZE / 3) | 42 | #define TASK_UNMAPPED_BASE PAGE_ALIGN(TASK_SIZE / 3) |
43 | 43 | ||
44 | /* | 44 | /* |
45 | * Bit of SR register | 45 | * Bit of SR register |
diff --git a/arch/sh/include/asm/processor_64.h b/arch/sh/include/asm/processor_64.h index 1ee8946f0952..1cc7d3197143 100644 --- a/arch/sh/include/asm/processor_64.h +++ b/arch/sh/include/asm/processor_64.h | |||
@@ -47,7 +47,7 @@ pc; }) | |||
47 | /* This decides where the kernel will search for a free chunk of vm | 47 | /* This decides where the kernel will search for a free chunk of vm |
48 | * space during mmap's. | 48 | * space during mmap's. |
49 | */ | 49 | */ |
50 | #define TASK_UNMAPPED_BASE (TASK_SIZE / 3) | 50 | #define TASK_UNMAPPED_BASE PAGE_ALIGN(TASK_SIZE / 3) |
51 | 51 | ||
52 | /* | 52 | /* |
53 | * Bit of SR register | 53 | * Bit of SR register |
diff --git a/arch/sh/include/uapi/asm/unistd_32.h b/arch/sh/include/uapi/asm/unistd_32.h index 9e465f246dc1..d13a1d623736 100644 --- a/arch/sh/include/uapi/asm/unistd_32.h +++ b/arch/sh/include/uapi/asm/unistd_32.h | |||
@@ -379,7 +379,8 @@ | |||
379 | #define __NR_process_vm_readv 365 | 379 | #define __NR_process_vm_readv 365 |
380 | #define __NR_process_vm_writev 366 | 380 | #define __NR_process_vm_writev 366 |
381 | #define __NR_kcmp 367 | 381 | #define __NR_kcmp 367 |
382 | #define __NR_finit_module 368 | ||
382 | 383 | ||
383 | #define NR_syscalls 368 | 384 | #define NR_syscalls 369 |
384 | 385 | ||
385 | #endif /* __ASM_SH_UNISTD_32_H */ | 386 | #endif /* __ASM_SH_UNISTD_32_H */ |
diff --git a/arch/sh/include/uapi/asm/unistd_64.h b/arch/sh/include/uapi/asm/unistd_64.h index 8e3a2edd284e..e6820c86e8c7 100644 --- a/arch/sh/include/uapi/asm/unistd_64.h +++ b/arch/sh/include/uapi/asm/unistd_64.h | |||
@@ -399,7 +399,8 @@ | |||
399 | #define __NR_process_vm_readv 376 | 399 | #define __NR_process_vm_readv 376 |
400 | #define __NR_process_vm_writev 377 | 400 | #define __NR_process_vm_writev 377 |
401 | #define __NR_kcmp 378 | 401 | #define __NR_kcmp 378 |
402 | #define __NR_finit_module 379 | ||
402 | 403 | ||
403 | #define NR_syscalls 379 | 404 | #define NR_syscalls 380 |
404 | 405 | ||
405 | #endif /* __ASM_SH_UNISTD_64_H */ | 406 | #endif /* __ASM_SH_UNISTD_64_H */ |
diff --git a/arch/sh/kernel/syscalls_32.S b/arch/sh/kernel/syscalls_32.S index fe97ae5e56f1..734234be2f01 100644 --- a/arch/sh/kernel/syscalls_32.S +++ b/arch/sh/kernel/syscalls_32.S | |||
@@ -385,3 +385,4 @@ ENTRY(sys_call_table) | |||
385 | .long sys_process_vm_readv /* 365 */ | 385 | .long sys_process_vm_readv /* 365 */ |
386 | .long sys_process_vm_writev | 386 | .long sys_process_vm_writev |
387 | .long sys_kcmp | 387 | .long sys_kcmp |
388 | .long sys_finit_module | ||
diff --git a/arch/sh/kernel/syscalls_64.S b/arch/sh/kernel/syscalls_64.S index 5c7b1c67bdc1..579fcb9a896b 100644 --- a/arch/sh/kernel/syscalls_64.S +++ b/arch/sh/kernel/syscalls_64.S | |||
@@ -405,3 +405,4 @@ sys_call_table: | |||
405 | .long sys_process_vm_readv | 405 | .long sys_process_vm_readv |
406 | .long sys_process_vm_writev | 406 | .long sys_process_vm_writev |
407 | .long sys_kcmp | 407 | .long sys_kcmp |
408 | .long sys_finit_module | ||
diff --git a/arch/sh/lib/mcount.S b/arch/sh/lib/mcount.S index 60164e65d665..52aa2011d753 100644 --- a/arch/sh/lib/mcount.S +++ b/arch/sh/lib/mcount.S | |||
@@ -294,6 +294,8 @@ stack_panic: | |||
294 | .align 2 | 294 | .align 2 |
295 | .L_init_thread_union: | 295 | .L_init_thread_union: |
296 | .long init_thread_union | 296 | .long init_thread_union |
297 | .L_ebss: | ||
298 | .long __bss_stop | ||
297 | .Lpanic: | 299 | .Lpanic: |
298 | .long panic | 300 | .long panic |
299 | .Lpanic_s: | 301 | .Lpanic_s: |
diff --git a/arch/sparc/include/asm/parport.h b/arch/sparc/include/asm/parport.h index cb33608cc68f..c55291e5b83e 100644 --- a/arch/sparc/include/asm/parport.h +++ b/arch/sparc/include/asm/parport.h | |||
@@ -103,7 +103,7 @@ static inline unsigned int get_dma_residue(unsigned int dmanr) | |||
103 | return ebus_dma_residue(&sparc_ebus_dmas[dmanr].info); | 103 | return ebus_dma_residue(&sparc_ebus_dmas[dmanr].info); |
104 | } | 104 | } |
105 | 105 | ||
106 | static int __devinit ecpp_probe(struct platform_device *op) | 106 | static int ecpp_probe(struct platform_device *op) |
107 | { | 107 | { |
108 | unsigned long base = op->resource[0].start; | 108 | unsigned long base = op->resource[0].start; |
109 | unsigned long config = op->resource[1].start; | 109 | unsigned long config = op->resource[1].start; |
@@ -192,7 +192,7 @@ out_err: | |||
192 | return err; | 192 | return err; |
193 | } | 193 | } |
194 | 194 | ||
195 | static int __devexit ecpp_remove(struct platform_device *op) | 195 | static int ecpp_remove(struct platform_device *op) |
196 | { | 196 | { |
197 | struct parport *p = dev_get_drvdata(&op->dev); | 197 | struct parport *p = dev_get_drvdata(&op->dev); |
198 | int slot = p->dma; | 198 | int slot = p->dma; |
@@ -242,7 +242,7 @@ static struct platform_driver ecpp_driver = { | |||
242 | .of_match_table = ecpp_match, | 242 | .of_match_table = ecpp_match, |
243 | }, | 243 | }, |
244 | .probe = ecpp_probe, | 244 | .probe = ecpp_probe, |
245 | .remove = __devexit_p(ecpp_remove), | 245 | .remove = ecpp_remove, |
246 | }; | 246 | }; |
247 | 247 | ||
248 | static int parport_pc_find_nonpci_ports(int autoirq, int autodma) | 248 | static int parport_pc_find_nonpci_ports(int autoirq, int autodma) |
diff --git a/arch/sparc/include/asm/timer_64.h b/arch/sparc/include/asm/timer_64.h index ef3c3682debf..01197d8215c4 100644 --- a/arch/sparc/include/asm/timer_64.h +++ b/arch/sparc/include/asm/timer_64.h | |||
@@ -24,7 +24,7 @@ struct sparc64_tick_ops { | |||
24 | extern struct sparc64_tick_ops *tick_ops; | 24 | extern struct sparc64_tick_ops *tick_ops; |
25 | 25 | ||
26 | extern unsigned long sparc64_get_clock_tick(unsigned int cpu); | 26 | extern unsigned long sparc64_get_clock_tick(unsigned int cpu); |
27 | extern void __devinit setup_sparc64_timer(void); | 27 | extern void setup_sparc64_timer(void); |
28 | extern void __init time_init(void); | 28 | extern void __init time_init(void); |
29 | 29 | ||
30 | #endif /* _SPARC64_TIMER_H */ | 30 | #endif /* _SPARC64_TIMER_H */ |
diff --git a/arch/sparc/include/uapi/asm/unistd.h b/arch/sparc/include/uapi/asm/unistd.h index cac719d1bc5c..62ced589bcf7 100644 --- a/arch/sparc/include/uapi/asm/unistd.h +++ b/arch/sparc/include/uapi/asm/unistd.h | |||
@@ -407,8 +407,9 @@ | |||
407 | #define __NR_process_vm_writev 339 | 407 | #define __NR_process_vm_writev 339 |
408 | #define __NR_kern_features 340 | 408 | #define __NR_kern_features 340 |
409 | #define __NR_kcmp 341 | 409 | #define __NR_kcmp 341 |
410 | #define __NR_finit_module 342 | ||
410 | 411 | ||
411 | #define NR_syscalls 342 | 412 | #define NR_syscalls 343 |
412 | 413 | ||
413 | /* Bitmask values returned from kern_features system call. */ | 414 | /* Bitmask values returned from kern_features system call. */ |
414 | #define KERN_FEATURE_MIXED_MODE_STACK 0x00000001 | 415 | #define KERN_FEATURE_MIXED_MODE_STACK 0x00000001 |
diff --git a/arch/sparc/kernel/apc.c b/arch/sparc/kernel/apc.c index 812e10bbb0b3..348fa1aeabce 100644 --- a/arch/sparc/kernel/apc.c +++ b/arch/sparc/kernel/apc.c | |||
@@ -31,7 +31,7 @@ | |||
31 | #define APC_DEVNAME "apc" | 31 | #define APC_DEVNAME "apc" |
32 | 32 | ||
33 | static u8 __iomem *regs; | 33 | static u8 __iomem *regs; |
34 | static int apc_no_idle __devinitdata = 0; | 34 | static int apc_no_idle = 0; |
35 | 35 | ||
36 | #define apc_readb(offs) (sbus_readb(regs+offs)) | 36 | #define apc_readb(offs) (sbus_readb(regs+offs)) |
37 | #define apc_writeb(val, offs) (sbus_writeb(val, regs+offs)) | 37 | #define apc_writeb(val, offs) (sbus_writeb(val, regs+offs)) |
@@ -138,7 +138,7 @@ static const struct file_operations apc_fops = { | |||
138 | 138 | ||
139 | static struct miscdevice apc_miscdev = { APC_MINOR, APC_DEVNAME, &apc_fops }; | 139 | static struct miscdevice apc_miscdev = { APC_MINOR, APC_DEVNAME, &apc_fops }; |
140 | 140 | ||
141 | static int __devinit apc_probe(struct platform_device *op) | 141 | static int apc_probe(struct platform_device *op) |
142 | { | 142 | { |
143 | int err; | 143 | int err; |
144 | 144 | ||
diff --git a/arch/sparc/kernel/auxio_64.c b/arch/sparc/kernel/auxio_64.c index 773091ac71a3..86e55778e4af 100644 --- a/arch/sparc/kernel/auxio_64.c +++ b/arch/sparc/kernel/auxio_64.c | |||
@@ -102,7 +102,7 @@ static const struct of_device_id auxio_match[] = { | |||
102 | 102 | ||
103 | MODULE_DEVICE_TABLE(of, auxio_match); | 103 | MODULE_DEVICE_TABLE(of, auxio_match); |
104 | 104 | ||
105 | static int __devinit auxio_probe(struct platform_device *dev) | 105 | static int auxio_probe(struct platform_device *dev) |
106 | { | 106 | { |
107 | struct device_node *dp = dev->dev.of_node; | 107 | struct device_node *dp = dev->dev.of_node; |
108 | unsigned long size; | 108 | unsigned long size; |
diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c index 9708851a8b9f..052b5a44318f 100644 --- a/arch/sparc/kernel/central.c +++ b/arch/sparc/kernel/central.c | |||
@@ -33,7 +33,7 @@ struct fhc { | |||
33 | struct platform_device leds_pdev; | 33 | struct platform_device leds_pdev; |
34 | }; | 34 | }; |
35 | 35 | ||
36 | static int __devinit clock_board_calc_nslots(struct clock_board *p) | 36 | static int clock_board_calc_nslots(struct clock_board *p) |
37 | { | 37 | { |
38 | u8 reg = upa_readb(p->clock_regs + CLOCK_STAT1) & 0xc0; | 38 | u8 reg = upa_readb(p->clock_regs + CLOCK_STAT1) & 0xc0; |
39 | 39 | ||
@@ -60,7 +60,7 @@ static int __devinit clock_board_calc_nslots(struct clock_board *p) | |||
60 | } | 60 | } |
61 | } | 61 | } |
62 | 62 | ||
63 | static int __devinit clock_board_probe(struct platform_device *op) | 63 | static int clock_board_probe(struct platform_device *op) |
64 | { | 64 | { |
65 | struct clock_board *p = kzalloc(sizeof(*p), GFP_KERNEL); | 65 | struct clock_board *p = kzalloc(sizeof(*p), GFP_KERNEL); |
66 | int err = -ENOMEM; | 66 | int err = -ENOMEM; |
@@ -157,7 +157,7 @@ static struct platform_driver clock_board_driver = { | |||
157 | }, | 157 | }, |
158 | }; | 158 | }; |
159 | 159 | ||
160 | static int __devinit fhc_probe(struct platform_device *op) | 160 | static int fhc_probe(struct platform_device *op) |
161 | { | 161 | { |
162 | struct fhc *p = kzalloc(sizeof(*p), GFP_KERNEL); | 162 | struct fhc *p = kzalloc(sizeof(*p), GFP_KERNEL); |
163 | int err = -ENOMEM; | 163 | int err = -ENOMEM; |
diff --git a/arch/sparc/kernel/chmc.c b/arch/sparc/kernel/chmc.c index 5f450260981d..dbb210d74e21 100644 --- a/arch/sparc/kernel/chmc.c +++ b/arch/sparc/kernel/chmc.c | |||
@@ -336,9 +336,9 @@ static int jbusmc_print_dimm(int syndrome_code, | |||
336 | return 0; | 336 | return 0; |
337 | } | 337 | } |
338 | 338 | ||
339 | static u64 __devinit jbusmc_dimm_group_size(u64 base, | 339 | static u64 jbusmc_dimm_group_size(u64 base, |
340 | const struct linux_prom64_registers *mem_regs, | 340 | const struct linux_prom64_registers *mem_regs, |
341 | int num_mem_regs) | 341 | int num_mem_regs) |
342 | { | 342 | { |
343 | u64 max = base + (8UL * 1024 * 1024 * 1024); | 343 | u64 max = base + (8UL * 1024 * 1024 * 1024); |
344 | u64 max_seen = base; | 344 | u64 max_seen = base; |
@@ -363,10 +363,10 @@ static u64 __devinit jbusmc_dimm_group_size(u64 base, | |||
363 | return max_seen - base; | 363 | return max_seen - base; |
364 | } | 364 | } |
365 | 365 | ||
366 | static void __devinit jbusmc_construct_one_dimm_group(struct jbusmc *p, | 366 | static void jbusmc_construct_one_dimm_group(struct jbusmc *p, |
367 | unsigned long index, | 367 | unsigned long index, |
368 | const struct linux_prom64_registers *mem_regs, | 368 | const struct linux_prom64_registers *mem_regs, |
369 | int num_mem_regs) | 369 | int num_mem_regs) |
370 | { | 370 | { |
371 | struct jbusmc_dimm_group *dp = &p->dimm_groups[index]; | 371 | struct jbusmc_dimm_group *dp = &p->dimm_groups[index]; |
372 | 372 | ||
@@ -378,9 +378,9 @@ static void __devinit jbusmc_construct_one_dimm_group(struct jbusmc *p, | |||
378 | dp->size = jbusmc_dimm_group_size(dp->base_addr, mem_regs, num_mem_regs); | 378 | dp->size = jbusmc_dimm_group_size(dp->base_addr, mem_regs, num_mem_regs); |
379 | } | 379 | } |
380 | 380 | ||
381 | static void __devinit jbusmc_construct_dimm_groups(struct jbusmc *p, | 381 | static void jbusmc_construct_dimm_groups(struct jbusmc *p, |
382 | const struct linux_prom64_registers *mem_regs, | 382 | const struct linux_prom64_registers *mem_regs, |
383 | int num_mem_regs) | 383 | int num_mem_regs) |
384 | { | 384 | { |
385 | if (p->mc_reg_1 & JB_MC_REG1_DIMM1_BANK0) { | 385 | if (p->mc_reg_1 & JB_MC_REG1_DIMM1_BANK0) { |
386 | jbusmc_construct_one_dimm_group(p, 0, mem_regs, num_mem_regs); | 386 | jbusmc_construct_one_dimm_group(p, 0, mem_regs, num_mem_regs); |
@@ -392,7 +392,7 @@ static void __devinit jbusmc_construct_dimm_groups(struct jbusmc *p, | |||
392 | } | 392 | } |
393 | } | 393 | } |
394 | 394 | ||
395 | static int __devinit jbusmc_probe(struct platform_device *op) | 395 | static int jbusmc_probe(struct platform_device *op) |
396 | { | 396 | { |
397 | const struct linux_prom64_registers *mem_regs; | 397 | const struct linux_prom64_registers *mem_regs; |
398 | struct device_node *mem_node; | 398 | struct device_node *mem_node; |
@@ -689,7 +689,7 @@ static void chmc_fetch_decode_regs(struct chmc *p) | |||
689 | chmc_read_mcreg(p, CHMCTRL_DECODE4)); | 689 | chmc_read_mcreg(p, CHMCTRL_DECODE4)); |
690 | } | 690 | } |
691 | 691 | ||
692 | static int __devinit chmc_probe(struct platform_device *op) | 692 | static int chmc_probe(struct platform_device *op) |
693 | { | 693 | { |
694 | struct device_node *dp = op->dev.of_node; | 694 | struct device_node *dp = op->dev.of_node; |
695 | unsigned long ver; | 695 | unsigned long ver; |
@@ -763,7 +763,7 @@ out_free: | |||
763 | goto out; | 763 | goto out; |
764 | } | 764 | } |
765 | 765 | ||
766 | static int __devinit us3mc_probe(struct platform_device *op) | 766 | static int us3mc_probe(struct platform_device *op) |
767 | { | 767 | { |
768 | if (mc_type == MC_TYPE_SAFARI) | 768 | if (mc_type == MC_TYPE_SAFARI) |
769 | return chmc_probe(op); | 769 | return chmc_probe(op); |
@@ -772,21 +772,21 @@ static int __devinit us3mc_probe(struct platform_device *op) | |||
772 | return -ENODEV; | 772 | return -ENODEV; |
773 | } | 773 | } |
774 | 774 | ||
775 | static void __devexit chmc_destroy(struct platform_device *op, struct chmc *p) | 775 | static void chmc_destroy(struct platform_device *op, struct chmc *p) |
776 | { | 776 | { |
777 | list_del(&p->list); | 777 | list_del(&p->list); |
778 | of_iounmap(&op->resource[0], p->regs, 0x48); | 778 | of_iounmap(&op->resource[0], p->regs, 0x48); |
779 | kfree(p); | 779 | kfree(p); |
780 | } | 780 | } |
781 | 781 | ||
782 | static void __devexit jbusmc_destroy(struct platform_device *op, struct jbusmc *p) | 782 | static void jbusmc_destroy(struct platform_device *op, struct jbusmc *p) |
783 | { | 783 | { |
784 | mc_list_del(&p->list); | 784 | mc_list_del(&p->list); |
785 | of_iounmap(&op->resource[0], p->regs, JBUSMC_REGS_SIZE); | 785 | of_iounmap(&op->resource[0], p->regs, JBUSMC_REGS_SIZE); |
786 | kfree(p); | 786 | kfree(p); |
787 | } | 787 | } |
788 | 788 | ||
789 | static int __devexit us3mc_remove(struct platform_device *op) | 789 | static int us3mc_remove(struct platform_device *op) |
790 | { | 790 | { |
791 | void *p = dev_get_drvdata(&op->dev); | 791 | void *p = dev_get_drvdata(&op->dev); |
792 | 792 | ||
@@ -814,7 +814,7 @@ static struct platform_driver us3mc_driver = { | |||
814 | .of_match_table = us3mc_match, | 814 | .of_match_table = us3mc_match, |
815 | }, | 815 | }, |
816 | .probe = us3mc_probe, | 816 | .probe = us3mc_probe, |
817 | .remove = __devexit_p(us3mc_remove), | 817 | .remove = us3mc_remove, |
818 | }; | 818 | }; |
819 | 819 | ||
820 | static inline bool us3mc_platform(void) | 820 | static inline bool us3mc_platform(void) |
diff --git a/arch/sparc/kernel/ds.c b/arch/sparc/kernel/ds.c index f09257c86107..75bb608c423e 100644 --- a/arch/sparc/kernel/ds.c +++ b/arch/sparc/kernel/ds.c | |||
@@ -29,7 +29,7 @@ | |||
29 | #define DRV_MODULE_VERSION "1.0" | 29 | #define DRV_MODULE_VERSION "1.0" |
30 | #define DRV_MODULE_RELDATE "Jul 11, 2007" | 30 | #define DRV_MODULE_RELDATE "Jul 11, 2007" |
31 | 31 | ||
32 | static char version[] __devinitdata = | 32 | static char version[] = |
33 | DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; | 33 | DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; |
34 | MODULE_AUTHOR("David S. Miller (davem@davemloft.net)"); | 34 | MODULE_AUTHOR("David S. Miller (davem@davemloft.net)"); |
35 | MODULE_DESCRIPTION("Sun LDOM domain services driver"); | 35 | MODULE_DESCRIPTION("Sun LDOM domain services driver"); |
@@ -1146,8 +1146,7 @@ static void ds_event(void *arg, int event) | |||
1146 | spin_unlock_irqrestore(&ds_lock, flags); | 1146 | spin_unlock_irqrestore(&ds_lock, flags); |
1147 | } | 1147 | } |
1148 | 1148 | ||
1149 | static int __devinit ds_probe(struct vio_dev *vdev, | 1149 | static int ds_probe(struct vio_dev *vdev, const struct vio_device_id *id) |
1150 | const struct vio_device_id *id) | ||
1151 | { | 1150 | { |
1152 | static int ds_version_printed; | 1151 | static int ds_version_printed; |
1153 | struct ldc_channel_config ds_cfg = { | 1152 | struct ldc_channel_config ds_cfg = { |
diff --git a/arch/sparc/kernel/ldc.c b/arch/sparc/kernel/ldc.c index 81d92fc9983b..9fcc6b4e93b3 100644 --- a/arch/sparc/kernel/ldc.c +++ b/arch/sparc/kernel/ldc.c | |||
@@ -27,7 +27,7 @@ | |||
27 | #define DRV_MODULE_VERSION "1.1" | 27 | #define DRV_MODULE_VERSION "1.1" |
28 | #define DRV_MODULE_RELDATE "July 22, 2008" | 28 | #define DRV_MODULE_RELDATE "July 22, 2008" |
29 | 29 | ||
30 | static char version[] __devinitdata = | 30 | static char version[] = |
31 | DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; | 31 | DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; |
32 | #define LDC_PACKET_SIZE 64 | 32 | #define LDC_PACKET_SIZE 64 |
33 | 33 | ||
diff --git a/arch/sparc/kernel/leon_pci.c b/arch/sparc/kernel/leon_pci.c index fc0521161568..852dc8430528 100644 --- a/arch/sparc/kernel/leon_pci.c +++ b/arch/sparc/kernel/leon_pci.c | |||
@@ -43,7 +43,7 @@ void leon_pci_init(struct platform_device *ofdev, struct leon_pci_info *info) | |||
43 | } | 43 | } |
44 | } | 44 | } |
45 | 45 | ||
46 | void __devinit pcibios_fixup_bus(struct pci_bus *pbus) | 46 | void pcibios_fixup_bus(struct pci_bus *pbus) |
47 | { | 47 | { |
48 | struct pci_dev *dev; | 48 | struct pci_dev *dev; |
49 | int i, has_io, has_mem; | 49 | int i, has_io, has_mem; |
diff --git a/arch/sparc/kernel/leon_pci_grpci2.c b/arch/sparc/kernel/leon_pci_grpci2.c index b1bc38853a3d..fc4320886a3a 100644 --- a/arch/sparc/kernel/leon_pci_grpci2.c +++ b/arch/sparc/kernel/leon_pci_grpci2.c | |||
@@ -668,7 +668,7 @@ static irqreturn_t grpci2_err_interrupt(int irq, void *arg) | |||
668 | return IRQ_HANDLED; | 668 | return IRQ_HANDLED; |
669 | } | 669 | } |
670 | 670 | ||
671 | static int __devinit grpci2_of_probe(struct platform_device *ofdev) | 671 | static int grpci2_of_probe(struct platform_device *ofdev) |
672 | { | 672 | { |
673 | struct grpci2_regs *regs; | 673 | struct grpci2_regs *regs; |
674 | struct grpci2_priv *priv; | 674 | struct grpci2_priv *priv; |
diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c index 75b31bcdeadf..baf4366e2d6a 100644 --- a/arch/sparc/kernel/pci.c +++ b/arch/sparc/kernel/pci.c | |||
@@ -356,7 +356,7 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, | |||
356 | return dev; | 356 | return dev; |
357 | } | 357 | } |
358 | 358 | ||
359 | static void __devinit apb_calc_first_last(u8 map, u32 *first_p, u32 *last_p) | 359 | static void apb_calc_first_last(u8 map, u32 *first_p, u32 *last_p) |
360 | { | 360 | { |
361 | u32 idx, first, last; | 361 | u32 idx, first, last; |
362 | 362 | ||
@@ -378,9 +378,9 @@ static void __devinit apb_calc_first_last(u8 map, u32 *first_p, u32 *last_p) | |||
378 | /* Cook up fake bus resources for SUNW,simba PCI bridges which lack | 378 | /* Cook up fake bus resources for SUNW,simba PCI bridges which lack |
379 | * a proper 'ranges' property. | 379 | * a proper 'ranges' property. |
380 | */ | 380 | */ |
381 | static void __devinit apb_fake_ranges(struct pci_dev *dev, | 381 | static void apb_fake_ranges(struct pci_dev *dev, |
382 | struct pci_bus *bus, | 382 | struct pci_bus *bus, |
383 | struct pci_pbm_info *pbm) | 383 | struct pci_pbm_info *pbm) |
384 | { | 384 | { |
385 | struct pci_bus_region region; | 385 | struct pci_bus_region region; |
386 | struct resource *res; | 386 | struct resource *res; |
@@ -404,15 +404,15 @@ static void __devinit apb_fake_ranges(struct pci_dev *dev, | |||
404 | pcibios_bus_to_resource(dev, res, ®ion); | 404 | pcibios_bus_to_resource(dev, res, ®ion); |
405 | } | 405 | } |
406 | 406 | ||
407 | static void __devinit pci_of_scan_bus(struct pci_pbm_info *pbm, | 407 | static void pci_of_scan_bus(struct pci_pbm_info *pbm, |
408 | struct device_node *node, | 408 | struct device_node *node, |
409 | struct pci_bus *bus); | 409 | struct pci_bus *bus); |
410 | 410 | ||
411 | #define GET_64BIT(prop, i) ((((u64) (prop)[(i)]) << 32) | (prop)[(i)+1]) | 411 | #define GET_64BIT(prop, i) ((((u64) (prop)[(i)]) << 32) | (prop)[(i)+1]) |
412 | 412 | ||
413 | static void __devinit of_scan_pci_bridge(struct pci_pbm_info *pbm, | 413 | static void of_scan_pci_bridge(struct pci_pbm_info *pbm, |
414 | struct device_node *node, | 414 | struct device_node *node, |
415 | struct pci_dev *dev) | 415 | struct pci_dev *dev) |
416 | { | 416 | { |
417 | struct pci_bus *bus; | 417 | struct pci_bus *bus; |
418 | const u32 *busrange, *ranges; | 418 | const u32 *busrange, *ranges; |
@@ -503,9 +503,9 @@ after_ranges: | |||
503 | pci_of_scan_bus(pbm, node, bus); | 503 | pci_of_scan_bus(pbm, node, bus); |
504 | } | 504 | } |
505 | 505 | ||
506 | static void __devinit pci_of_scan_bus(struct pci_pbm_info *pbm, | 506 | static void pci_of_scan_bus(struct pci_pbm_info *pbm, |
507 | struct device_node *node, | 507 | struct device_node *node, |
508 | struct pci_bus *bus) | 508 | struct pci_bus *bus) |
509 | { | 509 | { |
510 | struct device_node *child; | 510 | struct device_node *child; |
511 | const u32 *reg; | 511 | const u32 *reg; |
@@ -564,7 +564,7 @@ show_pciobppath_attr(struct device * dev, struct device_attribute * attr, char * | |||
564 | 564 | ||
565 | static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH, show_pciobppath_attr, NULL); | 565 | static DEVICE_ATTR(obppath, S_IRUSR | S_IRGRP | S_IROTH, show_pciobppath_attr, NULL); |
566 | 566 | ||
567 | static void __devinit pci_bus_register_of_sysfs(struct pci_bus *bus) | 567 | static void pci_bus_register_of_sysfs(struct pci_bus *bus) |
568 | { | 568 | { |
569 | struct pci_dev *dev; | 569 | struct pci_dev *dev; |
570 | struct pci_bus *child_bus; | 570 | struct pci_bus *child_bus; |
@@ -585,8 +585,8 @@ static void __devinit pci_bus_register_of_sysfs(struct pci_bus *bus) | |||
585 | pci_bus_register_of_sysfs(child_bus); | 585 | pci_bus_register_of_sysfs(child_bus); |
586 | } | 586 | } |
587 | 587 | ||
588 | struct pci_bus * __devinit pci_scan_one_pbm(struct pci_pbm_info *pbm, | 588 | struct pci_bus *pci_scan_one_pbm(struct pci_pbm_info *pbm, |
589 | struct device *parent) | 589 | struct device *parent) |
590 | { | 590 | { |
591 | LIST_HEAD(resources); | 591 | LIST_HEAD(resources); |
592 | struct device_node *node = pbm->op->dev.of_node; | 592 | struct device_node *node = pbm->op->dev.of_node; |
@@ -618,7 +618,7 @@ struct pci_bus * __devinit pci_scan_one_pbm(struct pci_pbm_info *pbm, | |||
618 | return bus; | 618 | return bus; |
619 | } | 619 | } |
620 | 620 | ||
621 | void __devinit pcibios_fixup_bus(struct pci_bus *pbus) | 621 | void pcibios_fixup_bus(struct pci_bus *pbus) |
622 | { | 622 | { |
623 | } | 623 | } |
624 | 624 | ||
@@ -949,8 +949,7 @@ static int __init pcibios_init(void) | |||
949 | subsys_initcall(pcibios_init); | 949 | subsys_initcall(pcibios_init); |
950 | 950 | ||
951 | #ifdef CONFIG_SYSFS | 951 | #ifdef CONFIG_SYSFS |
952 | static void __devinit pci_bus_slot_names(struct device_node *node, | 952 | static void pci_bus_slot_names(struct device_node *node, struct pci_bus *bus) |
953 | struct pci_bus *bus) | ||
954 | { | 953 | { |
955 | const struct pci_slot_names { | 954 | const struct pci_slot_names { |
956 | u32 slot_mask; | 955 | u32 slot_mask; |
diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c index 188f935276fd..e60fc6a67e9b 100644 --- a/arch/sparc/kernel/pci_fire.c +++ b/arch/sparc/kernel/pci_fire.c | |||
@@ -408,8 +408,8 @@ static void pci_fire_hw_init(struct pci_pbm_info *pbm) | |||
408 | upa_writeq(~(u64)0, pbm->pbm_regs + FIRE_PEC_IENAB); | 408 | upa_writeq(~(u64)0, pbm->pbm_regs + FIRE_PEC_IENAB); |
409 | } | 409 | } |
410 | 410 | ||
411 | static int __devinit pci_fire_pbm_init(struct pci_pbm_info *pbm, | 411 | static int pci_fire_pbm_init(struct pci_pbm_info *pbm, |
412 | struct platform_device *op, u32 portid) | 412 | struct platform_device *op, u32 portid) |
413 | { | 413 | { |
414 | const struct linux_prom64_registers *regs; | 414 | const struct linux_prom64_registers *regs; |
415 | struct device_node *dp = op->dev.of_node; | 415 | struct device_node *dp = op->dev.of_node; |
@@ -454,7 +454,7 @@ static int __devinit pci_fire_pbm_init(struct pci_pbm_info *pbm, | |||
454 | return 0; | 454 | return 0; |
455 | } | 455 | } |
456 | 456 | ||
457 | static int __devinit fire_probe(struct platform_device *op) | 457 | static int fire_probe(struct platform_device *op) |
458 | { | 458 | { |
459 | struct device_node *dp = op->dev.of_node; | 459 | struct device_node *dp = op->dev.of_node; |
460 | struct pci_pbm_info *pbm; | 460 | struct pci_pbm_info *pbm; |
diff --git a/arch/sparc/kernel/pci_psycho.c b/arch/sparc/kernel/pci_psycho.c index f4d29e15ce71..c647634ead2b 100644 --- a/arch/sparc/kernel/pci_psycho.c +++ b/arch/sparc/kernel/pci_psycho.c | |||
@@ -366,8 +366,8 @@ static void pbm_config_busmastering(struct pci_pbm_info *pbm) | |||
366 | pci_config_write8(addr, 64); | 366 | pci_config_write8(addr, 64); |
367 | } | 367 | } |
368 | 368 | ||
369 | static void __devinit psycho_scan_bus(struct pci_pbm_info *pbm, | 369 | static void psycho_scan_bus(struct pci_pbm_info *pbm, |
370 | struct device *parent) | 370 | struct device *parent) |
371 | { | 371 | { |
372 | pbm_config_busmastering(pbm); | 372 | pbm_config_busmastering(pbm); |
373 | pbm->is_66mhz_capable = 0; | 373 | pbm->is_66mhz_capable = 0; |
@@ -483,15 +483,15 @@ static void psycho_pbm_strbuf_init(struct pci_pbm_info *pbm, | |||
483 | #define PSYCHO_MEMSPACE_B 0x180000000UL | 483 | #define PSYCHO_MEMSPACE_B 0x180000000UL |
484 | #define PSYCHO_MEMSPACE_SIZE 0x07fffffffUL | 484 | #define PSYCHO_MEMSPACE_SIZE 0x07fffffffUL |
485 | 485 | ||
486 | static void __devinit psycho_pbm_init(struct pci_pbm_info *pbm, | 486 | static void psycho_pbm_init(struct pci_pbm_info *pbm, |
487 | struct platform_device *op, int is_pbm_a) | 487 | struct platform_device *op, int is_pbm_a) |
488 | { | 488 | { |
489 | psycho_pbm_init_common(pbm, op, "PSYCHO", PBM_CHIP_TYPE_PSYCHO); | 489 | psycho_pbm_init_common(pbm, op, "PSYCHO", PBM_CHIP_TYPE_PSYCHO); |
490 | psycho_pbm_strbuf_init(pbm, is_pbm_a); | 490 | psycho_pbm_strbuf_init(pbm, is_pbm_a); |
491 | psycho_scan_bus(pbm, &op->dev); | 491 | psycho_scan_bus(pbm, &op->dev); |
492 | } | 492 | } |
493 | 493 | ||
494 | static struct pci_pbm_info * __devinit psycho_find_sibling(u32 upa_portid) | 494 | static struct pci_pbm_info *psycho_find_sibling(u32 upa_portid) |
495 | { | 495 | { |
496 | struct pci_pbm_info *pbm; | 496 | struct pci_pbm_info *pbm; |
497 | 497 | ||
@@ -504,7 +504,7 @@ static struct pci_pbm_info * __devinit psycho_find_sibling(u32 upa_portid) | |||
504 | 504 | ||
505 | #define PSYCHO_CONFIGSPACE 0x001000000UL | 505 | #define PSYCHO_CONFIGSPACE 0x001000000UL |
506 | 506 | ||
507 | static int __devinit psycho_probe(struct platform_device *op) | 507 | static int psycho_probe(struct platform_device *op) |
508 | { | 508 | { |
509 | const struct linux_prom64_registers *pr_regs; | 509 | const struct linux_prom64_registers *pr_regs; |
510 | struct device_node *dp = op->dev.of_node; | 510 | struct device_node *dp = op->dev.of_node; |
diff --git a/arch/sparc/kernel/pci_sabre.c b/arch/sparc/kernel/pci_sabre.c index 3efaa4644d60..6f00d27e8dac 100644 --- a/arch/sparc/kernel/pci_sabre.c +++ b/arch/sparc/kernel/pci_sabre.c | |||
@@ -403,8 +403,7 @@ static void apb_init(struct pci_bus *sabre_bus) | |||
403 | } | 403 | } |
404 | } | 404 | } |
405 | 405 | ||
406 | static void __devinit sabre_scan_bus(struct pci_pbm_info *pbm, | 406 | static void sabre_scan_bus(struct pci_pbm_info *pbm, struct device *parent) |
407 | struct device *parent) | ||
408 | { | 407 | { |
409 | static int once; | 408 | static int once; |
410 | 409 | ||
@@ -443,8 +442,8 @@ static void __devinit sabre_scan_bus(struct pci_pbm_info *pbm, | |||
443 | sabre_register_error_handlers(pbm); | 442 | sabre_register_error_handlers(pbm); |
444 | } | 443 | } |
445 | 444 | ||
446 | static void __devinit sabre_pbm_init(struct pci_pbm_info *pbm, | 445 | static void sabre_pbm_init(struct pci_pbm_info *pbm, |
447 | struct platform_device *op) | 446 | struct platform_device *op) |
448 | { | 447 | { |
449 | psycho_pbm_init_common(pbm, op, "SABRE", PBM_CHIP_TYPE_SABRE); | 448 | psycho_pbm_init_common(pbm, op, "SABRE", PBM_CHIP_TYPE_SABRE); |
450 | pbm->pci_afsr = pbm->controller_regs + SABRE_PIOAFSR; | 449 | pbm->pci_afsr = pbm->controller_regs + SABRE_PIOAFSR; |
@@ -454,7 +453,7 @@ static void __devinit sabre_pbm_init(struct pci_pbm_info *pbm, | |||
454 | } | 453 | } |
455 | 454 | ||
456 | static const struct of_device_id sabre_match[]; | 455 | static const struct of_device_id sabre_match[]; |
457 | static int __devinit sabre_probe(struct platform_device *op) | 456 | static int sabre_probe(struct platform_device *op) |
458 | { | 457 | { |
459 | const struct of_device_id *match; | 458 | const struct of_device_id *match; |
460 | const struct linux_prom64_registers *pr_regs; | 459 | const struct linux_prom64_registers *pr_regs; |
diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c index 13d4aa20b5a5..8f76f23dac38 100644 --- a/arch/sparc/kernel/pci_schizo.c +++ b/arch/sparc/kernel/pci_schizo.c | |||
@@ -1064,8 +1064,7 @@ static void pbm_config_busmastering(struct pci_pbm_info *pbm) | |||
1064 | pci_config_write8(addr, 64); | 1064 | pci_config_write8(addr, 64); |
1065 | } | 1065 | } |
1066 | 1066 | ||
1067 | static void __devinit schizo_scan_bus(struct pci_pbm_info *pbm, | 1067 | static void schizo_scan_bus(struct pci_pbm_info *pbm, struct device *parent) |
1068 | struct device *parent) | ||
1069 | { | 1068 | { |
1070 | pbm_config_busmastering(pbm); | 1069 | pbm_config_busmastering(pbm); |
1071 | pbm->is_66mhz_capable = | 1070 | pbm->is_66mhz_capable = |
@@ -1307,9 +1306,9 @@ static void schizo_pbm_hw_init(struct pci_pbm_info *pbm) | |||
1307 | } | 1306 | } |
1308 | } | 1307 | } |
1309 | 1308 | ||
1310 | static int __devinit schizo_pbm_init(struct pci_pbm_info *pbm, | 1309 | static int schizo_pbm_init(struct pci_pbm_info *pbm, |
1311 | struct platform_device *op, u32 portid, | 1310 | struct platform_device *op, u32 portid, |
1312 | int chip_type) | 1311 | int chip_type) |
1313 | { | 1312 | { |
1314 | const struct linux_prom64_registers *regs; | 1313 | const struct linux_prom64_registers *regs; |
1315 | struct device_node *dp = op->dev.of_node; | 1314 | struct device_node *dp = op->dev.of_node; |
@@ -1400,8 +1399,7 @@ static inline int portid_compare(u32 x, u32 y, int chip_type) | |||
1400 | return (x == y); | 1399 | return (x == y); |
1401 | } | 1400 | } |
1402 | 1401 | ||
1403 | static struct pci_pbm_info * __devinit schizo_find_sibling(u32 portid, | 1402 | static struct pci_pbm_info *schizo_find_sibling(u32 portid, int chip_type) |
1404 | int chip_type) | ||
1405 | { | 1403 | { |
1406 | struct pci_pbm_info *pbm; | 1404 | struct pci_pbm_info *pbm; |
1407 | 1405 | ||
@@ -1412,7 +1410,7 @@ static struct pci_pbm_info * __devinit schizo_find_sibling(u32 portid, | |||
1412 | return NULL; | 1410 | return NULL; |
1413 | } | 1411 | } |
1414 | 1412 | ||
1415 | static int __devinit __schizo_init(struct platform_device *op, unsigned long chip_type) | 1413 | static int __schizo_init(struct platform_device *op, unsigned long chip_type) |
1416 | { | 1414 | { |
1417 | struct device_node *dp = op->dev.of_node; | 1415 | struct device_node *dp = op->dev.of_node; |
1418 | struct pci_pbm_info *pbm; | 1416 | struct pci_pbm_info *pbm; |
@@ -1460,7 +1458,7 @@ out_err: | |||
1460 | } | 1458 | } |
1461 | 1459 | ||
1462 | static const struct of_device_id schizo_match[]; | 1460 | static const struct of_device_id schizo_match[]; |
1463 | static int __devinit schizo_probe(struct platform_device *op) | 1461 | static int schizo_probe(struct platform_device *op) |
1464 | { | 1462 | { |
1465 | const struct of_device_id *match; | 1463 | const struct of_device_id *match; |
1466 | 1464 | ||
diff --git a/arch/sparc/kernel/pci_sun4v.c b/arch/sparc/kernel/pci_sun4v.c index 051b69caeffd..d07f6b29aed8 100644 --- a/arch/sparc/kernel/pci_sun4v.c +++ b/arch/sparc/kernel/pci_sun4v.c | |||
@@ -536,8 +536,7 @@ static struct dma_map_ops sun4v_dma_ops = { | |||
536 | .unmap_sg = dma_4v_unmap_sg, | 536 | .unmap_sg = dma_4v_unmap_sg, |
537 | }; | 537 | }; |
538 | 538 | ||
539 | static void __devinit pci_sun4v_scan_bus(struct pci_pbm_info *pbm, | 539 | static void pci_sun4v_scan_bus(struct pci_pbm_info *pbm, struct device *parent) |
540 | struct device *parent) | ||
541 | { | 540 | { |
542 | struct property *prop; | 541 | struct property *prop; |
543 | struct device_node *dp; | 542 | struct device_node *dp; |
@@ -550,8 +549,8 @@ static void __devinit pci_sun4v_scan_bus(struct pci_pbm_info *pbm, | |||
550 | /* XXX register error interrupt handlers XXX */ | 549 | /* XXX register error interrupt handlers XXX */ |
551 | } | 550 | } |
552 | 551 | ||
553 | static unsigned long __devinit probe_existing_entries(struct pci_pbm_info *pbm, | 552 | static unsigned long probe_existing_entries(struct pci_pbm_info *pbm, |
554 | struct iommu *iommu) | 553 | struct iommu *iommu) |
555 | { | 554 | { |
556 | struct iommu_arena *arena = &iommu->arena; | 555 | struct iommu_arena *arena = &iommu->arena; |
557 | unsigned long i, cnt = 0; | 556 | unsigned long i, cnt = 0; |
@@ -578,7 +577,7 @@ static unsigned long __devinit probe_existing_entries(struct pci_pbm_info *pbm, | |||
578 | return cnt; | 577 | return cnt; |
579 | } | 578 | } |
580 | 579 | ||
581 | static int __devinit pci_sun4v_iommu_init(struct pci_pbm_info *pbm) | 580 | static int pci_sun4v_iommu_init(struct pci_pbm_info *pbm) |
582 | { | 581 | { |
583 | static const u32 vdma_default[] = { 0x80000000, 0x80000000 }; | 582 | static const u32 vdma_default[] = { 0x80000000, 0x80000000 }; |
584 | struct iommu *iommu = pbm->iommu; | 583 | struct iommu *iommu = pbm->iommu; |
@@ -879,8 +878,8 @@ static void pci_sun4v_msi_init(struct pci_pbm_info *pbm) | |||
879 | } | 878 | } |
880 | #endif /* !(CONFIG_PCI_MSI) */ | 879 | #endif /* !(CONFIG_PCI_MSI) */ |
881 | 880 | ||
882 | static int __devinit pci_sun4v_pbm_init(struct pci_pbm_info *pbm, | 881 | static int pci_sun4v_pbm_init(struct pci_pbm_info *pbm, |
883 | struct platform_device *op, u32 devhandle) | 882 | struct platform_device *op, u32 devhandle) |
884 | { | 883 | { |
885 | struct device_node *dp = op->dev.of_node; | 884 | struct device_node *dp = op->dev.of_node; |
886 | int err; | 885 | int err; |
@@ -919,7 +918,7 @@ static int __devinit pci_sun4v_pbm_init(struct pci_pbm_info *pbm, | |||
919 | return 0; | 918 | return 0; |
920 | } | 919 | } |
921 | 920 | ||
922 | static int __devinit pci_sun4v_probe(struct platform_device *op) | 921 | static int pci_sun4v_probe(struct platform_device *op) |
923 | { | 922 | { |
924 | const struct linux_prom64_registers *regs; | 923 | const struct linux_prom64_registers *regs; |
925 | static int hvapi_negotiated = 0; | 924 | static int hvapi_negotiated = 0; |
diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c index 521fdf1b20e5..09f4fdd8d808 100644 --- a/arch/sparc/kernel/pcic.c +++ b/arch/sparc/kernel/pcic.c | |||
@@ -439,8 +439,7 @@ int pcic_present(void) | |||
439 | return pcic0_up; | 439 | return pcic0_up; |
440 | } | 440 | } |
441 | 441 | ||
442 | static int __devinit pdev_to_pnode(struct linux_pbm_info *pbm, | 442 | static int pdev_to_pnode(struct linux_pbm_info *pbm, struct pci_dev *pdev) |
443 | struct pci_dev *pdev) | ||
444 | { | 443 | { |
445 | struct linux_prom_pci_registers regs[PROMREG_MAX]; | 444 | struct linux_prom_pci_registers regs[PROMREG_MAX]; |
446 | int err; | 445 | int err; |
@@ -595,7 +594,7 @@ pcic_fill_irq(struct linux_pcic *pcic, struct pci_dev *dev, int node) | |||
595 | /* | 594 | /* |
596 | * Normally called from {do_}pci_scan_bus... | 595 | * Normally called from {do_}pci_scan_bus... |
597 | */ | 596 | */ |
598 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 597 | void pcibios_fixup_bus(struct pci_bus *bus) |
599 | { | 598 | { |
600 | struct pci_dev *dev; | 599 | struct pci_dev *dev; |
601 | int i, has_io, has_mem; | 600 | int i, has_io, has_mem; |
diff --git a/arch/sparc/kernel/pmc.c b/arch/sparc/kernel/pmc.c index 0e3202239ff5..dcbb62f63068 100644 --- a/arch/sparc/kernel/pmc.c +++ b/arch/sparc/kernel/pmc.c | |||
@@ -52,7 +52,7 @@ static void pmc_swift_idle(void) | |||
52 | #endif | 52 | #endif |
53 | } | 53 | } |
54 | 54 | ||
55 | static int __devinit pmc_probe(struct platform_device *op) | 55 | static int pmc_probe(struct platform_device *op) |
56 | { | 56 | { |
57 | regs = of_ioremap(&op->resource[0], 0, | 57 | regs = of_ioremap(&op->resource[0], 0, |
58 | resource_size(&op->resource[0]), PMC_OBPNAME); | 58 | resource_size(&op->resource[0]), PMC_OBPNAME); |
diff --git a/arch/sparc/kernel/power.c b/arch/sparc/kernel/power.c index 0d39075063b2..4cb23c41553f 100644 --- a/arch/sparc/kernel/power.c +++ b/arch/sparc/kernel/power.c | |||
@@ -23,7 +23,7 @@ static irqreturn_t power_handler(int irq, void *dev_id) | |||
23 | return IRQ_HANDLED; | 23 | return IRQ_HANDLED; |
24 | } | 24 | } |
25 | 25 | ||
26 | static int __devinit has_button_interrupt(unsigned int irq, struct device_node *dp) | 26 | static int has_button_interrupt(unsigned int irq, struct device_node *dp) |
27 | { | 27 | { |
28 | if (irq == 0xffffffff) | 28 | if (irq == 0xffffffff) |
29 | return 0; | 29 | return 0; |
@@ -33,7 +33,7 @@ static int __devinit has_button_interrupt(unsigned int irq, struct device_node * | |||
33 | return 1; | 33 | return 1; |
34 | } | 34 | } |
35 | 35 | ||
36 | static int __devinit power_probe(struct platform_device *op) | 36 | static int power_probe(struct platform_device *op) |
37 | { | 37 | { |
38 | struct resource *res = &op->resource[0]; | 38 | struct resource *res = &op->resource[0]; |
39 | unsigned int irq = op->archdata.irqs[0]; | 39 | unsigned int irq = op->archdata.irqs[0]; |
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index d94b878577b7..537eb66abd06 100644 --- a/arch/sparc/kernel/smp_64.c +++ b/arch/sparc/kernel/smp_64.c | |||
@@ -1180,7 +1180,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
1180 | { | 1180 | { |
1181 | } | 1181 | } |
1182 | 1182 | ||
1183 | void __devinit smp_prepare_boot_cpu(void) | 1183 | void smp_prepare_boot_cpu(void) |
1184 | { | 1184 | { |
1185 | } | 1185 | } |
1186 | 1186 | ||
@@ -1194,7 +1194,7 @@ void __init smp_setup_processor_id(void) | |||
1194 | xcall_deliver_impl = hypervisor_xcall_deliver; | 1194 | xcall_deliver_impl = hypervisor_xcall_deliver; |
1195 | } | 1195 | } |
1196 | 1196 | ||
1197 | void __devinit smp_fill_in_sib_core_maps(void) | 1197 | void smp_fill_in_sib_core_maps(void) |
1198 | { | 1198 | { |
1199 | unsigned int i; | 1199 | unsigned int i; |
1200 | 1200 | ||
diff --git a/arch/sparc/kernel/systbls_32.S b/arch/sparc/kernel/systbls_32.S index 5147f574f125..6ac43c36bbbf 100644 --- a/arch/sparc/kernel/systbls_32.S +++ b/arch/sparc/kernel/systbls_32.S | |||
@@ -85,4 +85,4 @@ sys_call_table: | |||
85 | /*325*/ .long sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init | 85 | /*325*/ .long sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init |
86 | /*330*/ .long sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime | 86 | /*330*/ .long sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime |
87 | /*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev | 87 | /*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev |
88 | /*340*/ .long sys_ni_syscall, sys_kcmp | 88 | /*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module |
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S index cdbd9b817751..1009ecb92678 100644 --- a/arch/sparc/kernel/systbls_64.S +++ b/arch/sparc/kernel/systbls_64.S | |||
@@ -86,7 +86,7 @@ sys_call_table32: | |||
86 | .word compat_sys_pwritev, compat_sys_rt_tgsigqueueinfo, sys_perf_event_open, compat_sys_recvmmsg, sys_fanotify_init | 86 | .word compat_sys_pwritev, compat_sys_rt_tgsigqueueinfo, sys_perf_event_open, compat_sys_recvmmsg, sys_fanotify_init |
87 | /*330*/ .word sys32_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, compat_sys_open_by_handle_at, compat_sys_clock_adjtime | 87 | /*330*/ .word sys32_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, compat_sys_open_by_handle_at, compat_sys_clock_adjtime |
88 | .word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev | 88 | .word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev |
89 | /*340*/ .word sys_kern_features, sys_kcmp | 89 | /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module |
90 | 90 | ||
91 | #endif /* CONFIG_COMPAT */ | 91 | #endif /* CONFIG_COMPAT */ |
92 | 92 | ||
@@ -164,4 +164,4 @@ sys_call_table: | |||
164 | .word sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init | 164 | .word sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init |
165 | /*330*/ .word sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime | 165 | /*330*/ .word sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime |
166 | .word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev | 166 | .word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev |
167 | /*340*/ .word sys_kern_features, sys_kcmp | 167 | /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module |
diff --git a/arch/sparc/kernel/time_32.c b/arch/sparc/kernel/time_32.c index 953641549e82..c4c27b0f9063 100644 --- a/arch/sparc/kernel/time_32.c +++ b/arch/sparc/kernel/time_32.c | |||
@@ -278,7 +278,7 @@ static struct platform_device m48t59_rtc = { | |||
278 | }, | 278 | }, |
279 | }; | 279 | }; |
280 | 280 | ||
281 | static int __devinit clock_probe(struct platform_device *op) | 281 | static int clock_probe(struct platform_device *op) |
282 | { | 282 | { |
283 | struct device_node *dp = op->dev.of_node; | 283 | struct device_node *dp = op->dev.of_node; |
284 | const char *model = of_get_property(dp, "model", NULL); | 284 | const char *model = of_get_property(dp, "model", NULL); |
diff --git a/arch/sparc/kernel/time_64.c b/arch/sparc/kernel/time_64.c index e861072b9c52..c3d82b5f54ca 100644 --- a/arch/sparc/kernel/time_64.c +++ b/arch/sparc/kernel/time_64.c | |||
@@ -419,7 +419,7 @@ static struct platform_device rtc_cmos_device = { | |||
419 | .num_resources = 1, | 419 | .num_resources = 1, |
420 | }; | 420 | }; |
421 | 421 | ||
422 | static int __devinit rtc_probe(struct platform_device *op) | 422 | static int rtc_probe(struct platform_device *op) |
423 | { | 423 | { |
424 | struct resource *r; | 424 | struct resource *r; |
425 | 425 | ||
@@ -477,7 +477,7 @@ static struct platform_device rtc_bq4802_device = { | |||
477 | .num_resources = 1, | 477 | .num_resources = 1, |
478 | }; | 478 | }; |
479 | 479 | ||
480 | static int __devinit bq4802_probe(struct platform_device *op) | 480 | static int bq4802_probe(struct platform_device *op) |
481 | { | 481 | { |
482 | 482 | ||
483 | printk(KERN_INFO "%s: BQ4802 regs at 0x%llx\n", | 483 | printk(KERN_INFO "%s: BQ4802 regs at 0x%llx\n", |
@@ -534,7 +534,7 @@ static struct platform_device m48t59_rtc = { | |||
534 | }, | 534 | }, |
535 | }; | 535 | }; |
536 | 536 | ||
537 | static int __devinit mostek_probe(struct platform_device *op) | 537 | static int mostek_probe(struct platform_device *op) |
538 | { | 538 | { |
539 | struct device_node *dp = op->dev.of_node; | 539 | struct device_node *dp = op->dev.of_node; |
540 | 540 | ||
@@ -746,7 +746,7 @@ void __irq_entry timer_interrupt(int irq, struct pt_regs *regs) | |||
746 | set_irq_regs(old_regs); | 746 | set_irq_regs(old_regs); |
747 | } | 747 | } |
748 | 748 | ||
749 | void __devinit setup_sparc64_timer(void) | 749 | void setup_sparc64_timer(void) |
750 | { | 750 | { |
751 | struct clock_event_device *sevt; | 751 | struct clock_event_device *sevt; |
752 | unsigned long pstate; | 752 | unsigned long pstate; |
@@ -844,7 +844,7 @@ unsigned long long sched_clock(void) | |||
844 | >> SPARC64_NSEC_PER_CYC_SHIFT; | 844 | >> SPARC64_NSEC_PER_CYC_SHIFT; |
845 | } | 845 | } |
846 | 846 | ||
847 | int __devinit read_current_timer(unsigned long *timer_val) | 847 | int read_current_timer(unsigned long *timer_val) |
848 | { | 848 | { |
849 | *timer_val = tick_ops->get_tick(); | 849 | *timer_val = tick_ops->get_tick(); |
850 | return 0; | 850 | return 0; |
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c index 85be1ca539b2..c3b72423c846 100644 --- a/arch/sparc/mm/init_64.c +++ b/arch/sparc/mm/init_64.c | |||
@@ -87,8 +87,8 @@ static unsigned long cpu_pgsz_mask; | |||
87 | 87 | ||
88 | #define MAX_BANKS 32 | 88 | #define MAX_BANKS 32 |
89 | 89 | ||
90 | static struct linux_prom64_registers pavail[MAX_BANKS] __devinitdata; | 90 | static struct linux_prom64_registers pavail[MAX_BANKS]; |
91 | static int pavail_ents __devinitdata; | 91 | static int pavail_ents; |
92 | 92 | ||
93 | static int cmp_p64(const void *a, const void *b) | 93 | static int cmp_p64(const void *a, const void *b) |
94 | { | 94 | { |
@@ -1931,7 +1931,7 @@ void __init paging_init(void) | |||
1931 | printk("Booting Linux...\n"); | 1931 | printk("Booting Linux...\n"); |
1932 | } | 1932 | } |
1933 | 1933 | ||
1934 | int __devinit page_in_phys_avail(unsigned long paddr) | 1934 | int page_in_phys_avail(unsigned long paddr) |
1935 | { | 1935 | { |
1936 | int i; | 1936 | int i; |
1937 | 1937 | ||
diff --git a/arch/tile/include/asm/pci.h b/arch/tile/include/asm/pci.h index 302cdf71ceed..54a924208d3c 100644 --- a/arch/tile/include/asm/pci.h +++ b/arch/tile/include/asm/pci.h | |||
@@ -188,7 +188,7 @@ extern void pci_iounmap(struct pci_dev *dev, void __iomem *); | |||
188 | int __init tile_pci_init(void); | 188 | int __init tile_pci_init(void); |
189 | int __init pcibios_init(void); | 189 | int __init pcibios_init(void); |
190 | 190 | ||
191 | void __devinit pcibios_fixup_bus(struct pci_bus *bus); | 191 | void pcibios_fixup_bus(struct pci_bus *bus); |
192 | 192 | ||
193 | #define pci_domain_nr(bus) (((struct pci_controller *)(bus)->sysdata)->index) | 193 | #define pci_domain_nr(bus) (((struct pci_controller *)(bus)->sysdata)->index) |
194 | 194 | ||
diff --git a/arch/tile/kernel/pci.c b/arch/tile/kernel/pci.c index aac1cd586966..67237d34c2e2 100644 --- a/arch/tile/kernel/pci.c +++ b/arch/tile/kernel/pci.c | |||
@@ -81,7 +81,7 @@ EXPORT_SYMBOL(pcibios_align_resource); | |||
81 | * controller_id is the controller number, config type is 0 or 1 for | 81 | * controller_id is the controller number, config type is 0 or 1 for |
82 | * config0 or config1 operations. | 82 | * config0 or config1 operations. |
83 | */ | 83 | */ |
84 | static int __devinit tile_pcie_open(int controller_id, int config_type) | 84 | static int tile_pcie_open(int controller_id, int config_type) |
85 | { | 85 | { |
86 | char filename[32]; | 86 | char filename[32]; |
87 | int fd; | 87 | int fd; |
@@ -97,8 +97,7 @@ static int __devinit tile_pcie_open(int controller_id, int config_type) | |||
97 | /* | 97 | /* |
98 | * Get the IRQ numbers from the HV and set up the handlers for them. | 98 | * Get the IRQ numbers from the HV and set up the handlers for them. |
99 | */ | 99 | */ |
100 | static int __devinit tile_init_irqs(int controller_id, | 100 | static int tile_init_irqs(int controller_id, struct pci_controller *controller) |
101 | struct pci_controller *controller) | ||
102 | { | 101 | { |
103 | char filename[32]; | 102 | char filename[32]; |
104 | int fd; | 103 | int fd; |
@@ -237,7 +236,7 @@ static int tile_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | |||
237 | } | 236 | } |
238 | 237 | ||
239 | 238 | ||
240 | static void __devinit fixup_read_and_payload_sizes(void) | 239 | static void fixup_read_and_payload_sizes(void) |
241 | { | 240 | { |
242 | struct pci_dev *dev = NULL; | 241 | struct pci_dev *dev = NULL; |
243 | int smallest_max_payload = 0x1; /* Tile maxes out at 256 bytes. */ | 242 | int smallest_max_payload = 0x1; /* Tile maxes out at 256 bytes. */ |
@@ -379,7 +378,7 @@ subsys_initcall(pcibios_init); | |||
379 | /* | 378 | /* |
380 | * No bus fixups needed. | 379 | * No bus fixups needed. |
381 | */ | 380 | */ |
382 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 381 | void pcibios_fixup_bus(struct pci_bus *bus) |
383 | { | 382 | { |
384 | /* Nothing needs to be done. */ | 383 | /* Nothing needs to be done. */ |
385 | } | 384 | } |
@@ -458,11 +457,8 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) | |||
458 | * specified bus & slot. | 457 | * specified bus & slot. |
459 | */ | 458 | */ |
460 | 459 | ||
461 | static int __devinit tile_cfg_read(struct pci_bus *bus, | 460 | static int tile_cfg_read(struct pci_bus *bus, unsigned int devfn, int offset, |
462 | unsigned int devfn, | 461 | int size, u32 *val) |
463 | int offset, | ||
464 | int size, | ||
465 | u32 *val) | ||
466 | { | 462 | { |
467 | struct pci_controller *controller = bus->sysdata; | 463 | struct pci_controller *controller = bus->sysdata; |
468 | int busnum = bus->number & 0xff; | 464 | int busnum = bus->number & 0xff; |
@@ -504,11 +500,8 @@ static int __devinit tile_cfg_read(struct pci_bus *bus, | |||
504 | * See tile_cfg_read() for relevant comments. | 500 | * See tile_cfg_read() for relevant comments. |
505 | * Note that "val" is the value to write, not a pointer to that value. | 501 | * Note that "val" is the value to write, not a pointer to that value. |
506 | */ | 502 | */ |
507 | static int __devinit tile_cfg_write(struct pci_bus *bus, | 503 | static int tile_cfg_write(struct pci_bus *bus, unsigned int devfn, int offset, |
508 | unsigned int devfn, | 504 | int size, u32 val) |
509 | int offset, | ||
510 | int size, | ||
511 | u32 val) | ||
512 | { | 505 | { |
513 | struct pci_controller *controller = bus->sysdata; | 506 | struct pci_controller *controller = bus->sysdata; |
514 | int busnum = bus->number & 0xff; | 507 | int busnum = bus->number & 0xff; |
diff --git a/arch/tile/kernel/pci_gx.c b/arch/tile/kernel/pci_gx.c index 94810d4a6332..11425633b2d7 100644 --- a/arch/tile/kernel/pci_gx.c +++ b/arch/tile/kernel/pci_gx.c | |||
@@ -58,10 +58,10 @@ | |||
58 | #define TRACE_CFG_RD(...) | 58 | #define TRACE_CFG_RD(...) |
59 | #endif | 59 | #endif |
60 | 60 | ||
61 | static int __devinitdata pci_probe = 1; | 61 | static int pci_probe = 1; |
62 | 62 | ||
63 | /* Information on the PCIe RC ports configuration. */ | 63 | /* Information on the PCIe RC ports configuration. */ |
64 | static int __devinitdata pcie_rc[TILEGX_NUM_TRIO][TILEGX_TRIO_PCIES]; | 64 | static int pcie_rc[TILEGX_NUM_TRIO][TILEGX_TRIO_PCIES]; |
65 | 65 | ||
66 | /* | 66 | /* |
67 | * On some platforms with one or more Gx endpoint ports, we need to | 67 | * On some platforms with one or more Gx endpoint ports, we need to |
@@ -72,7 +72,7 @@ static int __devinitdata pcie_rc[TILEGX_NUM_TRIO][TILEGX_TRIO_PCIES]; | |||
72 | * the delay in seconds. If the delay is not provided, the value | 72 | * the delay in seconds. If the delay is not provided, the value |
73 | * will be DEFAULT_RC_DELAY. | 73 | * will be DEFAULT_RC_DELAY. |
74 | */ | 74 | */ |
75 | static int __devinitdata rc_delay[TILEGX_NUM_TRIO][TILEGX_TRIO_PCIES]; | 75 | static int rc_delay[TILEGX_NUM_TRIO][TILEGX_TRIO_PCIES]; |
76 | 76 | ||
77 | /* Default number of seconds that the PCIe RC port probe can be delayed. */ | 77 | /* Default number of seconds that the PCIe RC port probe can be delayed. */ |
78 | #define DEFAULT_RC_DELAY 10 | 78 | #define DEFAULT_RC_DELAY 10 |
@@ -137,7 +137,7 @@ static int tile_irq_cpu(int irq) | |||
137 | /* | 137 | /* |
138 | * Open a file descriptor to the TRIO shim. | 138 | * Open a file descriptor to the TRIO shim. |
139 | */ | 139 | */ |
140 | static int __devinit tile_pcie_open(int trio_index) | 140 | static int tile_pcie_open(int trio_index) |
141 | { | 141 | { |
142 | gxio_trio_context_t *context = &trio_contexts[trio_index]; | 142 | gxio_trio_context_t *context = &trio_contexts[trio_index]; |
143 | int ret; | 143 | int ret; |
@@ -265,7 +265,7 @@ trio_handle_level_irq(unsigned int irq, struct irq_desc *desc) | |||
265 | * Create kernel irqs and set up the handlers for the legacy interrupts. | 265 | * Create kernel irqs and set up the handlers for the legacy interrupts. |
266 | * Also some minimum initialization for the MSI support. | 266 | * Also some minimum initialization for the MSI support. |
267 | */ | 267 | */ |
268 | static int __devinit tile_init_irqs(struct pci_controller *controller) | 268 | static int tile_init_irqs(struct pci_controller *controller) |
269 | { | 269 | { |
270 | int i; | 270 | int i; |
271 | int j; | 271 | int j; |
@@ -459,8 +459,7 @@ static int tile_map_irq(const struct pci_dev *dev, u8 device, u8 pin) | |||
459 | } | 459 | } |
460 | 460 | ||
461 | 461 | ||
462 | static void __devinit fixup_read_and_payload_sizes(struct pci_controller * | 462 | static void fixup_read_and_payload_sizes(struct pci_controller *controller) |
463 | controller) | ||
464 | { | 463 | { |
465 | gxio_trio_context_t *trio_context = controller->trio; | 464 | gxio_trio_context_t *trio_context = controller->trio; |
466 | struct pci_bus *root_bus = controller->root_bus; | 465 | struct pci_bus *root_bus = controller->root_bus; |
@@ -541,7 +540,7 @@ static void __devinit fixup_read_and_payload_sizes(struct pci_controller * | |||
541 | } | 540 | } |
542 | } | 541 | } |
543 | 542 | ||
544 | static int __devinit setup_pcie_rc_delay(char *str) | 543 | static int setup_pcie_rc_delay(char *str) |
545 | { | 544 | { |
546 | unsigned long delay = 0; | 545 | unsigned long delay = 0; |
547 | unsigned long trio_index; | 546 | unsigned long trio_index; |
@@ -1016,7 +1015,7 @@ alloc_mem_map_failed: | |||
1016 | subsys_initcall(pcibios_init); | 1015 | subsys_initcall(pcibios_init); |
1017 | 1016 | ||
1018 | /* Note: to be deleted after Linux 3.6 merge. */ | 1017 | /* Note: to be deleted after Linux 3.6 merge. */ |
1019 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 1018 | void pcibios_fixup_bus(struct pci_bus *bus) |
1020 | { | 1019 | { |
1021 | } | 1020 | } |
1022 | 1021 | ||
@@ -1024,7 +1023,7 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus) | |||
1024 | * This can be called from the generic PCI layer, but doesn't need to | 1023 | * This can be called from the generic PCI layer, but doesn't need to |
1025 | * do anything. | 1024 | * do anything. |
1026 | */ | 1025 | */ |
1027 | char __devinit *pcibios_setup(char *str) | 1026 | char *pcibios_setup(char *str) |
1028 | { | 1027 | { |
1029 | if (!strcmp(str, "off")) { | 1028 | if (!strcmp(str, "off")) { |
1030 | pci_probe = 0; | 1029 | pci_probe = 0; |
@@ -1143,11 +1142,8 @@ EXPORT_SYMBOL(pci_iounmap); | |||
1143 | * specified bus & device. | 1142 | * specified bus & device. |
1144 | */ | 1143 | */ |
1145 | 1144 | ||
1146 | static int __devinit tile_cfg_read(struct pci_bus *bus, | 1145 | static int tile_cfg_read(struct pci_bus *bus, unsigned int devfn, int offset, |
1147 | unsigned int devfn, | 1146 | int size, u32 *val) |
1148 | int offset, | ||
1149 | int size, | ||
1150 | u32 *val) | ||
1151 | { | 1147 | { |
1152 | struct pci_controller *controller = bus->sysdata; | 1148 | struct pci_controller *controller = bus->sysdata; |
1153 | gxio_trio_context_t *trio_context = controller->trio; | 1149 | gxio_trio_context_t *trio_context = controller->trio; |
@@ -1271,11 +1267,8 @@ invalid_device: | |||
1271 | * See tile_cfg_read() for relevent comments. | 1267 | * See tile_cfg_read() for relevent comments. |
1272 | * Note that "val" is the value to write, not a pointer to that value. | 1268 | * Note that "val" is the value to write, not a pointer to that value. |
1273 | */ | 1269 | */ |
1274 | static int __devinit tile_cfg_write(struct pci_bus *bus, | 1270 | static int tile_cfg_write(struct pci_bus *bus, unsigned int devfn, int offset, |
1275 | unsigned int devfn, | 1271 | int size, u32 val) |
1276 | int offset, | ||
1277 | int size, | ||
1278 | u32 val) | ||
1279 | { | 1272 | { |
1280 | struct pci_controller *controller = bus->sysdata; | 1273 | struct pci_controller *controller = bus->sysdata; |
1281 | gxio_trio_context_t *trio_context = controller->trio; | 1274 | gxio_trio_context_t *trio_context = controller->trio; |
diff --git a/arch/unicore32/kernel/pci.c b/arch/unicore32/kernel/pci.c index 7c4359240b81..ef69c0c82825 100644 --- a/arch/unicore32/kernel/pci.c +++ b/arch/unicore32/kernel/pci.c | |||
@@ -167,7 +167,7 @@ static inline int pdev_bad_for_parity(struct pci_dev *dev) | |||
167 | * pcibios_fixup_bus - Called after each bus is probed, | 167 | * pcibios_fixup_bus - Called after each bus is probed, |
168 | * but before its children are examined. | 168 | * but before its children are examined. |
169 | */ | 169 | */ |
170 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 170 | void pcibios_fixup_bus(struct pci_bus *bus) |
171 | { | 171 | { |
172 | struct pci_dev *dev; | 172 | struct pci_dev *dev; |
173 | u16 features = PCI_COMMAND_SERR | 173 | u16 features = PCI_COMMAND_SERR |
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c index b1942e222768..18e329ca108e 100644 --- a/arch/x86/boot/compressed/eboot.c +++ b/arch/x86/boot/compressed/eboot.c | |||
@@ -302,7 +302,7 @@ static efi_status_t setup_efi_pci(struct boot_params *params) | |||
302 | if (status != EFI_SUCCESS) | 302 | if (status != EFI_SUCCESS) |
303 | continue; | 303 | continue; |
304 | 304 | ||
305 | if (!attributes & EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM) | 305 | if (!(attributes & EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM)) |
306 | continue; | 306 | continue; |
307 | 307 | ||
308 | if (!pci->romimage || !pci->romsize) | 308 | if (!pci->romimage || !pci->romsize) |
diff --git a/arch/x86/include/asm/parport.h b/arch/x86/include/asm/parport.h index 3c4ffeb467e9..0d2d3b29118f 100644 --- a/arch/x86/include/asm/parport.h +++ b/arch/x86/include/asm/parport.h | |||
@@ -1,8 +1,8 @@ | |||
1 | #ifndef _ASM_X86_PARPORT_H | 1 | #ifndef _ASM_X86_PARPORT_H |
2 | #define _ASM_X86_PARPORT_H | 2 | #define _ASM_X86_PARPORT_H |
3 | 3 | ||
4 | static int __devinit parport_pc_find_isa_ports(int autoirq, int autodma); | 4 | static int parport_pc_find_isa_ports(int autoirq, int autodma); |
5 | static int __devinit parport_pc_find_nonpci_ports(int autoirq, int autodma) | 5 | static int parport_pc_find_nonpci_ports(int autoirq, int autodma) |
6 | { | 6 | { |
7 | return parport_pc_find_isa_ports(autoirq, autodma); | 7 | return parport_pc_find_isa_ports(autoirq, autodma); |
8 | } | 8 | } |
diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h index 73e8eeff22ee..747e5a38b590 100644 --- a/arch/x86/include/asm/pci_x86.h +++ b/arch/x86/include/asm/pci_x86.h | |||
@@ -140,11 +140,10 @@ struct pci_mmcfg_region { | |||
140 | 140 | ||
141 | extern int __init pci_mmcfg_arch_init(void); | 141 | extern int __init pci_mmcfg_arch_init(void); |
142 | extern void __init pci_mmcfg_arch_free(void); | 142 | extern void __init pci_mmcfg_arch_free(void); |
143 | extern int __devinit pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg); | 143 | extern int pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg); |
144 | extern void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg); | 144 | extern void pci_mmcfg_arch_unmap(struct pci_mmcfg_region *cfg); |
145 | extern int __devinit pci_mmconfig_insert(struct device *dev, | 145 | extern int pci_mmconfig_insert(struct device *dev, u16 seg, u8 start, u8 end, |
146 | u16 seg, u8 start, | 146 | phys_addr_t addr); |
147 | u8 end, phys_addr_t addr); | ||
148 | extern int pci_mmconfig_delete(u16 seg, u8 start, u8 end); | 147 | extern int pci_mmconfig_delete(u16 seg, u8 start, u8 end); |
149 | extern struct pci_mmcfg_region *pci_mmconfig_lookup(int segment, int bus); | 148 | extern struct pci_mmcfg_region *pci_mmconfig_lookup(int segment, int bus); |
150 | 149 | ||
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c index 4428fd178bce..6774c17a5576 100644 --- a/arch/x86/kernel/cpu/perf_event.c +++ b/arch/x86/kernel/cpu/perf_event.c | |||
@@ -340,9 +340,6 @@ int x86_setup_perfctr(struct perf_event *event) | |||
340 | /* BTS is currently only allowed for user-mode. */ | 340 | /* BTS is currently only allowed for user-mode. */ |
341 | if (!attr->exclude_kernel) | 341 | if (!attr->exclude_kernel) |
342 | return -EOPNOTSUPP; | 342 | return -EOPNOTSUPP; |
343 | |||
344 | if (!attr->exclude_guest) | ||
345 | return -EOPNOTSUPP; | ||
346 | } | 343 | } |
347 | 344 | ||
348 | hwc->config |= config; | 345 | hwc->config |= config; |
@@ -385,9 +382,6 @@ int x86_pmu_hw_config(struct perf_event *event) | |||
385 | if (event->attr.precise_ip) { | 382 | if (event->attr.precise_ip) { |
386 | int precise = 0; | 383 | int precise = 0; |
387 | 384 | ||
388 | if (!event->attr.exclude_guest) | ||
389 | return -EOPNOTSUPP; | ||
390 | |||
391 | /* Support for constant skid */ | 385 | /* Support for constant skid */ |
392 | if (x86_pmu.pebs_active && !x86_pmu.pebs_broken) { | 386 | if (x86_pmu.pebs_active && !x86_pmu.pebs_broken) { |
393 | precise++; | 387 | precise++; |
diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c index 3cf3d97cce3a..b43200dbfe7e 100644 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c | |||
@@ -2500,7 +2500,7 @@ static bool pcidrv_registered; | |||
2500 | /* | 2500 | /* |
2501 | * add a pci uncore device | 2501 | * add a pci uncore device |
2502 | */ | 2502 | */ |
2503 | static int __devinit uncore_pci_add(struct intel_uncore_type *type, struct pci_dev *pdev) | 2503 | static int uncore_pci_add(struct intel_uncore_type *type, struct pci_dev *pdev) |
2504 | { | 2504 | { |
2505 | struct intel_uncore_pmu *pmu; | 2505 | struct intel_uncore_pmu *pmu; |
2506 | struct intel_uncore_box *box; | 2506 | struct intel_uncore_box *box; |
@@ -2571,8 +2571,8 @@ static void uncore_pci_remove(struct pci_dev *pdev) | |||
2571 | kfree(box); | 2571 | kfree(box); |
2572 | } | 2572 | } |
2573 | 2573 | ||
2574 | static int __devinit uncore_pci_probe(struct pci_dev *pdev, | 2574 | static int uncore_pci_probe(struct pci_dev *pdev, |
2575 | const struct pci_device_id *id) | 2575 | const struct pci_device_id *id) |
2576 | { | 2576 | { |
2577 | struct intel_uncore_type *type; | 2577 | struct intel_uncore_type *type; |
2578 | 2578 | ||
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S index ff84d5469d77..6ed91d9980e2 100644 --- a/arch/x86/kernel/entry_32.S +++ b/arch/x86/kernel/entry_32.S | |||
@@ -1065,7 +1065,6 @@ ENTRY(xen_failsafe_callback) | |||
1065 | lea 16(%esp),%esp | 1065 | lea 16(%esp),%esp |
1066 | CFI_ADJUST_CFA_OFFSET -16 | 1066 | CFI_ADJUST_CFA_OFFSET -16 |
1067 | jz 5f | 1067 | jz 5f |
1068 | addl $16,%esp | ||
1069 | jmp iret_exc | 1068 | jmp iret_exc |
1070 | 5: pushl_cfi $-1 /* orig_ax = -1 => not a system call */ | 1069 | 5: pushl_cfi $-1 /* orig_ax = -1 => not a system call */ |
1071 | SAVE_ALL | 1070 | SAVE_ALL |
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index 08b973f64032..9c2bd8bd4b4c 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c | |||
@@ -43,6 +43,7 @@ | |||
43 | #include <asm/apicdef.h> | 43 | #include <asm/apicdef.h> |
44 | #include <asm/hypervisor.h> | 44 | #include <asm/hypervisor.h> |
45 | #include <asm/kvm_guest.h> | 45 | #include <asm/kvm_guest.h> |
46 | #include <asm/context_tracking.h> | ||
46 | 47 | ||
47 | static int kvmapf = 1; | 48 | static int kvmapf = 1; |
48 | 49 | ||
@@ -121,6 +122,8 @@ void kvm_async_pf_task_wait(u32 token) | |||
121 | struct kvm_task_sleep_node n, *e; | 122 | struct kvm_task_sleep_node n, *e; |
122 | DEFINE_WAIT(wait); | 123 | DEFINE_WAIT(wait); |
123 | 124 | ||
125 | rcu_irq_enter(); | ||
126 | |||
124 | spin_lock(&b->lock); | 127 | spin_lock(&b->lock); |
125 | e = _find_apf_task(b, token); | 128 | e = _find_apf_task(b, token); |
126 | if (e) { | 129 | if (e) { |
@@ -128,6 +131,8 @@ void kvm_async_pf_task_wait(u32 token) | |||
128 | hlist_del(&e->link); | 131 | hlist_del(&e->link); |
129 | kfree(e); | 132 | kfree(e); |
130 | spin_unlock(&b->lock); | 133 | spin_unlock(&b->lock); |
134 | |||
135 | rcu_irq_exit(); | ||
131 | return; | 136 | return; |
132 | } | 137 | } |
133 | 138 | ||
@@ -152,13 +157,16 @@ void kvm_async_pf_task_wait(u32 token) | |||
152 | /* | 157 | /* |
153 | * We cannot reschedule. So halt. | 158 | * We cannot reschedule. So halt. |
154 | */ | 159 | */ |
160 | rcu_irq_exit(); | ||
155 | native_safe_halt(); | 161 | native_safe_halt(); |
162 | rcu_irq_enter(); | ||
156 | local_irq_disable(); | 163 | local_irq_disable(); |
157 | } | 164 | } |
158 | } | 165 | } |
159 | if (!n.halted) | 166 | if (!n.halted) |
160 | finish_wait(&n.wq, &wait); | 167 | finish_wait(&n.wq, &wait); |
161 | 168 | ||
169 | rcu_irq_exit(); | ||
162 | return; | 170 | return; |
163 | } | 171 | } |
164 | EXPORT_SYMBOL_GPL(kvm_async_pf_task_wait); | 172 | EXPORT_SYMBOL_GPL(kvm_async_pf_task_wait); |
@@ -252,10 +260,10 @@ do_async_page_fault(struct pt_regs *regs, unsigned long error_code) | |||
252 | break; | 260 | break; |
253 | case KVM_PV_REASON_PAGE_NOT_PRESENT: | 261 | case KVM_PV_REASON_PAGE_NOT_PRESENT: |
254 | /* page is swapped out by the host. */ | 262 | /* page is swapped out by the host. */ |
255 | rcu_irq_enter(); | 263 | exception_enter(regs); |
256 | exit_idle(); | 264 | exit_idle(); |
257 | kvm_async_pf_task_wait((u32)read_cr2()); | 265 | kvm_async_pf_task_wait((u32)read_cr2()); |
258 | rcu_irq_exit(); | 266 | exception_exit(regs); |
259 | break; | 267 | break; |
260 | case KVM_PV_REASON_PAGE_READY: | 268 | case KVM_PV_REASON_PAGE_READY: |
261 | rcu_irq_enter(); | 269 | rcu_irq_enter(); |
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c index de2b7ad70273..0f5dec5c80e0 100644 --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c | |||
@@ -265,7 +265,7 @@ rootfs_initcall(pci_iommu_init); | |||
265 | #ifdef CONFIG_PCI | 265 | #ifdef CONFIG_PCI |
266 | /* Many VIA bridges seem to corrupt data for DAC. Disable it here */ | 266 | /* Many VIA bridges seem to corrupt data for DAC. Disable it here */ |
267 | 267 | ||
268 | static __devinit void via_no_dac(struct pci_dev *dev) | 268 | static void via_no_dac(struct pci_dev *dev) |
269 | { | 269 | { |
270 | if (forbid_dac == 0) { | 270 | if (forbid_dac == 0) { |
271 | dev_info(&dev->dev, "disabling DAC on VIA PCI bridge\n"); | 271 | dev_info(&dev->dev, "disabling DAC on VIA PCI bridge\n"); |
diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c index 1b27de563561..26ee48a33dc4 100644 --- a/arch/x86/kernel/quirks.c +++ b/arch/x86/kernel/quirks.c | |||
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | #if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) && defined(CONFIG_PCI) | 9 | #if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) && defined(CONFIG_PCI) |
10 | 10 | ||
11 | static void __devinit quirk_intel_irqbalance(struct pci_dev *dev) | 11 | static void quirk_intel_irqbalance(struct pci_dev *dev) |
12 | { | 12 | { |
13 | u8 config; | 13 | u8 config; |
14 | u16 word; | 14 | u16 word; |
@@ -512,7 +512,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS, | |||
512 | 512 | ||
513 | #if defined(CONFIG_PCI) && defined(CONFIG_NUMA) | 513 | #if defined(CONFIG_PCI) && defined(CONFIG_NUMA) |
514 | /* Set correct numa_node information for AMD NB functions */ | 514 | /* Set correct numa_node information for AMD NB functions */ |
515 | static void __devinit quirk_amd_nb_node(struct pci_dev *dev) | 515 | static void quirk_amd_nb_node(struct pci_dev *dev) |
516 | { | 516 | { |
517 | struct pci_dev *nb_ht; | 517 | struct pci_dev *nb_ht; |
518 | unsigned int devfn; | 518 | unsigned int devfn; |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 23ddd558fbd5..00f6c1472b85 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -610,6 +610,83 @@ static __init void reserve_ibft_region(void) | |||
610 | 610 | ||
611 | static unsigned reserve_low = CONFIG_X86_RESERVE_LOW << 10; | 611 | static unsigned reserve_low = CONFIG_X86_RESERVE_LOW << 10; |
612 | 612 | ||
613 | static bool __init snb_gfx_workaround_needed(void) | ||
614 | { | ||
615 | #ifdef CONFIG_PCI | ||
616 | int i; | ||
617 | u16 vendor, devid; | ||
618 | static const __initconst u16 snb_ids[] = { | ||
619 | 0x0102, | ||
620 | 0x0112, | ||
621 | 0x0122, | ||
622 | 0x0106, | ||
623 | 0x0116, | ||
624 | 0x0126, | ||
625 | 0x010a, | ||
626 | }; | ||
627 | |||
628 | /* Assume no if something weird is going on with PCI */ | ||
629 | if (!early_pci_allowed()) | ||
630 | return false; | ||
631 | |||
632 | vendor = read_pci_config_16(0, 2, 0, PCI_VENDOR_ID); | ||
633 | if (vendor != 0x8086) | ||
634 | return false; | ||
635 | |||
636 | devid = read_pci_config_16(0, 2, 0, PCI_DEVICE_ID); | ||
637 | for (i = 0; i < ARRAY_SIZE(snb_ids); i++) | ||
638 | if (devid == snb_ids[i]) | ||
639 | return true; | ||
640 | #endif | ||
641 | |||
642 | return false; | ||
643 | } | ||
644 | |||
645 | /* | ||
646 | * Sandy Bridge graphics has trouble with certain ranges, exclude | ||
647 | * them from allocation. | ||
648 | */ | ||
649 | static void __init trim_snb_memory(void) | ||
650 | { | ||
651 | static const __initconst unsigned long bad_pages[] = { | ||
652 | 0x20050000, | ||
653 | 0x20110000, | ||
654 | 0x20130000, | ||
655 | 0x20138000, | ||
656 | 0x40004000, | ||
657 | }; | ||
658 | int i; | ||
659 | |||
660 | if (!snb_gfx_workaround_needed()) | ||
661 | return; | ||
662 | |||
663 | printk(KERN_DEBUG "reserving inaccessible SNB gfx pages\n"); | ||
664 | |||
665 | /* | ||
666 | * Reserve all memory below the 1 MB mark that has not | ||
667 | * already been reserved. | ||
668 | */ | ||
669 | memblock_reserve(0, 1<<20); | ||
670 | |||
671 | for (i = 0; i < ARRAY_SIZE(bad_pages); i++) { | ||
672 | if (memblock_reserve(bad_pages[i], PAGE_SIZE)) | ||
673 | printk(KERN_WARNING "failed to reserve 0x%08lx\n", | ||
674 | bad_pages[i]); | ||
675 | } | ||
676 | } | ||
677 | |||
678 | /* | ||
679 | * Here we put platform-specific memory range workarounds, i.e. | ||
680 | * memory known to be corrupt or otherwise in need to be reserved on | ||
681 | * specific platforms. | ||
682 | * | ||
683 | * If this gets used more widely it could use a real dispatch mechanism. | ||
684 | */ | ||
685 | static void __init trim_platform_memory_ranges(void) | ||
686 | { | ||
687 | trim_snb_memory(); | ||
688 | } | ||
689 | |||
613 | static void __init trim_bios_range(void) | 690 | static void __init trim_bios_range(void) |
614 | { | 691 | { |
615 | /* | 692 | /* |
@@ -630,6 +707,7 @@ static void __init trim_bios_range(void) | |||
630 | * take them out. | 707 | * take them out. |
631 | */ | 708 | */ |
632 | e820_remove_range(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_RAM, 1); | 709 | e820_remove_range(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_RAM, 1); |
710 | |||
633 | sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); | 711 | sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); |
634 | } | 712 | } |
635 | 713 | ||
@@ -908,6 +986,8 @@ void __init setup_arch(char **cmdline_p) | |||
908 | 986 | ||
909 | setup_real_mode(); | 987 | setup_real_mode(); |
910 | 988 | ||
989 | trim_platform_memory_ranges(); | ||
990 | |||
911 | init_gbpages(); | 991 | init_gbpages(); |
912 | 992 | ||
913 | /* max_pfn_mapped is updated here */ | 993 | /* max_pfn_mapped is updated here */ |
diff --git a/arch/x86/kernel/step.c b/arch/x86/kernel/step.c index cd3b2438a980..9b4d51d0c0d0 100644 --- a/arch/x86/kernel/step.c +++ b/arch/x86/kernel/step.c | |||
@@ -165,10 +165,11 @@ void set_task_blockstep(struct task_struct *task, bool on) | |||
165 | * Ensure irq/preemption can't change debugctl in between. | 165 | * Ensure irq/preemption can't change debugctl in between. |
166 | * Note also that both TIF_BLOCKSTEP and debugctl should | 166 | * Note also that both TIF_BLOCKSTEP and debugctl should |
167 | * be changed atomically wrt preemption. | 167 | * be changed atomically wrt preemption. |
168 | * FIXME: this means that set/clear TIF_BLOCKSTEP is simply | 168 | * |
169 | * wrong if task != current, SIGKILL can wakeup the stopped | 169 | * NOTE: this means that set/clear TIF_BLOCKSTEP is only safe if |
170 | * tracee and set/clear can play with the running task, this | 170 | * task is current or it can't be running, otherwise we can race |
171 | * can confuse the next __switch_to_xtra(). | 171 | * with __switch_to_xtra(). We rely on ptrace_freeze_traced() but |
172 | * PTRACE_KILL is not safe. | ||
172 | */ | 173 | */ |
173 | local_irq_disable(); | 174 | local_irq_disable(); |
174 | debugctl = get_debugctlmsr(); | 175 | debugctl = get_debugctlmsr(); |
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 76f54461f7cb..c243b81e3c74 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -120,7 +120,7 @@ struct kvm_shared_msrs { | |||
120 | }; | 120 | }; |
121 | 121 | ||
122 | static struct kvm_shared_msrs_global __read_mostly shared_msrs_global; | 122 | static struct kvm_shared_msrs_global __read_mostly shared_msrs_global; |
123 | static DEFINE_PER_CPU(struct kvm_shared_msrs, shared_msrs); | 123 | static struct kvm_shared_msrs __percpu *shared_msrs; |
124 | 124 | ||
125 | struct kvm_stats_debugfs_item debugfs_entries[] = { | 125 | struct kvm_stats_debugfs_item debugfs_entries[] = { |
126 | { "pf_fixed", VCPU_STAT(pf_fixed) }, | 126 | { "pf_fixed", VCPU_STAT(pf_fixed) }, |
@@ -191,10 +191,10 @@ static void kvm_on_user_return(struct user_return_notifier *urn) | |||
191 | 191 | ||
192 | static void shared_msr_update(unsigned slot, u32 msr) | 192 | static void shared_msr_update(unsigned slot, u32 msr) |
193 | { | 193 | { |
194 | struct kvm_shared_msrs *smsr; | ||
195 | u64 value; | 194 | u64 value; |
195 | unsigned int cpu = smp_processor_id(); | ||
196 | struct kvm_shared_msrs *smsr = per_cpu_ptr(shared_msrs, cpu); | ||
196 | 197 | ||
197 | smsr = &__get_cpu_var(shared_msrs); | ||
198 | /* only read, and nobody should modify it at this time, | 198 | /* only read, and nobody should modify it at this time, |
199 | * so don't need lock */ | 199 | * so don't need lock */ |
200 | if (slot >= shared_msrs_global.nr) { | 200 | if (slot >= shared_msrs_global.nr) { |
@@ -226,7 +226,8 @@ static void kvm_shared_msr_cpu_online(void) | |||
226 | 226 | ||
227 | void kvm_set_shared_msr(unsigned slot, u64 value, u64 mask) | 227 | void kvm_set_shared_msr(unsigned slot, u64 value, u64 mask) |
228 | { | 228 | { |
229 | struct kvm_shared_msrs *smsr = &__get_cpu_var(shared_msrs); | 229 | unsigned int cpu = smp_processor_id(); |
230 | struct kvm_shared_msrs *smsr = per_cpu_ptr(shared_msrs, cpu); | ||
230 | 231 | ||
231 | if (((value ^ smsr->values[slot].curr) & mask) == 0) | 232 | if (((value ^ smsr->values[slot].curr) & mask) == 0) |
232 | return; | 233 | return; |
@@ -242,7 +243,8 @@ EXPORT_SYMBOL_GPL(kvm_set_shared_msr); | |||
242 | 243 | ||
243 | static void drop_user_return_notifiers(void *ignore) | 244 | static void drop_user_return_notifiers(void *ignore) |
244 | { | 245 | { |
245 | struct kvm_shared_msrs *smsr = &__get_cpu_var(shared_msrs); | 246 | unsigned int cpu = smp_processor_id(); |
247 | struct kvm_shared_msrs *smsr = per_cpu_ptr(shared_msrs, cpu); | ||
246 | 248 | ||
247 | if (smsr->registered) | 249 | if (smsr->registered) |
248 | kvm_on_user_return(&smsr->urn); | 250 | kvm_on_user_return(&smsr->urn); |
@@ -5233,9 +5235,16 @@ int kvm_arch_init(void *opaque) | |||
5233 | goto out; | 5235 | goto out; |
5234 | } | 5236 | } |
5235 | 5237 | ||
5238 | r = -ENOMEM; | ||
5239 | shared_msrs = alloc_percpu(struct kvm_shared_msrs); | ||
5240 | if (!shared_msrs) { | ||
5241 | printk(KERN_ERR "kvm: failed to allocate percpu kvm_shared_msrs\n"); | ||
5242 | goto out; | ||
5243 | } | ||
5244 | |||
5236 | r = kvm_mmu_module_init(); | 5245 | r = kvm_mmu_module_init(); |
5237 | if (r) | 5246 | if (r) |
5238 | goto out; | 5247 | goto out_free_percpu; |
5239 | 5248 | ||
5240 | kvm_set_mmio_spte_mask(); | 5249 | kvm_set_mmio_spte_mask(); |
5241 | kvm_init_msr_list(); | 5250 | kvm_init_msr_list(); |
@@ -5258,6 +5267,8 @@ int kvm_arch_init(void *opaque) | |||
5258 | 5267 | ||
5259 | return 0; | 5268 | return 0; |
5260 | 5269 | ||
5270 | out_free_percpu: | ||
5271 | free_percpu(shared_msrs); | ||
5261 | out: | 5272 | out: |
5262 | return r; | 5273 | return r; |
5263 | } | 5274 | } |
@@ -5275,6 +5286,7 @@ void kvm_arch_exit(void) | |||
5275 | #endif | 5286 | #endif |
5276 | kvm_x86_ops = NULL; | 5287 | kvm_x86_ops = NULL; |
5277 | kvm_mmu_module_exit(); | 5288 | kvm_mmu_module_exit(); |
5289 | free_percpu(shared_msrs); | ||
5278 | } | 5290 | } |
5279 | 5291 | ||
5280 | int kvm_emulate_halt(struct kvm_vcpu *vcpu) | 5292 | int kvm_emulate_halt(struct kvm_vcpu *vcpu) |
diff --git a/arch/x86/lib/delay.c b/arch/x86/lib/delay.c index e395693abdb1..7c3bee636e2f 100644 --- a/arch/x86/lib/delay.c +++ b/arch/x86/lib/delay.c | |||
@@ -98,7 +98,7 @@ void use_tsc_delay(void) | |||
98 | delay_fn = delay_tsc; | 98 | delay_fn = delay_tsc; |
99 | } | 99 | } |
100 | 100 | ||
101 | int __devinit read_current_timer(unsigned long *timer_val) | 101 | int read_current_timer(unsigned long *timer_val) |
102 | { | 102 | { |
103 | if (delay_fn == delay_tsc) { | 103 | if (delay_fn == delay_tsc) { |
104 | rdtscll(*timer_val); | 104 | rdtscll(*timer_val); |
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c index 0c01261fe5a8..53ea60458e01 100644 --- a/arch/x86/pci/acpi.c +++ b/arch/x86/pci/acpi.c | |||
@@ -145,7 +145,7 @@ void __init pci_acpi_crs_quirks(void) | |||
145 | } | 145 | } |
146 | 146 | ||
147 | #ifdef CONFIG_PCI_MMCONFIG | 147 | #ifdef CONFIG_PCI_MMCONFIG |
148 | static int __devinit check_segment(u16 seg, struct device *dev, char *estr) | 148 | static int check_segment(u16 seg, struct device *dev, char *estr) |
149 | { | 149 | { |
150 | if (seg) { | 150 | if (seg) { |
151 | dev_err(dev, | 151 | dev_err(dev, |
@@ -168,9 +168,8 @@ static int __devinit check_segment(u16 seg, struct device *dev, char *estr) | |||
168 | return 0; | 168 | return 0; |
169 | } | 169 | } |
170 | 170 | ||
171 | static int __devinit setup_mcfg_map(struct pci_root_info *info, | 171 | static int setup_mcfg_map(struct pci_root_info *info, u16 seg, u8 start, |
172 | u16 seg, u8 start, u8 end, | 172 | u8 end, phys_addr_t addr) |
173 | phys_addr_t addr) | ||
174 | { | 173 | { |
175 | int result; | 174 | int result; |
176 | struct device *dev = &info->bridge->dev; | 175 | struct device *dev = &info->bridge->dev; |
@@ -208,7 +207,7 @@ static void teardown_mcfg_map(struct pci_root_info *info) | |||
208 | } | 207 | } |
209 | } | 208 | } |
210 | #else | 209 | #else |
211 | static int __devinit setup_mcfg_map(struct pci_root_info *info, | 210 | static int setup_mcfg_map(struct pci_root_info *info, |
212 | u16 seg, u8 start, u8 end, | 211 | u16 seg, u8 start, u8 end, |
213 | phys_addr_t addr) | 212 | phys_addr_t addr) |
214 | { | 213 | { |
@@ -474,7 +473,7 @@ probe_pci_root_info(struct pci_root_info *info, struct acpi_device *device, | |||
474 | info); | 473 | info); |
475 | } | 474 | } |
476 | 475 | ||
477 | struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_pci_root *root) | 476 | struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root) |
478 | { | 477 | { |
479 | struct acpi_device *device = root->device; | 478 | struct acpi_device *device = root->device; |
480 | struct pci_root_info *info = NULL; | 479 | struct pci_root_info *info = NULL; |
diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c index d37e2fec97e5..c2735feb2508 100644 --- a/arch/x86/pci/bus_numa.c +++ b/arch/x86/pci/bus_numa.c | |||
@@ -93,8 +93,8 @@ struct pci_root_info __init *alloc_pci_root_info(int bus_min, int bus_max, | |||
93 | return info; | 93 | return info; |
94 | } | 94 | } |
95 | 95 | ||
96 | void __devinit update_res(struct pci_root_info *info, resource_size_t start, | 96 | void update_res(struct pci_root_info *info, resource_size_t start, |
97 | resource_size_t end, unsigned long flags, int merge) | 97 | resource_size_t end, unsigned long flags, int merge) |
98 | { | 98 | { |
99 | struct resource *res; | 99 | struct resource *res; |
100 | struct pci_root_res *root_res; | 100 | struct pci_root_res *root_res; |
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c index 412e1286d1fc..ccd0ab3ab899 100644 --- a/arch/x86/pci/common.c +++ b/arch/x86/pci/common.c | |||
@@ -81,14 +81,14 @@ struct pci_ops pci_root_ops = { | |||
81 | */ | 81 | */ |
82 | DEFINE_RAW_SPINLOCK(pci_config_lock); | 82 | DEFINE_RAW_SPINLOCK(pci_config_lock); |
83 | 83 | ||
84 | static int __devinit can_skip_ioresource_align(const struct dmi_system_id *d) | 84 | static int can_skip_ioresource_align(const struct dmi_system_id *d) |
85 | { | 85 | { |
86 | pci_probe |= PCI_CAN_SKIP_ISA_ALIGN; | 86 | pci_probe |= PCI_CAN_SKIP_ISA_ALIGN; |
87 | printk(KERN_INFO "PCI: %s detected, can skip ISA alignment\n", d->ident); | 87 | printk(KERN_INFO "PCI: %s detected, can skip ISA alignment\n", d->ident); |
88 | return 0; | 88 | return 0; |
89 | } | 89 | } |
90 | 90 | ||
91 | static const struct dmi_system_id can_skip_pciprobe_dmi_table[] __devinitconst = { | 91 | static const struct dmi_system_id can_skip_pciprobe_dmi_table[] = { |
92 | /* | 92 | /* |
93 | * Systems where PCI IO resource ISA alignment can be skipped | 93 | * Systems where PCI IO resource ISA alignment can be skipped |
94 | * when the ISA enable bit in the bridge control is not set | 94 | * when the ISA enable bit in the bridge control is not set |
@@ -125,7 +125,7 @@ void __init dmi_check_skip_isa_align(void) | |||
125 | dmi_check_system(can_skip_pciprobe_dmi_table); | 125 | dmi_check_system(can_skip_pciprobe_dmi_table); |
126 | } | 126 | } |
127 | 127 | ||
128 | static void __devinit pcibios_fixup_device_resources(struct pci_dev *dev) | 128 | static void pcibios_fixup_device_resources(struct pci_dev *dev) |
129 | { | 129 | { |
130 | struct resource *rom_r = &dev->resource[PCI_ROM_RESOURCE]; | 130 | struct resource *rom_r = &dev->resource[PCI_ROM_RESOURCE]; |
131 | struct resource *bar_r; | 131 | struct resource *bar_r; |
@@ -162,7 +162,7 @@ static void __devinit pcibios_fixup_device_resources(struct pci_dev *dev) | |||
162 | * are examined. | 162 | * are examined. |
163 | */ | 163 | */ |
164 | 164 | ||
165 | void __devinit pcibios_fixup_bus(struct pci_bus *b) | 165 | void pcibios_fixup_bus(struct pci_bus *b) |
166 | { | 166 | { |
167 | struct pci_dev *dev; | 167 | struct pci_dev *dev; |
168 | 168 | ||
@@ -176,7 +176,7 @@ void __devinit pcibios_fixup_bus(struct pci_bus *b) | |||
176 | * on the kernel command line (which was parsed earlier). | 176 | * on the kernel command line (which was parsed earlier). |
177 | */ | 177 | */ |
178 | 178 | ||
179 | static int __devinit set_bf_sort(const struct dmi_system_id *d) | 179 | static int set_bf_sort(const struct dmi_system_id *d) |
180 | { | 180 | { |
181 | if (pci_bf_sort == pci_bf_sort_default) { | 181 | if (pci_bf_sort == pci_bf_sort_default) { |
182 | pci_bf_sort = pci_dmi_bf; | 182 | pci_bf_sort = pci_dmi_bf; |
@@ -185,7 +185,7 @@ static int __devinit set_bf_sort(const struct dmi_system_id *d) | |||
185 | return 0; | 185 | return 0; |
186 | } | 186 | } |
187 | 187 | ||
188 | static void __devinit read_dmi_type_b1(const struct dmi_header *dm, | 188 | static void read_dmi_type_b1(const struct dmi_header *dm, |
189 | void *private_data) | 189 | void *private_data) |
190 | { | 190 | { |
191 | u8 *d = (u8 *)dm + 4; | 191 | u8 *d = (u8 *)dm + 4; |
@@ -207,7 +207,7 @@ static void __devinit read_dmi_type_b1(const struct dmi_header *dm, | |||
207 | } | 207 | } |
208 | } | 208 | } |
209 | 209 | ||
210 | static int __devinit find_sort_method(const struct dmi_system_id *d) | 210 | static int find_sort_method(const struct dmi_system_id *d) |
211 | { | 211 | { |
212 | dmi_walk(read_dmi_type_b1, NULL); | 212 | dmi_walk(read_dmi_type_b1, NULL); |
213 | 213 | ||
@@ -222,7 +222,7 @@ static int __devinit find_sort_method(const struct dmi_system_id *d) | |||
222 | * Enable renumbering of PCI bus# ranges to reach all PCI busses (Cardbus) | 222 | * Enable renumbering of PCI bus# ranges to reach all PCI busses (Cardbus) |
223 | */ | 223 | */ |
224 | #ifdef __i386__ | 224 | #ifdef __i386__ |
225 | static int __devinit assign_all_busses(const struct dmi_system_id *d) | 225 | static int assign_all_busses(const struct dmi_system_id *d) |
226 | { | 226 | { |
227 | pci_probe |= PCI_ASSIGN_ALL_BUSSES; | 227 | pci_probe |= PCI_ASSIGN_ALL_BUSSES; |
228 | printk(KERN_INFO "%s detected: enabling PCI bus# renumbering" | 228 | printk(KERN_INFO "%s detected: enabling PCI bus# renumbering" |
@@ -231,7 +231,7 @@ static int __devinit assign_all_busses(const struct dmi_system_id *d) | |||
231 | } | 231 | } |
232 | #endif | 232 | #endif |
233 | 233 | ||
234 | static int __devinit set_scan_all(const struct dmi_system_id *d) | 234 | static int set_scan_all(const struct dmi_system_id *d) |
235 | { | 235 | { |
236 | printk(KERN_INFO "PCI: %s detected, enabling pci=pcie_scan_all\n", | 236 | printk(KERN_INFO "PCI: %s detected, enabling pci=pcie_scan_all\n", |
237 | d->ident); | 237 | d->ident); |
@@ -239,7 +239,7 @@ static int __devinit set_scan_all(const struct dmi_system_id *d) | |||
239 | return 0; | 239 | return 0; |
240 | } | 240 | } |
241 | 241 | ||
242 | static const struct dmi_system_id __devinitconst pciprobe_dmi_table[] = { | 242 | static const struct dmi_system_id pciprobe_dmi_table[] = { |
243 | #ifdef __i386__ | 243 | #ifdef __i386__ |
244 | /* | 244 | /* |
245 | * Laptops which need pci=assign-busses to see Cardbus cards | 245 | * Laptops which need pci=assign-busses to see Cardbus cards |
@@ -446,7 +446,7 @@ void __init dmi_check_pciprobe(void) | |||
446 | dmi_check_system(pciprobe_dmi_table); | 446 | dmi_check_system(pciprobe_dmi_table); |
447 | } | 447 | } |
448 | 448 | ||
449 | struct pci_bus * __devinit pcibios_scan_root(int busnum) | 449 | struct pci_bus *pcibios_scan_root(int busnum) |
450 | { | 450 | { |
451 | struct pci_bus *bus = NULL; | 451 | struct pci_bus *bus = NULL; |
452 | 452 | ||
@@ -665,7 +665,7 @@ int pci_ext_cfg_avail(void) | |||
665 | return 0; | 665 | return 0; |
666 | } | 666 | } |
667 | 667 | ||
668 | struct pci_bus * __devinit pci_scan_bus_on_node(int busno, struct pci_ops *ops, int node) | 668 | struct pci_bus *pci_scan_bus_on_node(int busno, struct pci_ops *ops, int node) |
669 | { | 669 | { |
670 | LIST_HEAD(resources); | 670 | LIST_HEAD(resources); |
671 | struct pci_bus *bus = NULL; | 671 | struct pci_bus *bus = NULL; |
@@ -693,7 +693,7 @@ struct pci_bus * __devinit pci_scan_bus_on_node(int busno, struct pci_ops *ops, | |||
693 | return bus; | 693 | return bus; |
694 | } | 694 | } |
695 | 695 | ||
696 | struct pci_bus * __devinit pci_scan_bus_with_sysdata(int busno) | 696 | struct pci_bus *pci_scan_bus_with_sysdata(int busno) |
697 | { | 697 | { |
698 | return pci_scan_bus_on_node(busno, &pci_root_ops, -1); | 698 | return pci_scan_bus_on_node(busno, &pci_root_ops, -1); |
699 | } | 699 | } |
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c index af8a224db216..f5809fa2753e 100644 --- a/arch/x86/pci/fixup.c +++ b/arch/x86/pci/fixup.c | |||
@@ -9,7 +9,7 @@ | |||
9 | #include <linux/vgaarb.h> | 9 | #include <linux/vgaarb.h> |
10 | #include <asm/pci_x86.h> | 10 | #include <asm/pci_x86.h> |
11 | 11 | ||
12 | static void __devinit pci_fixup_i450nx(struct pci_dev *d) | 12 | static void pci_fixup_i450nx(struct pci_dev *d) |
13 | { | 13 | { |
14 | /* | 14 | /* |
15 | * i450NX -- Find and scan all secondary buses on all PXB's. | 15 | * i450NX -- Find and scan all secondary buses on all PXB's. |
@@ -34,7 +34,7 @@ static void __devinit pci_fixup_i450nx(struct pci_dev *d) | |||
34 | } | 34 | } |
35 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82451NX, pci_fixup_i450nx); | 35 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82451NX, pci_fixup_i450nx); |
36 | 36 | ||
37 | static void __devinit pci_fixup_i450gx(struct pci_dev *d) | 37 | static void pci_fixup_i450gx(struct pci_dev *d) |
38 | { | 38 | { |
39 | /* | 39 | /* |
40 | * i450GX and i450KX -- Find and scan all secondary buses. | 40 | * i450GX and i450KX -- Find and scan all secondary buses. |
@@ -48,7 +48,7 @@ static void __devinit pci_fixup_i450gx(struct pci_dev *d) | |||
48 | } | 48 | } |
49 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82454GX, pci_fixup_i450gx); | 49 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82454GX, pci_fixup_i450gx); |
50 | 50 | ||
51 | static void __devinit pci_fixup_umc_ide(struct pci_dev *d) | 51 | static void pci_fixup_umc_ide(struct pci_dev *d) |
52 | { | 52 | { |
53 | /* | 53 | /* |
54 | * UM8886BF IDE controller sets region type bits incorrectly, | 54 | * UM8886BF IDE controller sets region type bits incorrectly, |
@@ -62,7 +62,7 @@ static void __devinit pci_fixup_umc_ide(struct pci_dev *d) | |||
62 | } | 62 | } |
63 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_UMC, PCI_DEVICE_ID_UMC_UM8886BF, pci_fixup_umc_ide); | 63 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_UMC, PCI_DEVICE_ID_UMC_UM8886BF, pci_fixup_umc_ide); |
64 | 64 | ||
65 | static void __devinit pci_fixup_ncr53c810(struct pci_dev *d) | 65 | static void pci_fixup_ncr53c810(struct pci_dev *d) |
66 | { | 66 | { |
67 | /* | 67 | /* |
68 | * NCR 53C810 returns class code 0 (at least on some systems). | 68 | * NCR 53C810 returns class code 0 (at least on some systems). |
@@ -75,7 +75,7 @@ static void __devinit pci_fixup_ncr53c810(struct pci_dev *d) | |||
75 | } | 75 | } |
76 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, pci_fixup_ncr53c810); | 76 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, pci_fixup_ncr53c810); |
77 | 77 | ||
78 | static void __devinit pci_fixup_latency(struct pci_dev *d) | 78 | static void pci_fixup_latency(struct pci_dev *d) |
79 | { | 79 | { |
80 | /* | 80 | /* |
81 | * SiS 5597 and 5598 chipsets require latency timer set to | 81 | * SiS 5597 and 5598 chipsets require latency timer set to |
@@ -87,7 +87,7 @@ static void __devinit pci_fixup_latency(struct pci_dev *d) | |||
87 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_5597, pci_fixup_latency); | 87 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_5597, pci_fixup_latency); |
88 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_5598, pci_fixup_latency); | 88 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_5598, pci_fixup_latency); |
89 | 89 | ||
90 | static void __devinit pci_fixup_piix4_acpi(struct pci_dev *d) | 90 | static void pci_fixup_piix4_acpi(struct pci_dev *d) |
91 | { | 91 | { |
92 | /* | 92 | /* |
93 | * PIIX4 ACPI device: hardwired IRQ9 | 93 | * PIIX4 ACPI device: hardwired IRQ9 |
@@ -163,7 +163,7 @@ DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8367_0, pci_fixup_ | |||
163 | * system to PCI bus no matter what are their window settings, so they are | 163 | * system to PCI bus no matter what are their window settings, so they are |
164 | * "transparent" (or subtractive decoding) from programmers point of view. | 164 | * "transparent" (or subtractive decoding) from programmers point of view. |
165 | */ | 165 | */ |
166 | static void __devinit pci_fixup_transparent_bridge(struct pci_dev *dev) | 166 | static void pci_fixup_transparent_bridge(struct pci_dev *dev) |
167 | { | 167 | { |
168 | if ((dev->device & 0xff00) == 0x2400) | 168 | if ((dev->device & 0xff00) == 0x2400) |
169 | dev->transparent = 1; | 169 | dev->transparent = 1; |
@@ -317,7 +317,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_MCH_PC1, pcie_r | |||
317 | * video device at this point. | 317 | * video device at this point. |
318 | */ | 318 | */ |
319 | 319 | ||
320 | static void __devinit pci_fixup_video(struct pci_dev *pdev) | 320 | static void pci_fixup_video(struct pci_dev *pdev) |
321 | { | 321 | { |
322 | struct pci_dev *bridge; | 322 | struct pci_dev *bridge; |
323 | struct pci_bus *bus; | 323 | struct pci_bus *bus; |
@@ -357,7 +357,7 @@ DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID, | |||
357 | PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video); | 357 | PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video); |
358 | 358 | ||
359 | 359 | ||
360 | static const struct dmi_system_id __devinitconst msi_k8t_dmi_table[] = { | 360 | static const struct dmi_system_id msi_k8t_dmi_table[] = { |
361 | { | 361 | { |
362 | .ident = "MSI-K8T-Neo2Fir", | 362 | .ident = "MSI-K8T-Neo2Fir", |
363 | .matches = { | 363 | .matches = { |
@@ -378,7 +378,7 @@ static const struct dmi_system_id __devinitconst msi_k8t_dmi_table[] = { | |||
378 | * The soundcard is only enabled, if the mainborad is identified | 378 | * The soundcard is only enabled, if the mainborad is identified |
379 | * via DMI-tables and the soundcard is detected to be off. | 379 | * via DMI-tables and the soundcard is detected to be off. |
380 | */ | 380 | */ |
381 | static void __devinit pci_fixup_msi_k8t_onboard_sound(struct pci_dev *dev) | 381 | static void pci_fixup_msi_k8t_onboard_sound(struct pci_dev *dev) |
382 | { | 382 | { |
383 | unsigned char val; | 383 | unsigned char val; |
384 | if (!dmi_check_system(msi_k8t_dmi_table)) | 384 | if (!dmi_check_system(msi_k8t_dmi_table)) |
@@ -414,7 +414,7 @@ DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8237, | |||
414 | */ | 414 | */ |
415 | static u16 toshiba_line_size; | 415 | static u16 toshiba_line_size; |
416 | 416 | ||
417 | static const struct dmi_system_id __devinitconst toshiba_ohci1394_dmi_table[] = { | 417 | static const struct dmi_system_id toshiba_ohci1394_dmi_table[] = { |
418 | { | 418 | { |
419 | .ident = "Toshiba PS5 based laptop", | 419 | .ident = "Toshiba PS5 based laptop", |
420 | .matches = { | 420 | .matches = { |
@@ -439,7 +439,7 @@ static const struct dmi_system_id __devinitconst toshiba_ohci1394_dmi_table[] = | |||
439 | { } | 439 | { } |
440 | }; | 440 | }; |
441 | 441 | ||
442 | static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev) | 442 | static void pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev) |
443 | { | 443 | { |
444 | if (!dmi_check_system(toshiba_ohci1394_dmi_table)) | 444 | if (!dmi_check_system(toshiba_ohci1394_dmi_table)) |
445 | return; /* only applies to certain Toshibas (so far) */ | 445 | return; /* only applies to certain Toshibas (so far) */ |
@@ -450,7 +450,7 @@ static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev) | |||
450 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TI, 0x8032, | 450 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TI, 0x8032, |
451 | pci_pre_fixup_toshiba_ohci1394); | 451 | pci_pre_fixup_toshiba_ohci1394); |
452 | 452 | ||
453 | static void __devinit pci_post_fixup_toshiba_ohci1394(struct pci_dev *dev) | 453 | static void pci_post_fixup_toshiba_ohci1394(struct pci_dev *dev) |
454 | { | 454 | { |
455 | if (!dmi_check_system(toshiba_ohci1394_dmi_table)) | 455 | if (!dmi_check_system(toshiba_ohci1394_dmi_table)) |
456 | return; /* only applies to certain Toshibas (so far) */ | 456 | return; /* only applies to certain Toshibas (so far) */ |
@@ -488,7 +488,7 @@ DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_5530_LEGACY, | |||
488 | * Siemens Nixdorf AG FSC Multiprocessor Interrupt Controller: | 488 | * Siemens Nixdorf AG FSC Multiprocessor Interrupt Controller: |
489 | * prevent update of the BAR0, which doesn't look like a normal BAR. | 489 | * prevent update of the BAR0, which doesn't look like a normal BAR. |
490 | */ | 490 | */ |
491 | static void __devinit pci_siemens_interrupt_controller(struct pci_dev *dev) | 491 | static void pci_siemens_interrupt_controller(struct pci_dev *dev) |
492 | { | 492 | { |
493 | dev->resource[0].flags |= IORESOURCE_PCI_FIXED; | 493 | dev->resource[0].flags |= IORESOURCE_PCI_FIXED; |
494 | } | 494 | } |
@@ -531,7 +531,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x4385, sb600_disable_hpet_bar); | |||
531 | * | 531 | * |
532 | * Match off the LPC and svid/sdid (older kernels lose the bridge subvendor) | 532 | * Match off the LPC and svid/sdid (older kernels lose the bridge subvendor) |
533 | */ | 533 | */ |
534 | static void __devinit twinhead_reserve_killing_zone(struct pci_dev *dev) | 534 | static void twinhead_reserve_killing_zone(struct pci_dev *dev) |
535 | { | 535 | { |
536 | if (dev->subsystem_vendor == 0x14FF && dev->subsystem_device == 0xA003) { | 536 | if (dev->subsystem_vendor == 0x14FF && dev->subsystem_device == 0xA003) { |
537 | pr_info("Reserving memory on Twinhead H12Y\n"); | 537 | pr_info("Reserving memory on Twinhead H12Y\n"); |
diff --git a/arch/x86/pci/legacy.c b/arch/x86/pci/legacy.c index a1df191129d3..4a2ab9cb3659 100644 --- a/arch/x86/pci/legacy.c +++ b/arch/x86/pci/legacy.c | |||
@@ -10,7 +10,7 @@ | |||
10 | * Discover remaining PCI buses in case there are peer host bridges. | 10 | * Discover remaining PCI buses in case there are peer host bridges. |
11 | * We use the number of last PCI bus provided by the PCI BIOS. | 11 | * We use the number of last PCI bus provided by the PCI BIOS. |
12 | */ | 12 | */ |
13 | static void __devinit pcibios_fixup_peer_bridges(void) | 13 | static void pcibios_fixup_peer_bridges(void) |
14 | { | 14 | { |
15 | int n; | 15 | int n; |
16 | 16 | ||
@@ -34,7 +34,7 @@ int __init pci_legacy_init(void) | |||
34 | return 0; | 34 | return 0; |
35 | } | 35 | } |
36 | 36 | ||
37 | void __devinit pcibios_scan_specific_bus(int busn) | 37 | void pcibios_scan_specific_bus(int busn) |
38 | { | 38 | { |
39 | int devfn; | 39 | int devfn; |
40 | long node; | 40 | long node; |
diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c index 704b9ec043d7..fb29968a7cd5 100644 --- a/arch/x86/pci/mmconfig-shared.c +++ b/arch/x86/pci/mmconfig-shared.c | |||
@@ -49,7 +49,7 @@ static __init void free_all_mmcfg(void) | |||
49 | pci_mmconfig_remove(cfg); | 49 | pci_mmconfig_remove(cfg); |
50 | } | 50 | } |
51 | 51 | ||
52 | static __devinit void list_add_sorted(struct pci_mmcfg_region *new) | 52 | static void list_add_sorted(struct pci_mmcfg_region *new) |
53 | { | 53 | { |
54 | struct pci_mmcfg_region *cfg; | 54 | struct pci_mmcfg_region *cfg; |
55 | 55 | ||
@@ -65,9 +65,8 @@ static __devinit void list_add_sorted(struct pci_mmcfg_region *new) | |||
65 | list_add_tail_rcu(&new->list, &pci_mmcfg_list); | 65 | list_add_tail_rcu(&new->list, &pci_mmcfg_list); |
66 | } | 66 | } |
67 | 67 | ||
68 | static __devinit struct pci_mmcfg_region *pci_mmconfig_alloc(int segment, | 68 | static struct pci_mmcfg_region *pci_mmconfig_alloc(int segment, int start, |
69 | int start, | 69 | int end, u64 addr) |
70 | int end, u64 addr) | ||
71 | { | 70 | { |
72 | struct pci_mmcfg_region *new; | 71 | struct pci_mmcfg_region *new; |
73 | struct resource *res; | 72 | struct resource *res; |
@@ -371,8 +370,7 @@ static int __init pci_mmcfg_check_hostbridge(void) | |||
371 | return !list_empty(&pci_mmcfg_list); | 370 | return !list_empty(&pci_mmcfg_list); |
372 | } | 371 | } |
373 | 372 | ||
374 | static acpi_status __devinit check_mcfg_resource(struct acpi_resource *res, | 373 | static acpi_status check_mcfg_resource(struct acpi_resource *res, void *data) |
375 | void *data) | ||
376 | { | 374 | { |
377 | struct resource *mcfg_res = data; | 375 | struct resource *mcfg_res = data; |
378 | struct acpi_resource_address64 address; | 376 | struct acpi_resource_address64 address; |
@@ -408,8 +406,8 @@ static acpi_status __devinit check_mcfg_resource(struct acpi_resource *res, | |||
408 | return AE_OK; | 406 | return AE_OK; |
409 | } | 407 | } |
410 | 408 | ||
411 | static acpi_status __devinit find_mboard_resource(acpi_handle handle, u32 lvl, | 409 | static acpi_status find_mboard_resource(acpi_handle handle, u32 lvl, |
412 | void *context, void **rv) | 410 | void *context, void **rv) |
413 | { | 411 | { |
414 | struct resource *mcfg_res = context; | 412 | struct resource *mcfg_res = context; |
415 | 413 | ||
@@ -422,7 +420,7 @@ static acpi_status __devinit find_mboard_resource(acpi_handle handle, u32 lvl, | |||
422 | return AE_OK; | 420 | return AE_OK; |
423 | } | 421 | } |
424 | 422 | ||
425 | static int __devinit is_acpi_reserved(u64 start, u64 end, unsigned not_used) | 423 | static int is_acpi_reserved(u64 start, u64 end, unsigned not_used) |
426 | { | 424 | { |
427 | struct resource mcfg_res; | 425 | struct resource mcfg_res; |
428 | 426 | ||
@@ -693,9 +691,8 @@ static int __init pci_mmcfg_late_insert_resources(void) | |||
693 | late_initcall(pci_mmcfg_late_insert_resources); | 691 | late_initcall(pci_mmcfg_late_insert_resources); |
694 | 692 | ||
695 | /* Add MMCFG information for host bridges */ | 693 | /* Add MMCFG information for host bridges */ |
696 | int __devinit pci_mmconfig_insert(struct device *dev, | 694 | int pci_mmconfig_insert(struct device *dev, u16 seg, u8 start, u8 end, |
697 | u16 seg, u8 start, u8 end, | 695 | phys_addr_t addr) |
698 | phys_addr_t addr) | ||
699 | { | 696 | { |
700 | int rc; | 697 | int rc; |
701 | struct resource *tmp = NULL; | 698 | struct resource *tmp = NULL; |
diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c index db63ac23e3d9..5c90975cdf0f 100644 --- a/arch/x86/pci/mmconfig_32.c +++ b/arch/x86/pci/mmconfig_32.c | |||
@@ -142,7 +142,7 @@ void __init pci_mmcfg_arch_free(void) | |||
142 | { | 142 | { |
143 | } | 143 | } |
144 | 144 | ||
145 | int __devinit pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg) | 145 | int pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg) |
146 | { | 146 | { |
147 | return 0; | 147 | return 0; |
148 | } | 148 | } |
diff --git a/arch/x86/pci/mmconfig_64.c b/arch/x86/pci/mmconfig_64.c index d4ebd07c306d..bea52496aea6 100644 --- a/arch/x86/pci/mmconfig_64.c +++ b/arch/x86/pci/mmconfig_64.c | |||
@@ -95,7 +95,7 @@ const struct pci_raw_ops pci_mmcfg = { | |||
95 | .write = pci_mmcfg_write, | 95 | .write = pci_mmcfg_write, |
96 | }; | 96 | }; |
97 | 97 | ||
98 | static void __iomem * __devinit mcfg_ioremap(struct pci_mmcfg_region *cfg) | 98 | static void __iomem *mcfg_ioremap(struct pci_mmcfg_region *cfg) |
99 | { | 99 | { |
100 | void __iomem *addr; | 100 | void __iomem *addr; |
101 | u64 start, size; | 101 | u64 start, size; |
@@ -133,7 +133,7 @@ void __init pci_mmcfg_arch_free(void) | |||
133 | pci_mmcfg_arch_unmap(cfg); | 133 | pci_mmcfg_arch_unmap(cfg); |
134 | } | 134 | } |
135 | 135 | ||
136 | int __devinit pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg) | 136 | int pci_mmcfg_arch_map(struct pci_mmcfg_region *cfg) |
137 | { | 137 | { |
138 | cfg->virt = mcfg_ioremap(cfg); | 138 | cfg->virt = mcfg_ioremap(cfg); |
139 | if (!cfg->virt) { | 139 | if (!cfg->virt) { |
diff --git a/arch/x86/pci/mrst.c b/arch/x86/pci/mrst.c index e14a2ff708b5..6eb18c42a28a 100644 --- a/arch/x86/pci/mrst.c +++ b/arch/x86/pci/mrst.c | |||
@@ -247,7 +247,7 @@ int __init pci_mrst_init(void) | |||
247 | /* Langwell devices are not true pci devices, they are not subject to 10 ms | 247 | /* Langwell devices are not true pci devices, they are not subject to 10 ms |
248 | * d3 to d0 delay required by pci spec. | 248 | * d3 to d0 delay required by pci spec. |
249 | */ | 249 | */ |
250 | static void __devinit pci_d3delay_fixup(struct pci_dev *dev) | 250 | static void pci_d3delay_fixup(struct pci_dev *dev) |
251 | { | 251 | { |
252 | /* PCI fixups are effectively decided compile time. If we have a dual | 252 | /* PCI fixups are effectively decided compile time. If we have a dual |
253 | SoC/non-SoC kernel we don't want to mangle d3 on non SoC devices */ | 253 | SoC/non-SoC kernel we don't want to mangle d3 on non SoC devices */ |
@@ -262,7 +262,7 @@ static void __devinit pci_d3delay_fixup(struct pci_dev *dev) | |||
262 | } | 262 | } |
263 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_d3delay_fixup); | 263 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_d3delay_fixup); |
264 | 264 | ||
265 | static void __devinit mrst_power_off_unused_dev(struct pci_dev *dev) | 265 | static void mrst_power_off_unused_dev(struct pci_dev *dev) |
266 | { | 266 | { |
267 | pci_set_power_state(dev, PCI_D3hot); | 267 | pci_set_power_state(dev, PCI_D3hot); |
268 | } | 268 | } |
@@ -275,7 +275,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0815, mrst_power_off_unused_dev); | |||
275 | /* | 275 | /* |
276 | * Langwell devices reside at fixed offsets, don't try to move them. | 276 | * Langwell devices reside at fixed offsets, don't try to move them. |
277 | */ | 277 | */ |
278 | static void __devinit pci_fixed_bar_fixup(struct pci_dev *dev) | 278 | static void pci_fixed_bar_fixup(struct pci_dev *dev) |
279 | { | 279 | { |
280 | unsigned long offset; | 280 | unsigned long offset; |
281 | u32 size; | 281 | u32 size; |
diff --git a/arch/x86/pci/numaq_32.c b/arch/x86/pci/numaq_32.c index 83e125b95ca6..b96b14c250b6 100644 --- a/arch/x86/pci/numaq_32.c +++ b/arch/x86/pci/numaq_32.c | |||
@@ -116,7 +116,7 @@ static const struct pci_raw_ops pci_direct_conf1_mq = { | |||
116 | }; | 116 | }; |
117 | 117 | ||
118 | 118 | ||
119 | static void __devinit pci_fixup_i450nx(struct pci_dev *d) | 119 | static void pci_fixup_i450nx(struct pci_dev *d) |
120 | { | 120 | { |
121 | /* | 121 | /* |
122 | * i450NX -- Find and scan all secondary buses on all PXB's. | 122 | * i450NX -- Find and scan all secondary buses on all PXB's. |
diff --git a/arch/x86/pci/pcbios.c b/arch/x86/pci/pcbios.c index da8fe0535ff4..c77b24a8b2da 100644 --- a/arch/x86/pci/pcbios.c +++ b/arch/x86/pci/pcbios.c | |||
@@ -124,7 +124,7 @@ static struct { | |||
124 | 124 | ||
125 | static int pci_bios_present; | 125 | static int pci_bios_present; |
126 | 126 | ||
127 | static int __devinit check_pcibios(void) | 127 | static int check_pcibios(void) |
128 | { | 128 | { |
129 | u32 signature, eax, ebx, ecx; | 129 | u32 signature, eax, ebx, ecx; |
130 | u8 status, major_ver, minor_ver, hw_mech; | 130 | u8 status, major_ver, minor_ver, hw_mech; |
@@ -312,7 +312,7 @@ static const struct pci_raw_ops pci_bios_access = { | |||
312 | * Try to find PCI BIOS. | 312 | * Try to find PCI BIOS. |
313 | */ | 313 | */ |
314 | 314 | ||
315 | static const struct pci_raw_ops * __devinit pci_find_bios(void) | 315 | static const struct pci_raw_ops *pci_find_bios(void) |
316 | { | 316 | { |
317 | union bios32 *check; | 317 | union bios32 *check; |
318 | unsigned char sum; | 318 | unsigned char sum; |
diff --git a/arch/x86/platform/mrst/mrst.c b/arch/x86/platform/mrst/mrst.c index fd41a9262d65..e31bcd8f2eee 100644 --- a/arch/x86/platform/mrst/mrst.c +++ b/arch/x86/platform/mrst/mrst.c | |||
@@ -782,7 +782,7 @@ BLOCKING_NOTIFIER_HEAD(intel_scu_notifier); | |||
782 | EXPORT_SYMBOL_GPL(intel_scu_notifier); | 782 | EXPORT_SYMBOL_GPL(intel_scu_notifier); |
783 | 783 | ||
784 | /* Called by IPC driver */ | 784 | /* Called by IPC driver */ |
785 | void __devinit intel_scu_devices_create(void) | 785 | void intel_scu_devices_create(void) |
786 | { | 786 | { |
787 | int i; | 787 | int i; |
788 | 788 | ||
diff --git a/arch/x86/platform/olpc/olpc-xo1-pm.c b/arch/x86/platform/olpc/olpc-xo1-pm.c index d75582d1aa55..ff0174dda810 100644 --- a/arch/x86/platform/olpc/olpc-xo1-pm.c +++ b/arch/x86/platform/olpc/olpc-xo1-pm.c | |||
@@ -121,7 +121,7 @@ static const struct platform_suspend_ops xo1_suspend_ops = { | |||
121 | .enter = xo1_power_state_enter, | 121 | .enter = xo1_power_state_enter, |
122 | }; | 122 | }; |
123 | 123 | ||
124 | static int __devinit xo1_pm_probe(struct platform_device *pdev) | 124 | static int xo1_pm_probe(struct platform_device *pdev) |
125 | { | 125 | { |
126 | struct resource *res; | 126 | struct resource *res; |
127 | int err; | 127 | int err; |
@@ -154,7 +154,7 @@ static int __devinit xo1_pm_probe(struct platform_device *pdev) | |||
154 | return 0; | 154 | return 0; |
155 | } | 155 | } |
156 | 156 | ||
157 | static int __devexit xo1_pm_remove(struct platform_device *pdev) | 157 | static int xo1_pm_remove(struct platform_device *pdev) |
158 | { | 158 | { |
159 | mfd_cell_disable(pdev); | 159 | mfd_cell_disable(pdev); |
160 | 160 | ||
@@ -173,7 +173,7 @@ static struct platform_driver cs5535_pms_driver = { | |||
173 | .owner = THIS_MODULE, | 173 | .owner = THIS_MODULE, |
174 | }, | 174 | }, |
175 | .probe = xo1_pm_probe, | 175 | .probe = xo1_pm_probe, |
176 | .remove = __devexit_p(xo1_pm_remove), | 176 | .remove = xo1_pm_remove, |
177 | }; | 177 | }; |
178 | 178 | ||
179 | static struct platform_driver cs5535_acpi_driver = { | 179 | static struct platform_driver cs5535_acpi_driver = { |
@@ -182,7 +182,7 @@ static struct platform_driver cs5535_acpi_driver = { | |||
182 | .owner = THIS_MODULE, | 182 | .owner = THIS_MODULE, |
183 | }, | 183 | }, |
184 | .probe = xo1_pm_probe, | 184 | .probe = xo1_pm_probe, |
185 | .remove = __devexit_p(xo1_pm_remove), | 185 | .remove = xo1_pm_remove, |
186 | }; | 186 | }; |
187 | 187 | ||
188 | static int __init xo1_pm_init(void) | 188 | static int __init xo1_pm_init(void) |
diff --git a/arch/x86/platform/olpc/olpc-xo1-sci.c b/arch/x86/platform/olpc/olpc-xo1-sci.c index 63d4aa40956e..74704be7b1fe 100644 --- a/arch/x86/platform/olpc/olpc-xo1-sci.c +++ b/arch/x86/platform/olpc/olpc-xo1-sci.c | |||
@@ -309,7 +309,7 @@ static int xo1_sci_resume(struct platform_device *pdev) | |||
309 | return 0; | 309 | return 0; |
310 | } | 310 | } |
311 | 311 | ||
312 | static int __devinit setup_sci_interrupt(struct platform_device *pdev) | 312 | static int setup_sci_interrupt(struct platform_device *pdev) |
313 | { | 313 | { |
314 | u32 lo, hi; | 314 | u32 lo, hi; |
315 | u32 sts; | 315 | u32 sts; |
@@ -351,7 +351,7 @@ static int __devinit setup_sci_interrupt(struct platform_device *pdev) | |||
351 | return r; | 351 | return r; |
352 | } | 352 | } |
353 | 353 | ||
354 | static int __devinit setup_ec_sci(void) | 354 | static int setup_ec_sci(void) |
355 | { | 355 | { |
356 | int r; | 356 | int r; |
357 | 357 | ||
@@ -395,7 +395,7 @@ static void free_ec_sci(void) | |||
395 | gpio_free(OLPC_GPIO_ECSCI); | 395 | gpio_free(OLPC_GPIO_ECSCI); |
396 | } | 396 | } |
397 | 397 | ||
398 | static int __devinit setup_lid_events(void) | 398 | static int setup_lid_events(void) |
399 | { | 399 | { |
400 | int r; | 400 | int r; |
401 | 401 | ||
@@ -432,7 +432,7 @@ static void free_lid_events(void) | |||
432 | gpio_free(OLPC_GPIO_LID); | 432 | gpio_free(OLPC_GPIO_LID); |
433 | } | 433 | } |
434 | 434 | ||
435 | static int __devinit setup_power_button(struct platform_device *pdev) | 435 | static int setup_power_button(struct platform_device *pdev) |
436 | { | 436 | { |
437 | int r; | 437 | int r; |
438 | 438 | ||
@@ -463,7 +463,7 @@ static void free_power_button(void) | |||
463 | input_free_device(power_button_idev); | 463 | input_free_device(power_button_idev); |
464 | } | 464 | } |
465 | 465 | ||
466 | static int __devinit setup_ebook_switch(struct platform_device *pdev) | 466 | static int setup_ebook_switch(struct platform_device *pdev) |
467 | { | 467 | { |
468 | int r; | 468 | int r; |
469 | 469 | ||
@@ -494,7 +494,7 @@ static void free_ebook_switch(void) | |||
494 | input_free_device(ebook_switch_idev); | 494 | input_free_device(ebook_switch_idev); |
495 | } | 495 | } |
496 | 496 | ||
497 | static int __devinit setup_lid_switch(struct platform_device *pdev) | 497 | static int setup_lid_switch(struct platform_device *pdev) |
498 | { | 498 | { |
499 | int r; | 499 | int r; |
500 | 500 | ||
@@ -538,7 +538,7 @@ static void free_lid_switch(void) | |||
538 | input_free_device(lid_switch_idev); | 538 | input_free_device(lid_switch_idev); |
539 | } | 539 | } |
540 | 540 | ||
541 | static int __devinit xo1_sci_probe(struct platform_device *pdev) | 541 | static int xo1_sci_probe(struct platform_device *pdev) |
542 | { | 542 | { |
543 | struct resource *res; | 543 | struct resource *res; |
544 | int r; | 544 | int r; |
@@ -613,7 +613,7 @@ err_ebook: | |||
613 | return r; | 613 | return r; |
614 | } | 614 | } |
615 | 615 | ||
616 | static int __devexit xo1_sci_remove(struct platform_device *pdev) | 616 | static int xo1_sci_remove(struct platform_device *pdev) |
617 | { | 617 | { |
618 | mfd_cell_disable(pdev); | 618 | mfd_cell_disable(pdev); |
619 | free_irq(sci_irq, pdev); | 619 | free_irq(sci_irq, pdev); |
@@ -632,7 +632,7 @@ static struct platform_driver xo1_sci_driver = { | |||
632 | .name = "olpc-xo1-sci-acpi", | 632 | .name = "olpc-xo1-sci-acpi", |
633 | }, | 633 | }, |
634 | .probe = xo1_sci_probe, | 634 | .probe = xo1_sci_probe, |
635 | .remove = __devexit_p(xo1_sci_remove), | 635 | .remove = xo1_sci_remove, |
636 | .suspend = xo1_sci_suspend, | 636 | .suspend = xo1_sci_suspend, |
637 | .resume = xo1_sci_resume, | 637 | .resume = xo1_sci_resume, |
638 | }; | 638 | }; |
diff --git a/arch/x86/platform/scx200/scx200_32.c b/arch/x86/platform/scx200/scx200_32.c index 7a9ad30d6c9f..3dc9aee41d91 100644 --- a/arch/x86/platform/scx200/scx200_32.c +++ b/arch/x86/platform/scx200/scx200_32.c | |||
@@ -35,7 +35,7 @@ static struct pci_device_id scx200_tbl[] = { | |||
35 | }; | 35 | }; |
36 | MODULE_DEVICE_TABLE(pci,scx200_tbl); | 36 | MODULE_DEVICE_TABLE(pci,scx200_tbl); |
37 | 37 | ||
38 | static int __devinit scx200_probe(struct pci_dev *, const struct pci_device_id *); | 38 | static int scx200_probe(struct pci_dev *, const struct pci_device_id *); |
39 | 39 | ||
40 | static struct pci_driver scx200_pci_driver = { | 40 | static struct pci_driver scx200_pci_driver = { |
41 | .name = "scx200", | 41 | .name = "scx200", |
@@ -45,7 +45,7 @@ static struct pci_driver scx200_pci_driver = { | |||
45 | 45 | ||
46 | static DEFINE_MUTEX(scx200_gpio_config_lock); | 46 | static DEFINE_MUTEX(scx200_gpio_config_lock); |
47 | 47 | ||
48 | static void __devinit scx200_init_shadow(void) | 48 | static void scx200_init_shadow(void) |
49 | { | 49 | { |
50 | int bank; | 50 | int bank; |
51 | 51 | ||
@@ -54,7 +54,7 @@ static void __devinit scx200_init_shadow(void) | |||
54 | scx200_gpio_shadow[bank] = inl(scx200_gpio_base + 0x10 * bank); | 54 | scx200_gpio_shadow[bank] = inl(scx200_gpio_base + 0x10 * bank); |
55 | } | 55 | } |
56 | 56 | ||
57 | static int __devinit scx200_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | 57 | static int scx200_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
58 | { | 58 | { |
59 | unsigned base; | 59 | unsigned base; |
60 | 60 | ||
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c index 4f7d2599b484..34bc4cee8887 100644 --- a/arch/x86/xen/smp.c +++ b/arch/x86/xen/smp.c | |||
@@ -432,13 +432,6 @@ static void __cpuinit xen_play_dead(void) /* used only with HOTPLUG_CPU */ | |||
432 | play_dead_common(); | 432 | play_dead_common(); |
433 | HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL); | 433 | HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL); |
434 | cpu_bringup(); | 434 | cpu_bringup(); |
435 | /* | ||
436 | * Balance out the preempt calls - as we are running in cpu_idle | ||
437 | * loop which has been called at bootup from cpu_bringup_and_idle. | ||
438 | * The cpucpu_bringup_and_idle called cpu_bringup which made a | ||
439 | * preempt_disable() So this preempt_enable will balance it out. | ||
440 | */ | ||
441 | preempt_enable(); | ||
442 | } | 435 | } |
443 | 436 | ||
444 | #else /* !CONFIG_HOTPLUG_CPU */ | 437 | #else /* !CONFIG_HOTPLUG_CPU */ |