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
Этот коммит содержится в:

коммит произвёл
Madan Koyyalamudi

родитель
116aba71e2
Коммит
8041677626
@@ -5408,6 +5408,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,
|
||||
@@ -5436,6 +5444,13 @@ enum qca_wlan_vendor_attr_thermal_cmd {
|
||||
* @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,
|
||||
@@ -5444,6 +5459,8 @@ enum qca_wlan_vendor_attr_thermal_cmd_type {
|
||||
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,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -7871,6 +7888,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
|
||||
|
Ссылка в новой задаче
Block a user