xref: /linux/drivers/net/wireless/intel/iwlwifi/mld/thermal.h (revision 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95)
1*d1e879ecSMiri Korenblit /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2*d1e879ecSMiri Korenblit /*
3*d1e879ecSMiri Korenblit  * Copyright (C) 2024 Intel Corporation
4*d1e879ecSMiri Korenblit  */
5*d1e879ecSMiri Korenblit #ifndef __iwl_mld_thermal_h__
6*d1e879ecSMiri Korenblit #define __iwl_mld_thermal_h__
7*d1e879ecSMiri Korenblit 
8*d1e879ecSMiri Korenblit #include "iwl-trans.h"
9*d1e879ecSMiri Korenblit 
10*d1e879ecSMiri Korenblit struct iwl_mld;
11*d1e879ecSMiri Korenblit 
12*d1e879ecSMiri Korenblit #ifdef CONFIG_THERMAL
13*d1e879ecSMiri Korenblit #include <linux/thermal.h>
14*d1e879ecSMiri Korenblit 
15*d1e879ecSMiri Korenblit /*
16*d1e879ecSMiri Korenblit  * struct iwl_mld_cooling_device
17*d1e879ecSMiri Korenblit  * @cur_state: current state
18*d1e879ecSMiri Korenblit  * @cdev: struct thermal cooling device
19*d1e879ecSMiri Korenblit  */
20*d1e879ecSMiri Korenblit struct iwl_mld_cooling_device {
21*d1e879ecSMiri Korenblit 	u32 cur_state;
22*d1e879ecSMiri Korenblit 	struct thermal_cooling_device *cdev;
23*d1e879ecSMiri Korenblit };
24*d1e879ecSMiri Korenblit 
25*d1e879ecSMiri Korenblit int iwl_mld_config_ctdp(struct iwl_mld *mld, u32 state,
26*d1e879ecSMiri Korenblit 			enum iwl_ctdp_cmd_operation op);
27*d1e879ecSMiri Korenblit #endif
28*d1e879ecSMiri Korenblit 
29*d1e879ecSMiri Korenblit void iwl_mld_handle_temp_notif(struct iwl_mld *mld, struct iwl_rx_packet *pkt);
30*d1e879ecSMiri Korenblit void iwl_mld_handle_ct_kill_notif(struct iwl_mld *mld,
31*d1e879ecSMiri Korenblit 				  struct iwl_rx_packet *pkt);
32*d1e879ecSMiri Korenblit int iwl_mld_config_temp_report_ths(struct iwl_mld *mld);
33*d1e879ecSMiri Korenblit void iwl_mld_thermal_initialize(struct iwl_mld *mld);
34*d1e879ecSMiri Korenblit void iwl_mld_thermal_exit(struct iwl_mld *mld);
35*d1e879ecSMiri Korenblit 
36*d1e879ecSMiri Korenblit #endif /* __iwl_mld_thermal_h__ */
37