Improve LSR flag preservation. Not all devices preserve all LSR flags on read. Therefore, the non-permanent flags must be stored until consumed. 8250_port has handled this for some of the reads (but not all). Drivers not so much but it's unclear to me which of the devices actually clear flags on read so this series only does per driver fixes for DW. I've just put Uwe as Co-dev-by and SoB according to Andy's suggestion in order to allow forward progress (Uwe indicated he's OK with any sensible combination of tags anyway). I agree with Uwe's position though that it would be nice to be able to record Acked-by in some (probably quite rare) cases even if the person is already SoB but I don't want to keep dragging this issue on and on over a single line patch :-). v2: - Added more patches v3: - Fix Uwe's email and convert it to Co-developed-by v4: - Tweak comments - Fix URL link to earlier discussion & improve changelog Ilpo Järvinen (6): serial: 8250: Store to lsr_save_flags after lsr read serial: 8250: Create serial_lsr_in() serial: 8250: Get preserved flags using serial_lsr_in() serial: 8250: Adjust misleading LSR related comment serial: 8250_dw: Use serial_lsr_in() in dw8250_handle_irq() serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty() drivers/tty/serial/8250/8250.h | 20 ++++++++++++++++++++ drivers/tty/serial/8250/8250_core.c | 3 +-- drivers/tty/serial/8250/8250_dw.c | 7 +++++-- drivers/tty/serial/8250/8250_port.c | 23 ++++++++++------------- 4 files changed, 36 insertions(+), 17 deletions(-) -- 2.30.2