diff --git a/os_if/linux/qca_vendor.h b/os_if/linux/qca_vendor.h index 1b06af7d4d31..d3b91124e082 100644 --- a/os_if/linux/qca_vendor.h +++ b/os_if/linux/qca_vendor.h @@ -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