54 lines
1.2 KiB
C
54 lines
1.2 KiB
C
|
/* SPDX-License-Identifier: ISC */
|
||
|
/*
|
||
|
* Copyright (c) 2014-2016 Qualcomm Atheros, Inc.
|
||
|
*/
|
||
|
#ifndef _THERMAL_
|
||
|
#define _THERMAL_
|
||
|
|
||
|
#define ATH10K_QUIET_PERIOD_DEFAULT 100
|
||
|
#define ATH10K_QUIET_PERIOD_MIN 25
|
||
|
#define ATH10K_QUIET_START_OFFSET 10
|
||
|
#define ATH10K_HWMON_NAME_LEN 15
|
||
|
#define ATH10K_THERMAL_SYNC_TIMEOUT_HZ (5 * HZ)
|
||
|
#define ATH10K_THERMAL_THROTTLE_MAX 100
|
||
|
|
||
|
struct ath10k_thermal {
|
||
|
struct thermal_cooling_device *cdev;
|
||
|
struct completion wmi_sync;
|
||
|
|
||
|
/* protected by conf_mutex */
|
||
|
u32 throttle_state;
|
||
|
u32 quiet_period;
|
||
|
/* temperature value in Celcius degree
|
||
|
* protected by data_lock
|
||
|
*/
|
||
|
int temperature;
|
||
|
};
|
||
|
|
||
|
#if IS_REACHABLE(CONFIG_THERMAL)
|
||
|
int ath10k_thermal_register(struct ath10k *ar);
|
||
|
void ath10k_thermal_unregister(struct ath10k *ar);
|
||
|
void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature);
|
||
|
void ath10k_thermal_set_throttling(struct ath10k *ar);
|
||
|
#else
|
||
|
static inline int ath10k_thermal_register(struct ath10k *ar)
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
static inline void ath10k_thermal_unregister(struct ath10k *ar)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
static inline void ath10k_thermal_event_temperature(struct ath10k *ar,
|
||
|
int temperature)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
static inline void ath10k_thermal_set_throttling(struct ath10k *ar)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
#endif
|
||
|
#endif /* _THERMAL_ */
|