net/can/mscan: replace hardcoded values with defines
authorWolfram Sang <w.sang@pengutronix.de>
Mon, 16 Nov 2009 12:57:52 +0000 (12:57 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 Nov 2009 11:54:04 +0000 (03:54 -0800)
Not all hardcoded values have been replaced as this made the code quite
unreadable. IMHO this compromise serves the purpose of readability.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/can/mscan/mscan.c
drivers/net/can/mscan/mscan.h

index 20d1991b90948853e811338a41424435667dd6ec..263d1a9f0880ed8496c8cbde511367172ec29a83 100644 (file)
@@ -211,18 +211,23 @@ static netdev_tx_t mscan_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
        rtr = frame->can_id & CAN_RTR_FLAG;
 
+       /* RTR is always the lowest bit of interest, then IDs follow */
        if (frame->can_id & CAN_EFF_FLAG) {
-               can_id = (frame->can_id & CAN_EFF_MASK) << 1;
+               can_id = (frame->can_id & CAN_EFF_MASK)
+                        << (MSCAN_EFF_RTR_SHIFT + 1);
                if (rtr)
-                       can_id |= 1;
+                       can_id |= 1 << MSCAN_EFF_RTR_SHIFT;
                out_be16(&regs->tx.idr3_2, can_id);
 
                can_id >>= 16;
-               can_id = (can_id & 0x7) | ((can_id << 2) & 0xffe0) | (3 << 3);
+               /* EFF_FLAGS are inbetween the IDs :( */
+               can_id = (can_id & 0x7) | ((can_id << 2) & 0xffe0)
+                        | MSCAN_EFF_FLAGS;
        } else {
-               can_id = (frame->can_id & CAN_SFF_MASK) << 5;
+               can_id = (frame->can_id & CAN_SFF_MASK)
+                        << (MSCAN_SFF_RTR_SHIFT + 1);
                if (rtr)
-                       can_id |= 1 << 4;
+                       can_id |= 1 << MSCAN_SFF_RTR_SHIFT;
        }
        out_be16(&regs->tx.idr1_0, can_id);
 
index 20180007fe3da1e74272a210af8619dad781e342..00fc4aaf1ed8ca04533203813322914f8832202f 100644 (file)
 /* MSCAN Miscellaneous Register (CANMISC) bits */
 #define MSCAN_BOHOLD           0x01
 
+/* MSCAN Identifier Register (IDR) bits */
+#define MSCAN_SFF_RTR_SHIFT    4
+#define MSCAN_EFF_RTR_SHIFT    0
+#define MSCAN_EFF_FLAGS                0x18    /* IDE + SRR */
+
 #ifdef MSCAN_FOR_MPC5200
 #define _MSCAN_RESERVED_(n, num) u8 _res##n[num]
 #define _MSCAN_RESERVED_DSR_SIZE       2