/* fill id */
        if (id & CAN_EFF_FLAG) {
                bfin_write16(®->chl[TRANSMIT_CHL].id0, id);
-               if (id & CAN_RTR_FLAG)
-                       writew(((id & 0x1FFF0000) >> 16) | IDE | AME | RTR,
-                                       ®->chl[TRANSMIT_CHL].id1);
-               else
-                       writew(((id & 0x1FFF0000) >> 16) | IDE | AME,
-                                       ®->chl[TRANSMIT_CHL].id1);
-
-       } else {
-               if (id & CAN_RTR_FLAG)
-                       writew((id << 2) | AME | RTR,
-                               ®->chl[TRANSMIT_CHL].id1);
-               else
-                       bfin_write16(®->chl[TRANSMIT_CHL].id1,
-                                       (id << 2) | AME);
-       }
+               val = ((id & 0x1FFF0000) >> 16) | IDE;
+       } else
+               val = (id << 2);
+       if (id & CAN_RTR_FLAG)
+               val |= RTR;
+       bfin_write16(®->chl[TRANSMIT_CHL].id1, val | AME);
 
        /* fill payload */
        for (i = 0; i < 8; i += 2) {