diff options
author | David S. Miller <davem@davemloft.net> | 2013-02-03 04:09:32 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-02-03 04:09:32 (GMT) |
commit | 59fa534874e6779082275d12d950e26c67c86498 (patch) | |
tree | 399407f2a84b08d6153b649f834b4693569af369 | |
parent | 559bcac35facfed49ab4f408e162971612dcfdf3 (diff) | |
parent | 2bd3bc4e8472424f1a6009825397639a8968920a (diff) | |
download | linux-59fa534874e6779082275d12d950e26c67c86498.tar.xz |
Merge branch 'fixes-for-3.8' of git://gitorious.org/linux-can/linux-can
Marc Kleine-Budde says:
====================
here's a patch for net for the v3.8 release cycle. Alexander Stein noticed that
the c_can hardware has a fixed bit in the IFx_MASK2 register. His patch fixes
writing of this register by always setting this bit.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/can/c_can/c_can.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c index 58607f1..2282b1a 100644 --- a/drivers/net/can/c_can/c_can.c +++ b/drivers/net/can/c_can/c_can.c @@ -488,8 +488,12 @@ static void c_can_setup_receive_object(struct net_device *dev, int iface, priv->write_reg(priv, C_CAN_IFACE(MASK1_REG, iface), IFX_WRITE_LOW_16BIT(mask)); + + /* According to C_CAN documentation, the reserved bit + * in IFx_MASK2 register is fixed 1 + */ priv->write_reg(priv, C_CAN_IFACE(MASK2_REG, iface), - IFX_WRITE_HIGH_16BIT(mask)); + IFX_WRITE_HIGH_16BIT(mask) | BIT(13)); priv->write_reg(priv, C_CAN_IFACE(ARB1_REG, iface), IFX_WRITE_LOW_16BIT(id)); |