CH_ERR(adapter, "found wrong FW version(%u.%u), "
                       "driver needs version %u.%u\n", major, minor,
                       FW_VERSION_MAJOR, FW_VERSION_MINOR);
-       else {
+       else if (minor < FW_VERSION_MINOR) {
                *must_load = 0;
-               CH_WARN(adapter, "found wrong FW minor version(%u.%u), "
+               CH_WARN(adapter, "found old FW minor version(%u.%u), "
+                       "driver compiled for version %u.%u\n", major, minor,
+                       FW_VERSION_MAJOR, FW_VERSION_MINOR);
+       } else {
+               CH_WARN(adapter, "found newer FW version(%u.%u), "
                        "driver compiled for version %u.%u\n", major, minor,
                        FW_VERSION_MAJOR, FW_VERSION_MINOR);
+                       return 0;
        }
-
        return -EINVAL;
 }
 
 
 #define DRV_VERSION "1.0-ko"
 
 /* Firmware version */
-#define FW_VERSION_MAJOR 4
-#define FW_VERSION_MINOR 6
+#define FW_VERSION_MAJOR 5
+#define FW_VERSION_MINOR 0
 #define FW_VERSION_MICRO 0
 #endif                         /* __CHELSIO_VERSION_H */