]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
tty: serial: qcom_geni_serial: Use iowrite32_rep to write to FIFO
authorKarthikeyan Ramasubramanian <kramasub@codeaurora.org>
Thu, 3 May 2018 20:14:38 +0000 (14:14 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 May 2018 11:44:55 +0000 (13:44 +0200)
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>
drivers/tty/serial/qcom_geni_serial.c

index 3e9de6c780d30d7ea0f178f05d2b85ebd2cd62b7..b0758606b6762e9eadec2f1f05805f16f3bfc381 100644 (file)
@@ -600,14 +600,15 @@ static void qcom_geni_serial_handle_tx(struct uart_port *uport)
        remaining = chunk;
        for (i = 0; i < chunk; ) {
                unsigned int tx_bytes;
-               unsigned int buf = 0;
+               u8 buf[sizeof(u32)];
                int c;
 
+               memset(buf, 0, ARRAY_SIZE(buf));
                tx_bytes = min_t(size_t, remaining, port->tx_bytes_pw);
                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;
                tail = (tail + tx_bytes) & (UART_XMIT_SIZE - 1);