mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 20:33:58 -04:00
qcacmn: Add QCA vendor interface to fetch thermal stats from driver
Enhance QCA_NL80211_VENDOR_SUBCMD_THERMAL_CMD to fetch thermal stats for different temperature levels from the driver to userspace. The stats will be stored in the driver/firmware for predefined temperature levels and will be reported to userspace when QCA_NL80211_VENDOR_SUBCMD_THERMAL_CMD is sent with command type QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS. The thermal stats can be cleared from userspace by sending QCA_NL80211_VENDOR_SUBCMD_THERMAL_CMD command with type QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_CLEAR_THERMAL_STATS. Change-Id: I937bc89865df484a068c887d906df5a9502f1925 CRs-Fixed: 3016851
This commit is contained in:
parent
3fd0eae263
commit
a0e05e1994
1 changed files with 50 additions and 0 deletions
|
|
@ -5344,6 +5344,14 @@ enum qca_wlan_vendor_attr_thermal_cmd {
|
|||
* there is any critical ongoing operation.
|
||||
*/
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_COMPLETION_WINDOW = 3,
|
||||
/* Nested attribute, driver/firmware uses this attribute to report
|
||||
* thermal stats of different thermal levels to userspace when requested
|
||||
* using QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS command
|
||||
* type. This attribute contains nested array of records of thermal
|
||||
* statistics of multiple levels. The attributes used inside this nested
|
||||
* attribute are defined in enum qca_wlan_vendor_attr_thermal_stats.
|
||||
*/
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_STATS = 4,
|
||||
/* keep last */
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_AFTER_LAST,
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_MAX =
|
||||
|
|
@ -5368,6 +5376,16 @@ enum qca_wlan_vendor_attr_thermal_cmd {
|
|||
* resume action.
|
||||
* @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_SET_LEVEL: Configure thermal level to
|
||||
* the driver/firmware.
|
||||
* @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_LEVEL: Request to get the current
|
||||
* thermal level from the driver/firmware. The driver should respond with a
|
||||
* thermal level defined in enum qca_wlan_vendor_thermal_level.
|
||||
* @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS: Request to get the
|
||||
* current thermal stats from the driver/firmware. The driver should respond
|
||||
* with stats of all thermal levels encapsulated in attribute
|
||||
* QCA_WLAN_VENDOR_ATTR_THERMAL_STATS.
|
||||
* @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_CLEAR_THERMAL_STATS: Request to clear
|
||||
* the current thermal stats all thermal levels maintained in the
|
||||
* driver/firmware and start counting from zero again.
|
||||
*/
|
||||
enum qca_wlan_vendor_attr_thermal_cmd_type {
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_PARAMS,
|
||||
|
|
@ -5375,6 +5393,9 @@ enum qca_wlan_vendor_attr_thermal_cmd_type {
|
|||
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_SUSPEND,
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_RESUME,
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_SET_LEVEL,
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_LEVEL,
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS,
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_CLEAR_THERMAL_STATS,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -7676,6 +7697,35 @@ enum qca_wlan_vendor_attr_mac_info {
|
|||
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_wlan_vendor_attr_thermal_stats - vendor subcmd attributes
|
||||
* to get thermal status from driver/firmware.
|
||||
* enum values are used for NL attributes encapsulated inside
|
||||
* QCA_WLAN_VENDOR_ATTR_THERMAL_STATS nested attribute.
|
||||
*
|
||||
* QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MIN_TEMPERATURE: Minimum temperature
|
||||
* of a thermal level in Celsius. u32 size.
|
||||
* QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MAX_TEMPERATURE: Maximum temperature
|
||||
* of a thermal level in Celsius. u32 size.
|
||||
* QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_DWELL_TIME: The total time spent on each
|
||||
* thermal level in milliseconds. u32 size.
|
||||
* QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_TEMP_LEVEL_COUNTER: Indicates the number
|
||||
* of times the temperature crossed into the temperature range defined by the
|
||||
* thermal level from both higher and lower directions. u32 size.
|
||||
*/
|
||||
enum qca_wlan_vendor_attr_thermal_stats {
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_INVALID = 0,
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MIN_TEMPERATURE,
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MAX_TEMPERATURE,
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_DWELL_TIME,
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_TEMP_LEVEL_COUNTER,
|
||||
|
||||
/* keep last */
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_AFTER_LAST,
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MAX =
|
||||
QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_AFTER_LAST - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum he_fragmentation_val - HE fragmentation support values
|
||||
* Indicates level of dynamic fragmentation that is supported by
|
||||
|
|
|
|||
Loading…
Reference in a new issue