if (ret != SR_OK)
return ret;
- if (serial->serialcomm)
- return serial_set_paramstr(serial, serial->serialcomm);
- else
- return SR_OK;
+ if (serial->serialcomm) {
+ ret = serial_set_paramstr(serial, serial->serialcomm);
+ if (ret != SR_OK)
+ return ret;
+ }
+
+ /*
+ * 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;
}
/**