diff --git a/include/device.h b/include/device.h index 3a4b1699faa..05dcc7fa5c2 100644 --- a/include/device.h +++ b/include/device.h @@ -839,6 +839,12 @@ BUILD_ASSERT(sizeof(device_handle_t) == 2, "fix the linker scripts"); static struct device_state Z_DEVICE_STATE_NAME(dev_name) \ __attribute__((__section__(".z_devstate"))) = { \ .pm = { \ + .usage = ATOMIC_INIT(0), \ + .lock = Z_MUTEX_INITIALIZER( \ + Z_DEVICE_STATE_NAME(dev_name).pm.lock), \ + .condvar = Z_CONDVAR_INITIALIZER( \ + Z_DEVICE_STATE_NAME(dev_name).pm.condvar),\ + .state = PM_DEVICE_STATE_ACTIVE, \ .flags = ATOMIC_INIT(COND_CODE_1( \ DT_NODE_EXISTS(node_id), \ (DT_PROP_OR( \ diff --git a/kernel/device.c b/kernel/device.c index 3d7b23e8af8..229cb8d1c43 100644 --- a/kernel/device.c +++ b/kernel/device.c @@ -25,19 +25,6 @@ extern const struct device __device_end[]; extern uint32_t __device_init_status_start[]; -static inline void device_pm_state_init(const struct device *dev) -{ -#ifdef CONFIG_PM_DEVICE - *dev->pm = (struct pm_device){ - .usage = ATOMIC_INIT(0), - .lock = Z_MUTEX_INITIALIZER(dev->pm->lock), - .condvar = Z_CONDVAR_INITIALIZER(dev->pm->condvar), - .state = PM_DEVICE_STATE_ACTIVE, - .flags = ATOMIC_INIT(dev->pm->flags), - }; -#endif /* CONFIG_PM_DEVICE */ -} - /** * @brief Initialize state for all static devices. * @@ -49,7 +36,6 @@ void z_device_state_init(void) const struct device *dev = __device_start; while (dev < __device_end) { - device_pm_state_init(dev); z_object_init(dev); ++dev; }