1*5113495bSYour Name /* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. 2*5113495bSYour Name * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. 3*5113495bSYour Name * 4*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for any 5*5113495bSYour Name * purpose with or without fee is hereby granted, provided that the above 6*5113495bSYour Name * copyright notice and this permission notice appear in all copies. 7*5113495bSYour Name * 8*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9*5113495bSYour Name * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10*5113495bSYour Name * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11*5113495bSYour Name * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12*5113495bSYour Name * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13*5113495bSYour Name * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14*5113495bSYour Name * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15*5113495bSYour Name */ 16*5113495bSYour Name 17*5113495bSYour Name /** 18*5113495bSYour Name * DOC: declare the thermal public structure 19*5113495bSYour Name */ 20*5113495bSYour Name #ifndef _WLAN_THERMAL_PUBLIC_STRUCT_H_ 21*5113495bSYour Name #define _WLAN_THERMAL_PUBLIC_STRUCT_H_ 22*5113495bSYour Name 23*5113495bSYour Name /** 24*5113495bSYour Name * enum thermal_throttle_level - firmware offload throttle level 25*5113495bSYour Name * @THERMAL_FULLPERF: no any throttling 26*5113495bSYour Name * @THERMAL_MITIGATION: throttling tx to do mitigation 27*5113495bSYour Name * @THERMAL_SHUTOFF: shut off the tx completely 28*5113495bSYour Name * @THERMAL_SHUTDOWN_TARGET: target will be shutdown entirely 29*5113495bSYour Name * @THERMAL_UNKNOWN: unknown level from target. 30*5113495bSYour Name */ 31*5113495bSYour Name enum thermal_throttle_level { 32*5113495bSYour Name THERMAL_FULLPERF, 33*5113495bSYour Name THERMAL_MITIGATION, 34*5113495bSYour Name THERMAL_SHUTOFF, 35*5113495bSYour Name THERMAL_SHUTDOWN_TARGET, 36*5113495bSYour Name THERMAL_UNKNOWN, 37*5113495bSYour Name }; 38*5113495bSYour Name 39*5113495bSYour Name enum thermal_stats_request_type { 40*5113495bSYour Name thermal_stats_none = 0, 41*5113495bSYour Name thermal_stats_init, 42*5113495bSYour Name thermal_stats_req, 43*5113495bSYour Name thermal_stats_clear, 44*5113495bSYour Name thermal_stats_current_all_sensors_temp, 45*5113495bSYour Name }; 46*5113495bSYour Name 47*5113495bSYour Name /** 48*5113495bSYour Name * struct thermal_throt_level_stats - thermal throttle info from Target 49*5113495bSYour Name * @start_temp_level: Start temperature range to capture thermal stats 50*5113495bSYour Name * @end_temp_level: End temperature range to capture thermal stats 51*5113495bSYour Name * @total_time_ms_lo: Start time for every thermal stats level in msec 52*5113495bSYour Name * @total_time_ms_hi: End time for every thermal stats level in msec 53*5113495bSYour Name * @num_entry: Thermal stats counter for every time temp level for this range 54*5113495bSYour Name */ 55*5113495bSYour Name struct thermal_throt_level_stats { 56*5113495bSYour Name uint32_t start_temp_level; 57*5113495bSYour Name uint32_t end_temp_level; 58*5113495bSYour Name uint32_t total_time_ms_lo; 59*5113495bSYour Name uint32_t total_time_ms_hi; 60*5113495bSYour Name uint32_t num_entry; 61*5113495bSYour Name }; 62*5113495bSYour Name 63*5113495bSYour Name #endif /* _WLAN_THERMAL_PUBLIC_STRUCT_H_ */ 64