diff --git a/powerstats/oriole/service.cpp b/powerstats/oriole/service.cpp index ee9d57e..8331997 100644 --- a/powerstats/oriole/service.cpp +++ b/powerstats/oriole/service.cpp @@ -31,6 +31,13 @@ using aidl::android::hardware::power::stats::DisplayStateResidencyDataProvider; using aidl::android::hardware::power::stats::EnergyConsumerType; using aidl::android::hardware::power::stats::PowerStatsEnergyConsumer; +const char kBootRevision[] = "ro.boot.revision"; +std::map displayChannelNames = { + {"PROTO1.0", "PPVAR_VSYS_PWR_DISP"}, + {"EVT1.0", "PPVAR_VSYS_PWR_DISP"}, + {"EVT1.1", "VSYS_PWR_DISPLAY"}, +}; + void addDisplay(std::shared_ptr p) { // Add display residency stats std::vector states = { @@ -45,13 +52,22 @@ void addDisplay(std::shared_ptr p) { "/sys/class/backlight/panel0-backlight/state", states)); + std::string rev = android::base::GetProperty(kBootRevision, ""); + + std::string channelName; + if (displayChannelNames.find(rev) == displayChannelNames.end()) { + channelName = displayChannelNames["EVT1.1"]; + } else { + channelName = displayChannelNames[rev]; + } + // Add display energy consumer /* * TODO(b/167216667): Add correct display power model here. Must read from display rail * and include proper coefficients for display states. */ p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndEntityConsumer(p, - EnergyConsumerType::DISPLAY, "display", {"PPVAR_VSYS_PWR_DISP"}, "Display", + EnergyConsumerType::DISPLAY, "display", {channelName}, "Display", {{"LP: 1080x2400@30", 1}, {"On: 1080x2400@60", 2}, {"On: 1080x2400@90", 3}, diff --git a/powerstats/raven/service.cpp b/powerstats/raven/service.cpp index 6ee27d8..579efa1 100644 --- a/powerstats/raven/service.cpp +++ b/powerstats/raven/service.cpp @@ -33,6 +33,13 @@ using aidl::android::hardware::power::stats::EnergyConsumerType; using aidl::android::hardware::power::stats::GenericStateResidencyDataProvider; using aidl::android::hardware::power::stats::PowerStatsEnergyConsumer; +const char kBootRevision[] = "ro.boot.revision"; +std::map displayChannelNames = { + {"PROTO1.0", "PPVAR_VSYS_PWR_DISP"}, + {"EVT1.0", "PPVAR_VSYS_PWR_DISP"}, + {"EVT1.1", "VSYS_PWR_DISPLAY"}, +}; + void addDisplay(std::shared_ptr p) { // Add display residency stats std::vector states = { @@ -51,13 +58,22 @@ void addDisplay(std::shared_ptr p) { "/sys/class/backlight/panel0-backlight/state", states)); + std::string rev = android::base::GetProperty(kBootRevision, ""); + + std::string channelName; + if (displayChannelNames.find(rev) == displayChannelNames.end()) { + channelName = displayChannelNames["EVT1.1"]; + } else { + channelName = displayChannelNames[rev]; + } + // Add display energy consumer /* * TODO(b/167216667): Add correct display power model here. Must read from display rail * and include proper coefficients for display states. */ p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndEntityConsumer(p, - EnergyConsumerType::DISPLAY, "display", {"PPVAR_VSYS_PWR_DISP"}, "Display", + EnergyConsumerType::DISPLAY, "display", {channelName}, "Display", {{"LP: 1440x3120@10", 1}, {"LP: 1440x3120@30", 2}, {"On: 1440x3120@10", 3},