]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/motech-lps-30x/api.c
Simplify single device list handling
[libsigrok.git] / src / hardware / motech-lps-30x / api.c
index 1c5e3876382464d03cf4ed2c774cca009c338ecd..abc53ce3b87702f3648fe5a0c42ae5160574346a 100644 (file)
@@ -366,12 +366,10 @@ SR_PRIV int lps_read_reply(struct sr_serial_dev_inst *serial, char **buf, int *b
 static GSList *do_scan(lps_modelid modelid, struct sr_dev_driver *drv, GSList *options)
 {
        struct sr_dev_inst *sdi;
-       struct drv_context *drvc;
        struct dev_context *devc;
        struct sr_serial_dev_inst *serial;
        struct sr_channel *ch;
        struct sr_channel_group *cg;
-       GSList *devices;
        const char *conn, *serialcomm;
        int cnt, ret;
        gchar buf[LINELEN_MAX];
@@ -381,10 +379,6 @@ static GSList *do_scan(lps_modelid modelid, struct sr_dev_driver *drv, GSList *o
        sdi = NULL;
        devc = NULL;
        conn = serialcomm = NULL;
-       devices = NULL;
-
-       drvc = drv->context;
-       drvc->instances = NULL;
 
        sr_spew("scan() called!");
 
@@ -447,7 +441,6 @@ static GSList *do_scan(lps_modelid modelid, struct sr_dev_driver *drv, GSList *o
        sdi->vendor = g_strdup(VENDOR_MOTECH);
        sdi->model = g_strdup(models[modelid].modelstr);
        sdi->version = g_strdup(verstr);
-       sdi->driver = drv;
        sdi->inst_type = SR_INST_SERIAL;
        sdi->conn = serial;
 
@@ -473,18 +466,13 @@ static GSList *do_scan(lps_modelid modelid, struct sr_dev_driver *drv, GSList *o
                sdi->channel_groups = g_slist_append(sdi->channel_groups, cg);
        }
 
-       drvc->instances = g_slist_append(drvc->instances, sdi);
-       devices = g_slist_append(devices, sdi);
-
        /* Query status */
        if (lps_query_status(sdi) != SR_OK)
                goto exit_err;
 
        serial_close(serial);
-       if (!devices)
-               sr_serial_dev_inst_free(serial);
 
-       return devices;
+       return std_scan_complete(drv, g_slist_append(NULL, sdi));
 
 exit_err:
        sr_info("%s: Error!", __func__);