We want to be able to pass characters that have parity errors received on the UART to our application using the PARMRK termios flag. We were able to do this on kernel 3.0.35 after modifying the interrupt routine to pass the characters up if an error is detected, they were being masked before. However we have moved to 3.14.28 and this now doesn't work, even after putting in our interrupt routine patch. Any characters with a parity error are not passed up to our application and changing termios flags makes no difference.
I have found that 3.14.28 uses DMA, which doesn't use the UART serial interrupt routine. 3.0.35 didn't use DMA. If I disable DMA to force the driver to use the serial interrupt routine everything works as expected again.
We want to keep DMA enabled so is there anyway to have the PARMRK termios flag work correctly when the UART's are using DMA?