mirror of
https://github.com/Evolution-X-Devices/device_google_redbull
synced 2026-01-27 20:27:42 +00:00
Test: adb shell "lshal debug android.hardware.power.stats@1.0::IPowerStats/default"
============= PowerStats HAL 1.0 rail energy data ==============
Subsys Rail Cumulative Energy
Cellular PPVAR_VPH_PWR_RF 233.84 mWs
Cellular(mmWave) PPVAR_VPH_PWR_QTM525 185.90 mWs
Display PPVAR_VPH_PWR_OLED 106.77 mWs
WLAN PPVAR_VPH_PWR_WLAN 709.28 mWs
WLAN WCN3998_VDD13 [from PP1304_L2C] 3105.63 mWs
CPU(SILVER) PPVAR_VPH_PWR_S1C 36505.33 mWs
CPU(GOLD) PPVAR_VPH_PWR_S2A_S3A 19881.20 mWs
VDD_CX(SM7250) PPVAR_VPH_PWR_S1A_S9A_S10A 20851.89 mWs
========== End of PowerStats HAL 1.0 rail energy data ==========
Bug: 146115475
Change-Id: I0eb0ee5701a5f1bbc7b0e645e2fbada8542444ad
Signed-off-by: Xavier_Cheng <xacheng@google.com>
48 lines
1.6 KiB
C++
48 lines
1.6 KiB
C++
|
|
#ifndef ANDROID_HARDWARE_POWERSTATS_RAILDATAPROVIDER_H
|
|
#define ANDROID_HARDWARE_POWERSTATS_RAILDATAPROVIDER_H
|
|
#include <fmq/MessageQueue.h>
|
|
#include <pixelpowerstats/PowerStats.h>
|
|
namespace android {
|
|
namespace hardware {
|
|
namespace google {
|
|
namespace pixel {
|
|
namespace powerstats {
|
|
typedef MessageQueue<EnergyData, kSynchronizedReadWrite> MessageQueueSync;
|
|
struct RailData {
|
|
std::string devicePath;
|
|
uint32_t index;
|
|
std::string subsysName;
|
|
uint32_t samplingRate;
|
|
};
|
|
struct OnDeviceMmt {
|
|
std::mutex mLock;
|
|
bool hwEnabled;
|
|
std::vector<std::string> devicePaths;
|
|
std::map<std::string, RailData> railsInfo;
|
|
std::vector<EnergyData> reading;
|
|
std::unique_ptr<MessageQueueSync> fmqSynchronized;
|
|
};
|
|
class RailDataProvider : public IRailDataProvider {
|
|
public:
|
|
RailDataProvider();
|
|
// Methods from ::android::hardware::power::stats::V1_0::IPowerStats follow.
|
|
Return<void> getRailInfo(IPowerStats::getRailInfo_cb _hidl_cb) override;
|
|
Return<void> getEnergyData(const hidl_vec<uint32_t>& railIndices,
|
|
IPowerStats::getEnergyData_cb _hidl_cb) override;
|
|
Return<void> streamEnergyData(uint32_t timeMs, uint32_t samplingRate,
|
|
IPowerStats::streamEnergyData_cb _hidl_cb) override;
|
|
private:
|
|
OnDeviceMmt mOdpm;
|
|
void findIioPowerMonitorNodes();
|
|
size_t parsePowerRails();
|
|
int parseIioEnergyNode(std::string devName);
|
|
Status parseIioEnergyNodes();
|
|
};
|
|
} // namespace powerstats
|
|
} // namespace pixel
|
|
} // namespace google
|
|
} // namespace hardware
|
|
} // namespace android
|
|
#endif // ANDROID_HARDWARE_POWERSTATS_RAILDATAPROVIDER_H
|