serial port data THRE comes too early
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Expired
|
Undecided
|
Unassigned |
Bug Description
When using a serial port with a Linux guest (and host) and the application uses hardware handshake, this fails because the handling of TEMT and/or THRE is not operating properly in such cases.
As long as it takes _time_ for the 'real' port to output the data TEMT may not return true. After writing characters to a real port, the driver should timeout the transmission and after the total time expired, TEMT can be set.
Some applications i.e. with a simplex modem do: RTS_on, WRITE_data, repeat IOCTL(GET_
At the moment this fails because very early in the transmission, GET_LSR_INFO returns true and the modem transmitter is switched off.
I looked in the source (git) and found that 'char_transmit_
I build and ran the latest git version and found it to fail as decribed above. I hope someone can solve it.
Could you please give more details, like the steps to reproduce this problems.
Thanks.