- if (vi.major != FX2LAFW_VERSION_MAJOR ||
- vi.minor != FX2LAFW_VERSION_MINOR) {
- sr_err("fx2lafw: Expected firmware version %d.%02d "
- "got %d.%02d.", FX2LAFW_VERSION_MAJOR,
- FX2LAFW_VERSION_MINOR, vi.major, vi.minor);
+ ret = command_get_revid_version(ctx->usb->devhdl, &revid);
+ if (ret != SR_OK) {
+ sr_err("fx2lafw: Failed to retrieve REVID.");
+ break;
+ }
+
+ /*
+ * Changes in major version mean incompatible/API changes, so
+ * bail out if we encounter an incompatible version.
+ * Different minor versions are OK, they should be compatible.
+ */
+ if (vi.major != FX2LAFW_REQUIRED_VERSION_MAJOR) {
+ sr_err("fx2lafw: Expected firmware version %d.x, "
+ "got %d.%d.", FX2LAFW_REQUIRED_VERSION_MAJOR,
+ vi.major, vi.minor);