diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-21 17:54:55 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-21 17:54:55 -0500 |
commit | b24174b0cbbe383c5bb6097aeb24480b8fd2d338 (patch) | |
tree | 2df02e72b7166dadb19b766435dbe7568d97e946 /arch/arm/mach-exynos | |
parent | 7ed214ac2095f561a94335ca672b6c42a1ea40ff (diff) | |
parent | be8fd292f9b1ed787a04cb4437f7faef16c4afef (diff) |
Merge tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull non-critical ARM SoC bug fixes from Arnd Bergmann:
"Bug fixes that did not make it into v3.8, mostly because they were not
considered important enough, and in some cases because bugs only show
up in combination with other patches destined for 3.9. This includes
a few larger patches for GPIO on the Marvell PXA platform and a lot of
Samsung specific bug fixes, as well as a series from Arnd to fix older
build warnings."
* tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (54 commits)
ARM: SPEAr13xx: Enable CONFIG_ARCH_HAS_CPUFREQ
ARM: imx: MACH_MX31ADS_WM1133_EV1 needs REGULATOR_WM8350
scripts/sortextable: silence script output
ARM: s3c: i2c: add platform_device forward declaration
ARM: mvebu: allow selecting mvebu without Armada XP
ARM: pick Versatile by default for !MMU
ARM: integrator: fix build with INTEGRATOR_AP off
ARM: integrator/versatile: fix NOMMU warnings
ARM: sa1100: don't warn about mach/ide.h
ARM: shmobile: fix defconfig warning on CONFIG_USB
ARM: w90x900: fix legacy assembly syntax
ARM: samsung: fix assembly syntax for new gas
ARM: disable virt_to_bus/virt_to_bus almost everywhere
ARM: dts: Correct pin configuration of SD 4 for exynos4x12-pinctrl
ARM: SAMSUNG: Silence empty switch warning in fimc-core.h
ARM: SAMSUNG: Silence empty switch warning in sdhci.h
ARM: msm: proc_comm_boot_wait should not be __init
arm: vt8500: Update MAINTAINERS entry for arch-vt8500
ARM: integrator: ensure ap_syscon_base is initialised when !CONFIG_MMU
ARM: S5PV210: Fix early uart output in fifo mode
...
Diffstat (limited to 'arch/arm/mach-exynos')
-rw-r--r-- | arch/arm/mach-exynos/common.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-exynos/pm.c | 6 |
2 files changed, 10 insertions, 6 deletions
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c index 1a89824a5f78..0c7e3ad7ba93 100644 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c | |||
@@ -299,6 +299,7 @@ void exynos4_restart(char mode, const char *cmd) | |||
299 | 299 | ||
300 | void exynos5_restart(char mode, const char *cmd) | 300 | void exynos5_restart(char mode, const char *cmd) |
301 | { | 301 | { |
302 | struct device_node *np; | ||
302 | u32 val; | 303 | u32 val; |
303 | void __iomem *addr; | 304 | void __iomem *addr; |
304 | 305 | ||
@@ -306,8 +307,9 @@ void exynos5_restart(char mode, const char *cmd) | |||
306 | val = 0x1; | 307 | val = 0x1; |
307 | addr = EXYNOS_SWRESET; | 308 | addr = EXYNOS_SWRESET; |
308 | } else if (of_machine_is_compatible("samsung,exynos5440")) { | 309 | } else if (of_machine_is_compatible("samsung,exynos5440")) { |
309 | val = (0x10 << 20) | (0x1 << 16); | 310 | np = of_find_compatible_node(NULL, NULL, "samsung,exynos5440-clock"); |
310 | addr = EXYNOS5440_SWRESET; | 311 | addr = of_iomap(np, 0) + 0xcc; |
312 | val = (0xfff << 20) | (0x1 << 16); | ||
311 | } else { | 313 | } else { |
312 | pr_err("%s: cannot support non-DT\n", __func__); | 314 | pr_err("%s: cannot support non-DT\n", __func__); |
313 | return; | 315 | return; |
@@ -1031,8 +1033,8 @@ static int __init exynos_init_irq_eint(void) | |||
1031 | * interrupt support code here can be completely removed. | 1033 | * interrupt support code here can be completely removed. |
1032 | */ | 1034 | */ |
1033 | static const struct of_device_id exynos_pinctrl_ids[] = { | 1035 | static const struct of_device_id exynos_pinctrl_ids[] = { |
1034 | { .compatible = "samsung,pinctrl-exynos4210", }, | 1036 | { .compatible = "samsung,exynos4210-pinctrl", }, |
1035 | { .compatible = "samsung,pinctrl-exynos4x12", }, | 1037 | { .compatible = "samsung,exynos4x12-pinctrl", }, |
1036 | }; | 1038 | }; |
1037 | struct device_node *pctrl_np, *wkup_np; | 1039 | struct device_node *pctrl_np, *wkup_np; |
1038 | const char *wkup_compat = "samsung,exynos4210-wakeup-eint"; | 1040 | const char *wkup_compat = "samsung,exynos4210-wakeup-eint"; |
diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c index b9b539cac81e..5106ab83e593 100644 --- a/arch/arm/mach-exynos/pm.c +++ b/arch/arm/mach-exynos/pm.c | |||
@@ -91,8 +91,8 @@ static int exynos_cpu_suspend(unsigned long arg) | |||
91 | /* issue the standby signal into the pm unit. */ | 91 | /* issue the standby signal into the pm unit. */ |
92 | cpu_do_idle(); | 92 | cpu_do_idle(); |
93 | 93 | ||
94 | /* we should never get past here */ | 94 | pr_info("Failed to suspend the system\n"); |
95 | panic("sleep resumed to originator?"); | 95 | return 1; /* Aborting suspend */ |
96 | } | 96 | } |
97 | 97 | ||
98 | static void exynos_pm_prepare(void) | 98 | static void exynos_pm_prepare(void) |
@@ -282,6 +282,8 @@ static void exynos_pm_resume(void) | |||
282 | if (!(tmp & S5P_CENTRAL_LOWPWR_CFG)) { | 282 | if (!(tmp & S5P_CENTRAL_LOWPWR_CFG)) { |
283 | tmp |= S5P_CENTRAL_LOWPWR_CFG; | 283 | tmp |= S5P_CENTRAL_LOWPWR_CFG; |
284 | __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION); | 284 | __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION); |
285 | /* clear the wakeup state register */ | ||
286 | __raw_writel(0x0, S5P_WAKEUP_STAT); | ||
285 | /* No need to perform below restore code */ | 287 | /* No need to perform below restore code */ |
286 | goto early_wakeup; | 288 | goto early_wakeup; |
287 | } | 289 | } |