return NULL;
}
- sr_dbg("Number of FTDI devices found: %d", ret);
-
curdev = devlist;
while (curdev) {
scan_device(ftdic, curdev->dev, &devices);
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;
}