From a64398c86b2d2b363ea5df6f32e40afb2ab8ed3b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 4 Aug 2015 14:05:07 -0600 Subject: [PATCH] SAMV7 MCAN: Minor correcting to message size calculation --- arch/arm/src/samv7/sam_mcan.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/arch/arm/src/samv7/sam_mcan.c b/arch/arm/src/samv7/sam_mcan.c index 81851c09f16..6b497911e22 100644 --- a/arch/arm/src/samv7/sam_mcan.c +++ b/arch/arm/src/samv7/sam_mcan.c @@ -2093,7 +2093,18 @@ static void mcan_interrupt(FAR struct can_dev_s *dev) */ arch_invalidata_dcache(); - mcan_dedicated_rxbuffer_receive(priv); + mcan_receive(priv, rxdedicated, config->rxbufferesize); + + /* Clear the new data flag for the buffer */ + + if (i < 32) + { + sam_putreg(priv, SAM_MCAN_NDAT1_OFFSET, (1 << i); + } + else + { + sam_putreg(priv, SAM_MCAN_NDAT1_OFFSET, (1 << (i - 32)); + } } } } @@ -2141,7 +2152,7 @@ static void mcan_interrupt(FAR struct can_dev_s *dev) mcan_receive(dev, config->msgram.rxfifo0 + (ndx * priv->config->rxfifo0esize), - nelem * priv->config->rxfifo0esize); + priv->config->rxfifo0esize); } } @@ -2181,7 +2192,7 @@ static void mcan_interrupt(FAR struct can_dev_s *dev) mcan_receive(dev, config->msgram.rxfifo1 + (ndx * priv->config->rxfifo1esize), - nelem * priv->config->rxfifo1esize); + priv->config->rxfifo1esize); } }