Thread (28 messages) 28 messages, 3 authors, 2012-11-08

Re: [PATCH v3] can: grcan: Add device driver for GRCAN and GRHCAN cores

From: Andreas Larsson <andreas@gaisler.com>
Date: 2012-11-07 12:55:26
Also in: linux-devicetree

On 11/07/2012 12:15 PM, Wolfgang Grandegger wrote:
On 11/07/2012 08:32 AM, Andreas Larsson wrote:
quoted
On 11/05/2012 10:28 AM, Wolfgang Grandegger wrote:
...
quoted
quoted
This looks good now. Just the automatic restart is missing as described
above.
When doing the bus_off handling as in at91_can, on a short-circuited bus
with restart-ms != 0, the result of a cansend is an endless and frequent
stream of

   can0  20000004  [8] 00 20 00 00 00 00 88 00   ERRORFRAME
         controller-problem{tx-error-passive}
         error-counter-tx-rx{{136}{0}}
   can0  20000040  [8] 00 00 00 00 00 00 80 00   ERRORFRAME
         bus-off
         error-counter-tx-rx{{128}{0}}
   can0  20000104  [8] 00 00 00 00 00 00 10 00   ERRORFRAME
         controller-problem{}
         restarted-after-bus-off
         error-counter-tx-rx{{16}{0}}
   can0  20000004  [8] 00 10 00 00 00 00 57 80   ERRORFRAME
         controller-problem{rx-error-passive}
         error-counter-tx-rx{{87}{128}}
   can0  20000040  [8] 00 00 00 00 00 00 80 00   ERRORFRAME
         bus-off
         error-counter-tx-rx{{128}{0}}
   can0  20000104  [8] 00 00 00 00 00 00 08 00   ERRORFRAME
         controller-problem{}
         restarted-after-bus-off
         error-counter-tx-rx{{8}{0}}
   can0  20000004  [8] 00 10 00 00 00 00 57 80   ERRORFRAME
         controller-problem{rx-error-passive}
         error-counter-tx-rx{{87}{128}}
   can0  20000040  [8] 00 00 00 00 00 00 80 00   ERRORFRAME
         bus-off
         error-counter-tx-rx{{128}{0}}
   can0  20000104  [8] 00 00 00 00 00 00 08 00   ERRORFRAME
         controller-problem{}
         restarted-after-bus-off
         error-counter-tx-rx{{8}{0}}
   [...]

as the grcan core continues to try to resend the frame when it comes
back again. To mimic the sja1000 behavior as closely as possible, I
guess that the driver also would need to make sure that the tx and rx
buffers are cleaned out so that this resending does not happen, right?
No, what you see is the normal behavior for automatic restart by the
hardware. A bus-off recovery is *not* the same than a controller restart.
OK, if these automatic restarts are an OK behavior when restart_ms is non-zero I 
am happy with taking the at91_can approach to things.

Cheers,
Andreas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help