diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-09 17:54:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-09 17:54:36 -0400 |
commit | fc72053bb497e3054d6e4d13ab425fc2311442d4 (patch) | |
tree | fd85d369bcf6743d8eed8e07dc9866630d558b72 /arch | |
parent | c61c48dfe00907007df3b87e4ed271a5c143bdda (diff) | |
parent | c58c1a4c118ba2ed49f72de9b42ef13bc8ee71e5 (diff) |
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes and straggler patches from Olof Johansson:
"A collection of fixes for fall out from 3.10 merge window, some build
fixes and warning cleanups and a small handful of patches that were
small and contained and made sense to still include in 3.10 (some of
these have also been in -next since the merge window opened).
Largest continous series is for OMAP, but there's a handful for other
platforms.
For i.MX, one of the patches are framebuffer fixups due to fallout
during the merge window, and the other removes some stale and broken
code."
* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (34 commits)
ARM: exynos: dts: Fixed vbus-gpios
ARM: EXYNOS5: Fix kernel dump in AFTR idle mode
ARM: ux500: Rid ignored return value of regulator_enable() compiler warning
ARM: ux500: read the correct soc_id number
ARM: exynos: dts: cros5250: add cyapa trackpad
video: mxsfb: Adapt to new videomode API
ARM: imx: Select GENERIC_ALLOCATOR
ARM: imx: compile fix for hotplug.c
ARM: dts: don't assume boards are using twl4030 for omap3
ARM: OMAP2+: Remove bogus IS_ERR_OR_NULL checking from id.c
ARM: dts: Configure and fix the McSPI pins for 4430sdp
ARM: dts: AM33XX: Add GPMC node
ARM: dts: OMAP4460: Fix CPU OPP voltages
ARM: dts: OMAP36xx: Fix CPU OPP voltages
ARM: OMAP4+: omap2plus_defconfig: Enable audio via TWL6040 as module
ARM: OMAP2: AM33XX: id: Add support for new AM335x PG2.1 Si
omap: mux: add AM/DM37x gpios
ARM: OMAP1: DMA: fix error handling in omap1_system_dma_init()
ARM: OMAP2+: omap_device: use late_initcall_sync
ARM: OMAP: RX-51: change probe order of touchscreen and panel SPI devices
...
Diffstat (limited to 'arch')
40 files changed, 126 insertions, 147 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 46e2b5228606..d423d58f938d 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -897,7 +897,6 @@ config ARCH_MULTI_V7 | |||
897 | bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)" | 897 | bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)" |
898 | default y | 898 | default y |
899 | select ARCH_MULTI_V6_V7 | 899 | select ARCH_MULTI_V6_V7 |
900 | select ARCH_VEXPRESS | ||
901 | select CPU_V7 | 900 | select CPU_V7 |
902 | 901 | ||
903 | config ARCH_MULTI_V6_V7 | 902 | config ARCH_MULTI_V6_V7 |
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index d1101103aa51..1460d9b88adf 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi | |||
@@ -403,5 +403,17 @@ | |||
403 | 0x44d80000 0x2000>; /* M3 DMEM */ | 403 | 0x44d80000 0x2000>; /* M3 DMEM */ |
404 | ti,hwmods = "wkup_m3"; | 404 | ti,hwmods = "wkup_m3"; |
405 | }; | 405 | }; |
406 | |||
407 | gpmc: gpmc@50000000 { | ||
408 | compatible = "ti,am3352-gpmc"; | ||
409 | ti,hwmods = "gpmc"; | ||
410 | reg = <0x50000000 0x2000>; | ||
411 | interrupts = <100>; | ||
412 | num-cs = <7>; | ||
413 | num-waitpins = <2>; | ||
414 | #address-cells = <2>; | ||
415 | #size-cells = <1>; | ||
416 | status = "disabled"; | ||
417 | }; | ||
406 | }; | 418 | }; |
407 | }; | 419 | }; |
diff --git a/arch/arm/boot/dts/cros5250-common.dtsi b/arch/arm/boot/dts/cros5250-common.dtsi index 0a61bbb9102f..3f0239ec1bc5 100644 --- a/arch/arm/boot/dts/cros5250-common.dtsi +++ b/arch/arm/boot/dts/cros5250-common.dtsi | |||
@@ -175,6 +175,14 @@ | |||
175 | i2c@12C70000 { | 175 | i2c@12C70000 { |
176 | samsung,i2c-sda-delay = <100>; | 176 | samsung,i2c-sda-delay = <100>; |
177 | samsung,i2c-max-bus-freq = <378000>; | 177 | samsung,i2c-max-bus-freq = <378000>; |
178 | |||
179 | trackpad { | ||
180 | reg = <0x67>; | ||
181 | compatible = "cypress,cyapa"; | ||
182 | interrupts = <2 0>; | ||
183 | interrupt-parent = <&gpx1>; | ||
184 | wakeup-source; | ||
185 | }; | ||
178 | }; | 186 | }; |
179 | 187 | ||
180 | i2c@12C80000 { | 188 | i2c@12C80000 { |
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index 26d856ba50a1..3e0c792e2767 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts | |||
@@ -214,7 +214,7 @@ | |||
214 | }; | 214 | }; |
215 | 215 | ||
216 | usb@12110000 { | 216 | usb@12110000 { |
217 | samsung,vbus-gpio = <&gpx2 6 1 3 3>; | 217 | samsung,vbus-gpio = <&gpx2 6 0>; |
218 | }; | 218 | }; |
219 | 219 | ||
220 | dp-controller { | 220 | dp-controller { |
diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts index bf4744bab445..d449feb7e143 100644 --- a/arch/arm/boot/dts/exynos5250-snow.dts +++ b/arch/arm/boot/dts/exynos5250-snow.dts | |||
@@ -183,7 +183,7 @@ | |||
183 | }; | 183 | }; |
184 | 184 | ||
185 | usb@12110000 { | 185 | usb@12110000 { |
186 | samsung,vbus-gpio = <&gpx1 1 1 3 3>; | 186 | samsung,vbus-gpio = <&gpx1 1 0>; |
187 | }; | 187 | }; |
188 | 188 | ||
189 | fixed-rate-clocks { | 189 | fixed-rate-clocks { |
diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts index 5a31964ae339..3046d1f81be0 100644 --- a/arch/arm/boot/dts/omap3-beagle-xm.dts +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts | |||
@@ -122,6 +122,7 @@ | |||
122 | 122 | ||
123 | &usb_otg_hs { | 123 | &usb_otg_hs { |
124 | interface-type = <0>; | 124 | interface-type = <0>; |
125 | usb-phy = <&usb2_phy>; | ||
125 | mode = <3>; | 126 | mode = <3>; |
126 | power = <50>; | 127 | power = <50>; |
127 | }; | 128 | }; |
diff --git a/arch/arm/boot/dts/omap3-evm.dts b/arch/arm/boot/dts/omap3-evm.dts index 05f51e10ddd6..96d1c206a57b 100644 --- a/arch/arm/boot/dts/omap3-evm.dts +++ b/arch/arm/boot/dts/omap3-evm.dts | |||
@@ -68,6 +68,7 @@ | |||
68 | 68 | ||
69 | &usb_otg_hs { | 69 | &usb_otg_hs { |
70 | interface-type = <0>; | 70 | interface-type = <0>; |
71 | usb-phy = <&usb2_phy>; | ||
71 | mode = <3>; | 72 | mode = <3>; |
72 | power = <50>; | 73 | power = <50>; |
73 | }; | 74 | }; |
diff --git a/arch/arm/boot/dts/omap3-overo.dtsi b/arch/arm/boot/dts/omap3-overo.dtsi index d4a7280d18b7..a626c50041f6 100644 --- a/arch/arm/boot/dts/omap3-overo.dtsi +++ b/arch/arm/boot/dts/omap3-overo.dtsi | |||
@@ -73,6 +73,7 @@ | |||
73 | 73 | ||
74 | &usb_otg_hs { | 74 | &usb_otg_hs { |
75 | interface-type = <0>; | 75 | interface-type = <0>; |
76 | usb-phy = <&usb2_phy>; | ||
76 | mode = <3>; | 77 | mode = <3>; |
77 | power = <50>; | 78 | power = <50>; |
78 | }; | 79 | }; |
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi index 4ad03d9dbf0c..82a404da1c0d 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi | |||
@@ -519,7 +519,6 @@ | |||
519 | interrupts = <0 92 0x4>, <0 93 0x4>; | 519 | interrupts = <0 92 0x4>, <0 93 0x4>; |
520 | interrupt-names = "mc", "dma"; | 520 | interrupt-names = "mc", "dma"; |
521 | ti,hwmods = "usb_otg_hs"; | 521 | ti,hwmods = "usb_otg_hs"; |
522 | usb-phy = <&usb2_phy>; | ||
523 | multipoint = <1>; | 522 | multipoint = <1>; |
524 | num-eps = <16>; | 523 | num-eps = <16>; |
525 | ram-bits = <12>; | 524 | ram-bits = <12>; |
diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi index b89233e43b0f..f3447bc1b032 100644 --- a/arch/arm/boot/dts/omap36xx.dtsi +++ b/arch/arm/boot/dts/omap36xx.dtsi | |||
@@ -20,9 +20,9 @@ | |||
20 | cpu@0 { | 20 | cpu@0 { |
21 | operating-points = < | 21 | operating-points = < |
22 | /* kHz uV */ | 22 | /* kHz uV */ |
23 | 300000 975000 | 23 | 300000 1012500 |
24 | 600000 1075000 | 24 | 600000 1200000 |
25 | 800000 1200000 | 25 | 800000 1325000 |
26 | >; | 26 | >; |
27 | clock-latency = <300000>; /* From legacy driver */ | 27 | clock-latency = <300000>; /* From legacy driver */ |
28 | }; | 28 | }; |
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts index c387bdc1b1d1..a35d9cd58063 100644 --- a/arch/arm/boot/dts/omap4-sdp.dts +++ b/arch/arm/boot/dts/omap4-sdp.dts | |||
@@ -223,6 +223,15 @@ | |||
223 | >; | 223 | >; |
224 | }; | 224 | }; |
225 | 225 | ||
226 | mcspi1_pins: pinmux_mcspi1_pins { | ||
227 | pinctrl-single,pins = < | ||
228 | 0xf2 0x100 /* mcspi1_clk.mcspi1_clk INPUT | MODE0 */ | ||
229 | 0xf4 0x100 /* mcspi1_somi.mcspi1_somi INPUT | MODE0 */ | ||
230 | 0xf6 0x100 /* mcspi1_simo.mcspi1_simo INPUT | MODE0 */ | ||
231 | 0xf8 0x100 /* mcspi1_cs0.mcspi1_cs0 INPUT | MODE0*/ | ||
232 | >; | ||
233 | }; | ||
234 | |||
226 | dss_hdmi_pins: pinmux_dss_hdmi_pins { | 235 | dss_hdmi_pins: pinmux_dss_hdmi_pins { |
227 | pinctrl-single,pins = < | 236 | pinctrl-single,pins = < |
228 | 0x5a 0x118 /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */ | 237 | 0x5a 0x118 /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */ |
@@ -358,12 +367,15 @@ | |||
358 | }; | 367 | }; |
359 | 368 | ||
360 | &mcspi1 { | 369 | &mcspi1 { |
370 | pinctrl-names = "default"; | ||
371 | pinctrl-0 = <&mcspi1_pins>; | ||
372 | |||
361 | eth@0 { | 373 | eth@0 { |
362 | compatible = "ks8851"; | 374 | compatible = "ks8851"; |
363 | spi-max-frequency = <24000000>; | 375 | spi-max-frequency = <24000000>; |
364 | reg = <0>; | 376 | reg = <0>; |
365 | interrupt-parent = <&gpio2>; | 377 | interrupt-parent = <&gpio2>; |
366 | interrupts = <2>; /* gpio line 34 */ | 378 | interrupts = <2 8>; /* gpio line 34, low triggered */ |
367 | vdd-supply = <&vdd_eth>; | 379 | vdd-supply = <&vdd_eth>; |
368 | }; | 380 | }; |
369 | }; | 381 | }; |
diff --git a/arch/arm/boot/dts/omap4-var-som.dts b/arch/arm/boot/dts/omap4-var-som.dts index 222a413c2c51..7e04103779c4 100644 --- a/arch/arm/boot/dts/omap4-var-som.dts +++ b/arch/arm/boot/dts/omap4-var-som.dts | |||
@@ -68,7 +68,7 @@ | |||
68 | spi-max-frequency = <24000000>; | 68 | spi-max-frequency = <24000000>; |
69 | reg = <0>; | 69 | reg = <0>; |
70 | interrupt-parent = <&gpio6>; | 70 | interrupt-parent = <&gpio6>; |
71 | interrupts = <11>; /* gpio line 171 */ | 71 | interrupts = <11 8>; /* gpio line 171, low triggered */ |
72 | vdd-supply = <&vdd_eth>; | 72 | vdd-supply = <&vdd_eth>; |
73 | }; | 73 | }; |
74 | }; | 74 | }; |
diff --git a/arch/arm/boot/dts/omap4460.dtsi b/arch/arm/boot/dts/omap4460.dtsi index 7c2c23cc17ef..2cf227c86099 100644 --- a/arch/arm/boot/dts/omap4460.dtsi +++ b/arch/arm/boot/dts/omap4460.dtsi | |||
@@ -15,9 +15,9 @@ | |||
15 | cpu@0 { | 15 | cpu@0 { |
16 | operating-points = < | 16 | operating-points = < |
17 | /* kHz uV */ | 17 | /* kHz uV */ |
18 | 350000 975000 | 18 | 350000 1025000 |
19 | 700000 1075000 | 19 | 700000 1200000 |
20 | 920000 1200000 | 20 | 920000 1313000 |
21 | >; | 21 | >; |
22 | clock-latency = <300000>; /* From legacy driver */ | 22 | clock-latency = <300000>; /* From legacy driver */ |
23 | }; | 23 | }; |
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig index 33903ca0d879..c1ef64bc5abd 100644 --- a/arch/arm/configs/omap2plus_defconfig +++ b/arch/arm/configs/omap2plus_defconfig | |||
@@ -137,6 +137,8 @@ CONFIG_SERIAL_8250_DETECT_IRQ=y | |||
137 | CONFIG_SERIAL_8250_RSA=y | 137 | CONFIG_SERIAL_8250_RSA=y |
138 | CONFIG_SERIAL_AMBA_PL011=y | 138 | CONFIG_SERIAL_AMBA_PL011=y |
139 | CONFIG_SERIAL_AMBA_PL011_CONSOLE=y | 139 | CONFIG_SERIAL_AMBA_PL011_CONSOLE=y |
140 | CONFIG_SERIAL_OMAP=y | ||
141 | CONFIG_SERIAL_OMAP_CONSOLE=y | ||
140 | CONFIG_HW_RANDOM=y | 142 | CONFIG_HW_RANDOM=y |
141 | CONFIG_I2C_CHARDEV=y | 143 | CONFIG_I2C_CHARDEV=y |
142 | CONFIG_SPI=y | 144 | CONFIG_SPI=y |
@@ -153,6 +155,7 @@ CONFIG_OMAP_WATCHDOG=y | |||
153 | CONFIG_TWL4030_WATCHDOG=y | 155 | CONFIG_TWL4030_WATCHDOG=y |
154 | CONFIG_MFD_TPS65217=y | 156 | CONFIG_MFD_TPS65217=y |
155 | CONFIG_MFD_TPS65910=y | 157 | CONFIG_MFD_TPS65910=y |
158 | CONFIG_TWL6040_CORE=y | ||
156 | CONFIG_REGULATOR_TWL4030=y | 159 | CONFIG_REGULATOR_TWL4030=y |
157 | CONFIG_REGULATOR_TPS65023=y | 160 | CONFIG_REGULATOR_TPS65023=y |
158 | CONFIG_REGULATOR_TPS6507X=y | 161 | CONFIG_REGULATOR_TPS6507X=y |
@@ -195,6 +198,7 @@ CONFIG_SND_USB_AUDIO=m | |||
195 | CONFIG_SND_SOC=m | 198 | CONFIG_SND_SOC=m |
196 | CONFIG_SND_OMAP_SOC=m | 199 | CONFIG_SND_OMAP_SOC=m |
197 | CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m | 200 | CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m |
201 | CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m | ||
198 | CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m | 202 | CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m |
199 | CONFIG_USB=y | 203 | CONFIG_USB=y |
200 | CONFIG_USB_DEBUG=y | 204 | CONFIG_USB_DEBUG=y |
diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c index 70f1bdeb241b..5af04f6daa33 100644 --- a/arch/arm/kernel/devtree.c +++ b/arch/arm/kernel/devtree.c | |||
@@ -180,6 +180,13 @@ struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) | |||
180 | unsigned long dt_root; | 180 | unsigned long dt_root; |
181 | const char *model; | 181 | const char *model; |
182 | 182 | ||
183 | #ifdef CONFIG_ARCH_MULTIPLATFORM | ||
184 | DT_MACHINE_START(GENERIC_DT, "Generic DT based system") | ||
185 | MACHINE_END | ||
186 | |||
187 | mdesc_best = (struct machine_desc *)&__mach_desc_GENERIC_DT; | ||
188 | #endif | ||
189 | |||
183 | if (!dt_phys) | 190 | if (!dt_phys) |
184 | return NULL; | 191 | return NULL; |
185 | 192 | ||
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 728007c4a2b7..1522c7ae31b0 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/bootmem.h> | 18 | #include <linux/bootmem.h> |
19 | #include <linux/seq_file.h> | 19 | #include <linux/seq_file.h> |
20 | #include <linux/screen_info.h> | 20 | #include <linux/screen_info.h> |
21 | #include <linux/of_platform.h> | ||
21 | #include <linux/init.h> | 22 | #include <linux/init.h> |
22 | #include <linux/kexec.h> | 23 | #include <linux/kexec.h> |
23 | #include <linux/of_fdt.h> | 24 | #include <linux/of_fdt.h> |
@@ -659,9 +660,19 @@ struct screen_info screen_info = { | |||
659 | 660 | ||
660 | static int __init customize_machine(void) | 661 | static int __init customize_machine(void) |
661 | { | 662 | { |
662 | /* customizes platform devices, or adds new ones */ | 663 | /* |
664 | * customizes platform devices, or adds new ones | ||
665 | * On DT based machines, we fall back to populating the | ||
666 | * machine from the device tree, if no callback is provided, | ||
667 | * otherwise we would always need an init_machine callback. | ||
668 | */ | ||
663 | if (machine_desc->init_machine) | 669 | if (machine_desc->init_machine) |
664 | machine_desc->init_machine(); | 670 | machine_desc->init_machine(); |
671 | #ifdef CONFIG_OF | ||
672 | else | ||
673 | of_platform_populate(NULL, of_default_bus_match_table, | ||
674 | NULL, NULL); | ||
675 | #endif | ||
665 | return 0; | 676 | return 0; |
666 | } | 677 | } |
667 | arch_initcall(customize_machine); | 678 | arch_initcall(customize_machine); |
diff --git a/arch/arm/mach-exynos/include/mach/regs-pmu.h b/arch/arm/mach-exynos/include/mach/regs-pmu.h index 3f30aa1ae354..57344b7e98ce 100644 --- a/arch/arm/mach-exynos/include/mach/regs-pmu.h +++ b/arch/arm/mach-exynos/include/mach/regs-pmu.h | |||
@@ -344,6 +344,7 @@ | |||
344 | #define EXYNOS5_FSYS_ARM_OPTION S5P_PMUREG(0x2208) | 344 | #define EXYNOS5_FSYS_ARM_OPTION S5P_PMUREG(0x2208) |
345 | #define EXYNOS5_ISP_ARM_OPTION S5P_PMUREG(0x2288) | 345 | #define EXYNOS5_ISP_ARM_OPTION S5P_PMUREG(0x2288) |
346 | #define EXYNOS5_ARM_COMMON_OPTION S5P_PMUREG(0x2408) | 346 | #define EXYNOS5_ARM_COMMON_OPTION S5P_PMUREG(0x2408) |
347 | #define EXYNOS5_ARM_L2_OPTION S5P_PMUREG(0x2608) | ||
347 | #define EXYNOS5_TOP_PWR_OPTION S5P_PMUREG(0x2C48) | 348 | #define EXYNOS5_TOP_PWR_OPTION S5P_PMUREG(0x2C48) |
348 | #define EXYNOS5_TOP_PWR_SYSMEM_OPTION S5P_PMUREG(0x2CC8) | 349 | #define EXYNOS5_TOP_PWR_SYSMEM_OPTION S5P_PMUREG(0x2CC8) |
349 | #define EXYNOS5_JPEG_MEM_OPTION S5P_PMUREG(0x2F48) | 350 | #define EXYNOS5_JPEG_MEM_OPTION S5P_PMUREG(0x2F48) |
diff --git a/arch/arm/mach-exynos/pmu.c b/arch/arm/mach-exynos/pmu.c index daebc1abc966..97d688526258 100644 --- a/arch/arm/mach-exynos/pmu.c +++ b/arch/arm/mach-exynos/pmu.c | |||
@@ -228,6 +228,7 @@ static struct exynos_pmu_conf exynos5250_pmu_config[] = { | |||
228 | { EXYNOS5_DIS_IRQ_ISP_ARM_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0} }, | 228 | { EXYNOS5_DIS_IRQ_ISP_ARM_CENTRAL_SYS_PWR_REG, { 0x0, 0x0, 0x0} }, |
229 | { EXYNOS5_ARM_COMMON_SYS_PWR_REG, { 0x0, 0x0, 0x2} }, | 229 | { EXYNOS5_ARM_COMMON_SYS_PWR_REG, { 0x0, 0x0, 0x2} }, |
230 | { EXYNOS5_ARM_L2_SYS_PWR_REG, { 0x3, 0x3, 0x3} }, | 230 | { EXYNOS5_ARM_L2_SYS_PWR_REG, { 0x3, 0x3, 0x3} }, |
231 | { EXYNOS5_ARM_L2_OPTION, { 0x10, 0x10, 0x0 } }, | ||
231 | { EXYNOS5_CMU_ACLKSTOP_SYS_PWR_REG, { 0x1, 0x0, 0x1} }, | 232 | { EXYNOS5_CMU_ACLKSTOP_SYS_PWR_REG, { 0x1, 0x0, 0x1} }, |
232 | { EXYNOS5_CMU_SCLKSTOP_SYS_PWR_REG, { 0x1, 0x0, 0x1} }, | 233 | { EXYNOS5_CMU_SCLKSTOP_SYS_PWR_REG, { 0x1, 0x0, 0x1} }, |
233 | { EXYNOS5_CMU_RESET_SYS_PWR_REG, { 0x1, 0x1, 0x0} }, | 234 | { EXYNOS5_CMU_RESET_SYS_PWR_REG, { 0x1, 0x1, 0x0} }, |
@@ -353,11 +354,9 @@ static void exynos5_init_pmu(void) | |||
353 | 354 | ||
354 | /* | 355 | /* |
355 | * SKIP_DEACTIVATE_ACEACP_IN_PWDN_BITFIELD Enable | 356 | * SKIP_DEACTIVATE_ACEACP_IN_PWDN_BITFIELD Enable |
356 | * MANUAL_L2RSTDISABLE_CONTROL_BITFIELD Enable | ||
357 | */ | 357 | */ |
358 | tmp = __raw_readl(EXYNOS5_ARM_COMMON_OPTION); | 358 | tmp = __raw_readl(EXYNOS5_ARM_COMMON_OPTION); |
359 | tmp |= (EXYNOS5_MANUAL_L2RSTDISABLE_CONTROL | | 359 | tmp |= EXYNOS5_SKIP_DEACTIVATE_ACEACP_IN_PWDN; |
360 | EXYNOS5_SKIP_DEACTIVATE_ACEACP_IN_PWDN); | ||
361 | __raw_writel(tmp, EXYNOS5_ARM_COMMON_OPTION); | 360 | __raw_writel(tmp, EXYNOS5_ARM_COMMON_OPTION); |
362 | 361 | ||
363 | /* | 362 | /* |
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 78f795d73cb6..ba44328464f3 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig | |||
@@ -5,6 +5,7 @@ config ARCH_MXC | |||
5 | select AUTO_ZRELADDR if !ZBOOT_ROM | 5 | select AUTO_ZRELADDR if !ZBOOT_ROM |
6 | select CLKDEV_LOOKUP | 6 | select CLKDEV_LOOKUP |
7 | select CLKSRC_MMIO | 7 | select CLKSRC_MMIO |
8 | select GENERIC_ALLOCATOR | ||
8 | select GENERIC_CLOCKEVENTS | 9 | select GENERIC_CLOCKEVENTS |
9 | select GENERIC_IRQ_CHIP | 10 | select GENERIC_IRQ_CHIP |
10 | select MULTI_IRQ_HANDLER | 11 | select MULTI_IRQ_HANDLER |
@@ -61,10 +62,6 @@ config MXC_ULPI | |||
61 | config ARCH_HAS_RNGA | 62 | config ARCH_HAS_RNGA |
62 | bool | 63 | bool |
63 | 64 | ||
64 | config IRAM_ALLOC | ||
65 | bool | ||
66 | select GENERIC_ALLOCATOR | ||
67 | |||
68 | config HAVE_IMX_ANATOP | 65 | config HAVE_IMX_ANATOP |
69 | bool | 66 | bool |
70 | 67 | ||
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index 930958973f81..70ae7c490ac0 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile | |||
@@ -23,7 +23,6 @@ obj-$(CONFIG_ARCH_MXC_IOMUX_V3) += iomux-v3.o | |||
23 | obj-$(CONFIG_MXC_TZIC) += tzic.o | 23 | obj-$(CONFIG_MXC_TZIC) += tzic.o |
24 | obj-$(CONFIG_MXC_AVIC) += avic.o | 24 | obj-$(CONFIG_MXC_AVIC) += avic.o |
25 | 25 | ||
26 | obj-$(CONFIG_IRAM_ALLOC) += iram_alloc.o | ||
27 | obj-$(CONFIG_MXC_ULPI) += ulpi.o | 26 | obj-$(CONFIG_MXC_ULPI) += ulpi.o |
28 | obj-$(CONFIG_MXC_USE_EPIT) += epit.o | 27 | obj-$(CONFIG_MXC_USE_EPIT) += epit.o |
29 | obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o | 28 | obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o |
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index 4cba7dbb079f..c08ae3f99cee 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #define __ASM_ARCH_MXC_COMMON_H__ | 12 | #define __ASM_ARCH_MXC_COMMON_H__ |
13 | 13 | ||
14 | struct platform_device; | 14 | struct platform_device; |
15 | struct pt_regs; | ||
15 | struct clk; | 16 | struct clk; |
16 | enum mxc_cpu_pwr_mode; | 17 | enum mxc_cpu_pwr_mode; |
17 | 18 | ||
diff --git a/arch/arm/mach-imx/headsmp.S b/arch/arm/mach-imx/headsmp.S index a58c8b0527cc..67b9c48dcafe 100644 --- a/arch/arm/mach-imx/headsmp.S +++ b/arch/arm/mach-imx/headsmp.S | |||
@@ -24,7 +24,7 @@ ENTRY(v7_secondary_startup) | |||
24 | ENDPROC(v7_secondary_startup) | 24 | ENDPROC(v7_secondary_startup) |
25 | #endif | 25 | #endif |
26 | 26 | ||
27 | #ifdef CONFIG_PM | 27 | #ifdef CONFIG_ARM_CPU_SUSPEND |
28 | /* | 28 | /* |
29 | * The following code must assume it is running from physical address | 29 | * The following code must assume it is running from physical address |
30 | * where absolute virtual addresses to the data section have to be | 30 | * where absolute virtual addresses to the data section have to be |
diff --git a/arch/arm/mach-imx/hotplug.c b/arch/arm/mach-imx/hotplug.c index 5e91112dcbee..3daf1ed90579 100644 --- a/arch/arm/mach-imx/hotplug.c +++ b/arch/arm/mach-imx/hotplug.c | |||
@@ -11,7 +11,9 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
14 | #include <linux/jiffies.h> | ||
14 | #include <asm/cp15.h> | 15 | #include <asm/cp15.h> |
16 | #include <asm/proc-fns.h> | ||
15 | 17 | ||
16 | #include "common.h" | 18 | #include "common.h" |
17 | 19 | ||
diff --git a/arch/arm/mach-imx/iram_alloc.c b/arch/arm/mach-imx/iram_alloc.c deleted file mode 100644 index e05cf407db65..000000000000 --- a/arch/arm/mach-imx/iram_alloc.c +++ /dev/null | |||
@@ -1,73 +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 | |||
20 | #include <linux/kernel.h> | ||
21 | #include <linux/io.h> | ||
22 | #include <linux/module.h> | ||
23 | #include <linux/spinlock.h> | ||
24 | #include <linux/genalloc.h> | ||
25 | #include "linux/platform_data/imx-iram.h" | ||
26 | |||
27 | static unsigned long iram_phys_base; | ||
28 | static void __iomem *iram_virt_base; | ||
29 | static struct gen_pool *iram_pool; | ||
30 | |||
31 | static inline void __iomem *iram_phys_to_virt(unsigned long p) | ||
32 | { | ||
33 | return iram_virt_base + (p - iram_phys_base); | ||
34 | } | ||
35 | |||
36 | void __iomem *iram_alloc(unsigned int size, unsigned long *dma_addr) | ||
37 | { | ||
38 | if (!iram_pool) | ||
39 | return NULL; | ||
40 | |||
41 | *dma_addr = gen_pool_alloc(iram_pool, size); | ||
42 | pr_debug("iram alloc - %dB@0x%lX\n", size, *dma_addr); | ||
43 | if (!*dma_addr) | ||
44 | return NULL; | ||
45 | return iram_phys_to_virt(*dma_addr); | ||
46 | } | ||
47 | EXPORT_SYMBOL(iram_alloc); | ||
48 | |||
49 | void iram_free(unsigned long addr, unsigned int size) | ||
50 | { | ||
51 | if (!iram_pool) | ||
52 | return; | ||
53 | |||
54 | gen_pool_free(iram_pool, addr, size); | ||
55 | } | ||
56 | EXPORT_SYMBOL(iram_free); | ||
57 | |||
58 | int __init iram_init(unsigned long base, unsigned long size) | ||
59 | { | ||
60 | iram_phys_base = base; | ||
61 | |||
62 | iram_pool = gen_pool_create(PAGE_SHIFT, -1); | ||
63 | if (!iram_pool) | ||
64 | return -ENOMEM; | ||
65 | |||
66 | gen_pool_add(iram_pool, base, size, -1); | ||
67 | iram_virt_base = ioremap(iram_phys_base, size); | ||
68 | if (!iram_virt_base) | ||
69 | return -EIO; | ||
70 | |||
71 | pr_debug("i.MX IRAM pool: %ld KB@0x%p\n", size / 1024, iram_virt_base); | ||
72 | return 0; | ||
73 | } | ||
diff --git a/arch/arm/mach-omap1/dma.c b/arch/arm/mach-omap1/dma.c index 1a4e887f028d..68ab858e27b7 100644 --- a/arch/arm/mach-omap1/dma.c +++ b/arch/arm/mach-omap1/dma.c | |||
@@ -301,7 +301,7 @@ static int __init omap1_system_dma_init(void) | |||
301 | if (ret) { | 301 | if (ret) { |
302 | dev_err(&pdev->dev, "%s: Unable to add resources for %s%d\n", | 302 | dev_err(&pdev->dev, "%s: Unable to add resources for %s%d\n", |
303 | __func__, pdev->name, pdev->id); | 303 | __func__, pdev->name, pdev->id); |
304 | goto exit_device_put; | 304 | goto exit_iounmap; |
305 | } | 305 | } |
306 | 306 | ||
307 | p = kzalloc(sizeof(struct omap_system_dma_plat_info), GFP_KERNEL); | 307 | p = kzalloc(sizeof(struct omap_system_dma_plat_info), GFP_KERNEL); |
@@ -309,7 +309,7 @@ static int __init omap1_system_dma_init(void) | |||
309 | dev_err(&pdev->dev, "%s: Unable to allocate 'p' for %s\n", | 309 | dev_err(&pdev->dev, "%s: Unable to allocate 'p' for %s\n", |
310 | __func__, pdev->name); | 310 | __func__, pdev->name); |
311 | ret = -ENOMEM; | 311 | ret = -ENOMEM; |
312 | goto exit_device_del; | 312 | goto exit_iounmap; |
313 | } | 313 | } |
314 | 314 | ||
315 | d = kzalloc(sizeof(struct omap_dma_dev_attr), GFP_KERNEL); | 315 | d = kzalloc(sizeof(struct omap_dma_dev_attr), GFP_KERNEL); |
@@ -402,8 +402,8 @@ exit_release_d: | |||
402 | kfree(d); | 402 | kfree(d); |
403 | exit_release_p: | 403 | exit_release_p: |
404 | kfree(p); | 404 | kfree(p); |
405 | exit_device_del: | 405 | exit_iounmap: |
406 | platform_device_del(pdev); | 406 | iounmap(dma_base); |
407 | exit_device_put: | 407 | exit_device_put: |
408 | platform_device_put(pdev); | 408 | platform_device_put(pdev); |
409 | 409 | ||
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 857b1f097fd8..f49cd51e162a 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
@@ -37,8 +37,6 @@ config ARCH_OMAP2PLUS_TYPICAL | |||
37 | select NEON if ARCH_OMAP3 || ARCH_OMAP4 || SOC_OMAP5 | 37 | select NEON if ARCH_OMAP3 || ARCH_OMAP4 || SOC_OMAP5 |
38 | select PM_RUNTIME | 38 | select PM_RUNTIME |
39 | select REGULATOR | 39 | select REGULATOR |
40 | select SERIAL_OMAP | ||
41 | select SERIAL_OMAP_CONSOLE | ||
42 | select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4 | 40 | select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4 |
43 | select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4 | 41 | select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4 |
44 | select VFP | 42 | select VFP |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 62bb352c2d37..55a9d6777683 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -32,12 +32,12 @@ obj-$(CONFIG_SOC_HAS_OMAP2_SDRC) += sdrc.o | |||
32 | 32 | ||
33 | # SMP support ONLY available for OMAP4 | 33 | # SMP support ONLY available for OMAP4 |
34 | 34 | ||
35 | obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o | 35 | smp-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o |
36 | obj-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o | 36 | smp-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o |
37 | omap-4-5-common = omap4-common.o omap-wakeupgen.o \ | 37 | omap-4-5-common = omap4-common.o omap-wakeupgen.o \ |
38 | sleep44xx.o | 38 | sleep44xx.o |
39 | obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-common) | 39 | obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-common) $(smp-y) |
40 | obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-common) | 40 | obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-common) $(smp-y) |
41 | 41 | ||
42 | plus_sec := $(call as-instr,.arch_extension sec,+sec) | 42 | plus_sec := $(call as-instr,.arch_extension sec,+sec) |
43 | AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a$(plus_sec) | 43 | AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a$(plus_sec) |
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 6de78605c0af..04c116555412 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c | |||
@@ -112,13 +112,13 @@ static u8 omap3_beagle_version; | |||
112 | */ | 112 | */ |
113 | static struct { | 113 | static struct { |
114 | int mmc1_gpio_wp; | 114 | int mmc1_gpio_wp; |
115 | int usb_pwr_level; | 115 | bool usb_pwr_level; /* 0 - Active Low, 1 - Active High */ |
116 | int dvi_pd_gpio; | 116 | int dvi_pd_gpio; |
117 | int usr_button_gpio; | 117 | int usr_button_gpio; |
118 | int mmc_caps; | 118 | int mmc_caps; |
119 | } beagle_config = { | 119 | } beagle_config = { |
120 | .mmc1_gpio_wp = -EINVAL, | 120 | .mmc1_gpio_wp = -EINVAL, |
121 | .usb_pwr_level = GPIOF_OUT_INIT_LOW, | 121 | .usb_pwr_level = 0, |
122 | .dvi_pd_gpio = -EINVAL, | 122 | .dvi_pd_gpio = -EINVAL, |
123 | .usr_button_gpio = 4, | 123 | .usr_button_gpio = 4, |
124 | .mmc_caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA, | 124 | .mmc_caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA, |
@@ -178,7 +178,7 @@ static void __init omap3_beagle_init_rev(void) | |||
178 | case 0: | 178 | case 0: |
179 | printk(KERN_INFO "OMAP3 Beagle Rev: xM Ax/Bx\n"); | 179 | printk(KERN_INFO "OMAP3 Beagle Rev: xM Ax/Bx\n"); |
180 | omap3_beagle_version = OMAP3BEAGLE_BOARD_XM; | 180 | omap3_beagle_version = OMAP3BEAGLE_BOARD_XM; |
181 | beagle_config.usb_pwr_level = GPIOF_OUT_INIT_HIGH; | 181 | beagle_config.usb_pwr_level = 1; |
182 | beagle_config.mmc_caps &= ~MMC_CAP_8_BIT_DATA; | 182 | beagle_config.mmc_caps &= ~MMC_CAP_8_BIT_DATA; |
183 | break; | 183 | break; |
184 | case 2: | 184 | case 2: |
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index 1a884670a6c4..18ca61e300b3 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c | |||
@@ -73,11 +73,11 @@ | |||
73 | #define LIS302_IRQ1_GPIO 181 | 73 | #define LIS302_IRQ1_GPIO 181 |
74 | #define LIS302_IRQ2_GPIO 180 /* Not yet in use */ | 74 | #define LIS302_IRQ2_GPIO 180 /* Not yet in use */ |
75 | 75 | ||
76 | /* list all spi devices here */ | 76 | /* List all SPI devices here. Note that the list/probe order seems to matter! */ |
77 | enum { | 77 | enum { |
78 | RX51_SPI_WL1251, | 78 | RX51_SPI_WL1251, |
79 | RX51_SPI_MIPID, /* LCD panel */ | ||
80 | RX51_SPI_TSC2005, /* Touch Controller */ | 79 | RX51_SPI_TSC2005, /* Touch Controller */ |
80 | RX51_SPI_MIPID, /* LCD panel */ | ||
81 | }; | 81 | }; |
82 | 82 | ||
83 | static struct wl12xx_platform_data wl1251_pdata; | 83 | static struct wl12xx_platform_data wl1251_pdata; |
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index ed946df5ad8a..6c4da1254f53 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -1520,36 +1520,22 @@ static int gpmc_probe_dt(struct platform_device *pdev) | |||
1520 | return ret; | 1520 | return ret; |
1521 | } | 1521 | } |
1522 | 1522 | ||
1523 | for_each_node_by_name(child, "nand") { | 1523 | for_each_child_of_node(pdev->dev.of_node, child) { |
1524 | ret = gpmc_probe_nand_child(pdev, child); | ||
1525 | if (ret < 0) { | ||
1526 | of_node_put(child); | ||
1527 | return ret; | ||
1528 | } | ||
1529 | } | ||
1530 | 1524 | ||
1531 | for_each_node_by_name(child, "onenand") { | 1525 | if (!child->name) |
1532 | ret = gpmc_probe_onenand_child(pdev, child); | 1526 | continue; |
1533 | if (ret < 0) { | ||
1534 | of_node_put(child); | ||
1535 | return ret; | ||
1536 | } | ||
1537 | } | ||
1538 | 1527 | ||
1539 | for_each_node_by_name(child, "nor") { | 1528 | if (of_node_cmp(child->name, "nand") == 0) |
1540 | ret = gpmc_probe_generic_child(pdev, child); | 1529 | ret = gpmc_probe_nand_child(pdev, child); |
1541 | if (ret < 0) { | 1530 | else if (of_node_cmp(child->name, "onenand") == 0) |
1542 | of_node_put(child); | 1531 | ret = gpmc_probe_onenand_child(pdev, child); |
1543 | return ret; | 1532 | else if (of_node_cmp(child->name, "ethernet") == 0 || |
1544 | } | 1533 | of_node_cmp(child->name, "nor") == 0) |
1545 | } | 1534 | ret = gpmc_probe_generic_child(pdev, child); |
1546 | 1535 | ||
1547 | for_each_node_by_name(child, "ethernet") { | 1536 | if (WARN(ret < 0, "%s: probing gpmc child %s failed\n", |
1548 | ret = gpmc_probe_generic_child(pdev, child); | 1537 | __func__, child->full_name)) |
1549 | if (ret < 0) { | ||
1550 | of_node_put(child); | 1538 | of_node_put(child); |
1551 | return ret; | ||
1552 | } | ||
1553 | } | 1539 | } |
1554 | 1540 | ||
1555 | return 0; | 1541 | return 0; |
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 0f4c18e6e60c..1272c41d4749 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -419,11 +419,15 @@ void __init omap3xxx_check_revision(void) | |||
419 | cpu_rev = "1.0"; | 419 | cpu_rev = "1.0"; |
420 | break; | 420 | break; |
421 | case 1: | 421 | case 1: |
422 | /* FALLTHROUGH */ | ||
423 | default: | ||
424 | omap_revision = AM335X_REV_ES2_0; | 422 | omap_revision = AM335X_REV_ES2_0; |
425 | cpu_rev = "2.0"; | 423 | cpu_rev = "2.0"; |
426 | break; | 424 | break; |
425 | case 2: | ||
426 | /* FALLTHROUGH */ | ||
427 | default: | ||
428 | omap_revision = AM335X_REV_ES2_1; | ||
429 | cpu_rev = "2.1"; | ||
430 | break; | ||
427 | } | 431 | } |
428 | break; | 432 | break; |
429 | case 0xb8f2: | 433 | case 0xb8f2: |
@@ -644,13 +648,12 @@ void __init omap_soc_device_init(void) | |||
644 | soc_dev_attr->revision = soc_rev; | 648 | soc_dev_attr->revision = soc_rev; |
645 | 649 | ||
646 | soc_dev = soc_device_register(soc_dev_attr); | 650 | soc_dev = soc_device_register(soc_dev_attr); |
647 | if (IS_ERR_OR_NULL(soc_dev)) { | 651 | if (IS_ERR(soc_dev)) { |
648 | kfree(soc_dev_attr); | 652 | kfree(soc_dev_attr); |
649 | return; | 653 | return; |
650 | } | 654 | } |
651 | 655 | ||
652 | parent = soc_device_to_device(soc_dev); | 656 | parent = soc_device_to_device(soc_dev); |
653 | if (!IS_ERR_OR_NULL(parent)) | 657 | device_create_file(parent, &omap_soc_attr); |
654 | device_create_file(parent, &omap_soc_attr); | ||
655 | } | 658 | } |
656 | #endif /* CONFIG_SOC_BUS */ | 659 | #endif /* CONFIG_SOC_BUS */ |
diff --git a/arch/arm/mach-omap2/mux34xx.h b/arch/arm/mach-omap2/mux34xx.h index 6543ebf8ecfc..3f26d297c082 100644 --- a/arch/arm/mach-omap2/mux34xx.h +++ b/arch/arm/mach-omap2/mux34xx.h | |||
@@ -393,6 +393,10 @@ | |||
393 | #define OMAP3_CONTROL_PADCONF_SAD2D_SWAKEUP_OFFSET 0xa1c | 393 | #define OMAP3_CONTROL_PADCONF_SAD2D_SWAKEUP_OFFSET 0xa1c |
394 | #define OMAP3_CONTROL_PADCONF_JTAG_RTCK_OFFSET 0xa1e | 394 | #define OMAP3_CONTROL_PADCONF_JTAG_RTCK_OFFSET 0xa1e |
395 | #define OMAP3_CONTROL_PADCONF_JTAG_TDO_OFFSET 0xa20 | 395 | #define OMAP3_CONTROL_PADCONF_JTAG_TDO_OFFSET 0xa20 |
396 | #define OMAP3_CONTROL_PADCONF_GPIO_127 0xa24 | ||
397 | #define OMAP3_CONTROL_PADCONF_GPIO_126 0xa26 | ||
398 | #define OMAP3_CONTROL_PADCONF_GPIO_128 0xa28 | ||
399 | #define OMAP3_CONTROL_PADCONF_GPIO_129 0xa2a | ||
396 | 400 | ||
397 | #define OMAP3_CONTROL_PADCONF_MUX_SIZE \ | 401 | #define OMAP3_CONTROL_PADCONF_MUX_SIZE \ |
398 | (OMAP3_CONTROL_PADCONF_JTAG_TDO_OFFSET + 0x2) | 402 | (OMAP3_CONTROL_PADCONF_GPIO_129 + 0x2) |
diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c index eeea4fa28fbc..e6d230700b2b 100644 --- a/arch/arm/mach-omap2/omap_device.c +++ b/arch/arm/mach-omap2/omap_device.c | |||
@@ -876,4 +876,4 @@ static int __init omap_device_late_init(void) | |||
876 | bus_for_each_dev(&platform_bus_type, NULL, NULL, omap_device_late_idle); | 876 | bus_for_each_dev(&platform_bus_type, NULL, NULL, omap_device_late_idle); |
877 | return 0; | 877 | return 0; |
878 | } | 878 | } |
879 | omap_late_initcall(omap_device_late_init); | 879 | omap_late_initcall_sync(omap_device_late_init); |
diff --git a/arch/arm/mach-omap2/soc.h b/arch/arm/mach-omap2/soc.h index 18fdeeb3a44a..197cc16870d9 100644 --- a/arch/arm/mach-omap2/soc.h +++ b/arch/arm/mach-omap2/soc.h | |||
@@ -396,6 +396,7 @@ IS_OMAP_TYPE(3430, 0x3430) | |||
396 | #define AM335X_CLASS 0x33500033 | 396 | #define AM335X_CLASS 0x33500033 |
397 | #define AM335X_REV_ES1_0 AM335X_CLASS | 397 | #define AM335X_REV_ES1_0 AM335X_CLASS |
398 | #define AM335X_REV_ES2_0 (AM335X_CLASS | (0x1 << 8)) | 398 | #define AM335X_REV_ES2_0 (AM335X_CLASS | (0x1 << 8)) |
399 | #define AM335X_REV_ES2_1 (AM335X_CLASS | (0x2 << 8)) | ||
399 | 400 | ||
400 | #define OMAP443X_CLASS 0x44300044 | 401 | #define OMAP443X_CLASS 0x44300044 |
401 | #define OMAP4430_REV_ES1_0 (OMAP443X_CLASS | (0x10 << 8)) | 402 | #define OMAP4430_REV_ES1_0 (OMAP443X_CLASS | (0x10 << 8)) |
@@ -496,6 +497,7 @@ level(__##fn); | |||
496 | #define omap_subsys_initcall(fn) omap_initcall(subsys_initcall, fn) | 497 | #define omap_subsys_initcall(fn) omap_initcall(subsys_initcall, fn) |
497 | #define omap_device_initcall(fn) omap_initcall(device_initcall, fn) | 498 | #define omap_device_initcall(fn) omap_initcall(device_initcall, fn) |
498 | #define omap_late_initcall(fn) omap_initcall(late_initcall, fn) | 499 | #define omap_late_initcall(fn) omap_initcall(late_initcall, fn) |
500 | #define omap_late_initcall_sync(fn) omap_initcall(late_initcall_sync, fn) | ||
499 | 501 | ||
500 | #endif /* __ASSEMBLY__ */ | 502 | #endif /* __ASSEMBLY__ */ |
501 | 503 | ||
diff --git a/arch/arm/mach-prima2/Kconfig b/arch/arm/mach-prima2/Kconfig index 80ca974b2f82..6988b117fc17 100644 --- a/arch/arm/mach-prima2/Kconfig +++ b/arch/arm/mach-prima2/Kconfig | |||
@@ -38,7 +38,7 @@ config ARCH_MARCO | |||
38 | select CPU_V7 | 38 | select CPU_V7 |
39 | select HAVE_ARM_SCU if SMP | 39 | select HAVE_ARM_SCU if SMP |
40 | select HAVE_SMP | 40 | select HAVE_SMP |
41 | select SMP_ON_UP | 41 | select SMP_ON_UP if SMP |
42 | help | 42 | help |
43 | Support for CSR SiRFSoC ARM Cortex A9 Platform | 43 | Support for CSR SiRFSoC ARM Cortex A9 Platform |
44 | 44 | ||
diff --git a/arch/arm/mach-spear/spear13xx.c b/arch/arm/mach-spear/spear13xx.c index 3621599c38ad..7aa6e8cf830f 100644 --- a/arch/arm/mach-spear/spear13xx.c +++ b/arch/arm/mach-spear/spear13xx.c | |||
@@ -35,6 +35,8 @@ void __init spear13xx_l2x0_init(void) | |||
35 | * write alloc and 'Full line of zero' options | 35 | * write alloc and 'Full line of zero' options |
36 | * | 36 | * |
37 | */ | 37 | */ |
38 | if (!IS_ENABLED(CONFIG_CACHE_L2X0)) | ||
39 | return; | ||
38 | 40 | ||
39 | writel_relaxed(0x06, VA_L2CC_BASE + L2X0_PREFETCH_CTRL); | 41 | writel_relaxed(0x06, VA_L2CC_BASE + L2X0_PREFETCH_CTRL); |
40 | 42 | ||
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index 20c3b372cdf5..84d72fc36dfe 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig | |||
@@ -63,6 +63,7 @@ config ARCH_TEGRA_114_SOC | |||
63 | select ARM_ARCH_TIMER | 63 | select ARM_ARCH_TIMER |
64 | select ARM_GIC | 64 | select ARM_GIC |
65 | select ARM_L1_CACHE_SHIFT_6 | 65 | select ARM_L1_CACHE_SHIFT_6 |
66 | select CPU_FREQ_TABLE if CPU_FREQ | ||
66 | select CPU_V7 | 67 | select CPU_V7 |
67 | select PINCTRL | 68 | select PINCTRL |
68 | select PINCTRL_TEGRA114 | 69 | select PINCTRL_TEGRA114 |
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig index f66d7deae46d..6a4387e39df8 100644 --- a/arch/arm/mach-ux500/Kconfig +++ b/arch/arm/mach-ux500/Kconfig | |||
@@ -19,6 +19,8 @@ if ARCH_U8500 | |||
19 | config UX500_SOC_COMMON | 19 | config UX500_SOC_COMMON |
20 | bool | 20 | bool |
21 | default y | 21 | default y |
22 | select ABX500_CORE | ||
23 | select AB8500_CORE | ||
22 | select ARM_ERRATA_754322 | 24 | select ARM_ERRATA_754322 |
23 | select ARM_ERRATA_764369 if SMP | 25 | select ARM_ERRATA_764369 if SMP |
24 | select ARM_GIC | 26 | select ARM_GIC |
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index a15dd6b63a8f..3cd555ac6d0a 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
@@ -403,8 +403,8 @@ static int mop500_prox_activate(struct device *dev) | |||
403 | "no regulator\n"); | 403 | "no regulator\n"); |
404 | return PTR_ERR(prox_regulator); | 404 | return PTR_ERR(prox_regulator); |
405 | } | 405 | } |
406 | regulator_enable(prox_regulator); | 406 | |
407 | return 0; | 407 | return regulator_enable(prox_regulator); |
408 | } | 408 | } |
409 | 409 | ||
410 | static void mop500_prox_deactivate(struct device *dev) | 410 | static void mop500_prox_deactivate(struct device *dev) |
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index 995928ba22fd..e90b5ab23b6d 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
@@ -191,7 +191,7 @@ static const char *db8500_read_soc_id(void) | |||
191 | /* Throw these device-specific numbers into the entropy pool */ | 191 | /* Throw these device-specific numbers into the entropy pool */ |
192 | add_device_randomness(uid, 0x14); | 192 | add_device_randomness(uid, 0x14); |
193 | return kasprintf(GFP_KERNEL, "%08x%08x%08x%08x%08x", | 193 | return kasprintf(GFP_KERNEL, "%08x%08x%08x%08x%08x", |
194 | readl((u32 *)uid+1), | 194 | readl((u32 *)uid+0), |
195 | readl((u32 *)uid+1), readl((u32 *)uid+2), | 195 | readl((u32 *)uid+1), readl((u32 *)uid+2), |
196 | readl((u32 *)uid+3), readl((u32 *)uid+4)); | 196 | readl((u32 *)uid+3), readl((u32 *)uid+4)); |
197 | } | 197 | } |