- fw_ver_str = g_strdup_printf("%u.%u", dev_info.fw_ver_major,
- dev_info.fw_ver_minor);
- if (!fw_ver_str) {
- sr_err("Firmware string malloc failed.");
- sr_usb_dev_inst_free(usb);
- libusb_free_transfer(devc->xfer_in);
- libusb_free_transfer(devc->xfer_out);
- g_free(devc);
- continue;
- }
-
- sdi = sr_dev_inst_new(device_index, SR_ST_INACTIVE, VENDOR_NAME,
- MODEL_NAME, fw_ver_str);
- g_free(fw_ver_str);
- if (!sdi) {
- sr_err("sr_dev_inst_new failed.");
- sr_usb_dev_inst_free(usb);
- libusb_free_transfer(devc->xfer_in);
- libusb_free_transfer(devc->xfer_out);
- g_free(devc);
- continue;
- }
-
+ sdi = sr_dev_inst_new();
+ sdi->status = SR_ST_INACTIVE;
+ sdi->vendor = g_strdup(VENDOR_NAME);
+ sdi->model = g_strdup(MODEL_NAME);
+ sdi->version = g_strdup_printf("%u.%u", dev_info.fw_ver_major, dev_info.fw_ver_minor);
+ sdi->serial_num = g_strdup_printf("%d", dev_info.serial);