[PATCH 0/2] serial, Malta: Fixes to make the CBUS UART work big-endian

From: Maciej W. Rozycki
Date: Thu Jun 10 2021 - 14:38:15 EST


Hi,

Earlier this year I noticed the CBUS UART, a discrete TI16C550C part
wired directly to the system controller's device bus and supposed to come
up as ttyS2 in addition to ttyS0 and ttyS1 ports from a Super I/O device
behind the PCI southbridge, is not recognised with my MIPS Malta board
booting big-endian.

I used to use it just fine, many many years ago, although in the board's
little-endian configuration only, and then with a local patch to get it
supported with Linux 2.4.x, which I didn't get to submitting however due
to the turn of events back then. Support was then added by someone else
with 2.6.23.

I got to the bottom of the problem now and as it turns out we have two
long-standing bugs causing it, one in generic 8250 code and another in
Malta platform code, and this has never worked in the big-endian mode.
Evidently, this has never been verified, and I guess this is because back
in the MIPS UK days we usually ran the boards in the little-endian mode.

This pair of patches addresses these bugs individually. See the
respective change descriptions for details.

Please apply.

Maciej