linux/drivers/net/wireless/ath/ath11k/thermal.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: BSD-3-Clause-Clear */
   2/*
   3 * Copyright (c) 2020 The Linux Foundation. All rights reserved.
   4 */
   5
   6#ifndef _ATH11K_THERMAL_
   7#define _ATH11K_THERMAL_
   8
   9#define ATH11K_THERMAL_TEMP_LOW_MARK -100
  10#define ATH11K_THERMAL_TEMP_HIGH_MARK 150
  11#define ATH11K_THERMAL_THROTTLE_MAX     100
  12#define ATH11K_THERMAL_DEFAULT_DUTY_CYCLE 100
  13#define ATH11K_HWMON_NAME_LEN           15
  14#define ATH11K_THERMAL_SYNC_TIMEOUT_HZ (5 * HZ)
  15
  16struct ath11k_thermal {
  17        struct thermal_cooling_device *cdev;
  18        struct completion wmi_sync;
  19
  20        /* protected by conf_mutex */
  21        u32 throttle_state;
  22        /* temperature value in Celcius degree
  23         * protected by data_lock
  24         */
  25        int temperature;
  26};
  27
  28#if IS_REACHABLE(CONFIG_THERMAL)
  29int ath11k_thermal_register(struct ath11k_base *sc);
  30void ath11k_thermal_unregister(struct ath11k_base *sc);
  31int ath11k_thermal_set_throttling(struct ath11k *ar, u32 throttle_state);
  32void ath11k_thermal_event_temperature(struct ath11k *ar, int temperature);
  33#else
  34static inline int ath11k_thermal_register(struct ath11k_base *sc)
  35{
  36        return 0;
  37}
  38
  39static inline void ath11k_thermal_unregister(struct ath11k_base *sc)
  40{
  41}
  42
  43static inline int ath11k_thermal_set_throttling(struct ath11k *ar, u32 throttle_state)
  44{
  45        return 0;
  46}
  47
  48static inline void ath11k_thermal_event_temperature(struct ath11k *ar,
  49                                                    int temperature)
  50{
  51}
  52
  53#endif
  54#endif /* _ATH11K_THERMAL_ */
  55