On Wed, 2017-03-29 at 20:44 +0200, Olliver Schinagl wrote: > It seems that at some point, someone made the assumption that the UART > Interrupt ID Register was a bitfield and started to check if certain > bits where set. > > Actually however the register contains interrupt ID's where only the > MSB > seems to be used singular and the rest share at least one bit. Thus > doing bitfield operations is wrong. > > This patch cleans up the serial_reg include file by ordering it and > replacing the UART_IIR_ID 'mask' with a proper mask for the register. > The OMAP uart appears to have used the two commonly 'reserved' bits 4 > and 5 and thus get an UART_IIR_EXT_MASK for these two bits. > > This patch then goes over all UART_IIR_* users and changes the code > from > bitfield checking, to ID checking instead. Looking to implementation I would rather go with some helper like int serial_in_IIR(port, [additional mask]) { return port->serial_in(port, UART_IIR) & (_IIR_MASK [| additional mask]); } -- Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Intel Finland Oy -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html