diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/common/mcpm_entry.c | 6 | ||||
-rw-r--r-- | arch/arm/include/asm/mcpm.h | 14 |
2 files changed, 14 insertions, 6 deletions
diff --git a/arch/arm/common/mcpm_entry.c b/arch/arm/common/mcpm_entry.c index 370236dd1a03..990250965f2c 100644 --- a/arch/arm/common/mcpm_entry.c +++ b/arch/arm/common/mcpm_entry.c | |||
@@ -51,7 +51,8 @@ void mcpm_cpu_power_down(void) | |||
51 | { | 51 | { |
52 | phys_reset_t phys_reset; | 52 | phys_reset_t phys_reset; |
53 | 53 | ||
54 | BUG_ON(!platform_ops); | 54 | if (WARN_ON_ONCE(!platform_ops || !platform_ops->power_down)) |
55 | return; | ||
55 | BUG_ON(!irqs_disabled()); | 56 | BUG_ON(!irqs_disabled()); |
56 | 57 | ||
57 | /* | 58 | /* |
@@ -93,7 +94,8 @@ void mcpm_cpu_suspend(u64 expected_residency) | |||
93 | { | 94 | { |
94 | phys_reset_t phys_reset; | 95 | phys_reset_t phys_reset; |
95 | 96 | ||
96 | BUG_ON(!platform_ops); | 97 | if (WARN_ON_ONCE(!platform_ops || !platform_ops->suspend)) |
98 | return; | ||
97 | BUG_ON(!irqs_disabled()); | 99 | BUG_ON(!irqs_disabled()); |
98 | 100 | ||
99 | /* Very similar to mcpm_cpu_power_down() */ | 101 | /* Very similar to mcpm_cpu_power_down() */ |
diff --git a/arch/arm/include/asm/mcpm.h b/arch/arm/include/asm/mcpm.h index 0f7b7620e9a5..fc82a88f5b69 100644 --- a/arch/arm/include/asm/mcpm.h +++ b/arch/arm/include/asm/mcpm.h | |||
@@ -76,8 +76,11 @@ int mcpm_cpu_power_up(unsigned int cpu, unsigned int cluster); | |||
76 | * | 76 | * |
77 | * This must be called with interrupts disabled. | 77 | * This must be called with interrupts disabled. |
78 | * | 78 | * |
79 | * This does not return. Re-entry in the kernel is expected via | 79 | * On success this does not return. Re-entry in the kernel is expected |
80 | * mcpm_entry_point. | 80 | * via mcpm_entry_point. |
81 | * | ||
82 | * This will return if mcpm_platform_register() has not been called | ||
83 | * previously in which case the caller should take appropriate action. | ||
81 | */ | 84 | */ |
82 | void mcpm_cpu_power_down(void); | 85 | void mcpm_cpu_power_down(void); |
83 | 86 | ||
@@ -98,8 +101,11 @@ void mcpm_cpu_power_down(void); | |||
98 | * | 101 | * |
99 | * This must be called with interrupts disabled. | 102 | * This must be called with interrupts disabled. |
100 | * | 103 | * |
101 | * This does not return. Re-entry in the kernel is expected via | 104 | * On success this does not return. Re-entry in the kernel is expected |
102 | * mcpm_entry_point. | 105 | * via mcpm_entry_point. |
106 | * | ||
107 | * This will return if mcpm_platform_register() has not been called | ||
108 | * previously in which case the caller should take appropriate action. | ||
103 | */ | 109 | */ |
104 | void mcpm_cpu_suspend(u64 expected_residency); | 110 | void mcpm_cpu_suspend(u64 expected_residency); |
105 | 111 | ||