]> sigrok.org Git - libsigrok.git/blobdiff - src/serial.c
serial: make failed flush() in open() non-fatal, CP2110 flush() return
[libsigrok.git] / src / serial.c
index fe39effc604f10119dcc822d4b0281557697115a..7f1f1eeaa2651360194231cfc5793fd4ad40141f 100644 (file)
@@ -128,7 +128,18 @@ SR_PRIV int serial_open(struct sr_serial_dev_inst *serial, int flags)
                        return ret;
        }
 
-       return serial_flush(serial);
+       /*
+        * Flush potentially dangling RX data. Availability of the
+        * flush primitive depends on the transport/cable, absense
+        * is non-fatal.
+        */
+       ret = serial_flush(serial);
+       if (ret == SR_ERR_NA)
+               ret = SR_OK;
+       if (ret != SR_OK)
+               return ret;
+
+       return SR_OK;
 }
 
 /**