Skip to content

[TTY/SERIAL] Fix MDB management for serial port

Michele Cirinei requested to merge feature/mdb_fix into seco_5.10.110

This patch fixes the MDB management by adding:

  • 9th bit management via sticky parity instead of even/odd configuration
    • Note that sticky bit is not declared in the processor manual but it is actually working as expected
  • a different IOCTL for 9th bit configuration, together with the original one

Note that 9th bit and byte are managed by different requests to the driver, that have different timings: if the requests are not properly ordered from userspace, it can happen that they are not in the expected order, so that sometimes we use byte N and 9th bit of byte (N+1), and the communication fails.

In order to avoid this, the only solution is that at userspace the timings ar correctly managed, and a new 9th bit is not requested before the previous byte as been sent (sent, not accepted by the driver, which is instead what usually happens with not blocking writes in serial drivers).

Merge request reports