Skip to content
This repository has been archived by the owner on May 30, 2024. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
KFERMercer committed Nov 24, 2019
2 parents f5249e1 + af67fc1 commit c39f9ab
Show file tree
Hide file tree
Showing 27 changed files with 686 additions and 32 deletions.
2 changes: 1 addition & 1 deletion package/base-files/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk
include $(INCLUDE_DIR)/feeds.mk

PKG_NAME:=base-files
PKG_RELEASE:=196
PKG_RELEASE:=197
PKG_FLAGS:=nonshared

PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
Expand Down
5 changes: 5 additions & 0 deletions package/base-files/files/sbin/wifi
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,10 @@ wifi_updown() {
scan_wifi
cmd=up
}
[ reconf = "$1" ] && {
scan_wifi
cmd=reconf
}
ubus_wifi_cmd "$cmd" "$2"
_wifi_updown "$@"
}
Expand Down Expand Up @@ -241,6 +245,7 @@ case "$1" in
reload) wifi_reload "$2";;
reload_legacy) wifi_reload_legacy "$2";;
--help|help) usage;;
reconf) ubus call network reload; wifi_updown "reconf" "$2";;
''|up) ubus call network reload; wifi_updown "enable" "$2";;
*) usage; exit 1;;
esac
8 changes: 4 additions & 4 deletions package/kernel/mac80211/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk

PKG_NAME:=mac80211

PKG_VERSION:=5.4-rc8-1
PKG_RELEASE:=1
PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.4-rc8/
PKG_HASH:=707ffc50d0f6fe3398bcc3a7abd44ffa088d9309255a3a71d014620c20d3bbf9
PKG_VERSION:=5.4-rc2-1
PKG_RELEASE:=2
PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.4-rc2/
PKG_HASH:=b3baedc135b455f09f266cb77e73276ca21bceeb0f24bac2184cc4b97d09cdbf

PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,7 @@ mac80211_hostapd_setup_base() {
json_get_vars noscan ht_coex vendor_vht
json_get_values ht_capab_list ht_capab tx_burst

set_default noscan 0

[ "$noscan" -gt 0 ] && hostapd_noscan=1
[ -n "$noscan" -a "$noscan" -gt 0 ] && hostapd_noscan=1
[ "$tx_burst" = 0 ] && tx_burst=

ieee80211n=1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Signed-off-by: Sven Eckelmann <[email protected]>

--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -3074,6 +3074,16 @@ int ath10k_core_register(struct ath10k *
@@ -3071,6 +3071,16 @@ int ath10k_core_register(struct ath10k *

queue_work(ar->workqueue, &ar->register_work);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ v13:
.patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
@@ -2791,6 +2797,10 @@ int ath10k_core_start(struct ath10k *ar,
@@ -2788,6 +2794,10 @@ int ath10k_core_start(struct ath10k *ar,
goto err_hif_stop;
}

Expand All @@ -183,7 +183,7 @@ v13:
return 0;

err_hif_stop:
@@ -3047,9 +3057,18 @@ static void ath10k_core_register_work(st
@@ -3044,9 +3054,18 @@ static void ath10k_core_register_work(st
goto err_spectral_destroy;
}

Expand All @@ -202,7 +202,7 @@ v13:
err_spectral_destroy:
ath10k_spectral_destroy(ar);
err_debug_destroy:
@@ -3095,6 +3114,8 @@ void ath10k_core_unregister(struct ath10
@@ -3092,6 +3111,8 @@ void ath10k_core_unregister(struct ath10
if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags))
return;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
From: Miaoqing Pan <[email protected]>
Subject: [PATCH] ath10k: fix latency issue for QCA988x
Date: Thu, 29 Aug 2019 10:45:12 +0800

Bad latency is found on QCA988x, the issue was introduced by
commit 4504f0e5b571 ("ath10k: sdio: workaround firmware UART
pin configuration bug"). If uart_pin_workaround is false, this
change will set uart pin even if uart_print is false.

Tested HW: QCA9880
Tested FW: 10.2.4-1.0-00037

Fixes: 4504f0e5b571 ("ath10k: sdio: workaround firmware UART pin configuration bug")
Signed-off-by: Miaoqing Pan <[email protected]>
---
drivers/net/wireless/ath/ath10k/core.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)

--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -2124,12 +2124,15 @@ static int ath10k_init_uart(struct ath10
return ret;
}

- if (!uart_print && ar->hw_params.uart_pin_workaround) {
- ret = ath10k_bmi_write32(ar, hi_dbg_uart_txpin,
- ar->hw_params.uart_pin);
- if (ret) {
- ath10k_warn(ar, "failed to set UART TX pin: %d", ret);
- return ret;
+ if (!uart_print) {
+ if (ar->hw_params.uart_pin_workaround) {
+ ret = ath10k_bmi_write32(ar, hi_dbg_uart_txpin,
+ ar->hw_params.uart_pin);
+ if (ret) {
+ ath10k_warn(ar, "failed to set UART TX pin: %d",
+ ret);
+ return ret;
+ }
}

return 0;
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
From: Hauke Mehrtens <[email protected]>
Date: Fri, 27 Sep 2019 23:12:08 +0200
Subject: [PATCH] backports: pci: Include linux/pci-aspm.h

In upstream commit 7ce2e76a0420 linux/pci-aspm.h was removed and the
content included into pci.h. Add an include to have the functions
defined in linux/pci-aspm.h available when linux/pci.h is included.

Signed-off-by: Hauke Mehrtens <[email protected]>
---

--- a/backport-include/linux/pci.h
+++ b/backport-include/linux/pci.h
@@ -7,6 +7,10 @@
#include <linux/pci-aspm.h>
#endif

+#if LINUX_VERSION_IS_LESS(5,4,0)
+#include <linux/pci-aspm.h>
+#endif
+
#ifndef module_pci_driver
/**
* module_pci_driver() - Helper macro for registering a PCI driver
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
From: Felix Fietkau <[email protected]>
Date: Mon, 28 Oct 2019 15:20:40 +0100
Subject: [PATCH] backport: add pci_disable_link_state wrapper with return code

The signature of pci_disable_link_state was changed to indicate if the state
was successfully disabled. Since the old version did not have this, add a
wrapper which checks the pcie register to determine the return code

Signed-off-by: Felix Fietkau <[email protected]>
---

--- a/backport-include/linux/pci.h
+++ b/backport-include/linux/pci.h
@@ -240,4 +240,29 @@ static inline struct pci_dev *pcie_find_
(PCI_IRQ_LEGACY | PCI_IRQ_MSI | PCI_IRQ_MSIX)
#endif

+#if defined(CONFIG_PCI) && LINUX_VERSION_IS_LESS(5,3,0)
+
+static inline int
+LINUX_BACKPORT(pci_disable_link_state)(struct pci_dev *pdev, int state)
+{
+ u16 aspmc;
+
+ pci_disable_link_state(pdev, state);
+
+ pcie_capability_read_word(pdev, PCI_EXP_LNKCTL, &aspmc);
+ if ((state & PCIE_LINK_STATE_L0S) &&
+ (aspmc & PCI_EXP_LNKCTL_ASPM_L0S))
+ return -EPERM;
+
+ if ((state & PCIE_LINK_STATE_L1) &&
+ (aspmc & PCI_EXP_LNKCTL_ASPM_L1))
+ return -EPERM;
+
+ return 0;
+}
+
+#define pci_disable_link_state LINUX_BACKPORT(pci_disable_link_state)
+
+#endif
+
#endif /* _BACKPORT_LINUX_PCI_H */
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
From e3c57dd949835419cee8d3b45db38de58bf6ebd5 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <[email protected]>
Date: Mon, 18 Nov 2019 01:13:37 +0100
Subject: [PATCH] backports: Adapt to changes to skb_get_hash_perturb()

The skb_get_hash_perturb() function now takes a siphash_key_t instead of
an u32. This was changed in commit 55667441c84f ("net/flow_dissector:
switch to siphash"). Use the correct type in the fq header file
depending on the kernel version.

Signed-off-by: Hauke Mehrtens <[email protected]>
---
include/net/fq.h | 8 ++++++++
include/net/fq_impl.h | 8 ++++++++
2 files changed, 16 insertions(+)

--- a/include/net/fq.h
+++ b/include/net/fq.h
@@ -69,7 +69,15 @@ struct fq {
struct list_head backlogs;
spinlock_t lock;
u32 flows_cnt;
+#if LINUX_VERSION_IS_GEQ(5,3,10) || \
+ LINUX_VERSION_IN_RANGE(4,19,83, 4,20,0) || \
+ LINUX_VERSION_IN_RANGE(4,14,153, 4,15,0) || \
+ LINUX_VERSION_IN_RANGE(4,9,200, 4,10,0) || \
+ LINUX_VERSION_IN_RANGE(4,4,200, 4,5,0)
+ siphash_key_t perturbation;
+#else
u32 perturbation;
+#endif
u32 limit;
u32 memory_limit;
u32 memory_usage;
--- a/include/net/fq_impl.h
+++ b/include/net/fq_impl.h
@@ -108,7 +108,15 @@ begin:

static u32 fq_flow_idx(struct fq *fq, struct sk_buff *skb)
{
+#if LINUX_VERSION_IS_GEQ(5,3,10) || \
+ LINUX_VERSION_IN_RANGE(4,19,83, 4,20,0) || \
+ LINUX_VERSION_IN_RANGE(4,14,153, 4,15,0) || \
+ LINUX_VERSION_IN_RANGE(4,9,200, 4,10,0) || \
+ LINUX_VERSION_IN_RANGE(4,4,200, 4,5,0)
+ u32 hash = skb_get_hash_perturb(skb, &fq->perturbation);
+#else
u32 hash = skb_get_hash_perturb(skb, fq->perturbation);
+#endif

return reciprocal_scale(hash, fq->flows_cnt);
}
@@ -308,7 +316,15 @@ static int fq_init(struct fq *fq, int fl
INIT_LIST_HEAD(&fq->backlogs);
spin_lock_init(&fq->lock);
fq->flows_cnt = max_t(u32, flows_cnt, 1);
+#if LINUX_VERSION_IS_GEQ(5,3,10) || \
+ LINUX_VERSION_IN_RANGE(4,19,83, 4,20,0) || \
+ LINUX_VERSION_IN_RANGE(4,14,153, 4,15,0) || \
+ LINUX_VERSION_IN_RANGE(4,9,200, 4,10,0) || \
+ LINUX_VERSION_IN_RANGE(4,4,200, 4,5,0)
+ get_random_bytes(&fq->perturbation, sizeof(fq->perturbation));
+#else
fq->perturbation = prandom_u32();
+#endif
fq->quantum = 300;
fq->limit = 8192;
fq->memory_limit = 16 << 20; /* 16 MBytes */
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Stanislaw Gruszka <[email protected]>
X-Patchwork-Id: 11161981
From: Stanislaw Gruszka <[email protected]>
To: [email protected]
Subject: [PATCH] rt2x00: initialize last_reset
Date: Thu, 26 Sep 2019 10:54:33 +0200
Message-Id: <[email protected]>
Sender: [email protected]
List-ID: <linux-wireless.vger.kernel.org>
X-Mailing-List: [email protected]

Initialize last_reset variable to INITIAL_JIFFIES, otherwise it is not
possible to test H/W reset for first 5 minutes of system run.

Fixes: e403fa31ed71 ("rt2x00: add restart hw")
Reported-and-tested-by: Jonathan Liu <[email protected]>
Signed-off-by: Stanislaw Gruszka <[email protected]>
---
drivers/net/wireless/ralink/rt2x00/rt2x00debug.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
@@ -555,7 +555,7 @@ static ssize_t rt2x00debug_write_restart
{
struct rt2x00debug_intf *intf = file->private_data;
struct rt2x00_dev *rt2x00dev = intf->rt2x00dev;
- static unsigned long last_reset;
+ static unsigned long last_reset = INITIAL_JIFFIES;

if (!rt2x00_has_cap_restart_hw(rt2x00dev))
return -EOPNOTSUPP;
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
+#endif /* _RT2X00_PLATFORM_H */
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -28,6 +28,7 @@
@@ -29,6 +29,7 @@
#include <linux/average.h>
#include <linux/usb.h>
#include <linux/clk.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,15 +105,15 @@
.drv_init_registers = rt2800mmio_init_registers,
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -694,6 +694,7 @@ enum rt2x00_capability_flags {
@@ -695,6 +695,7 @@ enum rt2x00_capability_flags {
REQUIRE_HT_TX_DESC,
REQUIRE_PS_AUTOWAKE,
REQUIRE_DELAYED_RFKILL,
+ REQUIRE_EEPROM_FILE,

/*
* Capabilities
@@ -970,6 +971,11 @@ struct rt2x00_dev {
@@ -971,6 +972,11 @@ struct rt2x00_dev {
const struct firmware *fw;

/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
num_rates += 4;
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -399,6 +399,7 @@ struct hw_mode_spec {
@@ -400,6 +400,7 @@ struct hw_mode_spec {
unsigned int supported_bands;
#define SUPPORT_BAND_2GHZ 0x00000001
#define SUPPORT_BAND_5GHZ 0x00000002
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
void rt2800_disable_radio(struct rt2x00_dev *rt2x00dev);
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -562,6 +562,7 @@ struct rt2x00lib_ops {
@@ -563,6 +563,7 @@ struct rt2x00lib_ops {
struct link_qual *qual, const u32 count);
void (*gain_calibration) (struct rt2x00_dev *rt2x00dev);
void (*vco_calibration) (struct rt2x00_dev *rt2x00dev);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@
void rt2800_disable_radio(struct rt2x00_dev *rt2x00dev);
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -563,6 +563,8 @@ struct rt2x00lib_ops {
@@ -564,6 +564,8 @@ struct rt2x00lib_ops {
void (*gain_calibration) (struct rt2x00_dev *rt2x00dev);
void (*vco_calibration) (struct rt2x00_dev *rt2x00dev);
void (*rf_self_txdc_cal) (struct rt2x00_dev *rt2x00dev);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
void rt2800_disable_radio(struct rt2x00_dev *rt2x00dev);
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -565,6 +565,7 @@ struct rt2x00lib_ops {
@@ -566,6 +566,7 @@ struct rt2x00lib_ops {
void (*rf_self_txdc_cal) (struct rt2x00_dev *rt2x00dev);
int (*calcrcalibrationcode) (struct rt2x00_dev *rt2x00dev, int d1, int d2);
void (*r_calibration) (struct rt2x00_dev *rt2x00dev);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@
void rt2800_disable_radio(struct rt2x00_dev *rt2x00dev);
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -566,6 +566,7 @@ struct rt2x00lib_ops {
@@ -567,6 +567,7 @@ struct rt2x00lib_ops {
int (*calcrcalibrationcode) (struct rt2x00_dev *rt2x00dev, int d1, int d2);
void (*r_calibration) (struct rt2x00_dev *rt2x00dev);
void (*rxdcoc_calibration) (struct rt2x00_dev *rt2x00dev);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -992,7 +992,7 @@
void rt2800_disable_radio(struct rt2x00_dev *rt2x00dev);
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
@@ -567,6 +567,7 @@ struct rt2x00lib_ops {
@@ -568,6 +568,7 @@ struct rt2x00lib_ops {
void (*r_calibration) (struct rt2x00_dev *rt2x00dev);
void (*rxdcoc_calibration) (struct rt2x00_dev *rt2x00dev);
void (*rxiq_calibration) (struct rt2x00_dev *rt2x00dev);
Expand Down
Loading

0 comments on commit c39f9ab

Please sign in to comment.