From 0d1515f7fb2495e747450e0ccdc8685b643fa2db Mon Sep 17 00:00:00 2001 From: ligd Date: Tue, 21 Jun 2022 14:25:21 +0800 Subject: [PATCH] pm_procfs: show stay-time-to-now when pm in stay state Signed-off-by: ligd --- drivers/power/pm_procfs.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/power/pm_procfs.c b/drivers/power/pm_procfs.c index 0760c47af85..8dcfaca30a7 100644 --- a/drivers/power/pm_procfs.c +++ b/drivers/power/pm_procfs.c @@ -342,15 +342,26 @@ static ssize_t pm_read_wakelock(FAR struct file *filep, FAR char *buffer, { FAR struct pm_wakelock_s *wakelock = container_of(entry, struct pm_wakelock_s, fsnode); + time_t time = wakelock->elapse.tv_sec; buffer += copysize; buflen -= copysize; + if (wakelock->count > 0) + { + struct timespec ts; + + clock_systime_timespec(&ts); + clock_timespec_subtract(&ts, &wakelock->start, &ts); + + time += ts.tv_sec; + } + linesize = snprintf(pmfile->line, PM_LINELEN, WAFMT, wakelock->name, g_pm_state[wakelock->state], wakelock->count, - wakelock->elapse.tv_sec); + time); copysize = procfs_memcpy(pmfile->line, linesize, buffer, buflen, &offset);