]> www.infradead.org Git - users/hch/misc.git/commitdiff
wifi: brcmfmac: fix 43752 SDIO FWVID incorrectly labelled as Cypress (CYW)
authorGokul Sivakumar <gokulkumar.sivakumar@infineon.com>
Thu, 24 Jul 2025 10:11:36 +0000 (15:41 +0530)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 3 Sep 2025 08:08:04 +0000 (10:08 +0200)
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>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
include/linux/mmc/sdio_ids.h

index 8ab7d1e34a6e14d1a619b6b112fe6c1ff335c675..6a3f187320fc41c300ccb515a04fb5d3e373000d 100644 (file)
@@ -997,9 +997,9 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4356, WCC),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4359, WCC),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43751, WCC),
+       BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43752, 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),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_89359, CYW),
        CYW_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43439, CYW),
        { /* end: all zeroes */ }
index 9074ab49e8068597e3f64de5bf545f076aa62e6b..4239f2b21e5423c16ebb6021c51d2ed7b4891655 100644 (file)
@@ -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);
index 8a0bad5119a0ddac68180ea1d527b1e7d22d6649..8cf9d7e7c3f70cde40953fced9d6b7396e793bbf 100644 (file)
@@ -655,10 +655,10 @@ static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {
        BRCMF_FW_ENTRY(BRCM_CC_4356_CHIP_ID, 0xFFFFFFFF, 4356),
        BRCMF_FW_ENTRY(BRCM_CC_4359_CHIP_ID, 0xFFFFFFFF, 4359),
        BRCMF_FW_ENTRY(BRCM_CC_43751_CHIP_ID, 0xFFFFFFFF, 43752),
+       BRCMF_FW_ENTRY(BRCM_CC_43752_CHIP_ID, 0xFFFFFFFF, 43752),
        BRCMF_FW_ENTRY(CY_CC_4373_CHIP_ID, 0xFFFFFFFF, 4373),
        BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012),
        BRCMF_FW_ENTRY(CY_CC_43439_CHIP_ID, 0xFFFFFFFF, 43439),
-       BRCMF_FW_ENTRY(CY_CC_43752_CHIP_ID, 0xFFFFFFFF, 43752)
 };
 
 #define TXCTL_CREDITS  2
@@ -3426,8 +3426,8 @@ err:
 static bool brcmf_sdio_aos_no_decode(struct brcmf_sdio *bus)
 {
        if (bus->ci->chip == BRCM_CC_43751_CHIP_ID ||
-           bus->ci->chip == CY_CC_43012_CHIP_ID ||
-           bus->ci->chip == CY_CC_43752_CHIP_ID)
+           bus->ci->chip == BRCM_CC_43752_CHIP_ID ||
+           bus->ci->chip == CY_CC_43012_CHIP_ID)
                return true;
        else
                return false;
@@ -4278,8 +4278,8 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
 
                switch (sdiod->func1->device) {
                case SDIO_DEVICE_ID_BROADCOM_43751:
+               case SDIO_DEVICE_ID_BROADCOM_43752:
                case SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373:
-               case SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752:
                        brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n",
                                  CY_4373_F2_WATERMARK);
                        brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK,
index b39c5c1ee18b6ef0c8cb6f3bf8c1b468d619d5fd..df3b67ba4db29083f99992e3954b67bf298645da 100644 (file)
@@ -60,7 +60,6 @@
 #define CY_CC_4373_CHIP_ID             0x4373
 #define CY_CC_43012_CHIP_ID            43012
 #define CY_CC_43439_CHIP_ID            43439
-#define CY_CC_43752_CHIP_ID            43752
 
 /* USB Device IDs */
 #define BRCM_USB_43143_DEVICE_ID       0xbd1e
index fe3d6d98f8da417401faf2feb986da37b4c3e853..673cbdf4345330a1a474922216f2acb310b579ef 100644 (file)
@@ -77,7 +77,7 @@
 #define SDIO_DEVICE_ID_BROADCOM_43439          0xa9af
 #define SDIO_DEVICE_ID_BROADCOM_43455          0xa9bf
 #define SDIO_DEVICE_ID_BROADCOM_43751          0xaae7
-#define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752  0xaae8
+#define SDIO_DEVICE_ID_BROADCOM_43752          0xaae8
 
 #define SDIO_VENDOR_ID_CYPRESS                 0x04b4
 #define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43439  0xbd3d