X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fftdi-la%2Fapi.c;h=5a7ac51e52801b9184126cca558534dca2322f52;hb=f1ba6b4b2c9a8ecf90bb31efb218752aa7e49d1a;hp=9aac98aebb87b3cbd0d87d8943d54330f7e32ec4;hpb=c3cd66a00cdb4afbd43108563d979eebfbafaf69;p=libsigrok.git diff --git a/src/hardware/ftdi-la/api.c b/src/hardware/ftdi-la/api.c index 9aac98ae..5a7ac51e 100644 --- a/src/hardware/ftdi-la/api.c +++ b/src/hardware/ftdi-la/api.c @@ -302,13 +302,14 @@ static int dev_open(struct sr_dev_inst *sdi) } 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; } @@ -318,13 +319,12 @@ static int dev_close(struct sr_dev_inst *sdi) 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; }