Loading cmds/statsd/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -136,7 +136,7 @@ cc_defaults { "android.hardware.power@1.0", "android.hardware.power@1.1", "android.hardware.power.stats@1.0", "android.hardware.thermal@1.0", "android.hardware.thermal@2.0", "libpackagelistparser", "libsysutils", "libcutils", Loading cmds/statsd/src/atoms.proto +2 −1 Original line number Diff line number Diff line Loading @@ -2789,13 +2789,14 @@ message BatteryLevel { * frameworks/base/cmds/statsd/src/external/ResourceThermalManagerPuller.cpp */ message Temperature { // The type of temperature being reported. Eg. CPU, GPU, SKIN, BATTERY. // The type of temperature being reported. Eg. CPU, GPU, SKIN, BATTERY, BCL_. optional android.os.TemperatureTypeEnum sensor_location = 1; // The name of the temperature source. Eg. CPU0 optional string sensor_name = 2; // Temperature in tenths of a degree C. // For BCL, it is decimillivolt, decimilliamps, and percentage * 10. optional int32 temperature_deci_celsius = 3; } Loading cmds/statsd/src/external/ResourceThermalManagerPuller.cpp +9 −8 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ #define DEBUG false // STOPSHIP if true #include "Log.h" #include <android/hardware/thermal/1.0/IThermal.h> #include <android/hardware/thermal/2.0/IThermal.h> #include "external/ResourceThermalManagerPuller.h" #include "external/StatsPuller.h" Loading @@ -31,10 +31,11 @@ using android::hardware::hidl_death_recipient; using android::hardware::hidl_vec; using android::hidl::base::V1_0::IBase; using android::hardware::thermal::V1_0::IThermal; using android::hardware::thermal::V1_0::Temperature; using android::hardware::thermal::V1_0::ThermalStatus; using android::hardware::thermal::V1_0::ThermalStatusCode; using ::android::hardware::thermal::V2_0::IThermal; using ::android::hardware::thermal::V2_0::Temperature; using ::android::hardware::thermal::V2_0::TemperatureType; using ::android::hardware::thermal::V1_0::ThermalStatus; using ::android::hardware::thermal::V1_0::ThermalStatusCode; using android::hardware::Return; using android::hardware::Void; Loading @@ -49,7 +50,7 @@ namespace os { namespace statsd { bool getThermalHalLocked(); sp<android::hardware::thermal::V1_0::IThermal> gThermalHal = nullptr; sp<android::hardware::thermal::V2_0::IThermal> gThermalHal = nullptr; std::mutex gThermalHalMutex; struct ThermalHalDeathRecipient : virtual public hidl_death_recipient { Loading Loading @@ -107,7 +108,7 @@ bool ResourceThermalManagerPuller::PullInternal(vector<shared_ptr<LogEvent>>* da data->clear(); bool resultSuccess = true; Return<void> ret = gThermalHal->getTemperatures( Return<void> ret = gThermalHal->getCurrentTemperatures(false, TemperatureType::SKIN, [&](ThermalStatus status, const hidl_vec<Temperature>& temps) { if (status.code != ThermalStatusCode::SUCCESS) { ALOGE("Failed to get temperatures from ThermalHAL. Status: %d", status.code); Loading @@ -121,7 +122,7 @@ bool ResourceThermalManagerPuller::PullInternal(vector<shared_ptr<LogEvent>>* da ptr->write((static_cast<int>(temps[i].type))); ptr->write(temps[i].name); // Convert the temperature to an int. int32_t temp = static_cast<int>(temps[i].currentValue * 10); int32_t temp = static_cast<int>(temps[i].value * 10); ptr->write(temp); ptr->init(); data->push_back(ptr); Loading core/proto/android/os/enums.proto +11 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ enum BatteryStatusEnum { } // These constants are defined in hardware/interfaces/thermal/1.0/types.hal // and in hardware/interfaces/thermal/2.0/types.hal // They are primarily used by android/os/HardwarePropertiesManager.java. // Any change to the types in the thermal hal should be made here as well. enum TemperatureTypeEnum { Loading @@ -65,6 +66,16 @@ enum TemperatureTypeEnum { TEMPERATURE_TYPE_GPU = 1; TEMPERATURE_TYPE_BATTERY = 2; TEMPERATURE_TYPE_SKIN = 3; TEMPERATURE_TYPE_USB_PORT = 4; TEMPERATURE_TYPE_POWER_AMPLIFIER = 5; // Battery Charge Limit - virtual thermal sensors. TEMPERATURE_TYPE_BCL_VOLTAGE = 6; TEMPERATURE_TYPE_BCL_CURRENT = 7; TEMPERATURE_TYPE_BCL_PERCENTAGE = 8; // Neural Processing Unit. TEMPERATURE_TYPE_NPU = 9; } // Wakelock types, primarily used by android/os/PowerManager.java. Loading Loading
cmds/statsd/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -136,7 +136,7 @@ cc_defaults { "android.hardware.power@1.0", "android.hardware.power@1.1", "android.hardware.power.stats@1.0", "android.hardware.thermal@1.0", "android.hardware.thermal@2.0", "libpackagelistparser", "libsysutils", "libcutils", Loading
cmds/statsd/src/atoms.proto +2 −1 Original line number Diff line number Diff line Loading @@ -2789,13 +2789,14 @@ message BatteryLevel { * frameworks/base/cmds/statsd/src/external/ResourceThermalManagerPuller.cpp */ message Temperature { // The type of temperature being reported. Eg. CPU, GPU, SKIN, BATTERY. // The type of temperature being reported. Eg. CPU, GPU, SKIN, BATTERY, BCL_. optional android.os.TemperatureTypeEnum sensor_location = 1; // The name of the temperature source. Eg. CPU0 optional string sensor_name = 2; // Temperature in tenths of a degree C. // For BCL, it is decimillivolt, decimilliamps, and percentage * 10. optional int32 temperature_deci_celsius = 3; } Loading
cmds/statsd/src/external/ResourceThermalManagerPuller.cpp +9 −8 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ #define DEBUG false // STOPSHIP if true #include "Log.h" #include <android/hardware/thermal/1.0/IThermal.h> #include <android/hardware/thermal/2.0/IThermal.h> #include "external/ResourceThermalManagerPuller.h" #include "external/StatsPuller.h" Loading @@ -31,10 +31,11 @@ using android::hardware::hidl_death_recipient; using android::hardware::hidl_vec; using android::hidl::base::V1_0::IBase; using android::hardware::thermal::V1_0::IThermal; using android::hardware::thermal::V1_0::Temperature; using android::hardware::thermal::V1_0::ThermalStatus; using android::hardware::thermal::V1_0::ThermalStatusCode; using ::android::hardware::thermal::V2_0::IThermal; using ::android::hardware::thermal::V2_0::Temperature; using ::android::hardware::thermal::V2_0::TemperatureType; using ::android::hardware::thermal::V1_0::ThermalStatus; using ::android::hardware::thermal::V1_0::ThermalStatusCode; using android::hardware::Return; using android::hardware::Void; Loading @@ -49,7 +50,7 @@ namespace os { namespace statsd { bool getThermalHalLocked(); sp<android::hardware::thermal::V1_0::IThermal> gThermalHal = nullptr; sp<android::hardware::thermal::V2_0::IThermal> gThermalHal = nullptr; std::mutex gThermalHalMutex; struct ThermalHalDeathRecipient : virtual public hidl_death_recipient { Loading Loading @@ -107,7 +108,7 @@ bool ResourceThermalManagerPuller::PullInternal(vector<shared_ptr<LogEvent>>* da data->clear(); bool resultSuccess = true; Return<void> ret = gThermalHal->getTemperatures( Return<void> ret = gThermalHal->getCurrentTemperatures(false, TemperatureType::SKIN, [&](ThermalStatus status, const hidl_vec<Temperature>& temps) { if (status.code != ThermalStatusCode::SUCCESS) { ALOGE("Failed to get temperatures from ThermalHAL. Status: %d", status.code); Loading @@ -121,7 +122,7 @@ bool ResourceThermalManagerPuller::PullInternal(vector<shared_ptr<LogEvent>>* da ptr->write((static_cast<int>(temps[i].type))); ptr->write(temps[i].name); // Convert the temperature to an int. int32_t temp = static_cast<int>(temps[i].currentValue * 10); int32_t temp = static_cast<int>(temps[i].value * 10); ptr->write(temp); ptr->init(); data->push_back(ptr); Loading
core/proto/android/os/enums.proto +11 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ enum BatteryStatusEnum { } // These constants are defined in hardware/interfaces/thermal/1.0/types.hal // and in hardware/interfaces/thermal/2.0/types.hal // They are primarily used by android/os/HardwarePropertiesManager.java. // Any change to the types in the thermal hal should be made here as well. enum TemperatureTypeEnum { Loading @@ -65,6 +66,16 @@ enum TemperatureTypeEnum { TEMPERATURE_TYPE_GPU = 1; TEMPERATURE_TYPE_BATTERY = 2; TEMPERATURE_TYPE_SKIN = 3; TEMPERATURE_TYPE_USB_PORT = 4; TEMPERATURE_TYPE_POWER_AMPLIFIER = 5; // Battery Charge Limit - virtual thermal sensors. TEMPERATURE_TYPE_BCL_VOLTAGE = 6; TEMPERATURE_TYPE_BCL_CURRENT = 7; TEMPERATURE_TYPE_BCL_PERCENTAGE = 8; // Neural Processing Unit. TEMPERATURE_TYPE_NPU = 9; } // Wakelock types, primarily used by android/os/PowerManager.java. Loading