PERFORCE change 160052 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Tue Mar 31 06:53:26 PDT 2009
http://perforce.freebsd.org/chv.cgi?CH=160052
Change 160052 by hselasky at hselasky_laptop001 on 2009/03/31 13:52:52
USB serial:
- wait until line configuration is complete
before starting data transfers.
Reported by Bernd Walter & more.
Affected files ...
.. //depot/projects/usb/src/sys/dev/usb/serial/usb_serial.c#2 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/usb_serial.h#2 edit
Differences ...
==== //depot/projects/usb/src/sys/dev/usb/serial/usb_serial.c#2 (text+ko) ====
@@ -412,6 +412,12 @@
if (fn == usb2_com_cfg_close)
usb2_proc_mwait(&ssc->sc_tq, t0, t1);
+ /*
+ * In case of multiple configure requests,
+ * keep track of the last one!
+ */
+ if (fn == usb2_com_cfg_start_transfers)
+ sc->sc_last_start_xfer = &task->hdr;
}
static void
@@ -458,7 +464,9 @@
/* TTY device closed */
return;
}
- sc->sc_flag |= UCOM_FLAG_GP_DATA;
+
+ if (_task == sc->sc_last_start_xfer)
+ sc->sc_flag |= UCOM_FLAG_GP_DATA;
if (sc->sc_callback->usb2_com_start_read) {
(sc->sc_callback->usb2_com_start_read) (sc);
==== //depot/projects/usb/src/sys/dev/usb/serial/usb_serial.h#2 (text+ko) ====
@@ -152,6 +152,8 @@
struct usb2_com_cfg_task sc_status_task[2];
struct usb2_com_param_task sc_param_task[2];
struct cv sc_cv;
+ /* Used to set "UCOM_FLAG_GP_DATA" flag: */
+ struct usb2_proc_msg *sc_last_start_xfer;
const struct usb2_com_callback *sc_callback;
struct usb2_com_super_softc *sc_super;
struct tty *sc_tty;
More information about the p4-projects
mailing list