123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- From b021a6bc1175442609af0b66d64f850883e155fb Mon Sep 17 00:00:00 2001
- From: Chi-Hsien Lin <[email protected]>
- Date: Wed, 21 Nov 2018 07:53:48 +0000
- Subject: [PATCH] brcmfmac: allow GCI core enumuration
- GCI core is needed for ULP operation. Allow GCI core enumuration with
- below changes:
- - Allow GCI to be added to core list even when it doesn't have a wrapper.
- - Allow 8K address space size.
- - Don't overwrite the address value when an additional size descriptor
- is in place.
- Reviewed-by: Arend van Spriel <[email protected]>
- Signed-off-by: Chi-Hsien Lin <[email protected]>
- Signed-off-by: Kalle Valo <[email protected]>
- ---
- .../wireless/broadcom/brcm80211/brcmfmac/chip.c | 14 ++++++++------
- 1 file changed, 8 insertions(+), 6 deletions(-)
- --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
- +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
- @@ -786,7 +786,7 @@ static int brcmf_chip_dmp_get_regaddr(st
- u32 *regbase, u32 *wrapbase)
- {
- u8 desc;
- - u32 val;
- + u32 val, szdesc;
- u8 mpnum = 0;
- u8 stype, sztype, wraptype;
-
- @@ -832,14 +832,15 @@ static int brcmf_chip_dmp_get_regaddr(st
-
- /* next size descriptor can be skipped */
- if (sztype == DMP_SLAVE_SIZE_DESC) {
- - val = brcmf_chip_dmp_get_desc(ci, eromaddr, NULL);
- + szdesc = brcmf_chip_dmp_get_desc(ci, eromaddr, NULL);
- /* skip upper size descriptor if present */
- - if (val & DMP_DESC_ADDRSIZE_GT32)
- + if (szdesc & DMP_DESC_ADDRSIZE_GT32)
- brcmf_chip_dmp_get_desc(ci, eromaddr, NULL);
- }
-
- - /* only look for 4K register regions */
- - if (sztype != DMP_SLAVE_SIZE_4K)
- + /* look for 4K or 8K register regions */
- + if (sztype != DMP_SLAVE_SIZE_4K &&
- + sztype != DMP_SLAVE_SIZE_8K)
- continue;
-
- stype = (val & DMP_SLAVE_TYPE) >> DMP_SLAVE_TYPE_S;
- @@ -896,7 +897,8 @@ int brcmf_chip_dmp_erom_scan(struct brcm
-
- /* need core with ports */
- if (nmw + nsw == 0 &&
- - id != BCMA_CORE_PMU)
- + id != BCMA_CORE_PMU &&
- + id != BCMA_CORE_GCI)
- continue;
-
- /* try to obtain register address info */
|