]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/gmc-mh-1x-2x/api.c
uni-t-ut181a: silence compiler warning, use of uninitialized variable
[libsigrok.git] / src / hardware / gmc-mh-1x-2x / api.c
index bfb211d5c6ec6447a3b7dc332caa034e5ed8d2fc..5f029a9e9970e97a272b2bda5005322c96175966 100644 (file)
@@ -102,6 +102,7 @@ static enum model scan_model_sm(struct sr_serial_dev_inst *serial)
         * Try to find message consisting of device code and several
         * (at least 4) data bytes.
         */
+       serial_flush(serial);
        for (bytecnt = 0; bytecnt < 100; bytecnt++) {
                byte = read_byte(serial, timeout_us);
                if ((byte == -1) || (timeout_us < g_get_monotonic_time()))
@@ -175,8 +176,6 @@ static GSList *scan_1x_2x_rs232(struct sr_dev_driver *di, GSList *options)
                return NULL;
        }
 
-       serial_flush(serial);
-
        model = scan_model_sm(serial);
 
        /*
@@ -187,10 +186,8 @@ static GSList *scan_1x_2x_rs232(struct sr_dev_driver *di, GSList *options)
                serialcomm = SERIALCOMM_1X_RS232;
                g_free(serial->serialcomm);
                serial->serialcomm = g_strdup(serialcomm);
-               if (serial_set_paramstr(serial, serialcomm) == SR_OK) {
-                       serial_flush(serial);
+               if (serial_set_paramstr(serial, serialcomm) == SR_OK)
                        model = scan_model_sm(serial);
-               }
        }
 
        if (model != METRAHIT_NONE) {
@@ -300,11 +297,9 @@ static GSList *scan_2x_bd232(struct sr_dev_driver *di, GSList *options)
                }
        };
 
-       /* Free last alloc if no device found */
-       if (devc->model == METRAHIT_NONE) {
-               g_free(devc);
-               sr_dev_inst_free(sdi);
-       }
+       /* Free last alloc that was done in preparation. */
+       g_free(devc);
+       sr_dev_inst_free(sdi);
 
        return std_scan_complete(di, devices);