mac80211: Update to version 5.2-rc7
[openwrt/staging/lynxis.git] / package / kernel / mac80211 / patches / brcm / 328-v5.0-0001-brcmfmac-add-credit-numbers-updating-support.patch
diff --git a/package/kernel/mac80211/patches/brcm/328-v5.0-0001-brcmfmac-add-credit-numbers-updating-support.patch b/package/kernel/mac80211/patches/brcm/328-v5.0-0001-brcmfmac-add-credit-numbers-updating-support.patch
deleted file mode 100644 (file)
index dd40ee2..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-From 153e22c0ff1260035cd7fe72c8aeead1f5fac757 Mon Sep 17 00:00:00 2001
-From: Wright Feng <Wright.Feng@cypress.com>
-Date: Mon, 5 Nov 2018 05:51:54 +0000
-Subject: [PATCH] brcmfmac: add credit numbers updating support
-
-The credit numbers are static and tunable per chip in firmware side.
-However the credit number may be changed that is based on packet pool
-length and will send BRCMF_E_FIFO_CREDIT_MAP event to notify host driver
-updates the credit numbers during interface up.
-The purpose of this patch is making host driver has ability of updating
-the credit numbers when receiving the BRCMF_E_FIFO_CREDIT_MAP event.
-
-Signed-off-by: Wright Feng <wright.feng@cypress.com>
-Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../broadcom/brcm80211/brcmfmac/fwsignal.c    | 23 ++++++++++++-------
- 1 file changed, 15 insertions(+), 8 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
-@@ -511,6 +511,7 @@ struct brcmf_fws_info {
-       struct work_struct fws_dequeue_work;
-       u32 fifo_enqpkt[BRCMF_FWS_FIFO_COUNT];
-       int fifo_credit[BRCMF_FWS_FIFO_COUNT];
-+      int init_fifo_credit[BRCMF_FWS_FIFO_COUNT];
-       int credits_borrowed[BRCMF_FWS_FIFO_AC_VO + 1];
-       int deq_node_pos[BRCMF_FWS_FIFO_COUNT];
-       u32 fifo_credit_map;
-@@ -1237,6 +1238,9 @@ static void brcmf_fws_return_credits(str
-       }
-       fws->fifo_credit[fifo] += credits;
-+      if (fws->fifo_credit[fifo] > fws->init_fifo_credit[fifo])
-+              fws->fifo_credit[fifo] = fws->init_fifo_credit[fifo];
-+
- }
- static void brcmf_fws_schedule_deq(struct brcmf_fws_info *fws)
-@@ -1595,19 +1599,21 @@ static int brcmf_fws_notify_credit_map(s
-               brcmf_err("event payload too small (%d)\n", e->datalen);
-               return -EINVAL;
-       }
--      if (fws->creditmap_received)
--              return 0;
-       fws->creditmap_received = true;
-       brcmf_dbg(TRACE, "enter: credits %pM\n", credits);
-       brcmf_fws_lock(fws);
-       for (i = 0; i < ARRAY_SIZE(fws->fifo_credit); i++) {
--              if (*credits)
-+              fws->fifo_credit[i] += credits[i] - fws->init_fifo_credit[i];
-+              fws->init_fifo_credit[i] = credits[i];
-+              if (fws->fifo_credit[i] > 0)
-                       fws->fifo_credit_map |= 1 << i;
-               else
-                       fws->fifo_credit_map &= ~(1 << i);
--              fws->fifo_credit[i] = *credits++;
-+              WARN_ONCE(fws->fifo_credit[i] < 0,
-+                        "fifo_credit[%d] is negative(%d)\n", i,
-+                        fws->fifo_credit[i]);
-       }
-       brcmf_fws_schedule_deq(fws);
-       brcmf_fws_unlock(fws);
-@@ -2013,7 +2019,7 @@ static int brcmf_fws_borrow_credit(struc
-       }
-       for (lender_ac = 0; lender_ac <= BRCMF_FWS_FIFO_AC_VO; lender_ac++) {
--              if (fws->fifo_credit[lender_ac]) {
-+              if (fws->fifo_credit[lender_ac] > 0) {
-                       fws->credits_borrowed[lender_ac]++;
-                       fws->fifo_credit[lender_ac]--;
-                       if (fws->fifo_credit[lender_ac] == 0)
-@@ -2210,8 +2216,9 @@ static void brcmf_fws_dequeue_worker(str
-                       }
-                       continue;
-               }
--              while ((fws->fifo_credit[fifo]) || ((!fws->bcmc_credit_check) &&
--                     (fifo == BRCMF_FWS_FIFO_BCMC))) {
-+              while ((fws->fifo_credit[fifo] > 0) ||
-+                     ((!fws->bcmc_credit_check) &&
-+                      (fifo == BRCMF_FWS_FIFO_BCMC))) {
-                       skb = brcmf_fws_deq(fws, fifo);
-                       if (!skb)
-                               break;
-@@ -2222,7 +2229,7 @@ static void brcmf_fws_dequeue_worker(str
-                               break;
-               }
-               if ((fifo == BRCMF_FWS_FIFO_AC_BE) &&
--                  (fws->fifo_credit[fifo] == 0) &&
-+                  (fws->fifo_credit[fifo] <= 0) &&
-                   (!fws->bus_flow_blocked)) {
-                       while (brcmf_fws_borrow_credit(fws) == 0) {
-                               skb = brcmf_fws_deq(fws, fifo);