From: Alexander Stein Date: Thu, 13 Dec 2012 09:06:10 +0000 (+0100) Subject: can: c_can: Set reserved bit in IFx_MASK2 to 1 on write X-Git-Tag: v3.4.92~104 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c7b5c6cd19c6ecfe7380c76b88ffdac349d60589;p=thirdparty%2Fkernel%2Fstable.git can: c_can: Set reserved bit in IFx_MASK2 to 1 on write commit 2bd3bc4e8472424f1a6009825397639a8968920a upstream. According to C_CAN documentation, the reserved bit in IFx_MASK2 register is fixed 1. Signed-off-by: Alexander Stein Signed-off-by: Marc Kleine-Budde [bwh: Backported to 3.2: adjust context] Signed-off-by: Ben Hutchings Cc: Qiang Huang Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c index 77405b4e86360..91d1b5af982ba 100644 --- a/drivers/net/can/c_can/c_can.c +++ b/drivers/net/can/c_can/c_can.c @@ -446,8 +446,12 @@ static void c_can_setup_receive_object(struct net_device *dev, int iface, priv->write_reg(priv, &priv->regs->ifregs[iface].mask1, IFX_WRITE_LOW_16BIT(mask)); + + /* According to C_CAN documentation, the reserved bit + * in IFx_MASK2 register is fixed 1 + */ priv->write_reg(priv, &priv->regs->ifregs[iface].mask2, - IFX_WRITE_HIGH_16BIT(mask)); + IFX_WRITE_HIGH_16BIT(mask) | BIT(13)); priv->write_reg(priv, &priv->regs->ifregs[iface].arb1, IFX_WRITE_LOW_16BIT(id));