Am 31.07.2017 um 12:03 schrieb Lucas Stach: > Am Donnerstag, den 27.07.2017, 07:00 +0200 schrieb Oleksij Rempel: >> we need it at least for QCA AR9344 >> >> Signed-off-by: Oleksij Rempel >> --- >> drivers/serial/serial_ns16550.c | 19 +++++++++++++++++-- >> 1 file changed, 17 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c >> index a8953cd99d..4d73ea8b87 100644 >> --- a/drivers/serial/serial_ns16550.c >> +++ b/drivers/serial/serial_ns16550.c >> @@ -94,6 +94,16 @@ static void ns16550_write_reg_mmio_32(struct ns16550_priv *priv, uint8_t val, un >> writel(val, priv->mmiobase + offset); >> } >> >> +static uint8_t ns16550_read_reg_mmio_32be(struct ns16550_priv *priv, unsigned offset) >> +{ >> + return ioread32be(priv->mmiobase + offset); >> +} >> + >> +static void ns16550_write_reg_mmio_32be(struct ns16550_priv *priv, uint8_t val, unsigned offset) >> +{ >> + iowrite32be(val, priv->mmiobase + offset); >> +} > > This doesn't work on PPC and x86, as those 2 architectures are missing > the "be" variants of the iowrite/ioread functions. hmm.... include/asm-generic/io.h:#define ioread32be(addr) __be32_to_cpu(__raw_readl(addr)) include/linux/byteorder/little_endian.h:#define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x)) include/linux/byteorder/big_endian.h:#define __be32_to_cpu(x) ((__force __u32)(__be32)(x)) i assume it should be available on all platforms. Or do i miss something? -- Regards, Oleksij