Hi! I could not find an explicit statement in any specification, when the polling should start. Currently the linux host cdc-acm driver starts polling as soon as application starts (well, opens the tty device, from acm_tty_open()) and stops as soon as application stops. As the result if there is any line change in between, the host "looses" notifications about that. The PSTN spec states (page 32), that: SerialState is used like a real interrupt status register. Once a notification has been sent, the device will reset and re-evaluate the different signals. For the consistent signals like carrier detect or transmission carrier, this will mean another notification will not be generated until there is a state change. For the irregular signals like break, the incoming ring signal, or the overrun error state, this will reset their values to zero and again will not send another notification until their state changes. And I have another problem: when cdc-acm (host side) shuts down the port and calls "acm_set_control(acm, acm->ctrlout = 0)", f_acm (gadget side) gets "DTR off" and hangups it's tty, what causes the gadget application to close the port, what in order causes f_acm to send a notification to cdc-acm (host) that DCD is off. But host executes usb_kill_urb(acm->ctrlurb) by the moment. So that notification reaches host only as soon as tty device is opened again (and there is one more race there as well). I think, that the host is wrong here: the line status doesn't depend of the application running and should be checked by host. Moreover for me looks reasonable, that host is polling interrupt endpoint as soon as it claims the interface in this case (well, I see in usb spec only something like: The client software and device can depend only on the fact that the host will ensure that the time duration between two transaction attempts with the endpoint will be no longer than the desired period.) Note, that windows host behaves exactly that way. What do you think and what I missed? -- WBR, Yauheni Kaliuta -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html