| 1 | --- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c |
| 2 | +++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c |
| 3 | @@ -97,6 +97,7 @@ static struct bcma_device_id brcms_corei |
| 4 | // BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 17, BCMA_ANY_CLASS), |
| 5 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 23, BCMA_ANY_CLASS), |
| 6 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 24, BCMA_ANY_CLASS), |
| 7 | +// BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 28, BCMA_ANY_CLASS), |
| 8 | BCMA_CORETABLE_END |
| 9 | }; |
| 10 | MODULE_DEVICE_TABLE(bcma, brcms_coreid_table); |
| 11 | --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c |
| 12 | +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c |
| 13 | @@ -734,7 +734,7 @@ static void brcms_c_ucode_bsinit(struct |
| 14 | brcms_c_write_mhf(wlc_hw, wlc_hw->band->mhfs); |
| 15 | |
| 16 | /* do band-specific ucode IHR, SHM, and SCR inits */ |
| 17 | - if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23)) { |
| 18 | + if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23) || D11REV_IS(wlc_hw->corerev, 28)) { |
| 19 | if (BRCMS_ISNPHY(wlc_hw->band)) |
| 20 | brcms_c_write_inits(wlc_hw, ucode->d11n0bsinitvals16); |
| 21 | else |
| 22 | @@ -2259,7 +2259,7 @@ static void brcms_ucode_download(struct |
| 23 | if (wlc_hw->ucode_loaded) |
| 24 | return; |
| 25 | |
| 26 | - if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23)) { |
| 27 | + if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23) || D11REV_IS(wlc_hw->corerev, 28)) { |
| 28 | if (BRCMS_ISNPHY(wlc_hw->band)) { |
| 29 | brcms_ucode_write(wlc_hw, ucode->bcm43xx_16_mimo, |
| 30 | ucode->bcm43xx_16_mimosz); |
| 31 | @@ -3221,7 +3221,7 @@ static void brcms_b_coreinit(struct brcm |
| 32 | |
| 33 | sflags = bcma_aread32(core, BCMA_IOST); |
| 34 | |
| 35 | - if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23)) { |
| 36 | + if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23) || D11REV_IS(wlc_hw->corerev, 28)) { |
| 37 | if (BRCMS_ISNPHY(wlc_hw->band)) |
| 38 | brcms_c_write_inits(wlc_hw, ucode->d11n0initvals16); |
| 39 | else |
| 40 | @@ -5818,6 +5818,8 @@ static bool brcms_c_chipmatch_soc(struct |
| 41 | |
| 42 | if (chipinfo->id == BCMA_CHIP_ID_BCM4716) |
| 43 | return true; |
| 44 | + if (chipinfo->id == BCMA_CHIP_ID_BCM5357) |
| 45 | + return true; |
| 46 | |
| 47 | pr_err("unknown chip id %04x\n", chipinfo->id); |
| 48 | return false; |
| 49 | --- a/drivers/net/wireless/brcm80211/brcmsmac/main.h |
| 50 | +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.h |
| 51 | @@ -65,7 +65,7 @@ |
| 52 | #define SW_TIMER_MAC_STAT_UPD 30 /* periodic MAC stats update */ |
| 53 | |
| 54 | /* max # supported core revisions (0 .. MAXCOREREV - 1) */ |
| 55 | -#define MAXCOREREV 28 |
| 56 | +#define MAXCOREREV 29 |
| 57 | |
| 58 | /* Double check that unsupported cores are not enabled */ |
| 59 | #if CONF_MSK(D11CONF, 0x4f) || CONF_GE(D11CONF, MAXCOREREV) |
| 60 | --- a/drivers/net/wireless/brcm80211/brcmsmac/types.h |
| 61 | +++ b/drivers/net/wireless/brcm80211/brcmsmac/types.h |
| 62 | @@ -93,11 +93,11 @@ |
| 63 | #define BOARD_GPIO_13 0x2000 |
| 64 | |
| 65 | /* **** Core type/rev defaults **** */ |
| 66 | -#define D11CONF 0x0fffffb0 /* Supported D11 revs: 4, 5, 7-27 |
| 67 | +#define D11CONF 0x1fffffb0 /* Supported D11 revs: 4, 5, 7-27 |
| 68 | * also need to update wlc.h MAXCOREREV |
| 69 | */ |
| 70 | |
| 71 | -#define NCONF 0x000001ff /* Supported nphy revs: |
| 72 | +#define NCONF 0x000002ff /* Supported nphy revs: |
| 73 | * 0 4321a0 |
| 74 | * 1 4321a1 |
| 75 | * 2 4321b0/b1/c0/c1 |
| 76 | |