Re: [PATCH wireless-next] wifi: brcmfmac: remove 43752 SDIO incorrectly labelled as a Cypress chip

Arend van Spriel <[email protected]> Wed, 23 Jul 2025 11:12:56 +0200
Newsgroups dev.linux.lists.brcm80211,org.kernel.vger.linux-wireless
Message-ID <[email protected]>
On 7/21/2025 12:26 PM, Gokul Sivakumar wrote:
> Cypress(Infineon) is not the vendor for this 43752 SDIO WLAN chip, and so
> has not officially released any firmware binary for it. It is incorrect to
> maintain this WLAN chip with firmware vendor ID as "CYW".
> 
> Fixes: d2587c57ffd8 ("brcmfmac: add 43752 SDIO ids and initialization")
> Signed-off-by: Gokul Sivakumar <[email protected]>
> ---
>   drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c    | 1 -
>   drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c      | 4 ++--
>   drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c      | 5 +----
>   .../net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h    | 1 -
>   include/linux/mmc/sdio_ids.h                                 | 1 -
>   5 files changed, 3 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> index 8ab7d1e34a6e..de4634cad461 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> @@ -999,7 +999,6 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
>   	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43751, WCC),
>   	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373, CYW),
>   	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43012, CYW),
> -	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752, CYW),

Thanks for the patch, but simply dropping support for this device 
probably means users who have this chipset will report a regression. So 
I suggest to make it a WCC chipset and only drop the CYPRESS indication 
like done in chip.c in this patch (see below).

Regards,
Arend

>   	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_89359, CYW),
>   	CYW_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43439, CYW),
>   	{ /* end: all zeroes */ }
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
> index 9074ab49e806..4239f2b21e54 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
> @@ -738,8 +738,8 @@ static u32 brcmf_chip_tcm_rambase(struct brcmf_chip_priv *ci)
>   	case BRCM_CC_4364_CHIP_ID:
>   	case CY_CC_4373_CHIP_ID:
>   		return 0x160000;
> -	case CY_CC_43752_CHIP_ID:
>   	case BRCM_CC_43751_CHIP_ID:
> +	case BRCM_CC_43752_CHIP_ID:
>   	case BRCM_CC_4377_CHIP_ID:
>   		return 0x170000;
>   	case BRCM_CC_4378_CHIP_ID:
> @@ -1452,7 +1452,7 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub)
>   		return (reg & CC_SR_CTL0_ENABLE_MASK) != 0;
>   	case BRCM_CC_4359_CHIP_ID:
>   	case BRCM_CC_43751_CHIP_ID:
> -	case CY_CC_43752_CHIP_ID:
> +	case BRCM_CC_43752_CHIP_ID:
>   	case CY_CC_43012_CHIP_ID:
>   		addr = CORE_CC_REG(pmu->base, retention_ctl);
>   		reg = chip->ops->read32(chip->ctx, addr);