diff --git a/powerstats/felix/service.cpp b/powerstats/felix/service.cpp index 2ccabb0..2de3797 100644 --- a/powerstats/felix/service.cpp +++ b/powerstats/felix/service.cpp @@ -28,6 +28,7 @@ #include #include #include +#include using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider; using aidl::android::hardware::power::stats::DisplayStateResidencyDataProvider; @@ -140,6 +141,18 @@ void addGPU(std::shared_ptr p) { stateCoeffs)); } +std::string getNfcPath() { + struct stat buffer; + int size = 128; + char path[size]; + for (int i = 0; i < 10; i++) { + std::snprintf(path, size, + "/sys/devices/platform/10970000.hsi2c/i2c-%d/i2c-st21nfc/power_stats", i); + if (!stat(path, &buffer)) break; + } + return std::string(path); +} + int main() { LOG(INFO) << "Pixel PowerStats HAL AIDL Service is starting."; @@ -160,7 +173,7 @@ int main() { addWifi(p); addTPU(p); addUfs(p); - addNFC(p, "/sys/devices/platform/10970000.hsi2c/i2c-4/i2c-st21nfc/power_stats"); + addNFC(p, getNfcPath()); addUwb(p); addPowerDomains(p); addDevfreq(p);