]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - drivers/net/wireless/marvell/mwifiex/pcie.c
Merge tag 'nfc-next-4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo...
[mirror_ubuntu-hirsute-kernel.git] / drivers / net / wireless / marvell / mwifiex / pcie.c
index edf8b070f665c3c1261327ff9a96201fb5ba5477..0c7937eb6b7701d50b55d80c325fd1e091c7522e 100644 (file)
@@ -2811,6 +2811,7 @@ static int mwifiex_pcie_request_irq(struct mwifiex_adapter *adapter)
 static void mwifiex_pcie_get_fw_name(struct mwifiex_adapter *adapter)
 {
        int revision_id = 0;
+       int version;
        struct pcie_service_card *card = adapter->card;
 
        switch (card->dev->device) {
@@ -2829,18 +2830,34 @@ static void mwifiex_pcie_get_fw_name(struct mwifiex_adapter *adapter)
                        strcpy(adapter->fw_name, PCIE8897_B0_FW_NAME);
                        break;
                default:
+                       strcpy(adapter->fw_name, PCIE8897_DEFAULT_FW_NAME);
+
                        break;
                }
+               break;
        case PCIE_DEVICE_ID_MARVELL_88W8997:
                mwifiex_read_reg(adapter, 0x0c48, &revision_id);
+               mwifiex_read_reg(adapter, 0x0cd0, &version);
+               version &= 0x7;
                switch (revision_id) {
                case PCIE8997_V2:
-                       strcpy(adapter->fw_name, PCIE8997_FW_NAME_V2);
+                       if (version == CHIP_VER_PCIEUSB)
+                               strcpy(adapter->fw_name,
+                                      PCIEUSB8997_FW_NAME_V2);
+                       else
+                               strcpy(adapter->fw_name,
+                                      PCIEUART8997_FW_NAME_V2);
                        break;
                case PCIE8997_Z:
-                       strcpy(adapter->fw_name, PCIE8997_FW_NAME_Z);
+                       if (version == CHIP_VER_PCIEUSB)
+                               strcpy(adapter->fw_name,
+                                      PCIEUSB8997_FW_NAME_Z);
+                       else
+                               strcpy(adapter->fw_name,
+                                      PCIEUART8997_FW_NAME_Z);
                        break;
                default:
+                       strcpy(adapter->fw_name, PCIE8997_DEFAULT_FW_NAME);
                        break;
                }
        default: