X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=src%2Fhardware%2Fmaynuo-m97%2Fapi.c;h=23b0e68bc14b63788c1cb581e261849717a373a0;hp=451edeb29f923f4a6e6949d882045d8d61fade73;hb=f1ba6b4b2c9a8ecf90bb31efb218752aa7e49d1a;hpb=7e463623382e1f574fde150b3fc88a65eaebb578 diff --git a/src/hardware/maynuo-m97/api.c b/src/hardware/maynuo-m97/api.c index 451edeb2..23b0e68b 100644 --- a/src/hardware/maynuo-m97/api.c +++ b/src/hardware/maynuo-m97/api.c @@ -215,23 +215,21 @@ static int dev_close(struct sr_dev_inst *sdi) modbus = sdi->conn; - if (modbus) { - devc = sdi->priv; - if (devc->expecting_registers) { - /* Wait for the last data that was requested from the device. */ - uint16_t registers[devc->expecting_registers]; - sr_modbus_read_holding_registers(modbus, -1, - devc->expecting_registers, registers); - } + if (!modbus) + return SR_ERR_BUG; - maynuo_m97_set_bit(modbus, PC1, 0); + devc = sdi->priv; - if (sr_modbus_close(modbus) < 0) - return SR_ERR; - sdi->status = SR_ST_INACTIVE; + if (devc->expecting_registers) { + /* Wait for the last data that was requested from the device. */ + uint16_t registers[devc->expecting_registers]; + sr_modbus_read_holding_registers(modbus, -1, + devc->expecting_registers, registers); } - return SR_OK; + maynuo_m97_set_bit(modbus, PC1, 0); + + return sr_modbus_close(modbus); } static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi,