>> @@ -1721,7 +1723,7 @@ static int brcmf_pcie_download_fw_nvram(struct >> brcmf_pciedev_info *devinfo, >> memcpy_toio(devinfo->tcm + address, nvram, nvram_len); >> brcmf_fw_nvram_free(nvram); >> >> - if (devinfo->otp.valid) { >> + if (devinfo->otp.valid || devinfo->ci->chip > > So the problem here is that otp validity is not unambiguous. The seed > requirement is mandated by firmware and was introduced for new WCC chips > moving forward. > > I would suggest to have a need_seed flag in the driver_data of the device > table (below). It currently is used only for vendor identification. Because of brcmf_pcie_setup function also need the driver_data, so I tried to define a global variable named NEED_SEED_FLAG. But marco define didn't allow to modify value in it, do you think where is the best place to assign the flag? Or you still think should add a new macro named BRCMF_PCIE_DEVICE_NEED_SEED? To be honest, I'm not quite sure which way is the best. > Regards, > Arend > >> == BRCM_CC_43752_CHIP_ID) { >> size_t rand_len = BRCMF_RANDOM_SEED_LENGTH; >> struct brcmf_random_seed_footer footer = { >> .length = cpu_to_le32(rand_len), >> @@ -2710,6 +2712,7 @@ static const struct pci_device_id >> brcmf_pcie_devid_table[] = { >> BRCMF_PCIE_DEVICE(BRCM_PCIE_4366_5G_DEVICE_ID, BCA), >> BRCMF_PCIE_DEVICE(BRCM_PCIE_4371_DEVICE_ID, WCC), >> BRCMF_PCIE_DEVICE(BRCM_PCIE_43596_DEVICE_ID, CYW), >> + BRCMF_PCIE_DEVICE(BRCM_PCIE_43752_DEVICE_ID, WCC), >> BRCMF_PCIE_DEVICE(BRCM_PCIE_4377_DEVICE_ID, WCC), >> BRCMF_PCIE_DEVICE(BRCM_PCIE_4378_DEVICE_ID, WCC), >> BRCMF_PCIE_DEVICE(BRCM_PCIE_4387_DEVICE_ID, WCC), --- Best Regards Jacobe