pm: cleanup pm control callback implementations
- Return -ENOTSUP if the requested state is not supported
- Remove redundant "noop style" functions.
- Use switch everywhere to handle requested state (not necessary in all
drivers, but better take off with consistency in place after current
changes).
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
diff --git a/drivers/interrupt_controller/intc_arcv2_irq_unit.c b/drivers/interrupt_controller/intc_arcv2_irq_unit.c
index 7875f24..7b52232 100644
--- a/drivers/interrupt_controller/intc_arcv2_irq_unit.c
+++ b/drivers/interrupt_controller/intc_arcv2_irq_unit.c
@@ -180,10 +180,16 @@
int ret = 0;
unsigned int key = arch_irq_lock();
- if (state == PM_DEVICE_STATE_SUSPENDED) {
+ switch (state) {
+ case PM_DEVICE_STATE_SUSPENDED:
ret = arc_v2_irq_unit_suspend(dev);
- } else if (state == PM_DEVICE_STATE_ACTIVE) {
+ break;
+ case PM_DEVICE_STATE_ACTIVE:
ret = arc_v2_irq_unit_resume(dev);
+ break;
+ default:
+ ret = -ENOTSUP;
+ break;
}
arch_irq_unlock(key);
diff --git a/drivers/interrupt_controller/intc_ioapic.c b/drivers/interrupt_controller/intc_ioapic.c
index c244b3c..36c98ff 100644
--- a/drivers/interrupt_controller/intc_ioapic.c
+++ b/drivers/interrupt_controller/intc_ioapic.c
@@ -319,6 +319,7 @@
ret = ioapic_resume_from_suspend(dev);
break;
case PM_DEVICE_STATE_SUSPENDED:
+ __fallthrough;
case PM_DEVICE_STATE_OFF:
ret = ioapic_suspend(dev);
break;
@@ -329,7 +330,6 @@
return ret;
}
-
#endif /*CONFIG_PM_DEVICE*/
/**
diff --git a/drivers/interrupt_controller/intc_loapic.c b/drivers/interrupt_controller/intc_loapic.c
index a8833cb..ffaa410 100644
--- a/drivers/interrupt_controller/intc_loapic.c
+++ b/drivers/interrupt_controller/intc_loapic.c
@@ -408,15 +408,20 @@
* the *context may include IN data or/and OUT data
*/
__pinned_func
-static int loapic_device_ctrl(const struct device *port,
+static int loapic_device_ctrl(const struct device *dev,
enum pm_device_state state)
{
int ret = 0;
- if (state == PM_DEVICE_STATE_SUSPENDED) {
- ret = loapic_suspend(port);
- } else if (state == PM_DEVICE_STATE_ACTIVE) {
- ret = loapic_resume(port);
+ switch (state) {
+ case PM_DEVICE_STATE_SUSPENDED:
+ ret = loapic_suspend(dev);
+ break;
+ case PM_DEVICE_STATE_ACTIVE:
+ ret = loapic_resume(dev);
+ break;
+ default:
+ return -ENOTSUP;
}
return ret;