X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fasix-sigma%2Fasix-sigma.c;h=e33b5b7959242376ed2c7573867303cd488d4e29;hb=896a19fd65790093b60ece2d1bdd36caba74eaf8;hp=3d7a8ac0fb1b1b1ccf122420bcfbfe5a82db2f12;hpb=e519ba8645b56f6c9eaaf69d6357a1efa8df501e;p=libsigrok.git diff --git a/hardware/asix-sigma/asix-sigma.c b/hardware/asix-sigma/asix-sigma.c index 3d7a8ac0..e33b5b79 100644 --- a/hardware/asix-sigma/asix-sigma.c +++ b/hardware/asix-sigma/asix-sigma.c @@ -20,7 +20,7 @@ */ /* - * ASIX Sigma Logic Analyzer Driver + * ASIX SIGMA Logic Analyzer Driver */ #include "config.h" @@ -332,13 +332,13 @@ static int bin2bitbang(const char *filename, fseek(f, 0, SEEK_SET); if (!(compressed_buf = g_try_malloc(file_size))) { - sr_err("asix: %s: compressed_buf malloc failed", __func__); + sr_err("sigma: %s: compressed_buf malloc failed", __func__); fclose(f); return SR_ERR_MALLOC; } if (!(firmware = g_try_malloc(buffer_size))) { - sr_err("asix: %s: firmware malloc failed", __func__); + sr_err("sigma: %s: firmware malloc failed", __func__); fclose(f); g_free(compressed_buf); return SR_ERR_MALLOC; @@ -366,7 +366,7 @@ static int bin2bitbang(const char *filename, *buf = p = (unsigned char *)g_try_malloc(*buf_size); if (!p) { - sr_err("asix: %s: buf/p malloc failed", __func__); + sr_err("sigma: %s: buf/p malloc failed", __func__); g_free(compressed_buf); g_free(firmware); return SR_ERR_MALLOC; @@ -403,7 +403,7 @@ static int hw_init(const char *deviceinfo) deviceinfo = deviceinfo; if (!(sigma = g_try_malloc(sizeof(struct sigma)))) { - sr_err("asix: %s: sigma malloc failed", __func__); + sr_err("sigma: %s: sigma malloc failed", __func__); return 0; /* FIXME: Should be SR_ERR_MALLOC. */ } @@ -621,7 +621,7 @@ static int configure_probes(struct sr_device_instance *sdi, GSList *probes) if (sigma->cur_samplerate >= SR_MHZ(100)) { /* Fast trigger support. */ if (trigger_set) { - sr_warn("Asix Sigma only supports a single " + sr_warn("ASIX SIGMA only supports a single " "pin trigger in 100 and 200MHz mode."); return SR_ERR; } @@ -630,7 +630,7 @@ static int configure_probes(struct sr_device_instance *sdi, GSList *probes) else if (probe->trigger[0] == 'r') sigma->trigger.risingmask |= probebit; else { - sr_warn("Asix Sigma only supports " + sr_warn("ASIX SIGMA only supports " "rising/falling trigger in 100 " "and 200MHz mode."); return SR_ERR; @@ -662,7 +662,7 @@ static int configure_probes(struct sr_device_instance *sdi, GSList *probes) * does not permit ORed triggers. */ if (trigger_set > 1) { - sr_warn("Asix Sigma only supports 1 rising/" + sr_warn("ASIX SIGMA only supports 1 rising/" "falling triggers."); return SR_ERR; } @@ -675,19 +675,28 @@ static int configure_probes(struct sr_device_instance *sdi, GSList *probes) return SR_OK; } -static void hw_closedev(int device_index) +static int hw_closedev(int device_index) { struct sr_device_instance *sdi; struct sigma *sigma; - if ((sdi = sr_get_device_instance(device_instances, device_index))) - { - sigma = sdi->priv; - if (sdi->status == SR_ST_ACTIVE) - ftdi_usb_close(&sigma->ftdic); + if (!(sdi = sr_get_device_instance(device_instances, device_index))) { + sr_err("sigma: %s: sdi was NULL", __func__); + return SR_ERR; /* TODO: SR_ERR_ARG? */ + } - sdi->status = SR_ST_INACTIVE; + if (!(sigma = sdi->priv)) { + sr_err("sigma: %s: sdi->priv was NULL", __func__); + return SR_ERR; /* TODO: SR_ERR_ARG? */ } + + /* TODO */ + if (sdi->status == SR_ST_ACTIVE) + ftdi_usb_close(&sigma->ftdic); + + sdi->status = SR_ST_INACTIVE; + + return SR_OK; } static void hw_cleanup(void) @@ -1367,8 +1376,8 @@ struct sr_device_plugin asix_sigma_plugin_info = { .api_version = 1, .init = hw_init, .cleanup = hw_cleanup, - .open = hw_opendev, - .close = hw_closedev, + .opendev = hw_opendev, + .closedev = hw_closedev, .get_device_info = hw_get_device_info, .get_status = hw_get_status, .get_capabilities = hw_get_capabilities,