Re: [PATCH 5/8] brcmfmac: add support for BCM4359 SDIO chipset

From: Soeren Moch
Date: Tue Dec 10 2019 - 05:12:26 EST




On 10.12.19 07:32, Chi-Hsien Lin wrote:
>
> On 12/10/2019 11:38, Chi-Hsien Lin wrote:
>>
>> On 12/10/2019 6:38, Soeren Moch wrote:
>>> BCM4359 is a 2x2 802.11 abgn+ac Dual-Band HT80 combo chip and it
>>> supports Real Simultaneous Dual Band feature.
>>>
>>> Based on a similar patch by: Wright Feng <wright.feng@xxxxxxxxxxx>
>> Hi Soeren,
>>
>> Is it possible to also keep the ID in the original patch from Wright?
>> You can use below IDs and allow both to be supported:
>>
>> #define SDIO_DEVICE_ID_BROADCOM_4359 0x4359
>> #define SDIO_DEVICE_ID_CY_89359 0x4355
> Fix a typo. The ID should be
>
> #define SDIO_DEVICE_ID_CYPRESS_89359 0x4355
>
> Note that brcmf_sdmmc_ids[] also needs an entry for the above ID. The
> chipid references can remain unchanged.
Hi Chi-hsien,

thanks for all your reviews. I will re-add this ID and send a v2 of this
series.

Thanks again,
Soeren
>
> Chi-hsien Lin
>
>>
>> Chi-hsien Lin
>>
>>
>>> Signed-off-by: Soeren Moch <smoch@xxxxxx>
>>> ---
>>> Cc: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
>>> Cc: Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx>
>>> Cc: Franky Lin <franky.lin@xxxxxxxxxxxx>
>>> Cc: Hante Meuleman <hante.meuleman@xxxxxxxxxxxx>
>>> Cc: Chi-Hsien Lin <chi-hsien.lin@xxxxxxxxxxx>
>>> Cc: Wright Feng <wright.feng@xxxxxxxxxxx>
>>> Cc: linux-wireless@xxxxxxxxxxxxxxx
>>> Cc: brcm80211-dev-list.pdl@xxxxxxxxxxxx
>>> Cc: brcm80211-dev-list@xxxxxxxxxxx
>>> Cc: netdev@xxxxxxxxxxxxxxx
>>> Cc: linux-kernel@xxxxxxxxxxxxxxx
>>> ---
>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 1 +
>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 1 +
>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 ++
>>> include/linux/mmc/sdio_ids.h | 1 +
>>> 4 files changed, 5 insertions(+)
>>>
>>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
>>> index 68baf0189305..5b57d37caf17 100644
>>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
>>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
>>> @@ -973,6 +973,7 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
>>> BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43455),
>>> BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4354),
>>> BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4356),
>>> + BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4359),
>>> BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_CYPRESS_4373),
>>> BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_CYPRESS_43012),
>>> { /* end: all zeroes */ }
>>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
>>> index baf72e3984fc..282d0bc14e8e 100644
>>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
>>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
>>> @@ -1408,6 +1408,7 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub)
>>> addr = CORE_CC_REG(base, sr_control0);
>>> reg = chip->ops->read32(chip->ctx, addr);
>>> return (reg & CC_SR_CTL0_ENABLE_MASK) != 0;
>>> + case BRCM_CC_4359_CHIP_ID:
>>> case CY_CC_43012_CHIP_ID:
>>> addr = CORE_CC_REG(pmu->base, retention_ctl);
>>> reg = chip->ops->read32(chip->ctx, addr);
>>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
>>> index 21e535072f3f..c4012ed58b9c 100644
>>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
>>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
>>> @@ -616,6 +616,7 @@ BRCMF_FW_DEF(43455, "brcmfmac43455-sdio");
>>> BRCMF_FW_DEF(43456, "brcmfmac43456-sdio");
>>> BRCMF_FW_DEF(4354, "brcmfmac4354-sdio");
>>> BRCMF_FW_DEF(4356, "brcmfmac4356-sdio");
>>> +BRCMF_FW_DEF(4359, "brcmfmac4359-sdio");
>>> BRCMF_FW_DEF(4373, "brcmfmac4373-sdio");
>>> BRCMF_FW_DEF(43012, "brcmfmac43012-sdio");
>>>
>>> @@ -638,6 +639,7 @@ static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {
>>> BRCMF_FW_ENTRY(BRCM_CC_4345_CHIP_ID, 0xFFFFFDC0, 43455),
>>> BRCMF_FW_ENTRY(BRCM_CC_4354_CHIP_ID, 0xFFFFFFFF, 4354),
>>> BRCMF_FW_ENTRY(BRCM_CC_4356_CHIP_ID, 0xFFFFFFFF, 4356),
>>> + BRCMF_FW_ENTRY(BRCM_CC_4359_CHIP_ID, 0xFFFFFFFF, 4359),
>>> BRCMF_FW_ENTRY(CY_CC_4373_CHIP_ID, 0xFFFFFFFF, 4373),
>>> BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012)
>>> };
>>> diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h
>>> index 08b25c02b5a1..930ef2d8264a 100644
>>> --- a/include/linux/mmc/sdio_ids.h
>>> +++ b/include/linux/mmc/sdio_ids.h
>>> @@ -41,6 +41,7 @@
>>> #define SDIO_DEVICE_ID_BROADCOM_43455 0xa9bf
>>> #define SDIO_DEVICE_ID_BROADCOM_4354 0x4354
>>> #define SDIO_DEVICE_ID_BROADCOM_4356 0x4356
>>> +#define SDIO_DEVICE_ID_BROADCOM_4359 0x4359
>>> #define SDIO_DEVICE_ID_CYPRESS_4373 0x4373
>>> #define SDIO_DEVICE_ID_CYPRESS_43012 43012
>>>
>>> --
>>> 2.17.1
>>>
>>> .
>>>