mac80211: backport brcmfmac patchset with driver setting concept
[openwrt/staging/lynxis/omap.git] / package / kernel / mac80211 / patches / 344-0009-brcmfmac-use-bar1-window-size-as-provided-by-pci-sub.patch
1 From: Hante Meuleman <meuleman@broadcom.com>
2 Date: Wed, 17 Feb 2016 11:26:58 +0100
3 Subject: [PATCH] brcmfmac: use bar1 window size as provided by pci subsystem
4
5 The PCIE bar1 window size is specified by chip. Currently the
6 ioremap of bar1 was using a define which always matched the size
7 of bar1, but newer chips can have a different bar1 sizes. With
8 this patch the ioremap will be called with the by chip provided
9 window size.
10
11 Reviewed-by: Arend Van Spriel <arend@broadcom.com>
12 Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
13 Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
14 Signed-off-by: Hante Meuleman <meuleman@broadcom.com>
15 Signed-off-by: Arend van Spriel <arend@broadcom.com>
16 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
17 ---
18
19 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
20 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
21 @@ -72,7 +72,6 @@ static struct brcmf_firmware_mapping brc
22
23 #define BRCMF_PCIE_FW_UP_TIMEOUT 2000 /* msec */
24
25 -#define BRCMF_PCIE_TCM_MAP_SIZE (4096 * 1024)
26 #define BRCMF_PCIE_REG_MAP_SIZE (32 * 1024)
27
28 /* backplane addres space accessed by BAR0 */
29 @@ -252,7 +251,6 @@ struct brcmf_pciedev_info {
30 char nvram_name[BRCMF_FW_NAME_LEN];
31 void __iomem *regs;
32 void __iomem *tcm;
33 - u32 tcm_size;
34 u32 ram_base;
35 u32 ram_size;
36 struct brcmf_chip *ci;
37 @@ -1592,8 +1590,7 @@ static int brcmf_pcie_get_resource(struc
38 }
39
40 devinfo->regs = ioremap_nocache(bar0_addr, BRCMF_PCIE_REG_MAP_SIZE);
41 - devinfo->tcm = ioremap_nocache(bar1_addr, BRCMF_PCIE_TCM_MAP_SIZE);
42 - devinfo->tcm_size = BRCMF_PCIE_TCM_MAP_SIZE;
43 + devinfo->tcm = ioremap_nocache(bar1_addr, bar1_size);
44
45 if (!devinfo->regs || !devinfo->tcm) {
46 brcmf_err("ioremap() failed (%p,%p)\n", devinfo->regs,
47 @@ -1602,8 +1599,9 @@ static int brcmf_pcie_get_resource(struc
48 }
49 brcmf_dbg(PCIE, "Phys addr : reg space = %p base addr %#016llx\n",
50 devinfo->regs, (unsigned long long)bar0_addr);
51 - brcmf_dbg(PCIE, "Phys addr : mem space = %p base addr %#016llx\n",
52 - devinfo->tcm, (unsigned long long)bar1_addr);
53 + brcmf_dbg(PCIE, "Phys addr : mem space = %p base addr %#016llx size 0x%x\n",
54 + devinfo->tcm, (unsigned long long)bar1_addr,
55 + (unsigned int)bar1_size);
56
57 return 0;
58 }