12 files changed, 314 insertions(+), 1 deletion(-)
create mode 100644 ath10k-4.16/leds.c
create mode 100644 ath10k-4.16/leds.h
---- a/ath10k-4.16/Kconfig
-+++ b/ath10k-4.16/Kconfig
-@@ -60,6 +60,16 @@ config ATH10K_SPECTRAL
- ---help---
- Say Y to enable access to the FFT/spectral data via debugfs.
+--- a/ath10k-4.19/Kconfig
++++ b/ath10k-4.19/Kconfig
+@@ -64,6 +64,16 @@ config ATH10K_DEBUGFS
+
+ If unsure, say Y to make it easier to debug problems.
+config ATH10K_LEDS
+ bool "Atheros ath10k LED support"
+ ---help---
+ This option is necessary, if you want LED support for chipset connected led pins. If unsure, say N.
+
- config ATH10K_TRACING
- bool "Atheros ath10k tracing support"
- depends on ATH10K
---- a/ath10k-4.16/Makefile
-+++ b/ath10k-4.16/Makefile
+ config ATH10K_SPECTRAL
+ bool "Atheros ath10k spectral scan support"
+ depends on ATH10K_DEBUGFS
+--- a/ath10k-4.19/Makefile
++++ b/ath10k-4.19/Makefile
@@ -19,6 +19,7 @@ ath10k_core-$(CONFIG_ATH10K_SPECTRAL) +=
ath10k_core-$(CONFIG_NL80211_TESTMODE) += testmode.o
ath10k_core-$(CONFIG_ATH10K_TRACING) += trace.o
ath10k_core-$(CONFIG_MAC80211_DEBUGFS) += debugfs_sta.o
ath10k_core-$(CONFIG_PM) += wow.o
ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o
---- a/ath10k-4.16/core.c
-+++ b/ath10k-4.16/core.c
-@@ -34,6 +34,7 @@
+--- a/ath10k-4.19/core.c
++++ b/ath10k-4.19/core.c
+@@ -35,6 +35,7 @@
#include "testmode.h"
#include "wmi-ops.h"
#include "coredump.h"
/* Disable ath10k-ct DBGLOG output by default */
unsigned int ath10k_debug_mask = ATH10K_DBG_NO_DBGLOG;
-@@ -73,6 +74,7 @@ static const struct ath10k_hw_params ath
+@@ -72,6 +73,7 @@ static const struct ath10k_hw_params ath
.id = QCA988X_HW_2_0_VERSION,
.dev_id = QCA988X_2_0_DEVICE_ID,
.name = "qca988x hw2.0",
.patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL,
-@@ -131,6 +133,7 @@ static const struct ath10k_hw_params ath
+@@ -137,6 +139,7 @@ static const struct ath10k_hw_params ath
.id = QCA9887_HW_1_0_VERSION,
.dev_id = QCA9887_1_0_DEVICE_ID,
.name = "qca9887 hw1.0",
.patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL,
-@@ -275,6 +278,7 @@ static const struct ath10k_hw_params ath
+@@ -301,6 +304,7 @@ static const struct ath10k_hw_params ath
.id = QCA99X0_HW_2_0_DEV_VERSION,
.dev_id = QCA99X0_2_0_DEVICE_ID,
.name = "qca99x0 hw2.0",
.patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.otp_exe_param = 0x00000700,
-@@ -309,6 +313,7 @@ static const struct ath10k_hw_params ath
+@@ -339,6 +343,7 @@ static const struct ath10k_hw_params ath
.id = QCA9984_HW_1_0_DEV_VERSION,
.dev_id = QCA9984_1_0_DEVICE_ID,
.name = "qca9984/qca9994 hw1.0",
.patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
-@@ -348,6 +353,7 @@ static const struct ath10k_hw_params ath
+@@ -382,6 +387,7 @@ static const struct ath10k_hw_params ath
.id = QCA9888_HW_2_0_DEV_VERSION,
.dev_id = QCA9888_2_0_DEVICE_ID,
.name = "qca9888 hw2.0",
.patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
-@@ -3039,6 +3045,10 @@ int ath10k_core_start(struct ath10k *ar,
- ar->eeprom_overrides.rc_txbf_probe);
+@@ -3167,6 +3173,10 @@ int ath10k_core_start(struct ath10k *ar,
+ ath10k_wmi_check_apply_board_power_ctl_table(ar);
}
+ status = ath10k_leds_start(ar);
return 0;
err_hif_stop:
-@@ -3285,9 +3295,18 @@ static void ath10k_core_register_work(st
+@@ -3421,9 +3431,18 @@ static void ath10k_core_register_work(st
goto err_spectral_destroy;
}
err_spectral_destroy:
ath10k_spectral_destroy(ar);
err_debug_destroy:
-@@ -3345,6 +3364,8 @@ void ath10k_core_unregister(struct ath10
+@@ -3481,6 +3500,8 @@ void ath10k_core_unregister(struct ath10
if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags))
return;
ath10k_thermal_unregister(ar);
/* Stop spectral before unregistering from mac80211 to remove the
* relayfs debugfs file cleanly. Otherwise the parent debugfs tree
---- a/ath10k-4.16/core.h
-+++ b/ath10k-4.16/core.h
-@@ -24,6 +24,7 @@
+--- a/ath10k-4.19/core.h
++++ b/ath10k-4.19/core.h
+@@ -25,6 +25,7 @@
#include <linux/pci.h>
#include <linux/uuid.h>
#include <linux/time.h>
#include "htt.h"
#include "htc.h"
-@@ -1229,6 +1230,13 @@ struct ath10k {
+@@ -1137,7 +1138,6 @@ struct ath10k {
+ u32 low_5ghz_chan;
+ u32 high_5ghz_chan;
+ bool ani_enabled;
+-
+ bool p2p;
+ bool ct_all_pkts_htt; /* CT firmware only: native-wifi for all pkts */
+
+@@ -1388,6 +1388,13 @@ struct ath10k {
} testmode;
struct {
/* protected by data_lock */
u32 fw_crash_counter;
u32 fw_warm_reset_counter;
---- a/ath10k-4.16/hw.h
-+++ b/ath10k-4.16/hw.h
-@@ -499,6 +499,7 @@ struct ath10k_hw_params {
+--- a/ath10k-4.19/hw.h
++++ b/ath10k-4.19/hw.h
+@@ -508,6 +508,7 @@ struct ath10k_hw_params {
const char *name;
u32 patch_load_addr;
int uart_pin;
/* Type of hw cycle counter wraparound logic, for more info
--- /dev/null
-+++ b/ath10k-4.16/leds.c
++++ b/ath10k-4.19/leds.c
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2005-2011 Atheros Communications Inc.
+}
+
--- /dev/null
-+++ b/ath10k-4.16/leds.h
++++ b/ath10k-4.19/leds.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018, The Linux Foundation. All rights reserved.
+
+#endif
+#endif /* _LEDS_H_ */
---- a/ath10k-4.16/mac.c
-+++ b/ath10k-4.16/mac.c
-@@ -33,6 +33,7 @@
+--- a/ath10k-4.19/mac.c
++++ b/ath10k-4.19/mac.c
+@@ -34,6 +34,7 @@
#include "wmi-tlv.h"
#include "wmi-ops.h"
#include "wow.h"
/*********/
/* Rates */
---- a/ath10k-4.16/wmi-ops.h
-+++ b/ath10k-4.16/wmi-ops.h
-@@ -199,6 +199,9 @@ struct wmi_ops {
- (struct ath10k *ar,
- enum wmi_bss_survey_req_type type);
+--- a/ath10k-4.19/wmi-ops.h
++++ b/ath10k-4.19/wmi-ops.h
+@@ -218,7 +218,10 @@ struct wmi_ops {
struct sk_buff *(*gen_echo)(struct ath10k *ar, u32 value);
+ struct sk_buff *(*gen_pdev_get_tpc_table_cmdid)(struct ath10k *ar,
+ u32 param);
+ struct sk_buff *(*gen_gpio_config)(struct ath10k *ar, u32 gpio_num,
+ u32 input, u32 pull_type, u32 intr_mode);
+
+ struct sk_buff *(*gen_gpio_output)(struct ath10k *ar, u32 gpio_num, u32 set);
};
int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id);
-@@ -975,6 +978,35 @@ ath10k_wmi_force_fw_hang(struct ath10k *
+@@ -1079,6 +1082,35 @@ ath10k_wmi_force_fw_hang(struct ath10k *
return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid);
}
static inline int
ath10k_wmi_dbglog_cfg(struct ath10k *ar, u64 module_enable, u32 log_level)
{
---- a/ath10k-4.16/wmi-tlv.c
-+++ b/ath10k-4.16/wmi-tlv.c
-@@ -3729,6 +3729,8 @@ static const struct wmi_ops wmi_tlv_ops
+--- a/ath10k-4.19/wmi-tlv.c
++++ b/ath10k-4.19/wmi-tlv.c
+@@ -3976,6 +3976,8 @@ static const struct wmi_ops wmi_tlv_ops
.gen_echo = ath10k_wmi_tlv_op_gen_echo,
.gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf,
.gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable,
};
static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = {
---- a/ath10k-4.16/wmi.c
-+++ b/ath10k-4.16/wmi.c
-@@ -7301,6 +7301,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
+--- a/ath10k-4.19/wmi.c
++++ b/ath10k-4.19/wmi.c
+@@ -8070,6 +8070,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
return skb;
}
static struct sk_buff *
ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
enum wmi_sta_ps_mode psmode)
-@@ -8916,6 +8959,9 @@ static const struct wmi_ops wmi_ops = {
+@@ -9821,6 +9864,9 @@ static const struct wmi_ops wmi_ops = {
.fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
.gen_echo = ath10k_wmi_op_gen_echo,
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
-@@ -8986,6 +9032,8 @@ static const struct wmi_ops wmi_10_1_ops
+@@ -9891,6 +9937,8 @@ static const struct wmi_ops wmi_10_1_ops
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
.gen_echo = ath10k_wmi_op_gen_echo,
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
-@@ -9063,6 +9111,8 @@ static const struct wmi_ops wmi_10_2_ops
+@@ -9969,6 +10017,8 @@ static const struct wmi_ops wmi_10_2_ops
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
/* .gen_pdev_enable_adaptive_cca not implemented */
};
-@@ -9133,6 +9183,8 @@ static const struct wmi_ops wmi_10_2_4_o
+@@ -10039,6 +10089,8 @@ static const struct wmi_ops wmi_10_2_4_o
.gen_pdev_enable_adaptive_cca =
ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
.get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype,
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
-@@ -9209,6 +9261,8 @@ static const struct wmi_ops wmi_10_4_ops
+@@ -10119,6 +10171,8 @@ static const struct wmi_ops wmi_10_4_ops
.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
.gen_echo = ath10k_wmi_op_gen_echo,
.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
};
int ath10k_wmi_attach(struct ath10k *ar)
---- a/ath10k-4.16/wmi.h
-+++ b/ath10k-4.16/wmi.h
-@@ -2999,6 +2999,41 @@ enum wmi_10_4_feature_mask {
+--- a/ath10k-4.19/wmi.h
++++ b/ath10k-4.19/wmi.h
+@@ -3044,6 +3044,41 @@ enum wmi_10_4_feature_mask {
};