Merge pull request #580 from wigyori/cc-libpcap
[15.05/openwrt.git] / package / kernel / mac80211 / patches / 351-0037-brcmfmac-add-support-for-bcm4339-chip-with-modalias-.patch
1 From 634faf3686900ccdee87b77e2c56df8b2159912b Mon Sep 17 00:00:00 2001
2 From: Arend Van Spriel <arend.vanspriel@broadcom.com>
3 Date: Mon, 5 Sep 2016 11:42:12 +0100
4 Subject: [PATCH] brcmfmac: add support for bcm4339 chip with modalias
5  sdio:c00v02D0d4339
6
7 The driver already supports the bcm4339 chipset but only for the variant
8 that shares the same modalias as the bcm4335, ie. sdio:c00v02D0d4335.
9 It turns out that there are also bcm4339 devices out there that have a
10 more distiguishable modalias sdio:c00v02D0d4339.
11
12 Reported-by: Steve deRosier <derosier@gmail.com>
13 Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
14 Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
15 Reviewed-by: Franky Lin <franky.lin@broadcom.com>
16 Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
17 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
18 ---
19  drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 1 +
20  drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c   | 3 ++-
21  include/linux/mmc/sdio_ids.h                              | 1 +
22  3 files changed, 4 insertions(+), 1 deletion(-)
23
24 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
25 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
26 @@ -1097,6 +1097,7 @@ static const struct sdio_device_id brcmf
27         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43341),
28         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43362),
29         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4335_4339),
30 +       BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4339),
31         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43430),
32         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4345),
33         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4354),
34 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
35 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
36 @@ -3756,7 +3756,8 @@ static u32 brcmf_sdio_buscore_read32(voi
37         u32 val, rev;
38  
39         val = brcmf_sdiod_regrl(sdiodev, addr, NULL);
40 -       if (sdiodev->func[0]->device == SDIO_DEVICE_ID_BROADCOM_4335_4339 &&
41 +       if ((sdiodev->func[0]->device == SDIO_DEVICE_ID_BROADCOM_4335_4339 ||
42 +            sdiodev->func[0]->device == SDIO_DEVICE_ID_BROADCOM_4339) &&
43             addr == CORE_CC_REG(SI_ENUM_BASE, chipid)) {
44                 rev = (val & CID_REV_MASK) >> CID_REV_SHIFT;
45                 if (rev >= 2) {
46 --- a/include/linux/mmc/sdio_ids.h
47 +++ b/include/linux/mmc/sdio_ids.h
48 @@ -32,6 +32,7 @@
49  #define SDIO_DEVICE_ID_BROADCOM_43340          0xa94c
50  #define SDIO_DEVICE_ID_BROADCOM_43341          0xa94d
51  #define SDIO_DEVICE_ID_BROADCOM_4335_4339      0x4335
52 +#define SDIO_DEVICE_ID_BROADCOM_4339           0x4339
53  #define SDIO_DEVICE_ID_BROADCOM_43362          0xa962
54  #define SDIO_DEVICE_ID_BROADCOM_43430          0xa9a6
55  #define SDIO_DEVICE_ID_BROADCOM_4345           0x4345