mac80211: backport brcmfmac to support multiple devices NVRAM
[openwrt.git] / package / kernel / mac80211 / patches / 361-brcmfmac-add-support-for-BCM4358-PCIe-device.patch
1 From: Arend van Spriel <arend@broadcom.com>
2 Date: Tue, 14 Apr 2015 20:10:31 +0200
3 Subject: [PATCH] brcmfmac: add support for BCM4358 PCIe device
4
5 This patch adds support for the BCM4358 2x2 11ac device.
6
7 Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
8 Signed-off-by: Arend van Spriel <arend@broadcom.com>
9 ---
10
11 --- a/drivers/net/wireless/brcm80211/brcmfmac/chip.c
12 +++ b/drivers/net/wireless/brcm80211/brcmfmac/chip.c
13 @@ -649,6 +649,7 @@ static u32 brcmf_chip_tcm_rambase(struct
14         case BRCM_CC_43567_CHIP_ID:
15         case BRCM_CC_43569_CHIP_ID:
16         case BRCM_CC_43570_CHIP_ID:
17 +       case BRCM_CC_4358_CHIP_ID:
18         case BRCM_CC_43602_CHIP_ID:
19                 return 0x180000;
20         default:
21 --- a/drivers/net/wireless/brcm80211/brcmfmac/pcie.c
22 +++ b/drivers/net/wireless/brcm80211/brcmfmac/pcie.c
23 @@ -51,6 +51,8 @@ enum brcmf_pcie_state {
24  #define BRCMF_PCIE_4356_NVRAM_NAME             "brcm/brcmfmac4356-pcie.txt"
25  #define BRCMF_PCIE_43570_FW_NAME               "brcm/brcmfmac43570-pcie.bin"
26  #define BRCMF_PCIE_43570_NVRAM_NAME            "brcm/brcmfmac43570-pcie.txt"
27 +#define BRCMF_PCIE_4358_FW_NAME                        "brcm/brcmfmac4358-pcie.bin"
28 +#define BRCMF_PCIE_4358_NVRAM_NAME             "brcm/brcmfmac4358-pcie.txt"
29  
30  #define BRCMF_PCIE_FW_UP_TIMEOUT               2000 /* msec */
31  
32 @@ -189,6 +191,8 @@ MODULE_FIRMWARE(BRCMF_PCIE_4356_FW_NAME)
33  MODULE_FIRMWARE(BRCMF_PCIE_4356_NVRAM_NAME);
34  MODULE_FIRMWARE(BRCMF_PCIE_43570_FW_NAME);
35  MODULE_FIRMWARE(BRCMF_PCIE_43570_NVRAM_NAME);
36 +MODULE_FIRMWARE(BRCMF_PCIE_4358_FW_NAME);
37 +MODULE_FIRMWARE(BRCMF_PCIE_4358_NVRAM_NAME);
38  
39  
40  struct brcmf_pcie_console {
41 @@ -1333,6 +1337,10 @@ static int brcmf_pcie_get_fwnames(struct
42                 fw_name = BRCMF_PCIE_43570_FW_NAME;
43                 nvram_name = BRCMF_PCIE_43570_NVRAM_NAME;
44                 break;
45 +       case BRCM_CC_4358_CHIP_ID:
46 +               fw_name = BRCMF_PCIE_4358_FW_NAME;
47 +               nvram_name = BRCMF_PCIE_4358_NVRAM_NAME;
48 +               break;
49         default:
50                 brcmf_err("Unsupported chip 0x%04x\n", devinfo->ci->chip);
51                 return -ENODEV;
52 @@ -1850,6 +1858,7 @@ static struct pci_device_id brcmf_pcie_d
53         BRCMF_PCIE_DEVICE(BRCM_PCIE_4356_DEVICE_ID),
54         BRCMF_PCIE_DEVICE(BRCM_PCIE_43567_DEVICE_ID),
55         BRCMF_PCIE_DEVICE(BRCM_PCIE_43570_DEVICE_ID),
56 +       BRCMF_PCIE_DEVICE(BRCM_PCIE_4358_DEVICE_ID),
57         BRCMF_PCIE_DEVICE(BRCM_PCIE_43602_DEVICE_ID),
58         BRCMF_PCIE_DEVICE(BRCM_PCIE_43602_2G_DEVICE_ID),
59         BRCMF_PCIE_DEVICE(BRCM_PCIE_43602_5G_DEVICE_ID),
60 --- a/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
61 +++ b/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
62 @@ -45,6 +45,7 @@
63  #define BRCM_CC_43567_CHIP_ID          43567
64  #define BRCM_CC_43569_CHIP_ID          43569
65  #define BRCM_CC_43570_CHIP_ID          43570
66 +#define BRCM_CC_4358_CHIP_ID           0x4358
67  #define BRCM_CC_43602_CHIP_ID          43602
68  
69  /* USB Device IDs */
70 @@ -59,6 +60,7 @@
71  #define BRCM_PCIE_4356_DEVICE_ID       0x43ec
72  #define BRCM_PCIE_43567_DEVICE_ID      0x43d3
73  #define BRCM_PCIE_43570_DEVICE_ID      0x43d9
74 +#define BRCM_PCIE_4358_DEVICE_ID       0x43e9
75  #define BRCM_PCIE_43602_DEVICE_ID      0x43ba
76  #define BRCM_PCIE_43602_2G_DEVICE_ID   0x43bb
77  #define BRCM_PCIE_43602_5G_DEVICE_ID   0x43bc