+ ret = command_get_fw_version(devc->usb->devhdl, &vi);
+ if (ret != SR_OK) {
+ sr_err("Failed to get firmware version.");
+ break;
+ }
+
+ ret = command_get_revid_version(devc->usb->devhdl, &revid);
+ if (ret != SR_OK) {
+ sr_err("Failed to get 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("Expected firmware version %d.x, "
+ "got %d.%d.", FX2LAFW_REQUIRED_VERSION_MAJOR,
+ vi.major, vi.minor);
+ break;
+ }
+
+ sdi->status = SR_ST_ACTIVE;
+ sr_info("Opened device %d on %d.%d, "
+ "interface %d, firmware %d.%d.",
+ sdi->index, devc->usb->bus, devc->usb->address,
+ USB_INTERFACE, vi.major, vi.minor);
+
+ sr_info("Detected REVID=%d, it's a Cypress CY7C68013%s.",
+ revid, (revid != 1) ? " (FX2)" : "A (FX2LP)");
+