const char *firmware_name, const char *rampatch_name)
 {
        struct qca_fw_config config = {};
+       const char *variant = "";
        int err;
        u8 rom_ver = 0;
        u32 soc_ver;
                case QCA_WCN3990:
                case QCA_WCN3991:
                case QCA_WCN3998:
-                       if (le32_to_cpu(ver.soc_id) == QCA_WCN3991_SOC_ID) {
-                               snprintf(config.fwname, sizeof(config.fwname),
-                                        "qca/crnv%02xu.bin", rom_ver);
-                       } else {
-                               snprintf(config.fwname, sizeof(config.fwname),
-                                        "qca/crnv%02x.bin", rom_ver);
-                       }
+                       if (le32_to_cpu(ver.soc_id) == QCA_WCN3991_SOC_ID)
+                               variant = "u";
+
+                       snprintf(config.fwname, sizeof(config.fwname),
+                                "qca/crnv%02x%s.bin", rom_ver, variant);
                        break;
                case QCA_WCN3988:
                        snprintf(config.fwname, sizeof(config.fwname),