Commit | Line | Data |
---|---|---|
fe6f36d6 RM |
1 | /* |
2 | * Copyright (c) 2014 Qualcomm Atheros, Inc. | |
3 | * | |
4 | * Permission to use, copy, modify, and/or distribute this software for any | |
5 | * purpose with or without fee is hereby granted, provided that the above | |
6 | * copyright notice and this permission notice appear in all copies. | |
7 | * | |
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
15 | */ | |
16 | #ifndef _THERMAL_ | |
17 | #define _THERMAL_ | |
18 | ||
19 | #define ATH10K_QUIET_PERIOD_DEFAULT 100 | |
20 | #define ATH10K_QUIET_PERIOD_MIN 25 | |
21 | #define ATH10K_QUIET_START_OFFSET 10 | |
ac2953fc RM |
22 | #define ATH10K_HWMON_NAME_LEN 15 |
23 | #define ATH10K_THERMAL_SYNC_TIMEOUT_HZ (5*HZ) | |
972f0513 | 24 | #define ATH10K_THERMAL_THROTTLE_MAX 100 |
fe6f36d6 RM |
25 | |
26 | struct ath10k_thermal { | |
27 | struct thermal_cooling_device *cdev; | |
ac2953fc | 28 | struct completion wmi_sync; |
fe6f36d6 RM |
29 | |
30 | /* protected by conf_mutex */ | |
972f0513 | 31 | u32 throttle_state; |
63fb32df | 32 | u32 quiet_period; |
ac2953fc RM |
33 | /* temperature value in Celcius degree |
34 | * protected by data_lock | |
35 | */ | |
36 | int temperature; | |
fe6f36d6 RM |
37 | }; |
38 | ||
de5315ce | 39 | #if IS_REACHABLE(CONFIG_THERMAL) |
fe6f36d6 RM |
40 | int ath10k_thermal_register(struct ath10k *ar); |
41 | void ath10k_thermal_unregister(struct ath10k *ar); | |
ac2953fc | 42 | void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature); |
8515b5c7 | 43 | void ath10k_thermal_set_throttling(struct ath10k *ar); |
fe6f36d6 RM |
44 | #else |
45 | static inline int ath10k_thermal_register(struct ath10k *ar) | |
46 | { | |
47 | return 0; | |
48 | } | |
49 | ||
50 | static inline void ath10k_thermal_unregister(struct ath10k *ar) | |
51 | { | |
52 | } | |
ac2953fc RM |
53 | |
54 | static inline void ath10k_thermal_event_temperature(struct ath10k *ar, | |
55 | int temperature) | |
56 | { | |
57 | } | |
58 | ||
8515b5c7 RM |
59 | static inline void ath10k_thermal_set_throttling(struct ath10k *ar) |
60 | { | |
61 | } | |
62 | ||
fe6f36d6 RM |
63 | #endif |
64 | #endif /* _THERMAL_ */ |