From 26ad8376bd5a9dca7b225a7b7baa9c332e876fb8 Mon Sep 17 00:00:00 2001 From: Gerard Marull-Paretas Date: Fri, 4 Jun 2021 12:30:35 +0200 Subject: [PATCH] pm: remove callback from control function The callback is not used anymore, so just delete it from the pm_control callback signature. Signed-off-by: Gerard Marull-Paretas --- drivers/display/display_st7735r.c | 3 +- drivers/display/display_st7789v.c | 2 +- drivers/entropy/entropy_cc13xx_cc26xx.c | 3 +- drivers/ethernet/eth_mcux.c | 3 +- drivers/flash/spi_flash_at45.c | 3 +- drivers/gpio/gpio_dw.c | 2 +- drivers/gpio/gpio_stm32.c | 2 +- drivers/i2c/i2c_cc13xx_cc26xx.c | 3 +- drivers/i2c/i2c_nrfx_twi.c | 2 +- drivers/i2c/i2c_nrfx_twim.c | 2 +- .../intc_arcv2_irq_unit.c | 3 +- drivers/interrupt_controller/intc_ioapic.c | 3 +- drivers/interrupt_controller/intc_loapic.c | 3 +- drivers/led/led_pwm.c | 4 +- drivers/modem/hl7800.c | 4 +- drivers/modem/modem_receiver.c | 4 +- drivers/pwm/pwm_nrfx.c | 4 +- drivers/sensor/apds9960/apds9960.c | 3 +- drivers/sensor/bme280/bme280.c | 2 +- drivers/sensor/bmp388/bmp388.c | 3 +- drivers/sensor/fdc2x1x/fdc2x1x.c | 3 +- drivers/sensor/lis2mdl/lis2mdl.c | 2 +- drivers/sensor/qdec_nrfx/qdec_nrfx.c | 2 +- drivers/sensor/vcnl4040/vcnl4040.c | 3 +- drivers/serial/uart_cc13xx_cc26xx.c | 3 +- drivers/serial/uart_npcx.c | 2 +- drivers/serial/uart_nrfx_uart.c | 2 +- drivers/serial/uart_nrfx_uarte.c | 2 +- drivers/serial/uart_stm32.c | 3 +- drivers/spi/spi_cc13xx_cc26xx.c | 3 +- drivers/spi/spi_nrfx_spi.c | 2 +- drivers/spi/spi_nrfx_spim.c | 2 +- drivers/timer/sys_clock_init.c | 3 +- include/device.h | 3 +- include/drivers/timer/system_timer.h | 6 +-- include/pm/device.h | 11 +--- samples/boards/nrf/system_off/src/main.c | 8 +-- samples/drivers/spi_flash_at45/src/main.c | 3 +- samples/sensor/apds9960/src/main.c | 4 +- samples/sensor/fdc2x1x/src/main.c | 23 ++++---- .../subsys/pm/device_pm/src/dummy_driver.c | 3 +- .../subsys/pm/device_pm/src/dummy_parent.c | 3 +- subsys/net/ip/net_shell.c | 6 +-- subsys/pm/device.c | 12 ++--- subsys/pm/device_runtime.c | 14 ++--- tests/drivers/uart/uart_pm/src/main.c | 52 +++++-------------- tests/kernel/device/src/main.c | 5 +- tests/net/pm/src/main.c | 11 ++-- .../pm/device_runtime/src/dummy_driver.c | 2 +- tests/subsys/pm/power_mgmt/src/dummy_driver.c | 3 +- 50 files changed, 96 insertions(+), 163 deletions(-) diff --git a/drivers/display/display_st7735r.c b/drivers/display/display_st7735r.c index a94993b7bc1..12083a3961d 100644 --- a/drivers/display/display_st7735r.c +++ b/drivers/display/display_st7735r.c @@ -520,8 +520,7 @@ static int st7735r_enter_sleep(struct st7735r_data *data) } static int st7735r_pm_control(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, - pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; struct st7735r_data *data = (struct st7735r_data *)dev->data; diff --git a/drivers/display/display_st7789v.c b/drivers/display/display_st7789v.c index 9c710e4ec67..7473db6386d 100644 --- a/drivers/display/display_st7789v.c +++ b/drivers/display/display_st7789v.c @@ -409,7 +409,7 @@ static void st7789v_enter_sleep(struct st7789v_data *data) } static int st7789v_pm_control(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; struct st7789v_data *data = (struct st7789v_data *)dev->data; diff --git a/drivers/entropy/entropy_cc13xx_cc26xx.c b/drivers/entropy/entropy_cc13xx_cc26xx.c index 679f85a3460..984dfb1d8a2 100644 --- a/drivers/entropy/entropy_cc13xx_cc26xx.c +++ b/drivers/entropy/entropy_cc13xx_cc26xx.c @@ -294,8 +294,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { struct entropy_cc13xx_cc26xx_data *data = get_dev_data(dev); int ret = 0; diff --git a/drivers/ethernet/eth_mcux.c b/drivers/ethernet/eth_mcux.c index e29e90ce0ad..814b3359ba6 100644 --- a/drivers/ethernet/eth_mcux.c +++ b/drivers/ethernet/eth_mcux.c @@ -186,8 +186,7 @@ void eth_mcux_phy_stop(struct eth_context *context); static int eth_mcux_device_pm_control(const struct device *dev, uint32_t command, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { struct eth_context *eth_ctx = (struct eth_context *)dev->data; int ret = 0; diff --git a/drivers/flash/spi_flash_at45.c b/drivers/flash/spi_flash_at45.c index 0fedc01cb38..8b83688d8b0 100644 --- a/drivers/flash/spi_flash_at45.c +++ b/drivers/flash/spi_flash_at45.c @@ -629,8 +629,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { struct spi_flash_at45_data *dev_data = get_dev_data(dev); const struct spi_flash_at45_config *dev_config = get_dev_config(dev); diff --git a/drivers/gpio/gpio_dw.c b/drivers/gpio/gpio_dw.c index e3e84d72c5d..292393f6583 100644 --- a/drivers/gpio/gpio_dw.c +++ b/drivers/gpio/gpio_dw.c @@ -461,7 +461,7 @@ static inline int gpio_dw_resume_from_suspend_port(const struct device *port) */ static int gpio_dw_device_ctrl(const struct device *port, uint32_t ctrl_command, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/drivers/gpio/gpio_stm32.c b/drivers/gpio/gpio_stm32.c index 76ff6a10740..7724e1c9d9c 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, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { struct gpio_stm32_data *data = dev->data; uint32_t new_state; diff --git a/drivers/i2c/i2c_cc13xx_cc26xx.c b/drivers/i2c/i2c_cc13xx_cc26xx.c index 0af1103111a..c4a2f22c066 100644 --- a/drivers/i2c/i2c_cc13xx_cc26xx.c +++ b/drivers/i2c/i2c_cc13xx_cc26xx.c @@ -369,8 +369,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/drivers/i2c/i2c_nrfx_twi.c b/drivers/i2c/i2c_nrfx_twi.c index 155c31e3f67..560e922682b 100644 --- a/drivers/i2c/i2c_nrfx_twi.c +++ b/drivers/i2c/i2c_nrfx_twi.c @@ -224,7 +224,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; enum pm_device_state pm_current_state = get_dev_data(dev)->pm_state; diff --git a/drivers/i2c/i2c_nrfx_twim.c b/drivers/i2c/i2c_nrfx_twim.c index b48f6ad0661..c23021bd0bf 100644 --- a/drivers/i2c/i2c_nrfx_twim.c +++ b/drivers/i2c/i2c_nrfx_twim.c @@ -263,7 +263,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; enum pm_device_state pm_current_state = get_dev_data(dev)->pm_state; diff --git a/drivers/interrupt_controller/intc_arcv2_irq_unit.c b/drivers/interrupt_controller/intc_arcv2_irq_unit.c index 898d5891613..56cb1cc5528 100644 --- a/drivers/interrupt_controller/intc_arcv2_irq_unit.c +++ b/drivers/interrupt_controller/intc_arcv2_irq_unit.c @@ -194,8 +194,7 @@ static enum pm_device_state arc_v2_irq_unit_get_state(const struct device *dev) */ static int arc_v2_irq_unit_device_ctrl(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, - pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; unsigned int key = arch_irq_lock(); diff --git a/drivers/interrupt_controller/intc_ioapic.c b/drivers/interrupt_controller/intc_ioapic.c index a311f4e96a6..30e9ced9f75 100644 --- a/drivers/interrupt_controller/intc_ioapic.c +++ b/drivers/interrupt_controller/intc_ioapic.c @@ -315,8 +315,7 @@ int ioapic_resume_from_suspend(const struct device *port) __pinned_func static int ioapic_device_ctrl(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, - pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/drivers/interrupt_controller/intc_loapic.c b/drivers/interrupt_controller/intc_loapic.c index c5bec56eb54..33da24c5d43 100644 --- a/drivers/interrupt_controller/intc_loapic.c +++ b/drivers/interrupt_controller/intc_loapic.c @@ -414,8 +414,7 @@ int loapic_resume(const struct device *port) __pinned_func static int loapic_device_ctrl(const struct device *port, uint32_t ctrl_command, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/drivers/led/led_pwm.c b/drivers/led/led_pwm.c index 507285398fa..366e54ce1b2 100644 --- a/drivers/led/led_pwm.c +++ b/drivers/led/led_pwm.c @@ -162,7 +162,7 @@ static int led_pwm_pm_set_state(const struct device *dev, const struct led_pwm *led_pwm = &config->led[i]; LOG_DBG("Switching PWM %p to state %" PRIu32, led_pwm->dev, new_state); - int err = pm_device_state_set(led_pwm->dev, new_state, NULL, NULL); + int err = pm_device_state_set(led_pwm->dev, new_state); if (err) { LOG_ERR("Cannot switch PWM %p power state", led_pwm->dev); @@ -178,7 +178,7 @@ static int led_pwm_pm_set_state(const struct device *dev, } static int led_pwm_pm_control(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { int err; diff --git a/drivers/modem/hl7800.c b/drivers/modem/hl7800.c index cacf0a09892..2c26acb624e 100644 --- a/drivers/modem/hl7800.c +++ b/drivers/modem/hl7800.c @@ -3505,7 +3505,7 @@ static void shutdown_uart(void) HL7800_IO_DBG_LOG("Power OFF the UART"); uart_irq_rx_disable(ictx.mdm_ctx.uart_dev); rc = pm_device_state_set(ictx.mdm_ctx.uart_dev, - PM_DEVICE_STATE_OFF, NULL, NULL); + PM_DEVICE_STATE_OFF); if (rc) { LOG_ERR("Error disabling UART peripheral (%d)", rc); } @@ -3522,7 +3522,7 @@ static void power_on_uart(void) if (!ictx.uart_on) { HL7800_IO_DBG_LOG("Power ON the UART"); rc = pm_device_state_set(ictx.mdm_ctx.uart_dev, - PM_DEVICE_STATE_ACTIVE, NULL, NULL); + PM_DEVICE_STATE_ACTIVE); if (rc) { LOG_ERR("Error enabling UART peripheral (%d)", rc); } diff --git a/drivers/modem/modem_receiver.c b/drivers/modem/modem_receiver.c index d0d6a82d513..27bf0e442b2 100644 --- a/drivers/modem/modem_receiver.c +++ b/drivers/modem/modem_receiver.c @@ -199,7 +199,7 @@ int mdm_receiver_sleep(struct mdm_receiver_context *ctx) { uart_irq_rx_disable(ctx->uart_dev); #ifdef PM_DEVICE_STATE_LOW_POWER - pm_device_state_set(ctx->uart_dev, PM_DEVICE_STATE_LOW_POWER, NULL, NULL); + pm_device_state_set(ctx->uart_dev, PM_DEVICE_STATE_LOW_POWER); #endif return 0; } @@ -207,7 +207,7 @@ int mdm_receiver_sleep(struct mdm_receiver_context *ctx) int mdm_receiver_wake(struct mdm_receiver_context *ctx) { #ifdef PM_DEVICE_STATE_LOW_POWER - pm_device_state_set(ctx->uart_dev, PM_DEVICE_STATE_ACTIVE, NULL, NULL); + pm_device_state_set(ctx->uart_dev, PM_DEVICE_STATE_ACTIVE); #endif uart_irq_rx_enable(ctx->uart_dev); diff --git a/drivers/pwm/pwm_nrfx.c b/drivers/pwm/pwm_nrfx.c index b8ed2b9708f..53768cc73dc 100644 --- a/drivers/pwm/pwm_nrfx.c +++ b/drivers/pwm/pwm_nrfx.c @@ -346,9 +346,7 @@ 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, \ - enum pm_device_state *state, \ - pm_device_cb cb, \ - void *arg) \ + enum pm_device_state *state) \ { \ static enum pm_device_state current_state = PM_DEVICE_STATE_ACTIVE; \ int ret = 0; \ diff --git a/drivers/sensor/apds9960/apds9960.c b/drivers/sensor/apds9960/apds9960.c index 726b7a493a5..95a8b1bfe1c 100644 --- a/drivers/sensor/apds9960/apds9960.c +++ b/drivers/sensor/apds9960/apds9960.c @@ -410,8 +410,7 @@ static int apds9960_init_interrupt(const struct device *dev) #ifdef CONFIG_PM_DEVICE static int apds9960_device_ctrl(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, - pm_device_cb cb, void *arg) + enum pm_device_state *state) { const struct apds9960_config *config = dev->config; struct apds9960_data *data = dev->data; diff --git a/drivers/sensor/bme280/bme280.c b/drivers/sensor/bme280/bme280.c index 63abee24727..dcce4f0a52c 100644 --- a/drivers/sensor/bme280/bme280.c +++ b/drivers/sensor/bme280/bme280.c @@ -391,7 +391,7 @@ static int bme280_chip_init(const struct device *dev) #ifdef CONFIG_PM_DEVICE int bme280_pm_ctrl(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { struct bme280_data *data = to_data(dev); diff --git a/drivers/sensor/bmp388/bmp388.c b/drivers/sensor/bmp388/bmp388.c index 776fb16c66d..49fc504a34d 100644 --- a/drivers/sensor/bmp388/bmp388.c +++ b/drivers/sensor/bmp388/bmp388.c @@ -589,8 +589,7 @@ static uint32_t bmp388_get_power_state(const struct device *dev) static int bmp388_device_ctrl( const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, - pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/drivers/sensor/fdc2x1x/fdc2x1x.c b/drivers/sensor/fdc2x1x/fdc2x1x.c index 46a5380c39b..a7019066f02 100644 --- a/drivers/sensor/fdc2x1x/fdc2x1x.c +++ b/drivers/sensor/fdc2x1x/fdc2x1x.c @@ -543,8 +543,7 @@ static int fdc2x1x_set_pm_state(const struct device *dev, static int fdc2x1x_device_pm_ctrl(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, - pm_device_cb cb, void *arg) + enum pm_device_state *state) { struct fdc2x1x_data *data = dev->data; int ret = 0; diff --git a/drivers/sensor/lis2mdl/lis2mdl.c b/drivers/sensor/lis2mdl/lis2mdl.c index 1cf4a8ced67..ea0075f5b26 100644 --- a/drivers/sensor/lis2mdl/lis2mdl.c +++ b/drivers/sensor/lis2mdl/lis2mdl.c @@ -483,7 +483,7 @@ static int lis2mdl_set_power_state(struct lis2mdl_data *lis2mdl, } static int lis2mdl_pm_control(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { struct lis2mdl_data *lis2mdl = dev->data; const struct lis2mdl_config *const config = dev->config; diff --git a/drivers/sensor/qdec_nrfx/qdec_nrfx.c b/drivers/sensor/qdec_nrfx/qdec_nrfx.c index 5ca1508f02a..0a34f90dcc1 100644 --- a/drivers/sensor/qdec_nrfx/qdec_nrfx.c +++ b/drivers/sensor/qdec_nrfx/qdec_nrfx.c @@ -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, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { struct qdec_nrfx_data *data = &qdec_nrfx_data; int err; diff --git a/drivers/sensor/vcnl4040/vcnl4040.c b/drivers/sensor/vcnl4040/vcnl4040.c index 38c24ce8619..338bbeabe33 100644 --- a/drivers/sensor/vcnl4040/vcnl4040.c +++ b/drivers/sensor/vcnl4040/vcnl4040.c @@ -220,8 +220,7 @@ static int vcnl4040_ambient_setup(const struct device *dev) #ifdef CONFIG_PM_DEVICE static int vcnl4040_device_ctrl(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, - pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/drivers/serial/uart_cc13xx_cc26xx.c b/drivers/serial/uart_cc13xx_cc26xx.c index 0dd6961ceb4..dc0549f5a65 100644 --- a/drivers/serial/uart_cc13xx_cc26xx.c +++ b/drivers/serial/uart_cc13xx_cc26xx.c @@ -447,8 +447,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/drivers/serial/uart_npcx.c b/drivers/serial/uart_npcx.c index feb0da1aa13..36971b3e650 100644 --- a/drivers/serial/uart_npcx.c +++ b/drivers/serial/uart_npcx.c @@ -473,7 +473,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/drivers/serial/uart_nrfx_uart.c b/drivers/serial/uart_nrfx_uart.c index 2037db3ce6f..9ce7d6fe5f4 100644 --- a/drivers/serial/uart_nrfx_uart.c +++ b/drivers/serial/uart_nrfx_uart.c @@ -1160,7 +1160,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { static enum pm_device_state current_state = PM_DEVICE_STATE_ACTIVE; diff --git a/drivers/serial/uart_nrfx_uarte.c b/drivers/serial/uart_nrfx_uarte.c index 979477251d9..9bb9a9cc55d 100644 --- a/drivers/serial/uart_nrfx_uarte.c +++ b/drivers/serial/uart_nrfx_uarte.c @@ -1918,7 +1918,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { struct uarte_nrfx_data *data = get_dev_data(dev); diff --git a/drivers/serial/uart_stm32.c b/drivers/serial/uart_stm32.c index dbe9299531a..394b1474b87 100644 --- a/drivers/serial/uart_stm32.c +++ b/drivers/serial/uart_stm32.c @@ -1465,8 +1465,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { struct uart_stm32_data *data = DEV_DATA(dev); diff --git a/drivers/spi/spi_cc13xx_cc26xx.c b/drivers/spi/spi_cc13xx_cc26xx.c index df44fd87d8e..82ddd009f7b 100644 --- a/drivers/spi/spi_cc13xx_cc26xx.c +++ b/drivers/spi/spi_cc13xx_cc26xx.c @@ -252,8 +252,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/drivers/spi/spi_nrfx_spi.c b/drivers/spi/spi_nrfx_spi.c index 0ea2a8927d3..aad83d99697 100644 --- a/drivers/spi/spi_nrfx_spi.c +++ b/drivers/spi/spi_nrfx_spi.c @@ -286,7 +286,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; struct spi_nrfx_data *data = get_dev_data(dev); diff --git a/drivers/spi/spi_nrfx_spim.c b/drivers/spi/spi_nrfx_spim.c index a1c103b8e9f..43502a6ec70 100644 --- a/drivers/spi/spi_nrfx_spim.c +++ b/drivers/spi/spi_nrfx_spim.c @@ -334,7 +334,7 @@ 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, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; struct spi_nrfx_data *data = get_dev_data(dev); diff --git a/drivers/timer/sys_clock_init.c b/drivers/timer/sys_clock_init.c index 464d90954e3..8bbdef75227 100644 --- a/drivers/timer/sys_clock_init.c +++ b/drivers/timer/sys_clock_init.c @@ -32,8 +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, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { return -ENOSYS; } diff --git a/include/device.h b/include/device.h index 0c07e28a270..5365acc5d88 100644 --- a/include/device.h +++ b/include/device.h @@ -362,8 +362,7 @@ struct device { #ifdef CONFIG_PM_DEVICE /** Power Management function */ int (*pm_control)(const struct device *dev, uint32_t command, - enum pm_device_state *state, pm_device_cb cb, - void *arg); + enum pm_device_state *state); /** Pointer to device instance power management data */ struct pm_device * const pm; #endif diff --git a/include/drivers/timer/system_timer.h b/include/drivers/timer/system_timer.h index 69f15abb2ff..4ec49442206 100644 --- a/include/drivers/timer/system_timer.h +++ b/include/drivers/timer/system_timer.h @@ -46,10 +46,8 @@ extern int sys_clock_driver_init(const struct device *dev); * management. It is a weak symbol that will be implemented as a noop * if undefined in the clock driver. */ -extern int clock_device_ctrl(const struct device *dev, - uint32_t ctrl_command, - enum pm_device_state *state, pm_device_cb cb, - void *arg); +extern int clock_device_ctrl(const struct device *dev, uint32_t ctrl_command, + enum pm_device_state *state); /** * @brief Set system clock timeout diff --git a/include/pm/device.h b/include/pm/device.h index c748ad194d6..8b9160b6676 100644 --- a/include/pm/device.h +++ b/include/pm/device.h @@ -67,10 +67,6 @@ enum pm_device_state { /** Device PM get state control command. */ #define PM_DEVICE_STATE_GET 1 -typedef void (*pm_device_cb)(const struct device *dev, - int status, enum pm_device_state *state, - void *arg); - /** * @brief Device PM info */ @@ -114,15 +110,12 @@ const char *pm_device_state_str(enum pm_device_state state); * Note that devices may support just some of the device power states * @param dev Pointer to device structure of the driver instance. * @param device_power_state Device power state to be set - * @param cb Callback function to notify device power status - * @param arg Caller passed argument to callback function * * @retval 0 If successful in queuing the request or changing the state. - * @retval Errno Negative errno code if failure. Callback will not be called. + * @retval Errno Negative errno code if failure. */ int pm_device_state_set(const struct device *dev, - enum pm_device_state device_power_state, - pm_device_cb cb, void *arg); + enum pm_device_state device_power_state); /** * @brief Call the get power state function of a device diff --git a/samples/boards/nrf/system_off/src/main.c b/samples/boards/nrf/system_off/src/main.c index 4d70683edd7..3142bb94802 100644 --- a/samples/boards/nrf/system_off/src/main.c +++ b/samples/boards/nrf/system_off/src/main.c @@ -66,17 +66,17 @@ void main(void) k_busy_wait(BUSY_WAIT_S * USEC_PER_SEC); printk("Busy-wait %u s with UART off\n", BUSY_WAIT_S); - rc = pm_device_state_set(cons, PM_DEVICE_STATE_LOW_POWER, NULL, NULL); + rc = pm_device_state_set(cons, PM_DEVICE_STATE_LOW_POWER); k_busy_wait(BUSY_WAIT_S * USEC_PER_SEC); - rc = pm_device_state_set(cons, PM_DEVICE_STATE_ACTIVE, NULL, NULL); + rc = pm_device_state_set(cons, PM_DEVICE_STATE_ACTIVE); printk("Sleep %u s\n", SLEEP_S); k_sleep(K_SECONDS(SLEEP_S)); printk("Sleep %u s with UART off\n", SLEEP_S); - rc = pm_device_state_set(cons, PM_DEVICE_STATE_LOW_POWER, NULL, NULL); + rc = pm_device_state_set(cons, PM_DEVICE_STATE_LOW_POWER); k_sleep(K_SECONDS(SLEEP_S)); - rc = pm_device_state_set(cons, PM_DEVICE_STATE_ACTIVE, NULL, NULL); + rc = pm_device_state_set(cons, PM_DEVICE_STATE_ACTIVE); printk("Entering system off; press BUTTON1 to restart\n"); diff --git a/samples/drivers/spi_flash_at45/src/main.c b/samples/drivers/spi_flash_at45/src/main.c index bbb8bb1f8ad..a85c040d3bd 100644 --- a/samples/drivers/spi_flash_at45/src/main.c +++ b/samples/drivers/spi_flash_at45/src/main.c @@ -151,8 +151,7 @@ void main(void) #if IS_ENABLED(CONFIG_PM_DEVICE) printk("Putting the flash device into low power state... "); - err = pm_device_state_set(flash_dev, PM_DEVICE_STATE_LOW_POWER, - NULL, NULL); + err = pm_device_state_set(flash_dev, PM_DEVICE_STATE_LOW_POWER); if (err != 0) { printk("FAILED\n"); return; diff --git a/samples/sensor/apds9960/src/main.c b/samples/sensor/apds9960/src/main.c index fb9f0af21cc..5f75878b90b 100644 --- a/samples/sensor/apds9960/src/main.c +++ b/samples/sensor/apds9960/src/main.c @@ -80,11 +80,11 @@ void main(void) enum pm_device_state p_state; p_state = PM_DEVICE_STATE_LOW_POWER; - pm_device_state_set(dev, p_state, NULL, NULL); + pm_device_state_set(dev, p_state); printk("set low power state for 2s\n"); k_sleep(K_MSEC(2000)); p_state = PM_DEVICE_STATE_ACTIVE; - pm_device_state_set(dev, p_state, NULL, NULL); + pm_device_state_set(dev, p_state); #endif } } diff --git a/samples/sensor/fdc2x1x/src/main.c b/samples/sensor/fdc2x1x/src/main.c index c0dad0fc32d..c2f12991b03 100644 --- a/samples/sensor/fdc2x1x/src/main.c +++ b/samples/sensor/fdc2x1x/src/main.c @@ -34,15 +34,12 @@ static void trigger_handler(const struct device *dev, #endif #ifdef CONFIG_PM_DEVICE -static void pm_cb(const struct device *dev, - int status, - uint32_t *state, - void *arg) +static void pm_info(enum pm_device_state state, int status) { ARG_UNUSED(dev); ARG_UNUSED(arg); - switch (*state) { + switch (state) { case PM_DEVICE_STATE_ACTIVE: printk("Enter ACTIVE_STATE "); break; @@ -96,15 +93,19 @@ void main(void) #ifdef CONFIG_PM_DEVICE /* Testing the power modes */ enum pm_device_state p_state; + int ret; p_state = PM_DEVICE_STATE_LOW_POWER; - pm_device_state_set(dev, p_state, pm_cb, NULL); + ret = pm_device_state_set(dev, p_state); + pm_info(p_state, ret); p_state = PM_DEVICE_STATE_OFF; - pm_device_state_set(dev, p_state, pm_cb, NULL); + ret = pm_device_state_set(dev, p_state); + pm_info(p_state, ret); p_state = PM_DEVICE_STATE_ACTIVE; - pm_device_state_set(dev, p_state, pm_cb, NULL); + ret = pm_device_state_set(dev, p_state); + pm_info(p_state, ret); #endif while (1) { @@ -133,10 +134,12 @@ void main(void) #ifdef CONFIG_PM_DEVICE p_state = PM_DEVICE_STATE_OFF; - pm_device_state_set(dev, p_state, pm_cb, NULL); + ret = pm_device_state_set(dev, p_state); + pm_info(p_state, ret); k_sleep(K_MSEC(2000)); p_state = PM_DEVICE_STATE_ACTIVE; - pm_device_state_set(dev, p_state, pm_cb, NULL); + ret = pm_device_state_set(dev, p_state); + pm_info(p_state, ret); #elif CONFIG_FDC2X1X_TRIGGER_NONE k_sleep(K_MSEC(100)); #endif diff --git a/samples/subsys/pm/device_pm/src/dummy_driver.c b/samples/subsys/pm/device_pm/src/dummy_driver.c index 6753c7b660b..5144c1681fc 100644 --- a/samples/subsys/pm/device_pm/src/dummy_driver.c +++ b/samples/subsys/pm/device_pm/src/dummy_driver.c @@ -108,8 +108,7 @@ static int dummy_resume_from_suspend(const struct device *dev) static int dummy_device_pm_ctrl(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/samples/subsys/pm/device_pm/src/dummy_parent.c b/samples/subsys/pm/device_pm/src/dummy_parent.c index ad51e6ea0f1..0a6641c3bb3 100644 --- a/samples/subsys/pm/device_pm/src/dummy_parent.c +++ b/samples/subsys/pm/device_pm/src/dummy_parent.c @@ -48,8 +48,7 @@ static int dummy_resume_from_suspend(const struct device *dev) static int dummy_parent_pm_ctrl(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/subsys/net/ip/net_shell.c b/subsys/net/ip/net_shell.c index 78a818e91d1..902e3b59a3f 100644 --- a/subsys/net/ip/net_shell.c +++ b/subsys/net/ip/net_shell.c @@ -5532,8 +5532,7 @@ static int cmd_net_suspend(const struct shell *shell, size_t argc, dev = net_if_get_device(iface); - ret = pm_device_state_set(dev, PM_DEVICE_STATE_SUSPEND, - NULL, NULL); + ret = pm_device_state_set(dev, PM_DEVICE_STATE_SUSPEND); if (ret != 0) { PR_INFO("Iface could not be suspended: "); @@ -5577,8 +5576,7 @@ static int cmd_net_resume(const struct shell *shell, size_t argc, dev = net_if_get_device(iface); - ret = pm_device_state_set(dev, PM_DEVICE_STATE_ACTIVE, - NULL, NULL); + ret = pm_device_state_set(dev, PM_DEVICE_STATE_ACTIVE); if (ret != 0) { PR_INFO("Iface could not be resumed\n"); } diff --git a/subsys/pm/device.c b/subsys/pm/device.c index 9cb386fc7ae..96bc58da3ac 100644 --- a/subsys/pm/device.c +++ b/subsys/pm/device.c @@ -66,7 +66,7 @@ static int _pm_devices(uint32_t state) * Don't bother the device if it is currently * in the right state. */ - rc = pm_device_state_set(dev, state, NULL, NULL); + rc = pm_device_state_set(dev, state); if ((rc != -ENOSYS) && (rc != 0)) { LOG_DBG("%s did not enter %s state: %d", dev->name, pm_device_state_str(state), @@ -103,8 +103,7 @@ void pm_resume_devices(void) for (i = 0; i < num_susp; i++) { pm_device_state_set(__pm_device_slots_start[i], - PM_DEVICE_STATE_ACTIVE, - NULL, NULL); + PM_DEVICE_STATE_ACTIVE); } num_susp = 0; @@ -130,15 +129,14 @@ const char *pm_device_state_str(enum pm_device_state state) } int pm_device_state_set(const struct device *dev, - enum pm_device_state device_power_state, - pm_device_cb cb, void *arg) + enum pm_device_state device_power_state) { if (dev->pm_control == NULL) { return -ENOSYS; } return dev->pm_control(dev, PM_DEVICE_STATE_SET, - &device_power_state, cb, arg); + &device_power_state); } int pm_device_state_get(const struct device *dev, @@ -149,5 +147,5 @@ int pm_device_state_get(const struct device *dev, } return dev->pm_control(dev, PM_DEVICE_STATE_GET, - device_power_state, NULL, NULL); + device_power_state); } diff --git a/subsys/pm/device_runtime.c b/subsys/pm/device_runtime.c index 708e1c2082c..39e29c761ac 100644 --- a/subsys/pm/device_runtime.c +++ b/subsys/pm/device_runtime.c @@ -28,8 +28,7 @@ static void pm_device_runtime_state_set(struct pm_device *pm) case PM_DEVICE_STATE_ACTIVE: if ((dev->pm->usage == 0) && dev->pm->enable) { dev->pm->state = PM_DEVICE_STATE_SUSPENDING; - ret = pm_device_state_set(dev, PM_DEVICE_STATE_SUSPEND, - NULL, NULL); + ret = pm_device_state_set(dev, PM_DEVICE_STATE_SUSPEND); if (ret == 0) { dev->pm->state = PM_DEVICE_STATE_SUSPEND; } @@ -38,8 +37,7 @@ static void pm_device_runtime_state_set(struct pm_device *pm) case PM_DEVICE_STATE_SUSPEND: if ((dev->pm->usage > 0) || !dev->pm->enable) { dev->pm->state = PM_DEVICE_STATE_RESUMING; - ret = pm_device_state_set(dev, PM_DEVICE_STATE_ACTIVE, - NULL, NULL); + ret = pm_device_state_set(dev, PM_DEVICE_STATE_ACTIVE); if (ret == 0) { dev->pm->state = PM_DEVICE_STATE_ACTIVE; } @@ -102,13 +100,9 @@ static int pm_device_request(const struct device *dev, * the gpio. Lets just power on/off the device. */ if (dev->pm->usage == 1) { - (void)pm_device_state_set(dev, - PM_DEVICE_STATE_ACTIVE, - NULL, NULL); + (void)pm_device_state_set(dev, PM_DEVICE_STATE_ACTIVE); } else if (dev->pm->usage == 0) { - (void)pm_device_state_set(dev, - PM_DEVICE_STATE_SUSPEND, - NULL, NULL); + (void)pm_device_state_set(dev, PM_DEVICE_STATE_SUSPEND); } goto out; } diff --git a/tests/drivers/uart/uart_pm/src/main.c b/tests/drivers/uart/uart_pm/src/main.c index 599ad91e064..b30d3b1245d 100644 --- a/tests/drivers/uart/uart_pm/src/main.c +++ b/tests/drivers/uart/uart_pm/src/main.c @@ -16,11 +16,6 @@ #define UART_DEVICE_NAME DT_LABEL(DT_NODELABEL(LABEL)) #define HAS_RX DT_NODE_HAS_PROP(DT_NODELABEL(LABEL), rx_pin) -static const struct device *exp_dev; -static enum pm_device_state exp_state; -static void *exp_arg; -static volatile int callback_cnt; - static void polling_verify(const struct device *dev, bool is_async, bool active) { char c; @@ -126,18 +121,8 @@ static void communication_verify(const struct device *dev, bool active) zassert_equal(power_state, exp_state, NULL); \ } while (0) -static void pm_callback(const struct device *dev, - int status, enum pm_device_state *state, void *arg) -{ - zassert_equal(dev, exp_dev, NULL); - zassert_equal(status, 0, NULL); - zassert_equal(*state, exp_state, NULL); - zassert_equal(arg, exp_arg, NULL); - callback_cnt++; -} - static void state_set(const struct device *dev, enum pm_device_state state, - int exp_err, bool cb) + int exp_err) { int err; enum pm_device_state prev_state; @@ -145,19 +130,8 @@ static void state_set(const struct device *dev, enum pm_device_state state, err = pm_device_state_get(dev, &prev_state); zassert_equal(err, 0, "Unexpected err: %d", err); - if (cb) { - callback_cnt = 0; - exp_dev = dev; - exp_arg = &state; - exp_state = state; - - err = pm_device_state_set(dev, state, pm_callback, exp_arg); - zassert_equal(err, exp_err, "Unexpected err: %d", err); - zassert_equal(callback_cnt, 1, NULL); - } else { - err = pm_device_state_set(dev, state, NULL, NULL); - zassert_equal(err, exp_err, "Unexpected err: %d", err); - } + err = pm_device_state_set(dev, state); + zassert_equal(err, exp_err, "Unexpected err: %d", err); enum pm_device_state exp_state = err == 0 ? state : prev_state; @@ -174,16 +148,16 @@ static void test_uart_pm_in_idle(void) state_verify(dev, PM_DEVICE_STATE_ACTIVE); communication_verify(dev, true); - state_set(dev, PM_DEVICE_STATE_LOW_POWER, 0, false); + state_set(dev, PM_DEVICE_STATE_LOW_POWER, 0); communication_verify(dev, false); - state_set(dev, PM_DEVICE_STATE_ACTIVE, 0, false); + state_set(dev, PM_DEVICE_STATE_ACTIVE, 0); communication_verify(dev, true); - state_set(dev, PM_DEVICE_STATE_LOW_POWER, 0, true); + state_set(dev, PM_DEVICE_STATE_LOW_POWER, 0); communication_verify(dev, false); - state_set(dev, PM_DEVICE_STATE_ACTIVE, 0, true); + state_set(dev, PM_DEVICE_STATE_ACTIVE, 0); communication_verify(dev, true); } @@ -197,21 +171,21 @@ static void test_uart_pm_poll_tx(void) communication_verify(dev, true); uart_poll_out(dev, 'a'); - state_set(dev, PM_DEVICE_STATE_LOW_POWER, 0, false); + state_set(dev, PM_DEVICE_STATE_LOW_POWER, 0); communication_verify(dev, false); - state_set(dev, PM_DEVICE_STATE_ACTIVE, 0, false); + state_set(dev, PM_DEVICE_STATE_ACTIVE, 0); communication_verify(dev, true); /* Now same thing but with callback */ uart_poll_out(dev, 'a'); - state_set(dev, PM_DEVICE_STATE_LOW_POWER, 0, true); + state_set(dev, PM_DEVICE_STATE_LOW_POWER, 0); communication_verify(dev, false); - state_set(dev, PM_DEVICE_STATE_ACTIVE, 0, true); + state_set(dev, PM_DEVICE_STATE_ACTIVE, 0); communication_verify(dev, true); } @@ -220,7 +194,7 @@ static void timeout(struct k_timer *timer) { const struct device *uart = k_timer_user_data_get(timer); - state_set(uart, PM_DEVICE_STATE_LOW_POWER, 0, false); + state_set(uart, PM_DEVICE_STATE_LOW_POWER, 0); } static K_TIMER_DEFINE(pm_timer, timeout, NULL); @@ -247,7 +221,7 @@ static void test_uart_pm_poll_tx_interrupted(void) k_timer_status_sync(&pm_timer); - state_set(dev, PM_DEVICE_STATE_ACTIVE, 0, false); + state_set(dev, PM_DEVICE_STATE_ACTIVE, 0); communication_verify(dev, true); } diff --git a/tests/kernel/device/src/main.c b/tests/kernel/device/src/main.c index 00395a08fd7..25513a5bf4c 100644 --- a/tests/kernel/device/src/main.c +++ b/tests/kernel/device/src/main.c @@ -317,7 +317,7 @@ void test_dummy_device_pm(void) test_build_suspend_device_list(); /* Set device state to PM_DEVICE_STATE_ACTIVE */ - ret = pm_device_state_set(dev, PM_DEVICE_STATE_ACTIVE, NULL, NULL); + ret = pm_device_state_set(dev, PM_DEVICE_STATE_ACTIVE); if (ret == -ENOSYS) { TC_PRINT("Power management not supported on device"); ztest_test_skip(); @@ -334,8 +334,7 @@ void test_dummy_device_pm(void) "Error power status"); /* Set device state to PM_DEVICE_STATE_FORCE_SUSPEND */ - ret = pm_device_state_set(dev, - PM_DEVICE_STATE_FORCE_SUSPEND, NULL, NULL); + ret = pm_device_state_set(dev, PM_DEVICE_STATE_FORCE_SUSPEND); zassert_true((ret == 0), "Unable to force suspend device"); diff --git a/tests/net/pm/src/main.c b/tests/net/pm/src/main.c index b3097bb1d62..aceaf3004d0 100644 --- a/tests/net/pm/src/main.c +++ b/tests/net/pm/src/main.c @@ -22,8 +22,7 @@ struct fake_dev_context { }; static int fake_dev_pm_control(const struct device *dev, uint32_t command, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { struct fake_dev_context *ctx = dev->data; int ret = 0; @@ -147,13 +146,13 @@ void test_pm(void) */ k_yield(); - ret = pm_device_state_set(dev, PM_DEVICE_STATE_SUSPEND, NULL, NULL); + ret = pm_device_state_set(dev, PM_DEVICE_STATE_SUSPEND); zassert_true(ret == 0, "Could not set state"); zassert_true(net_if_is_suspended(iface), "net iface is not suspended"); /* Let's try to suspend it again, it should fail relevantly */ - ret = pm_device_state_set(dev, PM_DEVICE_STATE_SUSPEND, NULL, NULL); + ret = pm_device_state_set(dev, PM_DEVICE_STATE_SUSPEND); zassert_true(ret == -EALREADY, "Could change state"); zassert_true(net_if_is_suspended(iface), "net iface is not suspended"); @@ -163,12 +162,12 @@ void test_pm(void) (struct sockaddr *)&addr4, sizeof(struct sockaddr_in)); zassert_true(ret < 0, "Could send data"); - ret = pm_device_state_set(dev, PM_DEVICE_STATE_ACTIVE, NULL, NULL); + ret = pm_device_state_set(dev, PM_DEVICE_STATE_ACTIVE); zassert_true(ret == 0, "Could not set state"); zassert_false(net_if_is_suspended(iface), "net iface is suspended"); - ret = pm_device_state_set(dev, PM_DEVICE_STATE_ACTIVE, NULL, NULL); + ret = pm_device_state_set(dev, PM_DEVICE_STATE_ACTIVE); zassert_true(ret == -EALREADY, "Could change state"); /* Let's send some data, it should go through */ diff --git a/tests/subsys/pm/device_runtime/src/dummy_driver.c b/tests/subsys/pm/device_runtime/src/dummy_driver.c index d3fc641168b..32dc6cf3eb8 100644 --- a/tests/subsys/pm/device_runtime/src/dummy_driver.c +++ b/tests/subsys/pm/device_runtime/src/dummy_driver.c @@ -55,7 +55,7 @@ static int dummy_resume_from_suspend(const struct device *dev) static int dummy_device_pm_ctrl(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, pm_device_cb cb, void *arg) + enum pm_device_state *state) { int ret = 0; diff --git a/tests/subsys/pm/power_mgmt/src/dummy_driver.c b/tests/subsys/pm/power_mgmt/src/dummy_driver.c index 418bfc2dd17..368e3a64840 100644 --- a/tests/subsys/pm/power_mgmt/src/dummy_driver.c +++ b/tests/subsys/pm/power_mgmt/src/dummy_driver.c @@ -40,8 +40,7 @@ static int dummy_resume_from_suspend(const struct device *dev) static int dummy_device_pm_ctrl(const struct device *dev, uint32_t ctrl_command, - enum pm_device_state *state, pm_device_cb cb, - void *arg) + enum pm_device_state *state) { int ret = 0;