diff options
author | Arnd Bergmann <arnd@arndb.de> | 2015-10-21 11:01:14 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2015-10-21 11:01:14 -0400 |
commit | 6701ef0318f76a9765a3fc762cbac405e024a8c2 (patch) | |
tree | a5eecbee6deca75230f04980c9ad459cdfbce74c | |
parent | 4f1d841475e1f6e9e32496dda11215db56f4ea73 (diff) | |
parent | 57df5380853460bc66b59a46273ce113c923d39c (diff) |
Merge tag 'omap-for-v4.3/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
Merge "Fixes for omaps for v4.3-rc cycle" from Tony Lindgren:
- Fix oops with LPAE and moew than 2GB of memory by enabling
ZONE_DMA for LPAE. Probably no need for stable on this one as we
only recently ran into this with the mainline kernel
- Fix imprecise external abort caused by bogus SRAM init. This affects
dm814x recently merged, so no need for stable on this one AFAIK
* tag 'omap-for-v4.3/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: OMAP2+: Fix imprecise external abort caused by bogus SRAM init
ARM: OMAP2+: Fix oops with LPAE and more than 2GB of memory
-rw-r--r-- | arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 2 | ||||
-rw-r--r-- | arch/arm/boot/dts/omap3-evm-37xx.dts | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-generic.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pdata-quirks.c | 9 |
5 files changed, 22 insertions, 3 deletions
diff --git a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts index 91146c318798..5b0430041ec6 100644 --- a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts +++ b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | |||
@@ -12,7 +12,7 @@ | |||
12 | 12 | ||
13 | / { | 13 | / { |
14 | model = "LogicPD Zoom DM3730 Torpedo Development Kit"; | 14 | model = "LogicPD Zoom DM3730 Torpedo Development Kit"; |
15 | compatible = "logicpd,dm3730-torpedo-devkit", "ti,omap36xx"; | 15 | compatible = "logicpd,dm3730-torpedo-devkit", "ti,omap3630", "ti,omap3"; |
16 | 16 | ||
17 | gpio_keys { | 17 | gpio_keys { |
18 | compatible = "gpio-keys"; | 18 | compatible = "gpio-keys"; |
diff --git a/arch/arm/boot/dts/omap3-evm-37xx.dts b/arch/arm/boot/dts/omap3-evm-37xx.dts index 16e8ce350dda..bb339d1648e0 100644 --- a/arch/arm/boot/dts/omap3-evm-37xx.dts +++ b/arch/arm/boot/dts/omap3-evm-37xx.dts | |||
@@ -13,7 +13,7 @@ | |||
13 | 13 | ||
14 | / { | 14 | / { |
15 | model = "TI OMAP37XX EVM (TMDSEVM3730)"; | 15 | model = "TI OMAP37XX EVM (TMDSEVM3730)"; |
16 | compatible = "ti,omap3-evm-37xx", "ti,omap36xx"; | 16 | compatible = "ti,omap3-evm-37xx", "ti,omap3630", "ti,omap3"; |
17 | 17 | ||
18 | memory { | 18 | memory { |
19 | device_type = "memory"; | 19 | device_type = "memory"; |
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index b3a0dff67e3f..33d1460a5639 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
@@ -49,6 +49,7 @@ config SOC_OMAP5 | |||
49 | select OMAP_INTERCONNECT | 49 | select OMAP_INTERCONNECT |
50 | select OMAP_INTERCONNECT_BARRIER | 50 | select OMAP_INTERCONNECT_BARRIER |
51 | select PM_OPP if PM | 51 | select PM_OPP if PM |
52 | select ZONE_DMA if ARM_LPAE | ||
52 | 53 | ||
53 | config SOC_AM33XX | 54 | config SOC_AM33XX |
54 | bool "TI AM33XX" | 55 | bool "TI AM33XX" |
@@ -78,6 +79,7 @@ config SOC_DRA7XX | |||
78 | select OMAP_INTERCONNECT | 79 | select OMAP_INTERCONNECT |
79 | select OMAP_INTERCONNECT_BARRIER | 80 | select OMAP_INTERCONNECT_BARRIER |
80 | select PM_OPP if PM | 81 | select PM_OPP if PM |
82 | select ZONE_DMA if ARM_LPAE | ||
81 | 83 | ||
82 | config ARCH_OMAP2PLUS | 84 | config ARCH_OMAP2PLUS |
83 | bool | 85 | bool |
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 6133eaac685d..fb219a30c10c 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
@@ -106,6 +106,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)") | |||
106 | MACHINE_END | 106 | MACHINE_END |
107 | 107 | ||
108 | static const char *const omap36xx_boards_compat[] __initconst = { | 108 | static const char *const omap36xx_boards_compat[] __initconst = { |
109 | "ti,omap3630", | ||
109 | "ti,omap36xx", | 110 | "ti,omap36xx", |
110 | NULL, | 111 | NULL, |
111 | }; | 112 | }; |
@@ -243,6 +244,9 @@ static const char *const omap5_boards_compat[] __initconst = { | |||
243 | }; | 244 | }; |
244 | 245 | ||
245 | DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)") | 246 | DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)") |
247 | #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) | ||
248 | .dma_zone_size = SZ_2G, | ||
249 | #endif | ||
246 | .reserve = omap_reserve, | 250 | .reserve = omap_reserve, |
247 | .smp = smp_ops(omap4_smp_ops), | 251 | .smp = smp_ops(omap4_smp_ops), |
248 | .map_io = omap5_map_io, | 252 | .map_io = omap5_map_io, |
@@ -288,6 +292,9 @@ static const char *const dra74x_boards_compat[] __initconst = { | |||
288 | }; | 292 | }; |
289 | 293 | ||
290 | DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)") | 294 | DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)") |
295 | #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) | ||
296 | .dma_zone_size = SZ_2G, | ||
297 | #endif | ||
291 | .reserve = omap_reserve, | 298 | .reserve = omap_reserve, |
292 | .smp = smp_ops(omap4_smp_ops), | 299 | .smp = smp_ops(omap4_smp_ops), |
293 | .map_io = dra7xx_map_io, | 300 | .map_io = dra7xx_map_io, |
@@ -308,6 +315,9 @@ static const char *const dra72x_boards_compat[] __initconst = { | |||
308 | }; | 315 | }; |
309 | 316 | ||
310 | DT_MACHINE_START(DRA72X_DT, "Generic DRA72X (Flattened Device Tree)") | 317 | DT_MACHINE_START(DRA72X_DT, "Generic DRA72X (Flattened Device Tree)") |
318 | #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) | ||
319 | .dma_zone_size = SZ_2G, | ||
320 | #endif | ||
311 | .reserve = omap_reserve, | 321 | .reserve = omap_reserve, |
312 | .map_io = dra7xx_map_io, | 322 | .map_io = dra7xx_map_io, |
313 | .init_early = dra7xx_init_early, | 323 | .init_early = dra7xx_init_early, |
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c index ea56397599c2..1dfe34654c43 100644 --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c | |||
@@ -559,7 +559,14 @@ static void pdata_quirks_check(struct pdata_init *quirks) | |||
559 | 559 | ||
560 | void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table) | 560 | void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table) |
561 | { | 561 | { |
562 | omap_sdrc_init(NULL, NULL); | 562 | /* |
563 | * We still need this for omap2420 and omap3 PM to work, others are | ||
564 | * using drivers/misc/sram.c already. | ||
565 | */ | ||
566 | if (of_machine_is_compatible("ti,omap2420") || | ||
567 | of_machine_is_compatible("ti,omap3")) | ||
568 | omap_sdrc_init(NULL, NULL); | ||
569 | |||
563 | pdata_quirks_check(auxdata_quirks); | 570 | pdata_quirks_check(auxdata_quirks); |
564 | of_platform_populate(NULL, omap_dt_match_table, | 571 | of_platform_populate(NULL, omap_dt_match_table, |
565 | omap_auxdata_lookup, NULL); | 572 | omap_auxdata_lookup, NULL); |