mac80211: ath10k: Allow to enable the thermal code of ath10k

Some ath10k firmware versions allow to access the chip internal a
temperature sensor and allow to reduce the amount of the time when the card
is allowed to send. The latter is required on devices which tend to
overheat.

An userspace service has to read
/sys/class/ieee80211/phy*/device/hwmon/hwmon*/temp1_input regularly and
then decide how much the device has to be throttled. This can be done by
writing to /sys/class/ieee80211/phy*/device/cooling_device/cur_state. By
default it is not throttled (0) but it can be throttled up to 100(%).

Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
openwrt-19.07
Sven Eckelmann 2018-01-30 09:41:45 +01:00 committed by Hauke Mehrtens
parent eee8ab59dc
commit 4270847a2c
4 changed files with 24 additions and 3 deletions

View File

@ -74,6 +74,7 @@ PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_RTLWIFI_DEBUG \ CONFIG_PACKAGE_RTLWIFI_DEBUG \
CONFIG_ATH9K_SUPPORT_PCOEM \ CONFIG_ATH9K_SUPPORT_PCOEM \
CONFIG_ATH9K_TX99 \ CONFIG_ATH9K_TX99 \
CONFIG_ATH10K_THERMAL \
CONFIG_ATH_USER_REGD \ CONFIG_ATH_USER_REGD \
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@ -325,7 +326,8 @@ define KernelPackage/ath10k
$(call KernelPackage/mac80211/Default) $(call KernelPackage/mac80211/Default)
TITLE:=Atheros 802.11ac wireless cards support TITLE:=Atheros 802.11ac wireless cards support
URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath10k URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath10k
DEPENDS+= @PCI_SUPPORT +kmod-ath +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +@DRIVER_11W_SUPPORT DEPENDS+= @PCI_SUPPORT +kmod-ath +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +@DRIVER_11W_SUPPORT \
+ATH10K_THERMAL:kmod-hwmon-core +ATH10K_THERMAL:kmod-thermal
FILES:= \ FILES:= \
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath10k/ath10k_core.ko \ $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath10k/ath10k_core.ko \
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath10k/ath10k_pci.ko $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath10k/ath10k_pci.ko
@ -338,6 +340,14 @@ Atheros IEEE 802.11ac family of chipsets. For now only
PCI is supported. PCI is supported.
endef endef
define KernelPackage/ath10k/config
config ATH10K_THERMAL
bool "Enable thermal sensors and throttling support"
depends on PACKAGE_kmod-ath10k
endef
#Broadcom firmware #Broadcom firmware
ifneq ($(CONFIG_B43_FW_6_30),) ifneq ($(CONFIG_B43_FW_6_30),)
PKG_B43_FWV4_NAME:=broadcom-wl PKG_B43_FWV4_NAME:=broadcom-wl
@ -1625,6 +1635,7 @@ config-$(CONFIG_ATH_USER_REGD) += ATH_USER_REGD
config-$(CONFIG_ATH9K_SUPPORT_PCOEM) += ATH9K_PCOEM config-$(CONFIG_ATH9K_SUPPORT_PCOEM) += ATH9K_PCOEM
config-$(CONFIG_ATH9K_TX99) += ATH9K_TX99 config-$(CONFIG_ATH9K_TX99) += ATH9K_TX99
config-$(CONFIG_ATH9K_UBNTHSR) += ATH9K_UBNTHSR config-$(CONFIG_ATH9K_UBNTHSR) += ATH9K_UBNTHSR
config-$(CONFIG_ATH10K_THERMAL) += ATH10K_THERMAL
config-$(call config_package,ath9k-htc) += ATH9K_HTC config-$(call config_package,ath9k-htc) += ATH9K_HTC
config-$(call config_package,ath10k) += ATH10K ATH10K_PCI config-$(call config_package,ath10k) += ATH10K ATH10K_PCI

View File

@ -35,3 +35,13 @@
int ath10k_thermal_register(struct ath10k *ar); int ath10k_thermal_register(struct ath10k *ar);
void ath10k_thermal_unregister(struct ath10k *ar); void ath10k_thermal_unregister(struct ath10k *ar);
void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature); void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature);
--- a/local-symbols
+++ b/local-symbols
@@ -139,6 +139,7 @@ ATH10K_SDIO=
ATH10K_USB=
ATH10K_DEBUG=
ATH10K_DEBUGFS=
+ATH10K_THERMAL=
ATH10K_TRACING=
ATH10K_DFS_CERTIFIED=
WCN36XX=

View File

@ -86,6 +86,6 @@ Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
ATH10K_DEBUG= ATH10K_DEBUG=
ATH10K_DEBUGFS= ATH10K_DEBUGFS=
+ATH10K_SPECTRAL= +ATH10K_SPECTRAL=
ATH10K_THERMAL=
ATH10K_TRACING= ATH10K_TRACING=
ATH10K_DFS_CERTIFIED= ATH10K_DFS_CERTIFIED=
WCN36XX=

View File

@ -1,6 +1,6 @@
--- a/local-symbols --- a/local-symbols
+++ b/local-symbols +++ b/local-symbols
@@ -296,6 +296,7 @@ RT2X00_LIB_FIRMWARE= @@ -299,6 +299,7 @@ RT2X00_LIB_FIRMWARE=
RT2X00_LIB_CRYPTO= RT2X00_LIB_CRYPTO=
RT2X00_LIB_LEDS= RT2X00_LIB_LEDS=
RT2X00_LIB_DEBUGFS= RT2X00_LIB_DEBUGFS=