diff --git a/package/firmware/ath10k-firmware/Makefile b/package/firmware/ath10k-firmware/Makefile index 5aac2616d..1ff1340a2 100644 --- a/package/firmware/ath10k-firmware/Makefile +++ b/package/firmware/ath10k-firmware/Makefile @@ -82,38 +82,38 @@ define Download/ct-firmware URL_FILE:=$($(1)_FIRMWARE_FILE_CT) endef -QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community.bin-19-rc5-lede +QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-19.bin.lede define Download/ath10k-firmware-qca988x-ct $(call Download/ct-firmware,QCA988X,) - HASH:=556d6a4df50cd94a229a240d6d1d108ed5910069902f1e0cbb57b02ede27690f + HASH:=bff98f028062dae9fc638c7596aec3c79bf9eddaff65cfacba067f6d72f217cd endef $(eval $(call Download,ath10k-firmware-qca988x-ct)) -QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community.bin-19-rc5-lede +QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-19.bin.lede define Download/ath10k-firmware-qca9887-ct $(call Download/ct-firmware,QCA9887,ath10k-9887) - HASH:=725982694156e0b891dcd1b1b18ba5318fbbe173f4ec9603ff7acbd08f7c4050 + HASH:=95dc106f98672bd9c7d3fe6881ed79ab079cb49b0a995650991b1beaff2b0101 endef $(eval $(call Download,ath10k-firmware-qca9887-ct)) -QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-9.bin-lede.002 +QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-9.bin-lede.004 define Download/ath10k-firmware-qca99x0-ct $(call Download/ct-firmware,QCA99X0,ath10k-10-4) - HASH:=e3c77077b47d55219f90816a51bf046f5b40c32be5e96bf629b083d873a879ad + HASH:=993c29fd64bb2a59b86d34f58601a1a48b83b541750bc511f78cc17152829b4d endef $(eval $(call Download,ath10k-firmware-qca99x0-ct)) -QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-9.bin-lede.002 +QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-9.bin-lede.004 define Download/ath10k-firmware-qca9984-ct $(call Download/ct-firmware,QCA9984,ath10k-9984-10-4) - HASH:=610f7747db6b101f4fc21431b776ac640b5977357e5be9aece2349447b9b1d85 + HASH:=d997eed9a8bc6809c01d367759ba8545c10e3be93ea1f33d6d753127ef0f7c5e endef $(eval $(call Download,ath10k-firmware-qca9984-ct)) -QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-9.bin-lede.002 +QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-9.bin-lede.004 define Download/ath10k-firmware-qca9888-ct $(call Download/ct-firmware,QCA9888,ath10k-9888-10-4) - HASH:=f92e7d7968698af7c6f2d76b31b3645589e03839e15838010ce457c635e5aae6 + HASH:=bbaa71bc7dcaa264c5875e86639f174908fed09fbace975e325959d42f3754ff endef $(eval $(call Download,ath10k-firmware-qca9888-ct)) diff --git a/package/kernel/ath10k-ct/Makefile b/package/kernel/ath10k-ct/Makefile index 85fe4eb46..a894773b7 100644 --- a/package/kernel/ath10k-ct/Makefile +++ b/package/kernel/ath10k-ct/Makefile @@ -8,13 +8,18 @@ PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2017-05-16 -PKG_SOURCE_VERSION:=c048ef0c3eedf99b41bc12b3f4e47ef3d9fab484 -PKG_MIRROR_HASH:=7936293962a10a0da7469759623013fc151019a6a584cfc6416bc0b605bd74d7 +PKG_SOURCE_DATE:=2017-06-13 +PKG_SOURCE_VERSION:=bded1823912549017d819d1796273b3134c3de20 +PKG_MIRROR_HASH:=616174650e12a82edb6b6bd18ac186e2c6a48fdad0082df9d2011ab20940814b PKG_MAINTAINER:=Ben Greear PKG_BUILD_PARALLEL:=1 +# Build the 4.13 ath10k-ct driver version. Other options are "-4.9", or +# leave un-defined for 4.7 kernel. Probably this should match as closely as +# possible to whatever mac80211 backports version is being used. +CT_KVER="-4.13" + STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h include $(INCLUDE_DIR)/kernel.mk @@ -25,8 +30,8 @@ define KernelPackage/ath10k-ct TITLE:=ath10k-ct driver optimized for CT ath10k firmware DEPENDS:=+kmod-mac80211 +kmod-ath +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT @PCI_SUPPORT +@KERNEL_RELAY +kmod-hwmon-core FILES:=\ - $(PKG_BUILD_DIR)/ath10k/ath10k_pci.ko \ - $(PKG_BUILD_DIR)/ath10k/ath10k_core.ko + $(PKG_BUILD_DIR)/ath10k$(CT_KVER)/ath10k_pci.ko \ + $(PKG_BUILD_DIR)/ath10k$(CT_KVER)/ath10k_core.ko AUTOLOAD:=$(call AutoLoad,50,mac80211 ath ath10k_core ath10k_pci) endef @@ -75,7 +80,7 @@ define Build/Compile +$(MAKE) $(CT_MAKEDEFS) $(PKG_JOBS) -C "$(LINUX_DIR)" \ ARCH="$(LINUX_KARCH)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ - SUBDIRS="$(PKG_BUILD_DIR)/ath10k" \ + SUBDIRS="$(PKG_BUILD_DIR)/ath10k$(CT_KVER)" \ NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \ modules endef diff --git a/package/kernel/ath10k-ct/patches/100-kernel_compat.patch b/package/kernel/ath10k-ct/patches/100-kernel_compat.patch index 58d6b54c5..beb0abf6d 100644 --- a/package/kernel/ath10k-ct/patches/100-kernel_compat.patch +++ b/package/kernel/ath10k-ct/patches/100-kernel_compat.patch @@ -17,7 +17,7 @@ firmware = ar->normal_mode_fw.fw_file.firmware; if (firmware) -@@ -3413,7 +3413,7 @@ int ath10k_debug_register(struct ath10k +@@ -3422,7 +3422,7 @@ int ath10k_debug_register(struct ath10k debugfs_create_file("nf_cal_period", S_IRUSR | S_IWUSR, ar->debug.debugfs_phy, ar, &fops_nf_cal_period); @@ -28,7 +28,7 @@ &fops_simulate_radar); --- a/ath10k/mac.c +++ b/ath10k/mac.c -@@ -3596,7 +3596,7 @@ static void ath10k_regd_update(struct at +@@ -3604,7 +3604,7 @@ static void ath10k_regd_update(struct at regpair = ar->ath_common.regulatory.regpair; @@ -37,7 +37,7 @@ nl_dfs_reg = ar->dfs_detector->region; wmi_dfs_reg = ath10k_mac_get_dfs_region(nl_dfs_reg); ath10k_dbg(ar, ATH10K_DBG_REGULATORY, -@@ -3630,7 +3630,7 @@ static void ath10k_reg_notifier(struct w +@@ -3638,7 +3638,7 @@ static void ath10k_reg_notifier(struct w ath_reg_notifier_apply(wiphy, request, &ar->ath_common.regulatory); @@ -46,7 +46,7 @@ ath10k_dbg(ar, ATH10K_DBG_REGULATORY, "reg-notifier: dfs region 0x%x\n", request->dfs_region); result = ar->dfs_detector->set_dfs_domain(ar->dfs_detector, -@@ -8925,7 +8925,7 @@ int ath10k_mac_register(struct ath10k *a +@@ -8938,7 +8938,7 @@ int ath10k_mac_register(struct ath10k *a if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) ar->hw->netdev_features = NETIF_F_HW_CSUM; @@ -55,7 +55,7 @@ /* Init ath dfs pattern detector */ ar->ath_common.debug_mask = ATH_DBG_DFS; ar->dfs_detector = dfs_pattern_detector_init(&ar->ath_common, -@@ -8970,7 +8970,7 @@ err_unregister: +@@ -8983,7 +8983,7 @@ err_unregister: ieee80211_unregister_hw(ar->hw); err_dfs_detector_exit: @@ -64,7 +64,7 @@ ar->dfs_detector->exit(ar->dfs_detector); err_free: -@@ -8985,7 +8985,7 @@ void ath10k_mac_unregister(struct ath10k +@@ -8998,7 +8998,7 @@ void ath10k_mac_unregister(struct ath10k { ieee80211_unregister_hw(ar->hw); diff --git a/package/kernel/ath10k-ct/patches/110-api_fix.patch b/package/kernel/ath10k-ct/patches/110-api_fix.patch index 5f7de4a95..9439dd79e 100644 --- a/package/kernel/ath10k-ct/patches/110-api_fix.patch +++ b/package/kernel/ath10k-ct/patches/110-api_fix.patch @@ -1,6 +1,6 @@ --- a/ath10k/htt_rx.c +++ b/ath10k/htt_rx.c -@@ -2497,7 +2497,7 @@ bool ath10k_htt_t2h_msg_handler(struct a +@@ -2514,7 +2514,7 @@ bool ath10k_htt_t2h_msg_handler(struct a u32 freq = __le32_to_cpu(resp->chan_change.freq); ar->tgt_oper_chan = diff --git a/package/kernel/ath10k-ct/patches/120-mac80211-4-14-api.patch b/package/kernel/ath10k-ct/patches/120-mac80211-4-14-api.patch index 032a0bcb7..d58763269 100644 --- a/package/kernel/ath10k-ct/patches/120-mac80211-4-14-api.patch +++ b/package/kernel/ath10k-ct/patches/120-mac80211-4-14-api.patch @@ -51,7 +51,7 @@ break; default: break; -@@ -883,13 +883,10 @@ static void ath10k_htt_rx_h_ppdu(struct +@@ -900,13 +900,10 @@ static void ath10k_htt_rx_h_ppdu(struct /* New PPDU starts so clear out the old per-PPDU status. */ status->freq = 0; status->rate_idx = 0; @@ -69,7 +69,7 @@ status->flag |= RX_FLAG_NO_SIGNAL_VAL; ath10k_htt_rx_h_signal(ar, status, rxd); -@@ -942,7 +939,7 @@ static void ath10k_process_rx(struct ath +@@ -959,7 +956,7 @@ static void ath10k_process_rx(struct ath *status = *rx_status; ath10k_dbg(ar, ATH10K_DBG_DATA, @@ -78,7 +78,7 @@ skb, skb->len, ieee80211_get_SA(hdr), -@@ -950,15 +947,15 @@ static void ath10k_process_rx(struct ath +@@ -967,15 +964,15 @@ static void ath10k_process_rx(struct ath is_multicast_ether_addr(ieee80211_get_DA(hdr)) ? "mcast" : "ucast", (__le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_SEQ) >> 4, diff --git a/package/kernel/ath10k-ct/patches/130-ath10k-activate-user-space-firmware-loading-again.patch b/package/kernel/ath10k-ct/patches/130-ath10k-activate-user-space-firmware-loading-again.patch new file mode 100644 index 000000000..dc02a9d6e --- /dev/null +++ b/package/kernel/ath10k-ct/patches/130-ath10k-activate-user-space-firmware-loading-again.patch @@ -0,0 +1,36 @@ +From c0cc00f250e19c717fc9cdbdb7f55aaa569c7498 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Thu, 24 Aug 2017 23:06:41 +0200 +Subject: [PATCH] ath10k: activate user space firmware loading again + +In commit 9f5bcfe93315 ("ath10k: silence firmware file probing +warnings") the firmware loading was changed from request_firmware() to +request_firmware_direct() to silence some warnings in case it fails. +request_firmware_direct() directly searches in the file system only and +does not send a hotplug event to user space in case it could not find +the firmware directly. +In LEDE we use a user space script to extract the calibration data from +the flash memory which gets triggered by the hotplug event. This way the +firmware gets extracted from some vendor specific partition when the +driver requests this firmware. This mechanism does not work any more +after this change. + +Fixes: 9f5bcfe93315 ("ath10k: silence firmware file probing warnings") +Signed-off-by: Hauke Mehrtens +Cc: Michal Kazior +Signed-off-by: Kalle Valo +--- + ath10k-4.13/core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/ath10k-4.13/core.c ++++ b/ath10k-4.13/core.c +@@ -556,7 +556,7 @@ static const struct firmware *ath10k_fet + dir = "."; + + snprintf(filename, sizeof(filename), "%s/%s", dir, file); +- ret = request_firmware_direct(&fw, filename, ar->dev); ++ ret = request_firmware(&fw, filename, ar->dev); + ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot fw request '%s': %d\n", + filename, ret); +