Re: [PATCH v1 2/2] serial: ns16550: provide big-endian support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <o.rempel@xxxxxxxxxxxxxx>
>> ---
>>  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

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox

[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux