X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fftdi-la%2Fapi.c;h=a1b3e967239b70107401cdccca42f23586a17099;hb=8a63a4064eb5a759dd438e5d1fe9e9d21d7a3e69;hp=afc6be45c0cba28b81b695f2fa446edbea56fb70;hpb=1c47e0da8f2571bc34dbdc368c3c1f55318c3aa0;p=libsigrok.git diff --git a/src/hardware/ftdi-la/api.c b/src/hardware/ftdi-la/api.c index afc6be45..a1b3e967 100644 --- a/src/hardware/ftdi-la/api.c +++ b/src/hardware/ftdi-la/api.c @@ -32,7 +32,7 @@ static const uint32_t scanopts[] = { static const uint32_t devopts[] = { SR_CONF_LOGIC_ANALYZER, - SR_CONF_CONTINUOUS | SR_CONF_SET, + SR_CONF_CONTINUOUS, SR_CONF_LIMIT_SAMPLES | SR_CONF_SET, SR_CONF_SAMPLERATE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, SR_CONF_CONN | SR_CONF_GET, @@ -172,6 +172,7 @@ err_free_strings: g_free(vendor); g_free(model); g_free(serial_num); + ftdi_free(devc->ftdic); err_free_data_buf: g_free(devc->data_buf); g_free(devc); @@ -211,6 +212,9 @@ static GSList *scan_all(struct sr_dev_driver *di, GSList *options) curdev = curdev->next; } + ftdi_list_free(&devlist); + ftdi_free(ftdic); + return devices; err_free_ftdic: @@ -259,11 +263,6 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) return scan_all(di, options); } -static GSList *dev_list(const struct sr_dev_driver *di) -{ - return ((struct drv_context *)(di->context))->instances; -} - static void clear_helper(void *priv) { struct dev_context *devc; @@ -344,15 +343,6 @@ static int dev_close(struct sr_dev_inst *sdi) return SR_OK; } -static int cleanup(const struct sr_dev_driver *di) -{ - dev_clear(di); - - /* TODO: Free other driver resources, if any. */ - - return SR_OK; -} - static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) { @@ -457,12 +447,10 @@ static int config_list(uint32_t key, GVariant **data, return ret; } -static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) +static int dev_acquisition_start(const struct sr_dev_inst *sdi) { struct dev_context *devc; - (void)cb_data; - devc = sdi->priv; if (sdi->status != SR_ST_ACTIVE) @@ -473,8 +461,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) ftdi_set_bitmode(devc->ftdic, 0, BITMODE_BITBANG); - devc->cb_data = cb_data; - /* Properly reset internal variables before every new acquisition. */ devc->samples_sent = 0; devc->bytes_received = 0; @@ -488,10 +474,8 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) return SR_OK; } -static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data) +static int dev_acquisition_stop(struct sr_dev_inst *sdi) { - (void)cb_data; - if (sdi->status != SR_ST_ACTIVE) return SR_ERR_DEV_CLOSED; @@ -508,9 +492,9 @@ SR_PRIV struct sr_dev_driver ftdi_la_driver_info = { .longname = "FTDI LA", .api_version = 1, .init = init, - .cleanup = cleanup, + .cleanup = std_cleanup, .scan = scan, - .dev_list = dev_list, + .dev_list = std_dev_list, .dev_clear = dev_clear, .config_get = config_get, .config_set = config_set,