Signed-off-by: Miguel García <miguelgarciaroman8@xxxxxxxxx> v2 fixes: - Drop redundant comment line. - Restore whitespace around version/magic. - Use “wifi:” prefix in subject. --- drivers/net/wireless/marvell/mwifiex/pcie.c | 35 +++++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c index a760de191fce..fe93f5219a6d 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c @@ -3098,9 +3098,7 @@ static int mwifiex_pcie_request_irq(struct mwifiex_adapter *adapter) } /* - * This function gets the firmware name for downloading by revision id - * - * Read revision id register to get revision id + * Get firmware name for download by revision ID */ static void mwifiex_pcie_get_fw_name(struct mwifiex_adapter *adapter) { @@ -3110,39 +3108,56 @@ static void mwifiex_pcie_get_fw_name(struct mwifiex_adapter *adapter) switch (card->dev->device) { case PCIE_DEVICE_ID_MARVELL_88W8766P: - strcpy(adapter->fw_name, PCIE8766_DEFAULT_FW_NAME); + strscpy(adapter->fw_name, + PCIE8766_DEFAULT_FW_NAME, + sizeof(adapter->fw_name)); break; + case PCIE_DEVICE_ID_MARVELL_88W8897: mwifiex_write_reg(adapter, 0x0c58, 0x80c00000); mwifiex_read_reg(adapter, 0x0c58, &revision_id); revision_id &= 0xff00; + switch (revision_id) { case PCIE8897_A0: - strcpy(adapter->fw_name, PCIE8897_A0_FW_NAME); + strscpy(adapter->fw_name, + PCIE8897_A0_FW_NAME, + sizeof(adapter->fw_name)); break; case PCIE8897_B0: - strcpy(adapter->fw_name, PCIE8897_B0_FW_NAME); + strscpy(adapter->fw_name, + PCIE8897_B0_FW_NAME, + sizeof(adapter->fw_name)); break; default: - strcpy(adapter->fw_name, PCIE8897_DEFAULT_FW_NAME); - + strscpy(adapter->fw_name, + PCIE8897_DEFAULT_FW_NAME, + sizeof(adapter->fw_name)); break; } break; + case PCIE_DEVICE_ID_MARVELL_88W8997: mwifiex_read_reg(adapter, 0x8, &revision_id); mwifiex_read_reg(adapter, 0x0cd0, &version); mwifiex_read_reg(adapter, 0x0cd4, &magic); + revision_id &= 0xff; version &= 0x7; magic &= 0xff; + if (revision_id == PCIE8997_A1 && magic == CHIP_MAGIC_VALUE && version == CHIP_VER_PCIEUART) - strcpy(adapter->fw_name, PCIEUART8997_FW_NAME_V4); + strscpy(adapter->fw_name, + PCIEUART8997_FW_NAME_V4, + sizeof(adapter->fw_name)); else - strcpy(adapter->fw_name, PCIEUSB8997_FW_NAME_V4); + strscpy(adapter->fw_name, + PCIEUSB8997_FW_NAME_V4, + sizeof(adapter->fw_name)); break; + default: break; } -- 2.34.1