| 1 | --- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c |
| 2 | +++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c |
| 3 | @@ -95,6 +95,7 @@ MODULE_FIRMWARE("brcm/bcm43xx_hdr-0.fw") |
| 4 | |
| 5 | /* recognized BCMA Core IDs */ |
| 6 | static struct bcma_device_id brcms_coreid_table[] = { |
| 7 | + BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 17, BCMA_ANY_CLASS), |
| 8 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 23, BCMA_ANY_CLASS), |
| 9 | BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 24, BCMA_ANY_CLASS), |
| 10 | BCMA_CORETABLE_END |
| 11 | --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c |
| 12 | +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c |
| 13 | @@ -719,7 +719,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, 23)) { |
| 18 | + if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23)) { |
| 19 | if (BRCMS_ISNPHY(wlc_hw->band)) |
| 20 | brcms_c_write_inits(wlc_hw, ucode->d11n0bsinitvals16); |
| 21 | else |
| 22 | @@ -2266,7 +2266,7 @@ static void brcms_ucode_download(struct |
| 23 | if (wlc_hw->ucode_loaded) |
| 24 | return; |
| 25 | |
| 26 | - if (D11REV_IS(wlc_hw->corerev, 23)) { |
| 27 | + if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23)) { |
| 28 | if (BRCMS_ISNPHY(wlc_hw->band)) { |
| 29 | brcms_ucode_write(wlc_hw, ucode->bcm43xx_16_mimo, |
| 30 | ucode->bcm43xx_16_mimosz); |
| 31 | @@ -3218,7 +3218,7 @@ static void brcms_b_coreinit(struct brcm |
| 32 | |
| 33 | sflags = bcma_aread32(core, BCMA_IOST); |
| 34 | |
| 35 | - if (D11REV_IS(wlc_hw->corerev, 23)) { |
| 36 | + if (D11REV_IS(wlc_hw->corerev, 17) || D11REV_IS(wlc_hw->corerev, 23)) { |
| 37 | if (BRCMS_ISNPHY(wlc_hw->band)) |
| 38 | brcms_c_write_inits(wlc_hw, ucode->d11n0initvals16); |
| 39 | else |
| 40 | |