mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-26 23:30:55 +07:00
tty: serial: qcom_geni_serial: Use iowrite32_rep to write to FIFO
Use iowrite32_rep to write to the hardware FIFO so that the code does not have to worry about the system endianness. Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org> Reviewed-by: Matthias Kaehlcke <mka@chromium.org> Reviewed-by: Stephen Boyd <swboyd@chromium.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
7fb5b88001
commit
69736b57df
@ -600,14 +600,15 @@ static void qcom_geni_serial_handle_tx(struct uart_port *uport)
|
|||||||
remaining = chunk;
|
remaining = chunk;
|
||||||
for (i = 0; i < chunk; ) {
|
for (i = 0; i < chunk; ) {
|
||||||
unsigned int tx_bytes;
|
unsigned int tx_bytes;
|
||||||
unsigned int buf = 0;
|
u8 buf[sizeof(u32)];
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
|
memset(buf, 0, ARRAY_SIZE(buf));
|
||||||
tx_bytes = min_t(size_t, remaining, port->tx_bytes_pw);
|
tx_bytes = min_t(size_t, remaining, port->tx_bytes_pw);
|
||||||
for (c = 0; c < tx_bytes ; c++)
|
for (c = 0; c < tx_bytes ; c++)
|
||||||
buf |= (xmit->buf[tail + c] << (c * BITS_PER_BYTE));
|
buf[c] = xmit->buf[tail + c];
|
||||||
|
|
||||||
writel_relaxed(buf, uport->membase + SE_GENI_TX_FIFOn);
|
iowrite32_rep(uport->membase + SE_GENI_TX_FIFOn, buf, 1);
|
||||||
|
|
||||||
i += tx_bytes;
|
i += tx_bytes;
|
||||||
tail = (tail + tx_bytes) & (UART_XMIT_SIZE - 1);
|
tail = (tail + tx_bytes) & (UART_XMIT_SIZE - 1);
|
||||||
|
Loading…
Reference in New Issue
Block a user