Commit 7a5f86e8 authored by Jiri Slaby's avatar Jiri Slaby Committed by Greg Kroah-Hartman
Browse files

serial: icom: use proper __le types and functions



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: default avatarJiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20220421085808.24152-5-jslaby@suse.cz


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2c334f12
Loading
Loading
Loading
Loading
+14 −17
Original line number Diff line number Diff line
@@ -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 @@ static void recv_interrupt(u16 port_int_reg, struct icom_port *icom_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);

		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++) {
+15 −15
Original line number Diff line number Diff line
@@ -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;