diff mbox series

Unsupported WiFi adapter on S905X2 board

Message ID 05977cbb-8a8f-0a67-b4bd-b265dbb83280@free.fr
State New
Headers show
Series Unsupported WiFi adapter on S905X2 board | expand

Commit Message

Marc Gonzalez March 3, 2023, 6:19 p.m. UTC
Hello,

I think there's an unsupported device in this system:

# cat /sys/bus/sdio/devices/mmc2:0001:1/uevent
OF_NAME=wifi
OF_FULLNAME=/soc/sd@ffe03000/wifi@1
OF_COMPATIBLE_0=brcm,bcm4329-fmac
OF_COMPATIBLE_N=1
SDIO_CLASS=00
SDIO_ID=02D0:AAE7
SDIO_REVISION=0.0
MODALIAS=sdio:c00v02D0dAAE7

0xaae7 = 43751

Isn't there some overlap between
include/linux/mmc/sdio_ids.h
and
drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
?

(Relevant commit: d2587c57ffd8dc)

Looking at all the occurrences of 43752 to insert a 43751,
could someone comment whether this looks reasonable?



Regards.

Comments

Neil Armstrong March 6, 2023, 9:17 a.m. UTC | #1
Hi Mark,

On 03/03/2023 19:19, Marc Gonzalez wrote:
> Hello,
> 
> I think there's an unsupported device in this system:
> 
> # cat /sys/bus/sdio/devices/mmc2:0001:1/uevent
> OF_NAME=wifi
> OF_FULLNAME=/soc/sd@ffe03000/wifi@1
> OF_COMPATIBLE_0=brcm,bcm4329-fmac
> OF_COMPATIBLE_N=1
> SDIO_CLASS=00
> SDIO_ID=02D0:AAE7
> SDIO_REVISION=0.0
> MODALIAS=sdio:c00v02D0dAAE7
> 
> 0xaae7 = 43751
> 
> Isn't there some overlap between
> include/linux/mmc/sdio_ids.h
> and
> drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
> ?
> 
> (Relevant commit: d2587c57ffd8dc)
> 
> Looking at all the occurrences of 43752 to insert a 43751,
> could someone comment whether this looks reasonable?
> 

<snip>


I think you should send this as a patch as RFC to trigger a review.

Neil
diff mbox series

Patch

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index 1967160f211eb..89bbad598782e 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -987,6 +987,7 @@  static const struct sdio_device_id brcmf_sdmmc_ids[] = {
  	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_43439, CYW),
+	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43751, CYW),
  	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752, CYW),
  	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_89359, 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 121893bbaa1d7..cab9257272dd4 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
@@ -731,6 +731,7 @@  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_43751_CHIP_ID:
  	case CY_CC_43752_CHIP_ID:
  		return 0x170000;
  	case BRCM_CC_4378_CHIP_ID:
@@ -1433,6 +1434,7 @@  bool brcmf_chip_sr_capable(struct brcmf_chip *pub)
  		reg = chip->ops->read32(chip->ctx, addr);
  		return (reg & CC_SR_CTL0_ENABLE_MASK) != 0;
  	case BRCM_CC_4359_CHIP_ID:
+	case CY_CC_43751_CHIP_ID:
  	case CY_CC_43752_CHIP_ID:
  	case CY_CC_43012_CHIP_ID:
  		addr = CORE_CC_REG(pmu->base, retention_ctl);
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index 6b38d9de71af6..55cc7b65081fd 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -624,6 +624,7 @@  BRCMF_FW_CLM_DEF(4356, "brcmfmac4356-sdio");
  BRCMF_FW_DEF(4359, "brcmfmac4359-sdio");
  BRCMF_FW_CLM_DEF(4373, "brcmfmac4373-sdio");
  BRCMF_FW_CLM_DEF(43012, "brcmfmac43012-sdio");
+BRCMF_FW_CLM_DEF(43751, "brcmfmac43751-sdio");
  BRCMF_FW_CLM_DEF(43752, "brcmfmac43752-sdio");
  
  /* firmware config files */
@@ -657,6 +658,7 @@  static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {
  	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_43751_CHIP_ID, 0xFFFFFFFF, 43751),
  	BRCMF_FW_ENTRY(CY_CC_43752_CHIP_ID, 0xFFFFFFFF, 43752)
  };
  
@@ -3425,6 +3427,7 @@  static int brcmf_sdio_download_firmware(struct brcmf_sdio *bus,
  static bool brcmf_sdio_aos_no_decode(struct brcmf_sdio *bus)
  {
  	if (bus->ci->chip == CY_CC_43012_CHIP_ID ||
+	    bus->ci->chip == CY_CC_43751_CHIP_ID ||
  	    bus->ci->chip == CY_CC_43752_CHIP_ID)
  		return true;
  	else
@@ -4274,6 +4277,7 @@  static void brcmf_sdio_firmware_callback(struct device *dev, int err,
  
  		switch (sdiod->func1->device) {
  		case SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373:
+		case SDIO_DEVICE_ID_BROADCOM_CYPRESS_43751:
  		case SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752:
  			brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n",
  				  CY_4373_F2_WATERMARK);
diff --git a/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h b/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
index f4939cf627672..8b21da3e66291 100644
--- a/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
+++ b/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
@@ -55,6 +55,7 @@ 
  #define CY_CC_4373_CHIP_ID		0x4373
  #define CY_CC_43012_CHIP_ID		43012
  #define CY_CC_43439_CHIP_ID		43439
+#define CY_CC_43751_CHIP_ID		43751
  #define CY_CC_43752_CHIP_ID		43752
  #define CY_CC_89459_CHIP_ID		0x4355
  
diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h
index 74f9d9a6d3307..80e84958e570f 100644
--- a/include/linux/mmc/sdio_ids.h
+++ b/include/linux/mmc/sdio_ids.h
@@ -76,6 +76,7 @@ 
  #define SDIO_DEVICE_ID_BROADCOM_43430		0xa9a6
  #define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43439	0xa9af
  #define SDIO_DEVICE_ID_BROADCOM_43455		0xa9bf
+#define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43751	0xaae7
  #define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752	0xaae8
  
  #define SDIO_VENDOR_ID_MARVELL			0x02df