diff --git a/drivers/display/display_st7789v.c b/drivers/display/display_st7789v.c index 2b4411c85ec..ac2a8e10066 100644 --- a/drivers/display/display_st7789v.c +++ b/drivers/display/display_st7789v.c @@ -409,14 +409,14 @@ static void st7789v_enter_sleep(struct st7789v_data *data) } static int st7789v_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; struct st7789v_data *data = (struct st7789v_data *)dev->data; switch (ctrl_command) { - case PM_DEVICE_STATE_SET: - if (*((uint32_t *)context) == PM_DEVICE_ACTIVE_STATE) { + case DEVICE_PM_SET_POWER_STATE: + if (*state == PM_DEVICE_ACTIVE_STATE) { st7789v_exit_sleep(data); data->pm_state = PM_DEVICE_ACTIVE_STATE; ret = 0; @@ -427,14 +427,14 @@ static int st7789v_pm_control(const struct device *dev, uint32_t ctrl_command, } break; case PM_DEVICE_STATE_GET: - *((uint32_t *)context) = data->pm_state; + *state = data->pm_state; break; default: ret = -EINVAL; } if (cb != NULL) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; } diff --git a/drivers/entropy/entropy_cc13xx_cc26xx.c b/drivers/entropy/entropy_cc13xx_cc26xx.c index d12eca90545..d4123ca64d3 100644 --- a/drivers/entropy/entropy_cc13xx_cc26xx.c +++ b/drivers/entropy/entropy_cc13xx_cc26xx.c @@ -293,14 +293,14 @@ static int entropy_cc13xx_cc26xx_set_power_state(const struct device *dev, static int entropy_cc13xx_cc26xx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, + uint32_t *state, pm_device_cb cb, void *arg) { struct entropy_cc13xx_cc26xx_data *data = get_dev_data(dev); int ret = 0; if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != data->pm_state) { ret = entropy_cc13xx_cc26xx_set_power_state(dev, @@ -308,11 +308,11 @@ static int entropy_cc13xx_cc26xx_pm_control(const struct device *dev, } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = data->pm_state; + *state = data->pm_state; } if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; diff --git a/drivers/ethernet/eth_mcux.c b/drivers/ethernet/eth_mcux.c index 72f3c7d7f10..094167cebe3 100644 --- a/drivers/ethernet/eth_mcux.c +++ b/drivers/ethernet/eth_mcux.c @@ -186,7 +186,8 @@ void eth_mcux_phy_stop(struct eth_context *context); static int eth_mcux_device_pm_control(const struct device *dev, uint32_t command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, + void *arg) { struct eth_context *eth_ctx = (struct eth_context *)dev->data; int ret = 0; @@ -199,7 +200,7 @@ static int eth_mcux_device_pm_control(const struct device *dev, } if (command == PM_DEVICE_STATE_SET) { - if (*(uint32_t *)context == PM_DEVICE_SUSPEND_STATE) { + if (*state == PM_DEVICE_SUSPEND_STATE) { LOG_DBG("Suspending"); ret = net_if_suspend(eth_ctx->iface); @@ -214,7 +215,7 @@ static int eth_mcux_device_pm_control(const struct device *dev, ENET_Deinit(eth_ctx->base); clock_control_off(eth_ctx->clock_dev, (clock_control_subsys_t)eth_ctx->clock); - } else if (*(uint32_t *)context == PM_DEVICE_ACTIVE_STATE) { + } else if (*state == PM_DEVICE_ACTIVE_STATE) { LOG_DBG("Resuming"); clock_control_on(eth_ctx->clock_dev, @@ -228,7 +229,7 @@ static int eth_mcux_device_pm_control(const struct device *dev, out: if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; diff --git a/drivers/flash/spi_flash_at45.c b/drivers/flash/spi_flash_at45.c index 1ecd216bab1..f3332a0350a 100644 --- a/drivers/flash/spi_flash_at45.c +++ b/drivers/flash/spi_flash_at45.c @@ -629,14 +629,15 @@ static int spi_flash_at45_init(const struct device *dev) #if IS_ENABLED(CONFIG_PM_DEVICE) static int spi_flash_at45_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, + void *arg) { struct spi_flash_at45_data *dev_data = get_dev_data(dev); const struct spi_flash_at45_config *dev_config = get_dev_config(dev); int err = 0; if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != dev_data->pm_state) { switch (new_state) { @@ -666,11 +667,11 @@ static int spi_flash_at45_pm_control(const struct device *dev, } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = dev_data->pm_state; + *state = dev_data->pm_state; } if (cb) { - cb(dev, err, context, arg); + cb(dev, err, state, arg); } return err; diff --git a/drivers/gpio/gpio_stm32.c b/drivers/gpio/gpio_stm32.c index 295347c94cd..cba3f741906 100644 --- a/drivers/gpio/gpio_stm32.c +++ b/drivers/gpio/gpio_stm32.c @@ -605,7 +605,7 @@ static int gpio_stm32_set_power_state(const struct device *dev, static int gpio_stm32_pm_device_ctrl(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { struct gpio_stm32_data *data = dev->data; uint32_t new_state; @@ -613,13 +613,13 @@ static int gpio_stm32_pm_device_ctrl(const struct device *dev, switch (ctrl_command) { case PM_DEVICE_STATE_SET: - new_state = *((const uint32_t *)context); + new_state = *state; if (new_state != data->power_state) { ret = gpio_stm32_set_power_state(dev, new_state); } break; case PM_DEVICE_STATE_GET: - *((uint32_t *)context) = gpio_stm32_get_power_state(dev); + *state = gpio_stm32_get_power_state(dev); break; default: ret = -EINVAL; @@ -627,7 +627,7 @@ static int gpio_stm32_pm_device_ctrl(const struct device *dev, } if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; diff --git a/drivers/i2c/i2c_cc13xx_cc26xx.c b/drivers/i2c/i2c_cc13xx_cc26xx.c index 4ccf76b8999..277f7744991 100644 --- a/drivers/i2c/i2c_cc13xx_cc26xx.c +++ b/drivers/i2c/i2c_cc13xx_cc26xx.c @@ -368,13 +368,13 @@ static int i2c_cc13xx_cc26xx_set_power_state(const struct device *dev, static int i2c_cc13xx_cc26xx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != get_dev_data(dev)->pm_state) { ret = i2c_cc13xx_cc26xx_set_power_state(dev, @@ -382,11 +382,11 @@ static int i2c_cc13xx_cc26xx_pm_control(const struct device *dev, } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = get_dev_data(dev)->pm_state; + *state = get_dev_data(dev)->pm_state; } if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; diff --git a/drivers/i2c/i2c_nrfx_twi.c b/drivers/i2c/i2c_nrfx_twi.c index c851ad2b41d..8a9c6b310b7 100644 --- a/drivers/i2c/i2c_nrfx_twi.c +++ b/drivers/i2c/i2c_nrfx_twi.c @@ -224,13 +224,13 @@ static int init_twi(const struct device *dev) #ifdef CONFIG_PM_DEVICE static int twi_nrfx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; uint32_t pm_current_state = get_dev_data(dev)->pm_state; if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != pm_current_state) { switch (new_state) { @@ -260,11 +260,11 @@ static int twi_nrfx_pm_control(const struct device *dev, } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = get_dev_data(dev)->pm_state; + *state = get_dev_data(dev)->pm_state; } if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; diff --git a/drivers/i2c/i2c_nrfx_twim.c b/drivers/i2c/i2c_nrfx_twim.c index e0a4a7b18e6..2b96d136fc7 100644 --- a/drivers/i2c/i2c_nrfx_twim.c +++ b/drivers/i2c/i2c_nrfx_twim.c @@ -263,13 +263,13 @@ static int init_twim(const struct device *dev) #ifdef CONFIG_PM_DEVICE static int twim_nrfx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; uint32_t pm_current_state = get_dev_data(dev)->pm_state; if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != pm_current_state) { switch (new_state) { @@ -300,11 +300,11 @@ static int twim_nrfx_pm_control(const struct device *dev, } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = get_dev_data(dev)->pm_state; + *state = get_dev_data(dev)->pm_state; } if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; diff --git a/drivers/interrupt_controller/intc_arcv2_irq_unit.c b/drivers/interrupt_controller/intc_arcv2_irq_unit.c index 8ee9a7002f0..ba8eb13b06e 100644 --- a/drivers/interrupt_controller/intc_arcv2_irq_unit.c +++ b/drivers/interrupt_controller/intc_arcv2_irq_unit.c @@ -192,7 +192,7 @@ static int arc_v2_irq_unit_get_state(const struct device *dev) * @return operation result */ static int arc_v2_irq_unit_device_ctrl(const struct device *dev, - uint32_t ctrl_command, void *context, + uint32_t ctrl_command, uint32_t *context, pm_device_cb cb, void *arg) { int ret = 0; diff --git a/drivers/interrupt_controller/intc_ioapic.c b/drivers/interrupt_controller/intc_ioapic.c index 9966f3463ad..7a1092b677f 100644 --- a/drivers/interrupt_controller/intc_ioapic.c +++ b/drivers/interrupt_controller/intc_ioapic.c @@ -303,7 +303,7 @@ int ioapic_resume_from_suspend(const struct device *port) */ static int ioapic_device_ctrl(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *context, pm_device_cb cb, void *arg) { int ret = 0; diff --git a/drivers/interrupt_controller/intc_loapic.c b/drivers/interrupt_controller/intc_loapic.c index 3b0e2b04ec0..a6f9a6bf08d 100644 --- a/drivers/interrupt_controller/intc_loapic.c +++ b/drivers/interrupt_controller/intc_loapic.c @@ -404,18 +404,18 @@ int loapic_resume(const struct device *port) */ static int loapic_device_ctrl(const struct device *port, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *context, pm_device_cb cb, void *arg) { int ret = 0; if (ctrl_command == PM_DEVICE_STATE_SET) { - if (*((uint32_t *)context) == PM_DEVICE_SUSPEND_STATE) { + if (*context == PM_DEVICE_SUSPEND_STATE) { ret = loapic_suspend(port); - } else if (*((uint32_t *)context) == PM_DEVICE_ACTIVE_STATE) { + } else if (*context == PM_DEVICE_ACTIVE_STATE) { ret = loapic_resume(port); } } else if (ctrl_command == PM_DEVICE_STATE_GET) { - *((uint32_t *)context) = loapic_device_power_state; + *context = loapic_device_power_state; } if (cb) { diff --git a/drivers/pwm/pwm_nrfx.c b/drivers/pwm/pwm_nrfx.c index f6ed909e008..83698881a4f 100644 --- a/drivers/pwm/pwm_nrfx.c +++ b/drivers/pwm/pwm_nrfx.c @@ -317,25 +317,25 @@ static int pwm_nrfx_set_power_state(uint32_t new_state, static int pwm_nrfx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, + uint32_t *state, uint32_t *current_state) { int err = 0; if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *((const uint32_t *)state); if (new_state != (*current_state)) { err = pwm_nrfx_set_power_state(new_state, *current_state, dev); if (!err) { - (*current_state) = new_state; + *current_state = new_state; } } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = (*current_state); + *state = *current_state; } return err; @@ -344,16 +344,16 @@ static int pwm_nrfx_pm_control(const struct device *dev, #define PWM_NRFX_PM_CONTROL(idx) \ static int pwm_##idx##_nrfx_pm_control(const struct device *dev, \ uint32_t ctrl_command, \ - void *context, \ + uint32_t *state, \ pm_device_cb cb, \ void *arg) \ { \ static uint32_t current_state = PM_DEVICE_ACTIVE_STATE; \ int ret = 0; \ - ret = pwm_nrfx_pm_control(dev, ctrl_command, context, \ + ret = pwm_nrfx_pm_control(dev, ctrl_command, state, \ ¤t_state); \ if (cb) { \ - cb(dev, ret, context, arg); \ + cb(dev, ret, state, arg); \ } \ return ret; \ } diff --git a/drivers/sensor/lis2mdl/lis2mdl.c b/drivers/sensor/lis2mdl/lis2mdl.c index b2e181e5851..308d110b44b 100644 --- a/drivers/sensor/lis2mdl/lis2mdl.c +++ b/drivers/sensor/lis2mdl/lis2mdl.c @@ -520,7 +520,7 @@ static int lis2mdl_set_power_state(struct lis2mdl_data *lis2mdl, } static int lis2mdl_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { struct lis2mdl_data *lis2mdl = dev->data; const struct lis2mdl_config *const config = dev->config; @@ -530,14 +530,14 @@ static int lis2mdl_pm_control(const struct device *dev, uint32_t ctrl_command, switch (ctrl_command) { case PM_DEVICE_STATE_SET: - new_state = *((const uint32_t *)context); + new_state = *state; if (new_state != current_state) { status = lis2mdl_set_power_state(lis2mdl, config, new_state); } break; case PM_DEVICE_STATE_GET: - *((uint32_t *)context) = current_state; + *state = current_state; break; default: LOG_ERR("Got unknown power management control command"); @@ -545,7 +545,7 @@ static int lis2mdl_pm_control(const struct device *dev, uint32_t ctrl_command, } if (cb) { - cb(dev, status, context, arg); + cb(dev, status, state, arg); } return status; diff --git a/drivers/sensor/qdec_nrfx/qdec_nrfx.c b/drivers/sensor/qdec_nrfx/qdec_nrfx.c index ff5bb2653e7..b22e771fc99 100644 --- a/drivers/sensor/qdec_nrfx/qdec_nrfx.c +++ b/drivers/sensor/qdec_nrfx/qdec_nrfx.c @@ -218,7 +218,7 @@ static int qdec_nrfx_init(const struct device *dev) #ifdef CONFIG_PM_DEVICE static int qdec_nrfx_pm_get_state(struct qdec_nrfx_data *data, - uint32_t *state) + uint32_t *state) { unsigned int key = irq_lock(); *state = data->pm_state; @@ -228,7 +228,7 @@ static int qdec_nrfx_pm_get_state(struct qdec_nrfx_data *data, } static int qdec_nrfx_pm_set_state(struct qdec_nrfx_data *data, - uint32_t new_state) + uint32_t new_state) { uint32_t old_state; unsigned int key; @@ -268,7 +268,7 @@ static int qdec_nrfx_pm_set_state(struct qdec_nrfx_data *data, static int qdec_nrfx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { struct qdec_nrfx_data *data = &qdec_nrfx_data; int err; @@ -277,11 +277,11 @@ static int qdec_nrfx_pm_control(const struct device *dev, switch (ctrl_command) { case PM_DEVICE_STATE_GET: - err = qdec_nrfx_pm_get_state(data, context); + err = qdec_nrfx_pm_get_state(data, state); break; case PM_DEVICE_STATE_SET: - err = qdec_nrfx_pm_set_state(data, *((uint32_t *)context)); + err = qdec_nrfx_pm_set_state(data, *state); break; default: @@ -290,7 +290,7 @@ static int qdec_nrfx_pm_control(const struct device *dev, } if (cb) { - cb(dev, err, context, arg); + cb(dev, err, state, arg); } return err; diff --git a/drivers/serial/uart_cc13xx_cc26xx.c b/drivers/serial/uart_cc13xx_cc26xx.c index 4dcc39829d5..b12377407c8 100644 --- a/drivers/serial/uart_cc13xx_cc26xx.c +++ b/drivers/serial/uart_cc13xx_cc26xx.c @@ -444,13 +444,13 @@ static int uart_cc13xx_cc26xx_set_power_state(const struct device *dev, static int uart_cc13xx_cc26xx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != get_dev_data(dev)->pm_state) { ret = uart_cc13xx_cc26xx_set_power_state(dev, @@ -458,11 +458,11 @@ static int uart_cc13xx_cc26xx_pm_control(const struct device *dev, } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = get_dev_data(dev)->pm_state; + *state = get_dev_data(dev)->pm_state; } if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; diff --git a/drivers/serial/uart_npcx.c b/drivers/serial/uart_npcx.c index 8e13cf758e1..c71d3d87556 100644 --- a/drivers/serial/uart_npcx.c +++ b/drivers/serial/uart_npcx.c @@ -470,23 +470,23 @@ static inline int uart_npcx_set_power_state(const struct device *dev, /* Implements the device power management control functionality */ static int uart_npcx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; switch (ctrl_command) { case PM_DEVICE_STATE_SET: - ret = uart_npcx_set_power_state(dev, *((uint32_t *)context)); + ret = uart_npcx_set_power_state(dev, *state); break; case PM_DEVICE_STATE_GET: - ret = uart_npcx_get_power_state(dev, (uint32_t *)context); + ret = uart_npcx_get_power_state(dev, state); break; default: ret = -EINVAL; } if (cb != NULL) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; } diff --git a/drivers/serial/uart_nrfx_uart.c b/drivers/serial/uart_nrfx_uart.c index 7dee9a3b51f..1f2c902b0ca 100644 --- a/drivers/serial/uart_nrfx_uart.c +++ b/drivers/serial/uart_nrfx_uart.c @@ -1158,12 +1158,12 @@ static void uart_nrfx_set_power_state(const struct device *dev, static int uart_nrfx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { static uint32_t current_state = PM_DEVICE_ACTIVE_STATE; if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != current_state) { uart_nrfx_set_power_state(dev, new_state); @@ -1171,11 +1171,11 @@ static int uart_nrfx_pm_control(const struct device *dev, } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = current_state; + *state = current_state; } if (cb) { - cb(dev, 0, context, arg); + cb(dev, 0, state, arg); } return 0; diff --git a/drivers/serial/uart_nrfx_uarte.c b/drivers/serial/uart_nrfx_uarte.c index fa48fd16b14..ca30cbd357a 100644 --- a/drivers/serial/uart_nrfx_uarte.c +++ b/drivers/serial/uart_nrfx_uarte.c @@ -1865,23 +1865,23 @@ static void uarte_nrfx_set_power_state(const struct device *dev, static int uarte_nrfx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { struct uarte_nrfx_data *data = get_dev_data(dev); if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != data->pm_state) { uarte_nrfx_set_power_state(dev, new_state); } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = data->pm_state; + *state = data->pm_state; } if (cb) { - cb(dev, 0, context, arg); + cb(dev, 0, state, arg); } return 0; diff --git a/drivers/serial/uart_stm32.c b/drivers/serial/uart_stm32.c index a667ce68837..6f7184189e4 100644 --- a/drivers/serial/uart_stm32.c +++ b/drivers/serial/uart_stm32.c @@ -1461,24 +1461,24 @@ static int uart_stm32_set_power_state(const struct device *dev, */ static int uart_stm32_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, + uint32_t *state, pm_device_cb cb, void *arg) { struct uart_stm32_data *data = DEV_DATA(dev); if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != data->pm_state) { uart_stm32_set_power_state(dev, new_state); } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = data->pm_state; + *state = data->pm_state; } if (cb) { - cb(dev, 0, context, arg); + cb(dev, 0, state, arg); } return 0; diff --git a/drivers/spi/spi_cc13xx_cc26xx.c b/drivers/spi/spi_cc13xx_cc26xx.c index 4cdeb322cbd..1f78ad4bad5 100644 --- a/drivers/spi/spi_cc13xx_cc26xx.c +++ b/drivers/spi/spi_cc13xx_cc26xx.c @@ -251,13 +251,13 @@ static int spi_cc13xx_cc26xx_set_power_state(const struct device *dev, static int spi_cc13xx_cc26xx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != get_dev_data(dev)->pm_state) { ret = spi_cc13xx_cc26xx_set_power_state(dev, @@ -265,11 +265,11 @@ static int spi_cc13xx_cc26xx_pm_control(const struct device *dev, } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = get_dev_data(dev)->pm_state; + *state = get_dev_data(dev)->pm_state; } if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; diff --git a/drivers/spi/spi_nrfx_spi.c b/drivers/spi/spi_nrfx_spi.c index a422efae9d8..1e95da998a8 100644 --- a/drivers/spi/spi_nrfx_spi.c +++ b/drivers/spi/spi_nrfx_spi.c @@ -286,14 +286,14 @@ static int init_spi(const struct device *dev) #ifdef CONFIG_PM_DEVICE static int spi_nrfx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; struct spi_nrfx_data *data = get_dev_data(dev); const struct spi_nrfx_config *config = get_dev_config(dev); if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != data->pm_state) { switch (new_state) { @@ -320,11 +320,11 @@ static int spi_nrfx_pm_control(const struct device *dev, } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = data->pm_state; + *state = data->pm_state; } if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; diff --git a/drivers/spi/spi_nrfx_spim.c b/drivers/spi/spi_nrfx_spim.c index ff84506e834..ec5f27ad0e0 100644 --- a/drivers/spi/spi_nrfx_spim.c +++ b/drivers/spi/spi_nrfx_spim.c @@ -334,14 +334,14 @@ static int init_spim(const struct device *dev) #ifdef CONFIG_PM_DEVICE static int spim_nrfx_pm_control(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; struct spi_nrfx_data *data = get_dev_data(dev); const struct spi_nrfx_config *config = get_dev_config(dev); if (ctrl_command == PM_DEVICE_STATE_SET) { - uint32_t new_state = *((const uint32_t *)context); + uint32_t new_state = *state; if (new_state != data->pm_state) { switch (new_state) { @@ -368,11 +368,11 @@ static int spim_nrfx_pm_control(const struct device *dev, } } else { __ASSERT_NO_MSG(ctrl_command == PM_DEVICE_STATE_GET); - *((uint32_t *)context) = data->pm_state; + *state = data->pm_state; } if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; diff --git a/drivers/timer/sys_clock_init.c b/drivers/timer/sys_clock_init.c index f831d99f919..62ddcfe216f 100644 --- a/drivers/timer/sys_clock_init.c +++ b/drivers/timer/sys_clock_init.c @@ -32,7 +32,7 @@ int __weak sys_clock_driver_init(const struct device *dev) int __weak sys_clock_device_ctrl(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *context, pm_device_cb cb, void *arg) { return -ENOTSUP; } diff --git a/include/device.h b/include/device.h index 3a60fbe1a93..3216d54689c 100644 --- a/include/device.h +++ b/include/device.h @@ -387,7 +387,7 @@ struct device { #ifdef CONFIG_PM_DEVICE /** Power Management function */ int (*pm_control)(const struct device *dev, uint32_t command, - void *context, pm_device_cb cb, void *arg); + uint32_t *state, pm_device_cb cb, void *arg); /** Pointer to device instance power management data */ struct pm_device * const pm; #endif diff --git a/include/pm/device.h b/include/pm/device.h index 7e90bfcef7f..6a86df60d37 100644 --- a/include/pm/device.h +++ b/include/pm/device.h @@ -78,7 +78,7 @@ struct device; #define PM_DEVICE_STATE_GET 2 typedef void (*pm_device_cb)(const struct device *dev, - int status, void *context, void *arg); + int status, uint32_t *state, void *arg); /** * @brief Device PM info diff --git a/samples/subsys/pm/device_pm/src/dummy_driver.c b/samples/subsys/pm/device_pm/src/dummy_driver.c index 6ce968c5f02..18d7e421c79 100644 --- a/samples/subsys/pm/device_pm/src/dummy_driver.c +++ b/samples/subsys/pm/device_pm/src/dummy_driver.c @@ -117,27 +117,27 @@ static int dummy_resume_from_suspend(const struct device *dev) static int dummy_device_pm_ctrl(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; switch (ctrl_command) { case PM_DEVICE_STATE_SET: - if (*((uint32_t *)context) == PM_DEVICE_ACTIVE_STATE) { + if (*state == PM_DEVICE_ACTIVE_STATE) { ret = dummy_resume_from_suspend(dev); } else { ret = dummy_suspend(dev); } break; case PM_DEVICE_STATE_GET: - *((uint32_t *)context) = dummy_get_power_state(dev); + *state = dummy_get_power_state(dev); break; default: ret = -EINVAL; } - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); return ret; } diff --git a/samples/subsys/pm/device_pm/src/dummy_parent.c b/samples/subsys/pm/device_pm/src/dummy_parent.c index 11dbb919c5c..c5f0e4b12f6 100644 --- a/samples/subsys/pm/device_pm/src/dummy_parent.c +++ b/samples/subsys/pm/device_pm/src/dummy_parent.c @@ -48,27 +48,27 @@ static int dummy_resume_from_suspend(const struct device *dev) static int dummy_parent_pm_ctrl(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; switch (ctrl_command) { case PM_DEVICE_STATE_SET: - if (*((uint32_t *)context) == PM_DEVICE_ACTIVE_STATE) { + if (*state == PM_DEVICE_ACTIVE_STATE) { ret = dummy_resume_from_suspend(dev); } else { ret = dummy_suspend(dev); } break; case PM_DEVICE_STATE_GET: - *((uint32_t *)context) = dummy_get_power_state(dev); + *state = dummy_get_power_state(dev); break; default: ret = -EINVAL; } - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); return ret; } diff --git a/subsys/pm/device_runtime.c b/subsys/pm/device_runtime.c index eac32d5d109..2bb4a6a5043 100644 --- a/subsys/pm/device_runtime.c +++ b/subsys/pm/device_runtime.c @@ -27,12 +27,12 @@ enum device_pm_state { #define PM_DEVICE_ASYNC (1 << 0) static void device_pm_callback(const struct device *dev, - int retval, void *context, void *arg) + int retval, uint32_t *state, void *arg) { __ASSERT(retval == 0, "Device set power state failed"); /* Set the fsm_state */ - if (*((uint32_t *)context) == PM_DEVICE_ACTIVE_STATE) { + if (*state == PM_DEVICE_ACTIVE_STATE) { atomic_set(&dev->pm->fsm_state, PM_DEVICE_STATE_ACTIVE); } else { diff --git a/tests/net/pm/src/main.c b/tests/net/pm/src/main.c index c6c8e1e64e3..ea720b7a02b 100644 --- a/tests/net/pm/src/main.c +++ b/tests/net/pm/src/main.c @@ -22,18 +22,18 @@ struct fake_dev_context { }; static int fake_dev_pm_control(const struct device *dev, uint32_t command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { struct fake_dev_context *ctx = dev->data; int ret = 0; if (command == PM_DEVICE_STATE_SET) { - if (*(uint32_t *)context == PM_DEVICE_SUSPEND_STATE) { + if (*state == PM_DEVICE_SUSPEND_STATE) { ret = net_if_suspend(ctx->iface); if (ret == -EBUSY) { goto out; } - } else if (*(uint32_t *)context == PM_DEVICE_ACTIVE_STATE) { + } else if (*state == PM_DEVICE_ACTIVE_STATE) { ret = net_if_resume(ctx->iface); } } else { @@ -42,7 +42,7 @@ static int fake_dev_pm_control(const struct device *dev, uint32_t command, out: if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret; diff --git a/tests/subsys/pm/power_mgmt/src/dummy_driver.c b/tests/subsys/pm/power_mgmt/src/dummy_driver.c index 553ef464f25..c2037642ce1 100644 --- a/tests/subsys/pm/power_mgmt/src/dummy_driver.c +++ b/tests/subsys/pm/power_mgmt/src/dummy_driver.c @@ -40,20 +40,20 @@ static int dummy_resume_from_suspend(const struct device *dev) static int dummy_device_pm_ctrl(const struct device *dev, uint32_t ctrl_command, - void *context, pm_device_cb cb, void *arg) + uint32_t *state, pm_device_cb cb, void *arg) { int ret = 0; switch (ctrl_command) { case PM_DEVICE_STATE_SET: - if (*((uint32_t *)context) == PM_DEVICE_ACTIVE_STATE) { + if (*state == PM_DEVICE_ACTIVE_STATE) { ret = dummy_resume_from_suspend(dev); } else { ret = dummy_suspend(dev); } break; case PM_DEVICE_STATE_GET: - *((uint32_t *)context) = dummy_get_power_state(dev); + *state = dummy_get_power_state(dev); break; default: ret = -EINVAL; @@ -61,7 +61,7 @@ static int dummy_device_pm_ctrl(const struct device *dev, } if (cb) { - cb(dev, ret, context, arg); + cb(dev, ret, state, arg); } return ret;