serial: icom: use proper __le types and functions
authorJiri Slaby <jslaby@suse.cz>
Thu, 21 Apr 2022 08:58:02 +0000 (10:58 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 22 Apr 2022 14:19:52 +0000 (16:19 +0200)
There is a lot of sparse warnings:
  .../icom.c:228:30: warning: cast from restricted __le16
  .../icom.c:232:66: warning: incorrect type in assignment (different base types)
  .../icom.c:232:66:    expected unsigned int [usertype] leBuffer
  .../icom.c:232:66:    got restricted __le32 [usertype]
  .../icom.c:237:30: warning: cast from restricted __le16
  ...
  .../icom.c:1228:22: warning: cast from restricted __le16

And they are correct. So sort them all out by using proper __leXX and
uXX types and the right direction of conversion: le16_to_cpu() instead
of cpu_to_le16(), where appropriate.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20220421085808.24152-5-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/icom.c
drivers/tty/serial/icom.h

index fa284f9cbdb00613b9e9b18f448cfb48d524e12f..e1f9d42180ff5912002f84b59b82487ecf536e7d 100644 (file)
@@ -224,7 +224,7 @@ static int get_port_memory(struct icom_port *icom_port)
                if (index < (NUM_XBUFFS - 1)) {
                        memset(&icom_port->statStg->xmit[index], 0, sizeof(struct xmit_status_area));
                        icom_port->statStg->xmit[index].leLengthASD =
-                           (unsigned short int) cpu_to_le16(XMIT_BUFF_SZ);
+                           cpu_to_le16(XMIT_BUFF_SZ);
                        trace(icom_port, "FOD_ADDR", stgAddr);
                        trace(icom_port, "FOD_XBUFF",
                              (unsigned long) icom_port->xmit_buf);
@@ -233,7 +233,7 @@ static int get_port_memory(struct icom_port *icom_port)
                } else if (index == (NUM_XBUFFS - 1)) {
                        memset(&icom_port->statStg->xmit[index], 0, sizeof(struct xmit_status_area));
                        icom_port->statStg->xmit[index].leLengthASD =
-                           (unsigned short int) cpu_to_le16(XMIT_BUFF_SZ);
+                           cpu_to_le16(XMIT_BUFF_SZ);
                        trace(icom_port, "FOD_XBUFF",
                              (unsigned long) icom_port->xmit_buf);
                        icom_port->statStg->xmit[index].leBuffer =
@@ -251,7 +251,7 @@ static int get_port_memory(struct icom_port *icom_port)
                stgAddr = stgAddr + sizeof(icom_port->statStg->rcv[0]);
                icom_port->statStg->rcv[index].leLength = 0;
                icom_port->statStg->rcv[index].WorkingLength =
-                   (unsigned short int) cpu_to_le16(RCV_BUFF_SZ);
+                   cpu_to_le16(RCV_BUFF_SZ);
                if (index < (NUM_RBUFFS - 1) ) {
                        offset = stgAddr - (unsigned long) icom_port->statStg;
                        icom_port->statStg->rcv[index].leNext =
@@ -627,7 +627,7 @@ static int icom_write(struct uart_port *port)
 
        trace(icom_port, "WRITE", 0);
 
-       if (cpu_to_le16(icom_port->statStg->xmit[0].flags) &
+       if (le16_to_cpu(icom_port->statStg->xmit[0].flags) &
            SA_FLAGS_READY_TO_XMIT) {
                trace(icom_port, "WRITE_FULL", 0);
                return 0;
@@ -699,8 +699,7 @@ static inline void check_modem_status(struct icom_port *icom_port)
 
 static void xmit_interrupt(u16 port_int_reg, struct icom_port *icom_port)
 {
-       unsigned short int count;
-       int i;
+       u16 count, i;
 
        if (port_int_reg & (INT_XMIT_COMPLETED)) {
                trace(icom_port, "XMIT_COMPLETE", 0);
@@ -709,8 +708,7 @@ static void xmit_interrupt(u16 port_int_reg, struct icom_port *icom_port)
                icom_port->statStg->xmit[0].flags &=
                        cpu_to_le16(~SA_FLAGS_READY_TO_XMIT);
 
-               count = (unsigned short int)
-                       cpu_to_le16(icom_port->statStg->xmit[0].leLength);
+               count = le16_to_cpu(icom_port->statStg->xmit[0].leLength);
                icom_port->uart_port.icount.tx += count;
 
                for (i=0; i<count &&
@@ -732,7 +730,7 @@ static void recv_interrupt(u16 port_int_reg, struct icom_port *icom_port)
 {
        short int count, rcv_buff;
        struct tty_port *port = &icom_port->uart_port.state->port;
-       unsigned short int status;
+       u16 status;
        struct uart_icount *icount;
        unsigned long offset;
        unsigned char flag;
@@ -740,19 +738,18 @@ static void recv_interrupt(u16 port_int_reg, struct icom_port *icom_port)
        trace(icom_port, "RCV_COMPLETE", 0);
        rcv_buff = icom_port->next_rcv;
 
-       status = cpu_to_le16(icom_port->statStg->rcv[rcv_buff].flags);
+       status = le16_to_cpu(icom_port->statStg->rcv[rcv_buff].flags);
        while (status & SA_FL_RCV_DONE) {
                int first = -1;
 
                trace(icom_port, "FID_STATUS", status);
-               count = cpu_to_le16(icom_port->statStg->rcv[rcv_buff].leLength);
+               count = le16_to_cpu(icom_port->statStg->rcv[rcv_buff].leLength);
 
                trace(icom_port, "RCV_COUNT", count);
 
                trace(icom_port, "REAL_COUNT", count);
 
-               offset =
-                       cpu_to_le32(icom_port->statStg->rcv[rcv_buff].leBuffer) -
+               offset = le32_to_cpu(icom_port->statStg->rcv[rcv_buff].leBuffer) -
                        icom_port->recv_buf_pci;
 
                /* Block copy all but the last byte as this may have status */
@@ -822,13 +819,13 @@ ignore_char:
                icom_port->statStg->rcv[rcv_buff].flags = 0;
                icom_port->statStg->rcv[rcv_buff].leLength = 0;
                icom_port->statStg->rcv[rcv_buff].WorkingLength =
-                       (unsigned short int) cpu_to_le16(RCV_BUFF_SZ);
+                       cpu_to_le16(RCV_BUFF_SZ);
 
                rcv_buff++;
                if (rcv_buff == NUM_RBUFFS)
                        rcv_buff = 0;
 
-               status = cpu_to_le16(icom_port->statStg->rcv[rcv_buff].flags);
+               status = le16_to_cpu(icom_port->statStg->rcv[rcv_buff].flags);
        }
        icom_port->next_rcv = rcv_buff;
 
@@ -933,7 +930,7 @@ static unsigned int icom_tx_empty(struct uart_port *port)
        unsigned long flags;
 
        spin_lock_irqsave(&port->lock, flags);
-       if (cpu_to_le16(icom_port->statStg->xmit[0].flags) &
+       if (le16_to_cpu(icom_port->statStg->xmit[0].flags) &
            SA_FLAGS_READY_TO_XMIT)
                ret = TIOCSER_TEMT;
        else
@@ -1224,7 +1221,7 @@ static void icom_set_termios(struct uart_port *port,
                icom_port->statStg->rcv[rcv_buff].flags = 0;
                icom_port->statStg->rcv[rcv_buff].leLength = 0;
                icom_port->statStg->rcv[rcv_buff].WorkingLength =
-                   (unsigned short int) cpu_to_le16(RCV_BUFF_SZ);
+                   cpu_to_le16(RCV_BUFF_SZ);
        }
 
        for (xmit_buff = 0; xmit_buff < NUM_XBUFFS; xmit_buff++) {
index 26e3aa7b01e2c1000e80c73206438e81b45d37b6..62d5ba81dcfc5f14a124fdd01acb57ca31535323 100644 (file)
@@ -171,13 +171,13 @@ struct statusArea {
        /* Transmit Status Area                       */
     /**********************************************/
        struct xmit_status_area{
-               u32 leNext;     /* Next entry in Little Endian on Adapter */
-               u32 leNextASD;
-               u32 leBuffer;   /* Buffer for entry in LE for Adapter */
-               u16 leLengthASD;
-               u16 leOffsetASD;
-               u16 leLength;   /* Length of data in segment */
-               u16 flags;
+               __le32 leNext;  /* Next entry in Little Endian on Adapter */
+               __le32 leNextASD;
+               __le32 leBuffer;        /* Buffer for entry in LE for Adapter */
+               __le16 leLengthASD;
+               __le16 leOffsetASD;
+               __le16 leLength;        /* Length of data in segment */
+               __le16 flags;
 #define SA_FLAGS_DONE           0x0080 /* Done with Segment */
 #define SA_FLAGS_CONTINUED      0x8000 /* More Segments */
 #define SA_FLAGS_IDLE           0x4000 /* Mark IDLE after frm */
@@ -189,13 +189,13 @@ struct statusArea {
        /* Receive Status Area                        */
     /**********************************************/
        struct {
-               u32 leNext;     /* Next entry in Little Endian on Adapter */
-               u32 leNextASD;
-               u32 leBuffer;   /* Buffer for entry in LE for Adapter */
-               u16 WorkingLength;      /* size of segment */
-               u16 reserv01;
-               u16 leLength;   /* Length of data in segment */
-               u16 flags;
+               __le32 leNext;  /* Next entry in Little Endian on Adapter */
+               __le32 leNextASD;
+               __le32 leBuffer;        /* Buffer for entry in LE for Adapter */
+               __le16 WorkingLength;   /* size of segment */
+               __le16 reserv01;
+               __le16 leLength;        /* Length of data in segment */
+               __le16 flags;
 #define SA_FL_RCV_DONE           0x0010        /* Data ready */
 #define SA_FLAGS_OVERRUN         0x0040
 #define SA_FLAGS_PARITY_ERROR    0x0080
@@ -227,7 +227,7 @@ struct icom_port {
        int port;
        struct statusArea *statStg;
        dma_addr_t statStg_pci;
-       u32 *xmitRestart;
+       __le32 *xmitRestart;
        dma_addr_t xmitRestart_pci;
        unsigned char *xmit_buf;
        dma_addr_t xmit_buf_pci;