pm: trace pm_device_enable/disable
Trace both pm_device_enable and pm_device_disable. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
parent
2642f4d62c
commit
3b82c388f6
5 changed files with 28 additions and 2 deletions
|
@ -135,7 +135,6 @@ static int pm_device_request(const struct device *dev,
|
|||
|
||||
/* Return in case of Async request */
|
||||
if (pm_flags & PM_DEVICE_ASYNC) {
|
||||
SYS_PORT_TRACING_FUNC_EXIT(pm, device_request, dev, 0);
|
||||
ret = 0;
|
||||
goto out;
|
||||
}
|
||||
|
@ -182,11 +181,13 @@ void pm_device_enable(const struct device *dev)
|
|||
{
|
||||
k_spinlock_key_t key;
|
||||
|
||||
SYS_PORT_TRACING_FUNC_ENTER(pm, device_enable, dev);
|
||||
if (k_is_pre_kernel()) {
|
||||
dev->pm->dev = dev;
|
||||
dev->pm->enable = true;
|
||||
atomic_set(&dev->pm->state, PM_DEVICE_STATE_SUSPEND);
|
||||
k_work_init_delayable(&dev->pm->work, pm_work_handler);
|
||||
SYS_PORT_TRACING_FUNC_EXIT(pm, device_enable, dev);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -205,12 +206,14 @@ void pm_device_enable(const struct device *dev)
|
|||
k_work_schedule(&dev->pm->work, K_NO_WAIT);
|
||||
}
|
||||
k_spin_unlock(&dev->pm->lock, key);
|
||||
SYS_PORT_TRACING_FUNC_EXIT(pm, device_enable, dev);
|
||||
}
|
||||
|
||||
void pm_device_disable(const struct device *dev)
|
||||
{
|
||||
k_spinlock_key_t key;
|
||||
|
||||
SYS_PORT_TRACING_FUNC_ENTER(pm, device_disable, dev);
|
||||
__ASSERT(k_is_pre_kernel() == false, "Device should not be disabled "
|
||||
"before kernel is initialized");
|
||||
|
||||
|
@ -219,4 +222,5 @@ void pm_device_disable(const struct device *dev)
|
|||
/* Bring up the device before disabling the Idle PM */
|
||||
k_work_schedule(&dev->pm->work, K_NO_WAIT);
|
||||
k_spin_unlock(&dev->pm->lock, key);
|
||||
SYS_PORT_TRACING_FUNC_EXIT(pm, device_disable, dev);
|
||||
}
|
||||
|
|
|
@ -320,6 +320,11 @@ extern "C" {
|
|||
#define sys_port_trace_pm_device_request_enter(dev, target_state)
|
||||
#define sys_port_trace_pm_device_request_exit(dev, ret)
|
||||
|
||||
#define sys_port_trace_pm_device_enable_enter(dev)
|
||||
#define sys_port_trace_pm_device_enable_exit(dev)
|
||||
#define sys_port_trace_pm_device_disable_enter(dev)
|
||||
#define sys_port_trace_pm_device_disable_exit(dev)
|
||||
|
||||
void sys_trace_syscall_enter(void);
|
||||
void sys_trace_syscall_exit(void);
|
||||
void sys_trace_idle(void);
|
||||
|
|
|
@ -165,3 +165,5 @@ TaskState 0xBF 1=dummy, 2=Waiting, 4=New, 8=Terminated, 16=Suspended, 32=Termina
|
|||
|
||||
156 pm_system_suspend ticks=%u | Returns %PowerState
|
||||
157 pm_device_request dev=%I target_state=%DevicePowerState | Returns %u
|
||||
158 pm_device_enable dev=%I
|
||||
159 pm_device_disable dev=%I
|
||||
|
|
|
@ -152,7 +152,9 @@ extern "C" {
|
|||
|
||||
#define TID_PM_SUSPEND (124u + TID_OFFSET)
|
||||
#define TID_PM_DEVICE_REQUEST (125u + TID_OFFSET)
|
||||
/* latest ID is 125 */
|
||||
#define TID_PM_DEVICE_ENABLE (126u + TID_OFFSET)
|
||||
#define TID_PM_DEVICE_DISABLE (127u + TID_OFFSET)
|
||||
/* latest ID is 127 */
|
||||
|
||||
void sys_trace_thread_info(struct k_thread *thread);
|
||||
|
||||
|
@ -756,6 +758,15 @@ void sys_trace_k_thread_info(struct k_thread *thread);
|
|||
#define sys_port_trace_pm_device_request_exit(dev, ret) \
|
||||
SEGGER_SYSVIEW_RecordEndCallU32(TID_PM_DEVICE_REQUEST, (uint32_t)ret)
|
||||
|
||||
#define sys_port_trace_pm_device_enable_enter(dev) \
|
||||
SEGGER_SYSVIEW_RecordU32(TID_PM_DEVICE_ENABLE, (uint32_t)(uintptr_t)dev)
|
||||
#define sys_port_trace_pm_device_enable_exit(dev) \
|
||||
SEGGER_SYSVIEW_RecordEndCall(TID_PM_DEVICE_ENABLE)
|
||||
|
||||
#define sys_port_trace_pm_device_disable_enter(dev) \
|
||||
SEGGER_SYSVIEW_RecordU32(TID_PM_DEVICE_DISABLE, (uint32_t)(uintptr_t)dev)
|
||||
#define sys_port_trace_pm_device_disable_exit(dev) \
|
||||
SEGGER_SYSVIEW_RecordEndCall(TID_PM_DEVICE_DISABLE)
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -422,6 +422,10 @@
|
|||
#define sys_port_trace_pm_device_request_enter(dev, target_state)
|
||||
#define sys_port_trace_pm_device_request_exit(dev, ret)
|
||||
|
||||
#define sys_port_trace_pm_device_enable_enter(dev)
|
||||
#define sys_port_trace_pm_device_enable_exit(dev)
|
||||
#define sys_port_trace_pm_device_disable_enter(dev)
|
||||
#define sys_port_trace_pm_device_disable_exit(dev)
|
||||
|
||||
void sys_trace_syscall_enter(void);
|
||||
void sys_trace_syscall_exit(void);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue