diff options
author | Don Hiatt <don.hiatt@intel.com> | 2019-10-10 10:07:59 -0700 |
---|---|---|
committer | Arkadiusz Hiler <arkadiusz.hiler@intel.com> | 2019-10-11 15:36:40 +0300 |
commit | 280734ceacde4ff52c6bd5a9e3d664f77f76b85d (patch) | |
tree | 122df6c8934fdc29cab18ebbbb2adfe117cd5b42 /lib | |
parent | 1e38e32d721210a780198c8293a6b8c8e881df68 (diff) |
lib/igt_pm: dump runtime pm status on timeout
Display the runtime pm status if we timeout waiting for status.
v2: Add helper to map runtime pm status enum to string.
Signed-off-by: Don Hiatt <don.hiatt@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Vanshidhar Konda <vanshidhar.r.konda@intel.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/igt_pm.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/lib/igt_pm.c b/lib/igt_pm.c index 64ce240e..d96fee7a 100644 --- a/lib/igt_pm.c +++ b/lib/igt_pm.c @@ -685,6 +685,28 @@ enum igt_runtime_pm_status igt_get_runtime_pm_status(void) } /** + * _pm_status_name + * @status: runtime PM status to stringify + * + * Returns: The current runtime PM status as a string + */ +static const char *_pm_status_name(enum igt_runtime_pm_status status) +{ + switch (status) { + case IGT_RUNTIME_PM_STATUS_ACTIVE: + return "active"; + case IGT_RUNTIME_PM_STATUS_RESUMING: + return "resuming"; + case IGT_RUNTIME_PM_STATUS_SUSPENDED: + return "suspended"; + case IGT_RUNTIME_PM_STATUS_SUSPENDING: + return "suspending"; + default: + return "unknown"; + } +} + +/** * igt_wait_for_pm_status: * @status: desired runtime PM status * @@ -697,7 +719,16 @@ enum igt_runtime_pm_status igt_get_runtime_pm_status(void) */ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status) { - return igt_wait(igt_get_runtime_pm_status() == status, 10000, 100); + bool ret; + enum igt_runtime_pm_status expected = status; + + ret = igt_wait((status = igt_get_runtime_pm_status()) == expected, 10000, 100); + if (!ret) + igt_warn("timeout: pm_status expected:%s, got:%s\n", + _pm_status_name(expected), + _pm_status_name(status)); + + return ret; } /** |