Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

wifi: brcmfmac: fix 43752 SDIO FWVID incorrectly labelled as Cypress (CYW)

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". So relabel the
chip's firmware Vendor ID as "WCC" as suggested by the maintainer.

Fixes: d2587c57ffd8 ("brcmfmac: add 43752 SDIO ids and initialization")
Fixes: f74f1ec22dc2 ("wifi: brcmfmac: add support for Cypress firmware api")
Signed-off-by: Gokul Sivakumar <gokulkumar.sivakumar@infineon.com>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Link: https://patch.msgid.link/20250724101136.6691-1-gokulkumar.sivakumar@infineon.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

authored by

Gokul Sivakumar and committed by
Johannes Berg
74e2ef72 56819d00

+8 -9
+1 -1
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
··· 997 997 BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4356, WCC), 998 998 BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4359, WCC), 999 999 BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43751, WCC), 1000 + BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43752, WCC), 1000 1001 BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373, CYW), 1001 1002 BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43012, CYW), 1002 - BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752, CYW), 1003 1003 BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_89359, CYW), 1004 1004 CYW_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43439, CYW), 1005 1005 { /* end: all zeroes */ }
+2 -2
drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
··· 738 738 case BRCM_CC_4364_CHIP_ID: 739 739 case CY_CC_4373_CHIP_ID: 740 740 return 0x160000; 741 - case CY_CC_43752_CHIP_ID: 742 741 case BRCM_CC_43751_CHIP_ID: 742 + case BRCM_CC_43752_CHIP_ID: 743 743 case BRCM_CC_4377_CHIP_ID: 744 744 return 0x170000; 745 745 case BRCM_CC_4378_CHIP_ID: ··· 1452 1452 return (reg & CC_SR_CTL0_ENABLE_MASK) != 0; 1453 1453 case BRCM_CC_4359_CHIP_ID: 1454 1454 case BRCM_CC_43751_CHIP_ID: 1455 - case CY_CC_43752_CHIP_ID: 1455 + case BRCM_CC_43752_CHIP_ID: 1456 1456 case CY_CC_43012_CHIP_ID: 1457 1457 addr = CORE_CC_REG(pmu->base, retention_ctl); 1458 1458 reg = chip->ops->read32(chip->ctx, addr);
+4 -4
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
··· 655 655 BRCMF_FW_ENTRY(BRCM_CC_4356_CHIP_ID, 0xFFFFFFFF, 4356), 656 656 BRCMF_FW_ENTRY(BRCM_CC_4359_CHIP_ID, 0xFFFFFFFF, 4359), 657 657 BRCMF_FW_ENTRY(BRCM_CC_43751_CHIP_ID, 0xFFFFFFFF, 43752), 658 + BRCMF_FW_ENTRY(BRCM_CC_43752_CHIP_ID, 0xFFFFFFFF, 43752), 658 659 BRCMF_FW_ENTRY(CY_CC_4373_CHIP_ID, 0xFFFFFFFF, 4373), 659 660 BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012), 660 661 BRCMF_FW_ENTRY(CY_CC_43439_CHIP_ID, 0xFFFFFFFF, 43439), 661 - BRCMF_FW_ENTRY(CY_CC_43752_CHIP_ID, 0xFFFFFFFF, 43752) 662 662 }; 663 663 664 664 #define TXCTL_CREDITS 2 ··· 3426 3426 static bool brcmf_sdio_aos_no_decode(struct brcmf_sdio *bus) 3427 3427 { 3428 3428 if (bus->ci->chip == BRCM_CC_43751_CHIP_ID || 3429 - bus->ci->chip == CY_CC_43012_CHIP_ID || 3430 - bus->ci->chip == CY_CC_43752_CHIP_ID) 3429 + bus->ci->chip == BRCM_CC_43752_CHIP_ID || 3430 + bus->ci->chip == CY_CC_43012_CHIP_ID) 3431 3431 return true; 3432 3432 else 3433 3433 return false; ··· 4278 4278 4279 4279 switch (sdiod->func1->device) { 4280 4280 case SDIO_DEVICE_ID_BROADCOM_43751: 4281 + case SDIO_DEVICE_ID_BROADCOM_43752: 4281 4282 case SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373: 4282 - case SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752: 4283 4283 brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n", 4284 4284 CY_4373_F2_WATERMARK); 4285 4285 brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK,
-1
drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
··· 60 60 #define CY_CC_4373_CHIP_ID 0x4373 61 61 #define CY_CC_43012_CHIP_ID 43012 62 62 #define CY_CC_43439_CHIP_ID 43439 63 - #define CY_CC_43752_CHIP_ID 43752 64 63 65 64 /* USB Device IDs */ 66 65 #define BRCM_USB_43143_DEVICE_ID 0xbd1e
+1 -1
include/linux/mmc/sdio_ids.h
··· 77 77 #define SDIO_DEVICE_ID_BROADCOM_43439 0xa9af 78 78 #define SDIO_DEVICE_ID_BROADCOM_43455 0xa9bf 79 79 #define SDIO_DEVICE_ID_BROADCOM_43751 0xaae7 80 - #define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752 0xaae8 80 + #define SDIO_DEVICE_ID_BROADCOM_43752 0xaae8 81 81 82 82 #define SDIO_VENDOR_ID_CYPRESS 0x04b4 83 83 #define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43439 0xbd3d