Based on the comments from the previous patch I've made some changes to how LSR errors are stored:
- instead of saving the entire LSR register, only saving the error bits that are clear by the UART. In this way the current implementation remains the same and only update the code in places where the value from bit errors is needed, eg. ns8250_bus_receive.
- created two functions, one to clear and one to update the save LSR error bits.
- clear the saved error bits after they are used or after a read on REG_DATA took place.