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