return NULL;
}
- sr_dbg("Number of FTDI devices found: %d", ret);
-
curdev = devlist;
while (curdev) {
scan_device(ftdic, curdev->dev, &devices);
static int dev_clear(const struct sr_dev_driver *di)
{
- return std_dev_clear(di, clear_helper);
+ return std_dev_clear_with_callback(di, clear_helper);
}
static int dev_open(struct sr_dev_inst *sdi)
ret, ftdi_get_error_string(devc->ftdic));
goto err_dev_open_close_ftdic;
}
- sr_dbg("FTDI chip buffers purged successfully.");
/* Reset the FTDI bitmode. */
ret = ftdi_set_bitmode(devc->ftdic, 0x00, BITMODE_RESET);
ret, ftdi_get_error_string(devc->ftdic));
goto err_dev_open_close_ftdic;
}
- sr_dbg("FTDI chip bitmode reset successfully.");
ret = ftdi_set_bitmode(devc->ftdic, 0x00, BITMODE_BITBANG);
if (ret < 0) {
ret, ftdi_get_error_string(devc->ftdic));
goto err_dev_open_close_ftdic;
}
- sr_dbg("FTDI chip bitbang mode entered successfully.");
-
- sdi->status = SR_ST_ACTIVE;
return SR_OK;
+
err_dev_open_close_ftdic:
ftdi_usb_close(devc->ftdic);
+
err_ftdi_free:
ftdi_free(devc->ftdic);
+
return SR_ERR;
}
devc = sdi->priv;
- if (devc->ftdic) {
- ftdi_usb_close(devc->ftdic);
- ftdi_free(devc->ftdic);
- devc->ftdic = NULL;
- }
+ if (!devc->ftdic)
+ return SR_ERR_BUG;
- sdi->status = SR_ST_INACTIVE;
+ ftdi_usb_close(devc->ftdic);
+ ftdi_free(devc->ftdic);
+ devc->ftdic = NULL;
return SR_OK;
}
(void)cg;
- if (sdi->status != SR_ST_ACTIVE)
- return SR_ERR_DEV_CLOSED;
-
devc = sdi->priv;
ret = SR_OK;