mac80211: rebase ontop of v4.18.5
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / 312-v4.16-0001-brcmfmac-Split-brcmf_sdiod_buffrw-function-up.patch
diff --git a/package/kernel/mac80211/patches/312-v4.16-0001-brcmfmac-Split-brcmf_sdiod_buffrw-function-up.patch b/package/kernel/mac80211/patches/312-v4.16-0001-brcmfmac-Split-brcmf_sdiod_buffrw-function-up.patch
deleted file mode 100644 (file)
index c260b96..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From 8f13c87ccc495e30de5f58bbda967f6edd5bec53 Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Fri, 8 Dec 2017 13:10:26 +0100
-Subject: [PATCH] brcmfmac: Split brcmf_sdiod_buffrw function up.
-
-This function needs to be split up into separate read / write variants
-for clarity.
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c  | 67 +++++++++++++++-------
- 1 file changed, 45 insertions(+), 22 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -414,8 +414,8 @@ void brcmf_sdiod_regwl(struct brcmf_sdio
-               *ret = retval;
- }
--static int brcmf_sdiod_buffrw(struct brcmf_sdio_dev *sdiodev, uint fn,
--                           bool write, u32 addr, struct sk_buff *pkt)
-+static int brcmf_sdiod_buff_read(struct brcmf_sdio_dev *sdiodev, uint fn,
-+                               u32 addr, struct sk_buff *pkt)
- {
-       unsigned int req_sz;
-       int err;
-@@ -424,18 +424,36 @@ static int brcmf_sdiod_buffrw(struct brc
-       req_sz = pkt->len + 3;
-       req_sz &= (uint)~3;
--      if (write)
--              err = sdio_memcpy_toio(sdiodev->func[fn], addr,
--                                     ((u8 *)(pkt->data)), req_sz);
--      else if (fn == 1)
--              err = sdio_memcpy_fromio(sdiodev->func[fn], ((u8 *)(pkt->data)),
--                                       addr, req_sz);
-+      if (fn == 1)
-+              err = sdio_memcpy_fromio(sdiodev->func[fn],
-+                                       ((u8 *)(pkt->data)), addr, req_sz);
-       else
-               /* function 2 read is FIFO operation */
--              err = sdio_readsb(sdiodev->func[fn], ((u8 *)(pkt->data)), addr,
--                                req_sz);
-+              err = sdio_readsb(sdiodev->func[fn],
-+                                ((u8 *)(pkt->data)), addr, req_sz);
-+
-+      if (err == -ENOMEDIUM)
-+              brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM);
-+
-+      return err;
-+}
-+
-+static int brcmf_sdiod_buff_write(struct brcmf_sdio_dev *sdiodev, uint fn,
-+                                u32 addr, struct sk_buff *pkt)
-+{
-+      unsigned int req_sz;
-+      int err;
-+
-+      /* Single skb use the standard mmc interface */
-+      req_sz = pkt->len + 3;
-+      req_sz &= (uint)~3;
-+
-+      err = sdio_memcpy_toio(sdiodev->func[fn], addr,
-+                             ((u8 *)(pkt->data)), req_sz);
-+
-       if (err == -ENOMEDIUM)
-               brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM);
-+
-       return err;
- }
-@@ -643,7 +661,7 @@ int brcmf_sdiod_recv_pkt(struct brcmf_sd
-       if (err)
-               goto done;
--      err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, false, addr, pkt);
-+      err = brcmf_sdiod_buff_read(sdiodev, SDIO_FUNC_2, addr, pkt);
- done:
-       return err;
-@@ -665,14 +683,14 @@ int brcmf_sdiod_recv_chain(struct brcmf_
-               goto done;
-       if (pktq->qlen == 1)
--              err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, false, addr,
--                                       pktq->next);
-+              err = brcmf_sdiod_buff_read(sdiodev, SDIO_FUNC_2, addr,
-+                                          pktq->next);
-       else if (!sdiodev->sg_support) {
-               glom_skb = brcmu_pkt_buf_get_skb(totlen);
-               if (!glom_skb)
-                       return -ENOMEM;
--              err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, false, addr,
--                                       glom_skb);
-+              err = brcmf_sdiod_buff_read(sdiodev, SDIO_FUNC_2, addr,
-+                                          glom_skb);
-               if (err)
-                       goto done;
-@@ -707,8 +725,7 @@ int brcmf_sdiod_send_buf(struct brcmf_sd
-       err = brcmf_sdiod_addrprep(sdiodev, &addr);
-       if (!err)
--              err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, true, addr,
--                                       mypkt);
-+              err = brcmf_sdiod_buff_write(sdiodev, SDIO_FUNC_2, addr, mypkt);
-       brcmu_pkt_buf_free_skb(mypkt);
-       return err;
-@@ -730,8 +747,8 @@ int brcmf_sdiod_send_pkt(struct brcmf_sd
-       if (pktq->qlen == 1 || !sdiodev->sg_support)
-               skb_queue_walk(pktq, skb) {
--                      err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, true,
--                                               addr, skb);
-+                      err = brcmf_sdiod_buff_write(sdiodev, SDIO_FUNC_2,
-+                                                   addr, skb);
-                       if (err)
-                               break;
-               }
-@@ -783,10 +800,16 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev
-               sdaddr |= SBSDIO_SB_ACCESS_2_4B_FLAG;
-               skb_put(pkt, dsize);
--              if (write)
-+
-+              if (write) {
-                       memcpy(pkt->data, data, dsize);
--              err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_1, write, sdaddr,
--                                       pkt);
-+                      err = brcmf_sdiod_buff_write(sdiodev, SDIO_FUNC_1,
-+                                                   sdaddr, pkt);
-+              } else {
-+                      err = brcmf_sdiod_buff_read(sdiodev, SDIO_FUNC_1,
-+                                                  sdaddr, pkt);
-+              }
-+
-               if (err) {
-                       brcmf_err("membytes transfer failed\n");
-                       break;