powerstats: use display MRR state residency data provider
Bug: 322717760
Test: vts-tradefed run vts -m VtsHalPowerStatsTargetTest
Change-Id: I671d21b3da98b4c0973e6cf281f694d90df47ef4
Signed-off-by: Darren Hsu <darrenhsu@google.com>
diff --git a/powerstats/raven/service.cpp b/powerstats/raven/service.cpp
index 10bf17e..d8494e2 100644
--- a/powerstats/raven/service.cpp
+++ b/powerstats/raven/service.cpp
@@ -43,21 +43,28 @@
void addDisplay(std::shared_ptr<PowerStats> p) {
// Add display residency stats
- std::vector<std::string> states = {
- "Off",
- "LP: 1440x3120@10",
- "LP: 1440x3120@30",
- "On: 1440x3120@10",
- "On: 1440x3120@30",
- "On: 1440x3120@60",
- "On: 1440x3120@90",
- "On: 1440x3120@120",
- "HBM: 1440x3120@60",
- };
+ struct stat buffer;
+ if (!stat("/sys/class/drm/card0/device/primary-panel/time_in_state", &buffer)) {
+ // time_in_state exists
+ addDisplayMrr(p);
+ } else {
+ // time_in_state doesn't exist
+ std::vector<std::string> states = {
+ "Off",
+ "LP: 1440x3120@10",
+ "LP: 1440x3120@30",
+ "On: 1440x3120@10",
+ "On: 1440x3120@30",
+ "On: 1440x3120@60",
+ "On: 1440x3120@90",
+ "On: 1440x3120@120",
+ "HBM: 1440x3120@60",
+ };
- p->addStateResidencyDataProvider(std::make_unique<DisplayStateResidencyDataProvider>("Display",
- "/sys/class/backlight/panel0-backlight/state",
- states));
+ p->addStateResidencyDataProvider(std::make_unique<DisplayStateResidencyDataProvider>("Display",
+ "/sys/class/backlight/panel0-backlight/state",
+ states));
+ }
std::string rev = android::base::GetProperty(kBootRevision, "");