can: flexcan: flexcan_mailbox_read() make use of flexcan_write64() to mark the mailbo...
authorMarc Kleine-Budde <mkl@pengutronix.de>
Fri, 1 Mar 2019 15:27:59 +0000 (16:27 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Mon, 11 Nov 2019 20:58:12 +0000 (21:58 +0100)
In the previous patch the function flexcan_write64() was introduced.

This patch replaces the open coded variant in flexcan_mailbox_read()
that marks a mailbox as read, by a single call to flexcan_write64().

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/flexcan.c

index 79696430dedfc1a52c92ee6910ff4ee9a01a2541..a929cdda9ab23af08838c08e27247cb408aa6102 100644 (file)
@@ -883,15 +883,10 @@ static struct sk_buff *flexcan_mailbox_read(struct can_rx_offload *offload,
        }
 
  mark_as_read:
-       if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
-               /* Clear IRQ */
-               if (n < 32)
-                       priv->write(BIT(n), &regs->iflag1);
-               else
-                       priv->write(BIT(n - 32), &regs->iflag2);
-       } else {
+       if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)
+               flexcan_write64(priv, FLEXCAN_IFLAG_MB(n), &regs->iflag1);
+       else
                priv->write(FLEXCAN_IFLAG_RX_FIFO_AVAILABLE, &regs->iflag1);
-       }
 
        /* Read the Free Running Timer. It is optional but recommended
         * to unlock Mailbox as soon as possible and make it available