pm: Reference pm_state_info only by pointer
It's unnecessary to move the pm_state_info around by value, just use a pointer. Signed-off-by: Carlo Caione <ccaione@baylibre.com>
This commit is contained in:
parent
caa3ee686a
commit
11f1dd2370
27 changed files with 168 additions and 168 deletions
|
@ -77,7 +77,7 @@ struct pm_notifier {
|
|||
* @param info Power state which should be used in the ongoing
|
||||
* suspend operation.
|
||||
*/
|
||||
bool pm_power_state_force(uint8_t cpu, struct pm_state_info info);
|
||||
bool pm_power_state_force(uint8_t cpu, const struct pm_state_info *info);
|
||||
|
||||
/**
|
||||
* @brief Register a power management notifier
|
||||
|
@ -111,7 +111,7 @@ int pm_notifier_unregister(struct pm_notifier *notifier);
|
|||
* @param cpu CPU index.
|
||||
* @return next pm_state_info that will be used
|
||||
*/
|
||||
struct pm_state_info pm_power_state_next_get(uint8_t cpu);
|
||||
const struct pm_state_info *pm_power_state_next_get(uint8_t cpu);
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
@ -182,7 +182,7 @@ bool pm_constraint_get(enum pm_state state);
|
|||
* @param info Power state which should be used in the ongoing
|
||||
* suspend operation.
|
||||
*/
|
||||
void pm_power_state_set(struct pm_state_info info);
|
||||
void pm_power_state_set(struct pm_state_info *info);
|
||||
|
||||
/**
|
||||
* @brief Do any SoC or architecture specific post ops after sleep state exits.
|
||||
|
@ -194,7 +194,7 @@ void pm_power_state_set(struct pm_state_info info);
|
|||
*
|
||||
* @param info Power state that the given cpu is leaving.
|
||||
*/
|
||||
void pm_power_state_exit_post_ops(struct pm_state_info info);
|
||||
void pm_power_state_exit_post_ops(struct pm_state_info *info);
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
@ -212,7 +212,7 @@ void pm_power_state_exit_post_ops(struct pm_state_info info);
|
|||
#define pm_power_state_set(info)
|
||||
#define pm_power_state_exit_post_ops(info)
|
||||
#define pm_power_state_next_get(cpu) \
|
||||
((struct pm_state_info){PM_STATE_ACTIVE, 0, 0})
|
||||
(&(struct pm_state_info){PM_STATE_ACTIVE, 0, 0})
|
||||
|
||||
#endif /* CONFIG_PM */
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ void main(void)
|
|||
* controlled delay. Here we need to override that, then
|
||||
* force entry to deep sleep on any delay.
|
||||
*/
|
||||
pm_power_state_force(0u, (struct pm_state_info){PM_STATE_SOFT_OFF, 0, 0});
|
||||
pm_power_state_force(0u, &(struct pm_state_info){PM_STATE_SOFT_OFF, 0, 0});
|
||||
|
||||
printk("ERROR: System off failed\n");
|
||||
while (true) {
|
||||
|
|
|
@ -118,5 +118,5 @@ void main(void)
|
|||
|
||||
printk("Device shutdown\n");
|
||||
|
||||
pm_power_state_force(0u, (struct pm_state_info){PM_STATE_SOFT_OFF, 0, 0});
|
||||
pm_power_state_force(0u, &(struct pm_state_info){PM_STATE_SOFT_OFF, 0, 0});
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ void main(void)
|
|||
/*
|
||||
* Force the SOFT_OFF state.
|
||||
*/
|
||||
pm_power_state_force(0u, (struct pm_state_info){PM_STATE_SOFT_OFF, 0, 0});
|
||||
pm_power_state_force(0u, &(struct pm_state_info){PM_STATE_SOFT_OFF, 0, 0});
|
||||
|
||||
printk("ERROR: System off failed\n");
|
||||
while (true) {
|
||||
|
|
|
@ -101,9 +101,9 @@ static void z_power_soc_sleep(void)
|
|||
* For deep sleep pm_system_suspend has executed all the driver
|
||||
* power management call backs.
|
||||
*/
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SUSPEND_TO_IDLE:
|
||||
z_power_soc_sleep();
|
||||
break;
|
||||
|
@ -123,9 +123,9 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
* an ISR on wake except for faults. We re-enable interrupts by setting PRIMASK
|
||||
* to 0.
|
||||
*/
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SUSPEND_TO_IDLE:
|
||||
case PM_STATE_SUSPEND_TO_RAM:
|
||||
__set_PRIMASK(0);
|
||||
|
|
|
@ -11,27 +11,27 @@
|
|||
LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SOFT_OFF:
|
||||
nrf_power_system_off(NRF_POWER);
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SOFT_OFF:
|
||||
/* Nothing to do. */
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,27 +11,27 @@
|
|||
LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SOFT_OFF:
|
||||
nrf_power_system_off(NRF_POWER);
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SOFT_OFF:
|
||||
/* Nothing to do. */
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -13,27 +13,27 @@
|
|||
LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SOFT_OFF:
|
||||
nrf_regulators_system_off(NRF_REGULATORS);
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SOFT_OFF:
|
||||
/* Nothing to do. */
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -12,27 +12,27 @@
|
|||
LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SOFT_OFF:
|
||||
nrf_regulators_system_off(NRF_REGULATORS);
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SOFT_OFF:
|
||||
/* Nothing to do. */
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -144,12 +144,12 @@ static void npcx_power_enter_system_sleep(int slp_mode, int wk_mode)
|
|||
}
|
||||
|
||||
/* Invoke when enter "Suspend/Low Power" mode. */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
if (info.state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
if (info->state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
} else {
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 0: /* Sub-state 0: Deep sleep with instant wake-up */
|
||||
npcx_power_enter_system_sleep(NPCX_DEEP_SLEEP,
|
||||
NPCX_INSTANT_WAKE_UP);
|
||||
|
@ -166,19 +166,19 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power substate-id %u",
|
||||
info.substate_id);
|
||||
info->substate_id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle soc specific activity after exiting "Suspend/Low Power" mode. */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
if (info.state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
if (info->state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
} else {
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 0: /* Sub-state 0: Deep sleep with instant wake-up */
|
||||
/* Restore interrupts */
|
||||
__enable_irq();
|
||||
|
@ -189,7 +189,7 @@ __weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
|||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power substate-id %u",
|
||||
info.substate_id);
|
||||
info->substate_id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -283,11 +283,11 @@ void cpu_mode_transition(gpc_cpu_mode_t mode, bool enable_standby)
|
|||
* SOC specific low power mode implementation
|
||||
* Drop to lowest power state possible given system's request
|
||||
*/
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
/* Extract set point and GPC mode from the substate ID */
|
||||
uint8_t set_point = IMX_SPC(info.substate_id);
|
||||
gpc_cpu_mode_t gpc_mode = IMX_GPC_MODE(info.substate_id);
|
||||
uint8_t set_point = IMX_SPC(info->substate_id);
|
||||
gpc_cpu_mode_t gpc_mode = IMX_GPC_MODE(info->substate_id);
|
||||
uint8_t current_set_point = GPC_SP_GetCurrentSetPoint(GPC_SET_POINT_CTRL);
|
||||
|
||||
LOG_DBG("Switch to Set Point %d, GPC Mode %d requested", set_point, gpc_mode);
|
||||
|
@ -304,7 +304,7 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
}
|
||||
}
|
||||
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
ARG_UNUSED(info);
|
||||
/* Clear PRIMASK */
|
||||
|
|
|
@ -22,7 +22,7 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);
|
|||
APP_DEEPSLEEP_RAM_APD, APP_DEEPSLEEP_RAM_PPD}))
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
/* FIXME: When this function is entered the Kernel has disabled
|
||||
* interrupts using BASEPRI register. This is incorrect as it prevents
|
||||
|
@ -36,7 +36,7 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
/* Set BASEPRI to 0 */
|
||||
irq_unlock(0);
|
||||
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_RUNTIME_IDLE:
|
||||
POWER_EnterSleep();
|
||||
break;
|
||||
|
@ -44,13 +44,13 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
POWER_EnterDeepSleep(APP_EXCLUDE_FROM_DEEPSLEEP);
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
ARG_UNUSED(info);
|
||||
|
||||
|
|
|
@ -25,15 +25,15 @@ __ramfunc static void wait_for_flash_prefetch_and_idle(void)
|
|||
}
|
||||
#endif /* CONFIG_XIP */
|
||||
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_RUNTIME_IDLE:
|
||||
k_cpu_idle();
|
||||
break;
|
||||
case PM_STATE_SUSPEND_TO_IDLE:
|
||||
/* Set partial stop mode and enable deep sleep */
|
||||
SMC->STOPCTRL = SMC_STOPCTRL_PSTOPO(info.substate_id);
|
||||
SMC->STOPCTRL = SMC_STOPCTRL_PSTOPO(info->substate_id);
|
||||
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
|
||||
#ifdef CONFIG_XIP
|
||||
wait_for_flash_prefetch_and_idle();
|
||||
|
@ -46,16 +46,16 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
}
|
||||
break;
|
||||
default:
|
||||
LOG_WRN("Unsupported power state %u", info.state);
|
||||
LOG_WRN("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
ARG_UNUSED(info);
|
||||
|
||||
if (info.state == PM_STATE_SUSPEND_TO_IDLE) {
|
||||
if (info->state == PM_STATE_SUSPEND_TO_IDLE) {
|
||||
/* Disable deep sleep upon exit */
|
||||
SCB->SCR &= ~(SCB_SCR_SLEEPDEEP_Msk);
|
||||
}
|
||||
|
|
|
@ -18,9 +18,9 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);
|
|||
*/
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
LOG_DBG("SoC entering power state %d", info.state);
|
||||
LOG_DBG("SoC entering power state %d", info->state);
|
||||
|
||||
/* FIXME: When this function is entered the Kernel has disabled
|
||||
* interrupts using BASEPRI register. This is incorrect as it prevents
|
||||
|
@ -34,7 +34,7 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
/* Set BASEPRI to 0 */
|
||||
irq_unlock(0);
|
||||
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_RUNTIME_IDLE:
|
||||
EMU_EnterEM1();
|
||||
break;
|
||||
|
@ -45,18 +45,18 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
EMU_EnterEM3(true);
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
|
||||
LOG_DBG("SoC leaving power state %d", info.state);
|
||||
LOG_DBG("SoC leaving power state %d", info->state);
|
||||
|
||||
/* Clear PRIMASK */
|
||||
__enable_irq();
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
ARG_UNUSED(info);
|
||||
}
|
||||
|
|
|
@ -20,14 +20,14 @@
|
|||
LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
if (info.state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
if (info->state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 1: /* this corresponds to the STOP0 mode: */
|
||||
/* enter STOP0 mode */
|
||||
LL_PWR_SetPowerMode(LL_PWR_MODE_STOP0);
|
||||
|
@ -44,18 +44,18 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state substate-id %u",
|
||||
info.substate_id);
|
||||
info->substate_id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
if (info.state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power substate %u", info.state);
|
||||
if (info->state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power substate %u", info->state);
|
||||
} else {
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 1: /* STOP0 */
|
||||
__fallthrough;
|
||||
case 2: /* STOP1 */
|
||||
|
@ -65,7 +65,7 @@ __weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
|||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power substate-id %u",
|
||||
info.substate_id);
|
||||
info->substate_id);
|
||||
break;
|
||||
}
|
||||
/* need to restore the clock */
|
||||
|
|
|
@ -28,9 +28,9 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);
|
|||
#endif
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SUSPEND_TO_IDLE:
|
||||
LL_RCC_SetClkAfterWakeFromStop(RCC_STOP_WAKEUPCLOCK_SELECTED);
|
||||
LL_PWR_ClearFlag_WU();
|
||||
|
@ -46,15 +46,15 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
k_cpu_idle();
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SUSPEND_TO_IDLE:
|
||||
LL_LPM_DisableSleepOnExit();
|
||||
LL_LPM_EnableSleep();
|
||||
|
@ -67,7 +67,7 @@ __weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
|||
/* Nothing to do. */
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power substate-id %u", info.state);
|
||||
LOG_DBG("Unsupported power substate-id %u", info->state);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,14 +28,14 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);
|
|||
#endif
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
if (info.state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
if (info->state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 1: /* this corresponds to the STOP0 mode: */
|
||||
/* ensure the proper wake-up system clock */
|
||||
LL_RCC_SetClkAfterWakeFromStop(RCC_STOP_WAKEUPCLOCK_SELECTED);
|
||||
|
@ -68,18 +68,18 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state substate-id %u",
|
||||
info.substate_id);
|
||||
info->substate_id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
if (info.state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power substate-id %u", info.state);
|
||||
if (info->state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power substate-id %u", info->state);
|
||||
} else {
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 1: /* STOP0 */
|
||||
__fallthrough;
|
||||
case 2: /* STOP1 */
|
||||
|
@ -90,7 +90,7 @@ __weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
|||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power substate-id %u",
|
||||
info.substate_id);
|
||||
info->substate_id);
|
||||
break;
|
||||
}
|
||||
/* need to restore the clock */
|
||||
|
|
|
@ -28,14 +28,14 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);
|
|||
#endif
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
if (info.state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
if (info->state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 1: /* this corresponds to the STOP0 mode: */
|
||||
/* ensure the proper wake-up system clock */
|
||||
LL_RCC_SetClkAfterWakeFromStop(RCC_STOP_WAKEUPCLOCK_SELECTED);
|
||||
|
@ -68,18 +68,18 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state substate-id %u",
|
||||
info.substate_id);
|
||||
info->substate_id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
if (info.state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power substate-id %u", info.state);
|
||||
if (info->state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power substate-id %u", info->state);
|
||||
} else {
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 1: /* STOP0 */
|
||||
__fallthrough;
|
||||
case 2: /* STOP1 */
|
||||
|
@ -90,7 +90,7 @@ __weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
|||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power substate-id %u",
|
||||
info.substate_id);
|
||||
info->substate_id);
|
||||
break;
|
||||
}
|
||||
/* need to restore the clock */
|
||||
|
|
|
@ -62,22 +62,22 @@ void set_mode_shutdown(uint8_t substate_id)
|
|||
}
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SUSPEND_TO_IDLE:
|
||||
set_mode_stop(info.substate_id);
|
||||
set_mode_stop(info->substate_id);
|
||||
break;
|
||||
case PM_STATE_STANDBY:
|
||||
/* To be tested */
|
||||
set_mode_standby(info.substate_id);
|
||||
set_mode_standby(info->substate_id);
|
||||
break;
|
||||
case PM_STATE_SOFT_OFF:
|
||||
set_mode_shutdown(info.substate_id);
|
||||
set_mode_shutdown(info->substate_id);
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -89,16 +89,16 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SUSPEND_TO_IDLE:
|
||||
if (info.substate_id <= 3) {
|
||||
if (info->substate_id <= 3) {
|
||||
LL_LPM_DisableSleepOnExit();
|
||||
LL_LPM_EnableSleep();
|
||||
} else {
|
||||
LOG_DBG("Unsupported power substate-id %u",
|
||||
info.substate_id);
|
||||
info->substate_id);
|
||||
}
|
||||
case PM_STATE_STANDBY:
|
||||
/* To be tested */
|
||||
|
@ -113,7 +113,7 @@ __weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
|||
case PM_STATE_SUSPEND_TO_DISK:
|
||||
__fallthrough;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
/* need to restore the clock */
|
||||
|
|
|
@ -84,9 +84,9 @@ static void shutdown_ble_stack(void)
|
|||
}
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
if (info.state == PM_STATE_SOFT_OFF) {
|
||||
if (info->state == PM_STATE_SOFT_OFF) {
|
||||
|
||||
if (IS_ENABLED(CONFIG_BT)) {
|
||||
shutdown_ble_stack();
|
||||
|
@ -99,14 +99,14 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
|
||||
LL_PWR_SetPowerMode(LL_PWR_MODE_SHUTDOWN);
|
||||
|
||||
} else if (info.state == PM_STATE_SUSPEND_TO_IDLE) {
|
||||
} else if (info->state == PM_STATE_SUSPEND_TO_IDLE) {
|
||||
|
||||
lpm_hsem_lock();
|
||||
|
||||
/* ensure HSI is the wake-up system clock */
|
||||
LL_RCC_SetClkAfterWakeFromStop(LL_RCC_STOP_WAKEUPCLOCK_HSI);
|
||||
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 1:
|
||||
/* enter STOP0 mode */
|
||||
LL_PWR_SetPowerMode(LL_PWR_MODE_STOP0);
|
||||
|
@ -122,12 +122,12 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
default:
|
||||
/* Release RCC semaphore */
|
||||
z_stm32_hsem_unlock(CFG_HW_RCC_SEMID);
|
||||
LOG_DBG("Unsupported power substate-id %u", info.substate_id);
|
||||
LOG_DBG("Unsupported power substate-id %u", info->substate_id);
|
||||
return;
|
||||
}
|
||||
|
||||
} else {
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -141,17 +141,17 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
/* Implementation of STM32 AN5289 algorithm to enter/exit lowpower */
|
||||
/* Release ENTRY_STOP_MODE semaphore */
|
||||
LL_HSEM_ReleaseLock(HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0);
|
||||
z_stm32_hsem_lock(CFG_HW_RCC_SEMID, HSEM_LOCK_WAIT_FOREVER);
|
||||
|
||||
if (info.state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
if (info->state != PM_STATE_SUSPEND_TO_IDLE) {
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
} else {
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 1: /* STOP0 */
|
||||
__fallthrough;
|
||||
case 2: /* STOP1 */
|
||||
|
@ -162,7 +162,7 @@ __weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
|||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power substate-id %u",
|
||||
info.substate_id);
|
||||
info->substate_id);
|
||||
break;
|
||||
}
|
||||
/* need to restore the clock */
|
||||
|
|
|
@ -28,13 +28,13 @@ LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);
|
|||
#endif
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SUSPEND_TO_IDLE:
|
||||
LL_RCC_SetClkAfterWakeFromStop(RCC_STOP_WAKEUPCLOCK_SELECTED);
|
||||
LL_PWR_ClearFlag_WU();
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 1:
|
||||
LL_PWR_SetPowerMode(LL_PWR_MODE_STOP0);
|
||||
break;
|
||||
|
@ -45,7 +45,7 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
LL_PWR_SetPowerMode(LL_PWR_MODE_STOP2);
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power substate-id %u", info.substate_id);
|
||||
LOG_DBG("Unsupported power substate-id %u", info->substate_id);
|
||||
return;
|
||||
}
|
||||
LL_LPM_EnableDeepSleep();
|
||||
|
@ -53,7 +53,7 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
break;
|
||||
case PM_STATE_SOFT_OFF:
|
||||
LL_PWR_ClearFlag_WU();
|
||||
switch (info.substate_id) {
|
||||
switch (info->substate_id) {
|
||||
case 0:
|
||||
LL_PWR_SetPowerMode(LL_PWR_MODE_STANDBY);
|
||||
break;
|
||||
|
@ -61,22 +61,22 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
LL_PWR_SetPowerMode(LL_PWR_MODE_SHUTDOWN);
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power substate-id %u", info.substate_id);
|
||||
LOG_DBG("Unsupported power substate-id %u", info->substate_id);
|
||||
return;
|
||||
}
|
||||
LL_LPM_EnableDeepSleep();
|
||||
k_cpu_idle();
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SUSPEND_TO_IDLE:
|
||||
LL_LPM_DisableSleepOnExit();
|
||||
LL_LPM_EnableSleep();
|
||||
|
@ -87,7 +87,7 @@ __weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
|||
/* Nothing to do. */
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power substate-id %u", info.state);
|
||||
LOG_DBG("Unsupported power substate-id %u", info->state);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -57,12 +57,12 @@ extern PowerCC26X2_ModuleState PowerCC26X2_module;
|
|||
*/
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
uint32_t modeVIMS;
|
||||
uint32_t constraints;
|
||||
|
||||
LOG_DBG("SoC entering power state %d", info.state);
|
||||
LOG_DBG("SoC entering power state %d", info->state);
|
||||
|
||||
/* Switch to using PRIMASK instead of BASEPRI register, since
|
||||
* we are only able to wake up from standby while using PRIMASK.
|
||||
|
@ -72,7 +72,7 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
/* Set BASEPRI to 0 */
|
||||
irq_unlock(0);
|
||||
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
case PM_STATE_SUSPEND_TO_IDLE:
|
||||
/* query the declared constraints */
|
||||
constraints = Power_getConstraintMask();
|
||||
|
@ -111,15 +111,15 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
Power_shutdown(0, 0);
|
||||
break;
|
||||
default:
|
||||
LOG_DBG("Unsupported power state %u", info.state);
|
||||
LOG_DBG("Unsupported power state %u", info->state);
|
||||
break;
|
||||
}
|
||||
|
||||
LOG_DBG("SoC leaving power state %d", info.state);
|
||||
LOG_DBG("SoC leaving power state %d", info->state);
|
||||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
/*
|
||||
* System is now in active mode. Reenable interrupts which were disabled
|
||||
|
|
|
@ -17,9 +17,9 @@ static void ite_power_soc_deep_doze(void)
|
|||
}
|
||||
|
||||
/* Invoke Low Power/System Off specific Tasks */
|
||||
__weak void pm_power_state_set(struct pm_state_info info)
|
||||
__weak void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
switch (info.state) {
|
||||
switch (info->state) {
|
||||
/* Deep doze mode */
|
||||
case PM_STATE_STANDBY:
|
||||
ite_power_soc_deep_doze();
|
||||
|
@ -30,7 +30,7 @@ __weak void pm_power_state_set(struct pm_state_info info)
|
|||
}
|
||||
|
||||
/* Handle SOC specific activity after Low Power Mode Exit */
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
__weak void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
ARG_UNUSED(info);
|
||||
}
|
||||
|
|
|
@ -102,10 +102,10 @@ static void pm_resume_devices(void)
|
|||
}
|
||||
#endif /* CONFIG_PM_DEVICE */
|
||||
|
||||
static inline void exit_pos_ops(struct pm_state_info info)
|
||||
static inline void exit_pos_ops(struct pm_state_info *info)
|
||||
{
|
||||
extern __weak void
|
||||
pm_power_state_exit_post_ops(struct pm_state_info info);
|
||||
pm_power_state_exit_post_ops(struct pm_state_info *info);
|
||||
|
||||
if (pm_power_state_exit_post_ops != NULL) {
|
||||
pm_power_state_exit_post_ops(info);
|
||||
|
@ -121,10 +121,10 @@ static inline void exit_pos_ops(struct pm_state_info info)
|
|||
}
|
||||
}
|
||||
|
||||
static inline void pm_state_set(struct pm_state_info info)
|
||||
static inline void pm_state_set(struct pm_state_info *info)
|
||||
{
|
||||
extern __weak void
|
||||
pm_power_state_set(struct pm_state_info info);
|
||||
pm_power_state_set(struct pm_state_info *info);
|
||||
|
||||
if (pm_power_state_set != NULL) {
|
||||
pm_power_state_set(info);
|
||||
|
@ -173,23 +173,23 @@ void pm_system_resume(void)
|
|||
* and it may schedule another thread.
|
||||
*/
|
||||
if (atomic_test_and_clear_bit(z_post_ops_required, id)) {
|
||||
exit_pos_ops(z_cpus_pm_state[id]);
|
||||
exit_pos_ops(&z_cpus_pm_state[id]);
|
||||
pm_state_notify(false);
|
||||
z_cpus_pm_state[id] = (struct pm_state_info){PM_STATE_ACTIVE,
|
||||
0, 0};
|
||||
}
|
||||
}
|
||||
|
||||
bool pm_power_state_force(uint8_t cpu, struct pm_state_info info)
|
||||
bool pm_power_state_force(uint8_t cpu, const struct pm_state_info *info)
|
||||
{
|
||||
bool ret = false;
|
||||
|
||||
__ASSERT(info.state < PM_STATE_COUNT,
|
||||
"Invalid power state %d!", info.state);
|
||||
__ASSERT(info->state < PM_STATE_COUNT,
|
||||
"Invalid power state %d!", info->state);
|
||||
|
||||
|
||||
if (!atomic_test_and_set_bit(z_cpus_pm_state_forced, cpu)) {
|
||||
z_cpus_pm_state[cpu] = info;
|
||||
z_cpus_pm_state[cpu] = *info;
|
||||
ret = true;
|
||||
}
|
||||
|
||||
|
@ -261,7 +261,7 @@ bool pm_system_suspend(int32_t ticks)
|
|||
/* Enter power state */
|
||||
pm_state_notify(true);
|
||||
atomic_set_bit(z_post_ops_required, id);
|
||||
pm_state_set(z_cpus_pm_state[id]);
|
||||
pm_state_set(&z_cpus_pm_state[id]);
|
||||
pm_stats_stop();
|
||||
|
||||
/* Wake up sequence starts here */
|
||||
|
@ -303,7 +303,7 @@ int pm_notifier_unregister(struct pm_notifier *notifier)
|
|||
return ret;
|
||||
}
|
||||
|
||||
struct pm_state_info pm_power_state_next_get(uint8_t cpu)
|
||||
const struct pm_state_info *pm_power_state_next_get(uint8_t cpu)
|
||||
{
|
||||
return z_cpus_pm_state[cpu];
|
||||
return &z_cpus_pm_state[cpu];
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ static const struct device *dev;
|
|||
static uint8_t sleep_count;
|
||||
|
||||
|
||||
void pm_power_state_set(struct pm_state_info info)
|
||||
void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
ARG_UNUSED(info);
|
||||
|
||||
|
@ -28,7 +28,7 @@ void pm_power_state_set(struct pm_state_info info)
|
|||
* Devices are suspended before SoC on PM_STATE_SUSPEND_TO_RAM, that is why
|
||||
* we can check the device state here.
|
||||
*/
|
||||
zassert_equal(info.state, PM_STATE_SUSPEND_TO_RAM, "Wrong system state");
|
||||
zassert_equal(info->state, PM_STATE_SUSPEND_TO_RAM, "Wrong system state");
|
||||
|
||||
(void)pm_device_state_get(dev, &state);
|
||||
zassert_equal(state, PM_DEVICE_STATE_SUSPENDED, "Wrong device state");
|
||||
|
@ -39,7 +39,7 @@ void pm_power_state_set(struct pm_state_info info)
|
|||
(void)pm_device_wakeup_enable((struct device *)dev, true);
|
||||
break;
|
||||
case 2:
|
||||
zassert_equal(info.state, PM_STATE_SUSPEND_TO_RAM, "Wrong system state");
|
||||
zassert_equal(info->state, PM_STATE_SUSPEND_TO_RAM, "Wrong system state");
|
||||
|
||||
/* Second time this function is called, the system is asked to standby
|
||||
* and devices were suspended.
|
||||
|
@ -52,7 +52,7 @@ void pm_power_state_set(struct pm_state_info info)
|
|||
}
|
||||
}
|
||||
|
||||
void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
irq_unlock(0);
|
||||
}
|
||||
|
|
|
@ -141,7 +141,7 @@ DEVICE_DT_DEFINE(DT_INST(2, test_device_pm), device_init,
|
|||
|
||||
|
||||
|
||||
void pm_power_state_set(struct pm_state_info info)
|
||||
void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
enum pm_device_state device_power_state;
|
||||
|
||||
|
@ -185,11 +185,11 @@ void pm_power_state_set(struct pm_state_info info)
|
|||
/* this function is called when system entering low power state, so
|
||||
* parameter state should not be PM_STATE_ACTIVE
|
||||
*/
|
||||
zassert_false(info.state == PM_STATE_ACTIVE,
|
||||
zassert_false(info->state == PM_STATE_ACTIVE,
|
||||
"Entering low power state with a wrong parameter");
|
||||
}
|
||||
|
||||
void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
/* pm_system_suspend is entered with irq locked
|
||||
* unlock irq before leave pm_system_suspend
|
||||
|
|
|
@ -30,21 +30,21 @@ BUILD_ASSERT(CONFIG_MP_NUM_CPUS == 2, "Invalid number of cpus");
|
|||
|
||||
static enum pm_state state_testing[2];
|
||||
|
||||
void pm_power_state_set(struct pm_state_info info)
|
||||
void pm_power_state_set(struct pm_state_info *info)
|
||||
{
|
||||
switch (state_testing[_current_cpu->id]) {
|
||||
case PM_STATE_ACTIVE:
|
||||
zassert_equal(PM_STATE_ACTIVE, info.state, NULL);
|
||||
zassert_equal(PM_STATE_ACTIVE, info->state, NULL);
|
||||
break;
|
||||
case PM_STATE_RUNTIME_IDLE:
|
||||
zassert_equal(PM_STATE_RUNTIME_IDLE, info.state, NULL);
|
||||
zassert_equal(PM_STATE_RUNTIME_IDLE, info->state, NULL);
|
||||
break;
|
||||
case PM_STATE_SUSPEND_TO_IDLE:
|
||||
zassert_equal(PM_STATE_SUSPEND_TO_IDLE, info.state, NULL);
|
||||
zassert_equal(PM_STATE_SUSPEND_TO_IDLE, info->state, NULL);
|
||||
break;
|
||||
case PM_STATE_STANDBY:
|
||||
zassert_equal(_current_cpu->id, 1U, NULL);
|
||||
zassert_equal(PM_STATE_STANDBY, info.state, NULL);
|
||||
zassert_equal(PM_STATE_STANDBY, info->state, NULL);
|
||||
break;
|
||||
default:
|
||||
zassert_unreachable(NULL);
|
||||
|
@ -52,7 +52,7 @@ void pm_power_state_set(struct pm_state_info info)
|
|||
}
|
||||
}
|
||||
|
||||
void pm_power_state_exit_post_ops(struct pm_state_info info)
|
||||
void pm_power_state_exit_post_ops(struct pm_state_info *info)
|
||||
{
|
||||
/* pm_system_suspend is entered with irq locked
|
||||
* unlock irq before leave pm_system_suspend
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue