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. 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 >> >> . >>