From 8ec57671215255be6a95ea0e087bb455eee79ded Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sat, 13 Nov 2021 15:34:26 +0100 Subject: [PATCH] 4.4-stable patches added patches: ath6kl-fix-control-message-timeout.patch ath6kl-fix-division-by-zero-in-send-path.patch edac-sb_edac-fix-top-of-high-memory-value-for-broadwell-haswell.patch hwmon-pmbus-lm25066-add-offset-coefficients.patch ifb-depend-on-netfilter-alternatively-to-tc.patch mwifiex-fix-division-by-zero-in-fw-download-path.patch mwifiex-read-a-pci-register-after-writing-the-tx-ring-write-pointer.patch pci-mark-atheros-qca6174-to-avoid-bus-reset.patch wcn36xx-fix-ht40-capability-for-2ghz-band.patch --- .../ath6kl-fix-control-message-timeout.patch | 33 ++++ ...kl-fix-division-by-zero-in-send-path.patch | 42 +++++ ...h-memory-value-for-broadwell-haswell.patch | 37 +++++ ...mbus-lm25066-add-offset-coefficients.patch | 153 ++++++++++++++++++ ...end-on-netfilter-alternatively-to-tc.patch | 33 ++++ ...division-by-zero-in-fw-download-path.patch | 61 +++++++ ...er-writing-the-tx-ring-write-pointer.patch | 54 +++++++ ...k-atheros-qca6174-to-avoid-bus-reset.patch | 38 +++++ queue-4.4/series | 9 ++ ...xx-fix-ht40-capability-for-2ghz-band.patch | 37 +++++ 10 files changed, 497 insertions(+) create mode 100644 queue-4.4/ath6kl-fix-control-message-timeout.patch create mode 100644 queue-4.4/ath6kl-fix-division-by-zero-in-send-path.patch create mode 100644 queue-4.4/edac-sb_edac-fix-top-of-high-memory-value-for-broadwell-haswell.patch create mode 100644 queue-4.4/hwmon-pmbus-lm25066-add-offset-coefficients.patch create mode 100644 queue-4.4/ifb-depend-on-netfilter-alternatively-to-tc.patch create mode 100644 queue-4.4/mwifiex-fix-division-by-zero-in-fw-download-path.patch create mode 100644 queue-4.4/mwifiex-read-a-pci-register-after-writing-the-tx-ring-write-pointer.patch create mode 100644 queue-4.4/pci-mark-atheros-qca6174-to-avoid-bus-reset.patch create mode 100644 queue-4.4/wcn36xx-fix-ht40-capability-for-2ghz-band.patch diff --git a/queue-4.4/ath6kl-fix-control-message-timeout.patch b/queue-4.4/ath6kl-fix-control-message-timeout.patch new file mode 100644 index 00000000000..876b1396a8c --- /dev/null +++ b/queue-4.4/ath6kl-fix-control-message-timeout.patch @@ -0,0 +1,33 @@ +From a066d28a7e729f808a3e6eff22e70c003091544e Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Mon, 25 Oct 2021 14:05:20 +0200 +Subject: ath6kl: fix control-message timeout + +From: Johan Hovold + +commit a066d28a7e729f808a3e6eff22e70c003091544e upstream. + +USB control-message timeouts are specified in milliseconds and should +specifically not vary with CONFIG_HZ. + +Fixes: 241b128b6b69 ("ath6kl: add back beginnings of USB support") +Cc: stable@vger.kernel.org # 3.4 +Signed-off-by: Johan Hovold +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20211025120522.6045-3-johan@kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/wireless/ath/ath6kl/usb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/net/wireless/ath/ath6kl/usb.c ++++ b/drivers/net/wireless/ath/ath6kl/usb.c +@@ -912,7 +912,7 @@ static int ath6kl_usb_submit_ctrl_in(str + req, + USB_DIR_IN | USB_TYPE_VENDOR | + USB_RECIP_DEVICE, value, index, buf, +- size, 2 * HZ); ++ size, 2000); + + if (ret < 0) { + ath6kl_warn("Failed to read usb control message: %d\n", ret); diff --git a/queue-4.4/ath6kl-fix-division-by-zero-in-send-path.patch b/queue-4.4/ath6kl-fix-division-by-zero-in-send-path.patch new file mode 100644 index 00000000000..417d7d5c915 --- /dev/null +++ b/queue-4.4/ath6kl-fix-division-by-zero-in-send-path.patch @@ -0,0 +1,42 @@ +From c1b9ca365deae667192be9fe24db244919971234 Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Wed, 27 Oct 2021 10:08:18 +0200 +Subject: ath6kl: fix division by zero in send path + +From: Johan Hovold + +commit c1b9ca365deae667192be9fe24db244919971234 upstream. + +Add the missing endpoint max-packet sanity check to probe() to avoid +division by zero in ath10k_usb_hif_tx_sg() in case a malicious device +has broken descriptors (or when doing descriptor fuzz testing). + +Note that USB core will reject URBs submitted for endpoints with zero +wMaxPacketSize but that drivers doing packet-size calculations still +need to handle this (cf. commit 2548288b4fb0 ("USB: Fix: Don't skip +endpoint descriptors with maxpacket=0")). + +Fixes: 9cbee358687e ("ath6kl: add full USB support") +Cc: stable@vger.kernel.org # 3.5 +Signed-off-by: Johan Hovold +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20211027080819.6675-3-johan@kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/wireless/ath/ath6kl/usb.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/net/wireless/ath/ath6kl/usb.c ++++ b/drivers/net/wireless/ath/ath6kl/usb.c +@@ -340,6 +340,11 @@ static int ath6kl_usb_setup_pipe_resourc + le16_to_cpu(endpoint->wMaxPacketSize), + endpoint->bInterval); + } ++ ++ /* Ignore broken descriptors. */ ++ if (usb_endpoint_maxp(endpoint) == 0) ++ continue; ++ + urbcount = 0; + + pipe_num = diff --git a/queue-4.4/edac-sb_edac-fix-top-of-high-memory-value-for-broadwell-haswell.patch b/queue-4.4/edac-sb_edac-fix-top-of-high-memory-value-for-broadwell-haswell.patch new file mode 100644 index 00000000000..b21fa7137dd --- /dev/null +++ b/queue-4.4/edac-sb_edac-fix-top-of-high-memory-value-for-broadwell-haswell.patch @@ -0,0 +1,37 @@ +From 537bddd069c743759addf422d0b8f028ff0f8dbc Mon Sep 17 00:00:00 2001 +From: Eric Badger +Date: Sun, 10 Oct 2021 10:06:56 -0700 +Subject: EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell + +From: Eric Badger + +commit 537bddd069c743759addf422d0b8f028ff0f8dbc upstream. + +The computation of TOHM is off by one bit. This missed bit results in +too low a value for TOHM, which can cause errors in regular memory to +incorrectly report: + + EDAC MC0: 1 CE Error at MMIOH area, on addr 0x000000207fffa680 on any memory + +Fixes: 50d1bb93672f ("sb_edac: add support for Haswell based systems") +Cc: stable@vger.kernel.org +Reported-by: Meeta Saggi +Signed-off-by: Eric Badger +Signed-off-by: Tony Luck +Link: https://lore.kernel.org/r/20211010170127.848113-1-ebadger@purestorage.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/edac/sb_edac.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/edac/sb_edac.c ++++ b/drivers/edac/sb_edac.c +@@ -848,7 +848,7 @@ static u64 haswell_get_tohm(struct sbrid + pci_read_config_dword(pvt->info.pci_vtd, HASWELL_TOHM_1, ®); + rc = ((reg << 6) | rc) << 26; + +- return rc | 0x1ffffff; ++ return rc | 0x3ffffff; + } + + static u64 haswell_rir_limit(u32 reg) diff --git a/queue-4.4/hwmon-pmbus-lm25066-add-offset-coefficients.patch b/queue-4.4/hwmon-pmbus-lm25066-add-offset-coefficients.patch new file mode 100644 index 00000000000..65693329549 --- /dev/null +++ b/queue-4.4/hwmon-pmbus-lm25066-add-offset-coefficients.patch @@ -0,0 +1,153 @@ +From ae59dc455a78fb73034dd1fbb337d7e59c27cbd8 Mon Sep 17 00:00:00 2001 +From: Zev Weiss +Date: Tue, 28 Sep 2021 02:22:35 -0700 +Subject: hwmon: (pmbus/lm25066) Add offset coefficients + +From: Zev Weiss + +commit ae59dc455a78fb73034dd1fbb337d7e59c27cbd8 upstream. + +With the exception of the lm5066i, all the devices handled by this +driver had been missing their offset ('b') coefficients for direct +format readings. + +Cc: stable@vger.kernel.org +Fixes: 58615a94f6a1 ("hwmon: (pmbus/lm25066) Add support for LM25056") +Fixes: e53e6497fc9f ("hwmon: (pmbus/lm25066) Refactor device specific coefficients") +Signed-off-by: Zev Weiss +Link: https://lore.kernel.org/r/20210928092242.30036-2-zev@bewilderbeest.net +Signed-off-by: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman +--- + drivers/hwmon/pmbus/lm25066.c | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +--- a/drivers/hwmon/pmbus/lm25066.c ++++ b/drivers/hwmon/pmbus/lm25066.c +@@ -69,22 +69,27 @@ static struct __coeff lm25066_coeff[5][P + [lm25056] = { + [PSC_VOLTAGE_IN] = { + .m = 16296, ++ .b = 1343, + .R = -2, + }, + [PSC_CURRENT_IN] = { + .m = 13797, ++ .b = -1833, + .R = -2, + }, + [PSC_CURRENT_IN_L] = { + .m = 6726, ++ .b = -537, + .R = -2, + }, + [PSC_POWER] = { + .m = 5501, ++ .b = -2908, + .R = -3, + }, + [PSC_POWER_L] = { + .m = 26882, ++ .b = -5646, + .R = -4, + }, + [PSC_TEMPERATURE] = { +@@ -96,26 +101,32 @@ static struct __coeff lm25066_coeff[5][P + [lm25066] = { + [PSC_VOLTAGE_IN] = { + .m = 22070, ++ .b = -1800, + .R = -2, + }, + [PSC_VOLTAGE_OUT] = { + .m = 22070, ++ .b = -1800, + .R = -2, + }, + [PSC_CURRENT_IN] = { + .m = 13661, ++ .b = -5200, + .R = -2, + }, + [PSC_CURRENT_IN_L] = { + .m = 6852, ++ .b = -3100, + .R = -2, + }, + [PSC_POWER] = { + .m = 736, ++ .b = -3300, + .R = -2, + }, + [PSC_POWER_L] = { + .m = 369, ++ .b = -1900, + .R = -2, + }, + [PSC_TEMPERATURE] = { +@@ -155,26 +166,32 @@ static struct __coeff lm25066_coeff[5][P + [lm5064] = { + [PSC_VOLTAGE_IN] = { + .m = 4611, ++ .b = -642, + .R = -2, + }, + [PSC_VOLTAGE_OUT] = { + .m = 4621, ++ .b = 423, + .R = -2, + }, + [PSC_CURRENT_IN] = { + .m = 10742, ++ .b = 1552, + .R = -2, + }, + [PSC_CURRENT_IN_L] = { + .m = 5456, ++ .b = 2118, + .R = -2, + }, + [PSC_POWER] = { + .m = 1204, ++ .b = 8524, + .R = -3, + }, + [PSC_POWER_L] = { + .m = 612, ++ .b = 11202, + .R = -3, + }, + [PSC_TEMPERATURE] = { +@@ -184,26 +201,32 @@ static struct __coeff lm25066_coeff[5][P + [lm5066] = { + [PSC_VOLTAGE_IN] = { + .m = 4587, ++ .b = -1200, + .R = -2, + }, + [PSC_VOLTAGE_OUT] = { + .m = 4587, ++ .b = -2400, + .R = -2, + }, + [PSC_CURRENT_IN] = { + .m = 10753, ++ .b = -1200, + .R = -2, + }, + [PSC_CURRENT_IN_L] = { + .m = 5405, ++ .b = -600, + .R = -2, + }, + [PSC_POWER] = { + .m = 1204, ++ .b = -6000, + .R = -3, + }, + [PSC_POWER_L] = { + .m = 605, ++ .b = -8000, + .R = -3, + }, + [PSC_TEMPERATURE] = { diff --git a/queue-4.4/ifb-depend-on-netfilter-alternatively-to-tc.patch b/queue-4.4/ifb-depend-on-netfilter-alternatively-to-tc.patch new file mode 100644 index 00000000000..ae1444c58bb --- /dev/null +++ b/queue-4.4/ifb-depend-on-netfilter-alternatively-to-tc.patch @@ -0,0 +1,33 @@ +From 046178e726c2977d686ba5e07105d5a6685c830e Mon Sep 17 00:00:00 2001 +From: Lukas Wunner +Date: Tue, 26 Oct 2021 07:15:32 +0200 +Subject: ifb: Depend on netfilter alternatively to tc + +From: Lukas Wunner + +commit 046178e726c2977d686ba5e07105d5a6685c830e upstream. + +IFB originally depended on NET_CLS_ACT for traffic redirection. +But since v4.5, that may be achieved with NFT_FWD_NETDEV as well. + +Fixes: 39e6dea28adc ("netfilter: nf_tables: add forward expression to the netdev family") +Signed-off-by: Lukas Wunner +Cc: # v4.5+: bcfabee1afd9: netfilter: nft_fwd_netdev: allow to redirect to ifb via ingress +Cc: # v4.5+ +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/net/Kconfig ++++ b/drivers/net/Kconfig +@@ -105,7 +105,7 @@ config NET_FC + + config IFB + tristate "Intermediate Functional Block support" +- depends on NET_CLS_ACT ++ depends on NET_ACT_MIRRED || NFT_FWD_NETDEV + ---help--- + This is an intermediate driver that allows sharing of + resources. diff --git a/queue-4.4/mwifiex-fix-division-by-zero-in-fw-download-path.patch b/queue-4.4/mwifiex-fix-division-by-zero-in-fw-download-path.patch new file mode 100644 index 00000000000..1ec225bce4b --- /dev/null +++ b/queue-4.4/mwifiex-fix-division-by-zero-in-fw-download-path.patch @@ -0,0 +1,61 @@ +From 89f8765a11d8df49296d92c404067f9b5c58ee26 Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Wed, 27 Oct 2021 10:08:19 +0200 +Subject: mwifiex: fix division by zero in fw download path + +From: Johan Hovold + +commit 89f8765a11d8df49296d92c404067f9b5c58ee26 upstream. + +Add the missing endpoint sanity checks to probe() to avoid division by +zero in mwifiex_write_data_sync() in case a malicious device has broken +descriptors (or when doing descriptor fuzz testing). + +Only add checks for the firmware-download boot stage, which require both +command endpoints, for now. The driver looks like it will handle a +missing endpoint during normal operation without oopsing, albeit not +very gracefully as it will try to submit URBs to the default pipe and +fail. + +Note that USB core will reject URBs submitted for endpoints with zero +wMaxPacketSize but that drivers doing packet-size calculations still +need to handle this (cf. commit 2548288b4fb0 ("USB: Fix: Don't skip +endpoint descriptors with maxpacket=0")). + +Fixes: 4daffe354366 ("mwifiex: add support for Marvell USB8797 chipset") +Cc: stable@vger.kernel.org # 3.5 +Cc: Amitkumar Karwar +Signed-off-by: Johan Hovold +Reviewed-by: Brian Norris +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20211027080819.6675-4-johan@kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/wireless/mwifiex/usb.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +--- a/drivers/net/wireless/mwifiex/usb.c ++++ b/drivers/net/wireless/mwifiex/usb.c +@@ -473,6 +473,22 @@ static int mwifiex_usb_probe(struct usb_ + } + } + ++ switch (card->usb_boot_state) { ++ case USB8XXX_FW_DNLD: ++ /* Reject broken descriptors. */ ++ if (!card->rx_cmd_ep || !card->tx_cmd_ep) ++ return -ENODEV; ++ if (card->bulk_out_maxpktsize == 0) ++ return -ENODEV; ++ break; ++ case USB8XXX_FW_READY: ++ /* Assume the driver can handle missing endpoints for now. */ ++ break; ++ default: ++ WARN_ON(1); ++ return -ENODEV; ++ } ++ + usb_set_intfdata(intf, card); + + ret = mwifiex_add_card(card, &add_remove_card_sem, &usb_ops, diff --git a/queue-4.4/mwifiex-read-a-pci-register-after-writing-the-tx-ring-write-pointer.patch b/queue-4.4/mwifiex-read-a-pci-register-after-writing-the-tx-ring-write-pointer.patch new file mode 100644 index 00000000000..d17c0783def --- /dev/null +++ b/queue-4.4/mwifiex-read-a-pci-register-after-writing-the-tx-ring-write-pointer.patch @@ -0,0 +1,54 @@ +From e5f4eb8223aa740237cd463246a7debcddf4eda1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= +Date: Mon, 11 Oct 2021 15:32:23 +0200 +Subject: mwifiex: Read a PCI register after writing the TX ring write pointer +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Jonas Dreßler + +commit e5f4eb8223aa740237cd463246a7debcddf4eda1 upstream. + +On the 88W8897 PCIe+USB card the firmware randomly crashes after setting +the TX ring write pointer. The issue is present in the latest firmware +version 15.68.19.p21 of the PCIe+USB card. + +Those firmware crashes can be worked around by reading any PCI register +of the card after setting that register, so read the PCI_VENDOR_ID +register here. The reason this works is probably because we keep the bus +from entering an ASPM state for a bit longer, because that's what causes +the cards firmware to crash. + +This fixes a bug where during RX/TX traffic and with ASPM L1 substates +enabled (the specific substates where the issue happens appear to be +platform dependent), the firmware crashes and eventually a command +timeout appears in the logs. + +BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=109681 +Cc: stable@vger.kernel.org +Signed-off-by: Jonas Dreßler +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20211011133224.15561-2-verdre@v0yd.nl +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/wireless/mwifiex/pcie.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/drivers/net/wireless/mwifiex/pcie.c ++++ b/drivers/net/wireless/mwifiex/pcie.c +@@ -1210,6 +1210,14 @@ mwifiex_pcie_send_data(struct mwifiex_ad + ret = -1; + goto done_unmap; + } ++ ++ /* The firmware (latest version 15.68.19.p21) of the 88W8897 PCIe+USB card ++ * seems to crash randomly after setting the TX ring write pointer when ++ * ASPM powersaving is enabled. A workaround seems to be keeping the bus ++ * busy by reading a random register afterwards. ++ */ ++ mwifiex_read_reg(adapter, PCI_VENDOR_ID, &rx_val); ++ + if ((mwifiex_pcie_txbd_not_full(card)) && + tx_param->next_pkt_len) { + /* have more packets and TxBD still can hold more */ diff --git a/queue-4.4/pci-mark-atheros-qca6174-to-avoid-bus-reset.patch b/queue-4.4/pci-mark-atheros-qca6174-to-avoid-bus-reset.patch new file mode 100644 index 00000000000..f9e8208d877 --- /dev/null +++ b/queue-4.4/pci-mark-atheros-qca6174-to-avoid-bus-reset.patch @@ -0,0 +1,38 @@ +From e3f4bd3462f6f796594ecc0dda7144ed2d1e5a26 Mon Sep 17 00:00:00 2001 +From: Ingmar Klein +Date: Fri, 9 Apr 2021 11:26:33 +0200 +Subject: PCI: Mark Atheros QCA6174 to avoid bus reset +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Ingmar Klein + +commit e3f4bd3462f6f796594ecc0dda7144ed2d1e5a26 upstream. + +When passing the Atheros QCA6174 through to a virtual machine, the VM hangs +at the point where the ath10k driver loads. + +Add a quirk to avoid bus resets on this device, which avoids the hang. + +[bhelgaas: commit log] +Link: https://lore.kernel.org/r/08982e05-b6e8-5a8d-24ab-da1488ee50a8@web.de +Signed-off-by: Ingmar Klein +Signed-off-by: Bjorn Helgaas +Reviewed-by: Pali Rohár +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/pci/quirks.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -3169,6 +3169,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_A + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x003c, quirk_no_bus_reset); + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0033, quirk_no_bus_reset); + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0034, quirk_no_bus_reset); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x003e, quirk_no_bus_reset); + + /* + * Some TI KeyStone C667X devices do not support bus/hot reset. The PCIESS diff --git a/queue-4.4/series b/queue-4.4/series index c8a2ed34ec0..c5232b2fd3d 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -21,3 +21,12 @@ xen-netfront-stop-tx-queues-during-live-migration.patch spi-spl022-fix-microwire-full-duplex-mode.patch vmxnet3-do-not-stop-tx-queues-after-netif_device_det.patch btrfs-fix-lost-error-handling-when-replaying-directory-deletes.patch +hwmon-pmbus-lm25066-add-offset-coefficients.patch +edac-sb_edac-fix-top-of-high-memory-value-for-broadwell-haswell.patch +mwifiex-fix-division-by-zero-in-fw-download-path.patch +ath6kl-fix-division-by-zero-in-send-path.patch +ath6kl-fix-control-message-timeout.patch +pci-mark-atheros-qca6174-to-avoid-bus-reset.patch +ifb-depend-on-netfilter-alternatively-to-tc.patch +wcn36xx-fix-ht40-capability-for-2ghz-band.patch +mwifiex-read-a-pci-register-after-writing-the-tx-ring-write-pointer.patch diff --git a/queue-4.4/wcn36xx-fix-ht40-capability-for-2ghz-band.patch b/queue-4.4/wcn36xx-fix-ht40-capability-for-2ghz-band.patch new file mode 100644 index 00000000000..fef7c5bd0ca --- /dev/null +++ b/queue-4.4/wcn36xx-fix-ht40-capability-for-2ghz-band.patch @@ -0,0 +1,37 @@ +From 960ae77f25631bbe4e3aafefe209b52e044baf31 Mon Sep 17 00:00:00 2001 +From: Loic Poulain +Date: Wed, 20 Oct 2021 15:38:53 +0200 +Subject: wcn36xx: Fix HT40 capability for 2Ghz band + +From: Loic Poulain + +commit 960ae77f25631bbe4e3aafefe209b52e044baf31 upstream. + +All wcn36xx controllers are supposed to support HT40 (and SGI40), +This doubles the maximum bitrate/throughput with compatible APs. + +Tested with wcn3620 & wcn3680B. + +Cc: stable@vger.kernel.org +Fixes: 8e84c2582169 ("wcn36xx: mac80211 driver for Qualcomm WCN3660/WCN3680 hardware") +Signed-off-by: Loic Poulain +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/1634737133-22336-1-git-send-email-loic.poulain@linaro.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/wireless/ath/wcn36xx/main.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/net/wireless/ath/wcn36xx/main.c ++++ b/drivers/net/wireless/ath/wcn36xx/main.c +@@ -127,7 +127,9 @@ static struct ieee80211_supported_band w + .cap = IEEE80211_HT_CAP_GRN_FLD | + IEEE80211_HT_CAP_SGI_20 | + IEEE80211_HT_CAP_DSSSCCK40 | +- IEEE80211_HT_CAP_LSIG_TXOP_PROT, ++ IEEE80211_HT_CAP_LSIG_TXOP_PROT | ++ IEEE80211_HT_CAP_SGI_40 | ++ IEEE80211_HT_CAP_SUP_WIDTH_20_40, + .ht_supported = true, + .ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K, + .ampdu_density = IEEE80211_HT_MPDU_DENSITY_16, -- 2.47.2