Skip to content

Commit 729b1c6

Browse files
geertumarckleinebudde
authored andcommitted
can: rcar_can: Mailbox bitfield conversion
Convert CAN Mailbox Register field accesses to use the FIELD_PREP() and FIELD_GET() bitfield access macro. This gets rid of explicit shifts, and keeps a clear separation between hardware register layouts and offical CAN definitions. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://patch.msgid.link/c75c7d6ed5929c4becf7c9178cec04a0731e8ab1.1755857536.git.geert+renesas@glider.be Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 parent 8d93022 commit 729b1c6

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

drivers/net/can/rcar/rcar_can.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,8 @@ static const struct can_bittiming_const rcar_can_bittiming_const = {
160160
/* Mailbox and Mask Registers bits */
161161
#define RCAR_CAN_IDE BIT(31) /* ID Extension */
162162
#define RCAR_CAN_RTR BIT(30) /* Remote Transmission Request */
163-
#define RCAR_CAN_SID_SHIFT 18
163+
#define RCAR_CAN_SID GENMASK(28, 18) /* Standard ID */
164+
#define RCAR_CAN_EID GENMASK(28, 0) /* Extended ID */
164165

165166
/* Mailbox Interrupt Enable Register 1 bits */
166167
#define RCAR_CAN_MIER1_RXFIE BIT(28) /* Receive FIFO Interrupt Enable */
@@ -599,9 +600,10 @@ static netdev_tx_t rcar_can_start_xmit(struct sk_buff *skb,
599600
return NETDEV_TX_OK;
600601

601602
if (cf->can_id & CAN_EFF_FLAG) /* Extended frame format */
602-
data = (cf->can_id & CAN_EFF_MASK) | RCAR_CAN_IDE;
603+
data = FIELD_PREP(RCAR_CAN_EID, cf->can_id & CAN_EFF_MASK) |
604+
RCAR_CAN_IDE;
603605
else /* Standard frame format */
604-
data = (cf->can_id & CAN_SFF_MASK) << RCAR_CAN_SID_SHIFT;
606+
data = FIELD_PREP(RCAR_CAN_SID, cf->can_id & CAN_SFF_MASK);
605607

606608
if (cf->can_id & CAN_RTR_FLAG) { /* Remote transmission request */
607609
data |= RCAR_CAN_RTR;
@@ -656,9 +658,9 @@ static void rcar_can_rx_pkt(struct rcar_can_priv *priv)
656658

657659
data = readl(&priv->regs->mb[RCAR_CAN_RX_FIFO_MBX].id);
658660
if (data & RCAR_CAN_IDE)
659-
cf->can_id = (data & CAN_EFF_MASK) | CAN_EFF_FLAG;
661+
cf->can_id = FIELD_GET(RCAR_CAN_EID, data) | CAN_EFF_FLAG;
660662
else
661-
cf->can_id = (data >> RCAR_CAN_SID_SHIFT) & CAN_SFF_MASK;
663+
cf->can_id = FIELD_GET(RCAR_CAN_SID, data);
662664

663665
dlc = readb(&priv->regs->mb[RCAR_CAN_RX_FIFO_MBX].dlc);
664666
cf->len = can_cc_dlc2len(dlc);

0 commit comments

Comments
 (0)