|
@@ -252,8 +252,7 @@ static void c_can_obj_update(struct net_device *dev, int iface, u32 cmd, u32 obj
|
|
|
struct c_can_priv *priv = netdev_priv(dev);
|
|
|
int cnt, reg = C_CAN_IFACE(COMREQ_REG, iface);
|
|
|
|
|
|
- priv->write_reg(priv, reg + 1, cmd);
|
|
|
- priv->write_reg(priv, reg, obj);
|
|
|
+ priv->write_reg32(priv, reg, (cmd << 16) | obj);
|
|
|
|
|
|
for (cnt = MIN_TIMEOUT_VALUE; cnt; cnt--) {
|
|
|
if (!(priv->read_reg(priv, reg) & IF_COMR_BUSY))
|
|
@@ -328,8 +327,7 @@ static void c_can_setup_tx_object(struct net_device *dev, int iface,
|
|
|
change_bit(idx, &priv->tx_dir);
|
|
|
}
|
|
|
|
|
|
- priv->write_reg(priv, C_CAN_IFACE(ARB1_REG, iface), arb);
|
|
|
- priv->write_reg(priv, C_CAN_IFACE(ARB2_REG, iface), arb >> 16);
|
|
|
+ priv->write_reg32(priv, C_CAN_IFACE(ARB1_REG, iface), arb);
|
|
|
|
|
|
priv->write_reg(priv, C_CAN_IFACE(MSGCTRL_REG, iface), ctrl);
|
|
|
|
|
@@ -391,8 +389,7 @@ static int c_can_read_msg_object(struct net_device *dev, int iface, u32 ctrl)
|
|
|
|
|
|
frame->can_dlc = get_can_dlc(ctrl & 0x0F);
|
|
|
|
|
|
- arb = priv->read_reg(priv, C_CAN_IFACE(ARB1_REG, iface));
|
|
|
- arb |= priv->read_reg(priv, C_CAN_IFACE(ARB2_REG, iface)) << 16;
|
|
|
+ arb = priv->read_reg32(priv, C_CAN_IFACE(ARB1_REG, iface));
|
|
|
|
|
|
if (arb & IF_ARB_MSGXTD)
|
|
|
frame->can_id = (arb & CAN_EFF_MASK) | CAN_EFF_FLAG;
|
|
@@ -424,12 +421,10 @@ static void c_can_setup_receive_object(struct net_device *dev, int iface,
|
|
|
struct c_can_priv *priv = netdev_priv(dev);
|
|
|
|
|
|
mask |= BIT(29);
|
|
|
- priv->write_reg(priv, C_CAN_IFACE(MASK1_REG, iface), mask);
|
|
|
- priv->write_reg(priv, C_CAN_IFACE(MASK2_REG, iface), mask >> 16);
|
|
|
+ priv->write_reg32(priv, C_CAN_IFACE(MASK1_REG, iface), mask);
|
|
|
|
|
|
id |= IF_ARB_MSGVAL;
|
|
|
- priv->write_reg(priv, C_CAN_IFACE(ARB1_REG, iface), id);
|
|
|
- priv->write_reg(priv, C_CAN_IFACE(ARB2_REG, iface), id >> 16);
|
|
|
+ priv->write_reg32(priv, C_CAN_IFACE(ARB1_REG, iface), id);
|
|
|
|
|
|
priv->write_reg(priv, C_CAN_IFACE(MSGCTRL_REG, iface), mcont);
|
|
|
c_can_object_put(dev, iface, obj, IF_COMM_RCV_SETUP);
|