All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wolfgang Grandegger <wg@grandegger.com>
To: Andri Yngvason <andri.yngvason@marel.com>, linux-can@vger.kernel.org
Cc: mkl@pengutronix.de
Subject: Re: [PATCH v3 0/4] Consolidate and unify state change handling
Date: Sun, 23 Nov 2014 20:35:50 +0100	[thread overview]
Message-ID: <54723716.5000509@grandegger.com> (raw)
In-Reply-To: <212bdd30-5398-4189-b928-5b9e674ebaa8@GRBSR0089.marel.net>

On 11/22/2014 06:41 PM, Andri Yngvason wrote:
> Tested on sja1000 using:
>  cangen -g 100 can0
> and
>  candump -ta -e can0,0:0,#FFFFFFFF
> 
> Disconnected bus:
>  (1416682965.087306)  can0  2DF   [3]  2F 15 26
>  (1416682965.187328)  can0  674   [2]  21 A1
>  (1416682965.287815)  can0  33D   [8]  CF 0C 45 21 FC 04 2E 09
>  (1416682965.393608)  can0  20000004   [8]  00 08 00 00 00 00 60 00   ERRORFRAME
> 	controller-problem{tx-error-warning}
> 	error-counter-tx-rx{{96}{0}}
>  (1416682965.395955)  can0  20000004   [8]  00 20 00 00 00 00 80 00   ERRORFRAME
> 	controller-problem{tx-error-passive}
> 	error-counter-tx-rx{{128}{0}}
>  (1416682976.869871)  can0  2DC   [2]  79 2E
>  (1416682976.870595)  can0  560   [4]  C3 7C 00 01
>  (1416682976.871569)  can0  2DB   [8]  25 81 69 50 BD 59 8F 57
> ...
>  (1416682976.876007)  can0  05B   [8]  A6 4D C6 30 37 C3 F7 69
>  (1416682976.876993)  can0  22A   [8]  A7 AF 8E 03 8A FF 4A 6B
>  (1416682976.877002)  can0  20000004   [8]  00 08 00 00 00 00 7F 00   ERRORFRAME
> 	controller-problem{tx-error-warning}
> 	error-counter-tx-rx{{127}{0}}
>  (1416682976.877956)  can0  233   [8]  34 3F 95 0C 0E 8D 0E 46
>  (1416682976.878905)  can0  2B8   [8]  CB E6 9D 1D B8 C6 F2 17
>  (1416682976.879856)  can0  2FB   [8]  0B F6 B7 6F 58 45 57 31
> ...
>  (1416682976.902282)  can0  4FC   [0] 
>  (1416682976.903230)  can0  053   [8]  E1 11 39 26 F1 8B 9F 19
>  (1416682976.903799)  can0  5B4   [2]  39 96
>  (1416682976.903808)  can0  20000004   [8]  00 40 00 00 00 00 5F 00   ERRORFRAME
> 	controller-problem{back-to-error-active}
> 	error-counter-tx-rx{{95}{0}}
>  (1416682976.904363)  can0  196   [2]  B6 C7
>  (1416682976.905340)  can0  61F   [8]  B3 F6 C2 0A 39 F1 26 70
>  (1416682976.905970)  can0  55D   [3]  90 E5 5F
> 
> Shorted bus:
>  (1416683058.868100)  can0  525   [2]  7D 3F
>  (1416683058.968532)  can0  6FC   [7]  F3 92 FE 39 37 6E 89
>  (1416683059.068595)  can0  284   [7]  AC 5F 79 4D 66 EF 3C
>  (1416683059.167980)  can0  20000004   [8]  00 20 00 00 00 00 88 00   ERRORFRAME
> 	controller-problem{tx-error-passive}
> 	error-counter-tx-rx{{136}{0}}
>  (1416683059.171146)  can0  20000040   [8]  00 00 00 00 00 00 7F 00   ERRORFRAME
> 	bus-off
> 	error-counter-tx-rx{{127}{0}}
>  (1416683059.220803)  can0  20000100   [8]  00 00 00 00 00 00 00 00   ERRORFRAME
> 	restarted-after-bus-off
>  (1416683059.268077)  can0  20000004   [8]  00 20 00 00 00 00 88 00   ERRORFRAME
> 	controller-problem{tx-error-passive}
> 	error-counter-tx-rx{{136}{0}}
>  (1416683059.271238)  can0  20000040   [8]  00 00 00 00 00 00 7F 00   ERRORFRAME
> 	bus-off
> 	error-counter-tx-rx{{127}{0}}
>  (1416683059.320803)  can0  20000100   [8]  00 00 00 00 00 00 00 00   ERRORFRAME
> 	restarted-after-bus-off
> ...
>  (1416683061.470255)  can0  20000004   [8]  00 20 00 00 00 00 88 00   ERRORFRAME
> 	controller-problem{tx-error-passive}
> 	error-counter-tx-rx{{136}{0}}
>  (1416683061.473420)  can0  20000040   [8]  00 00 00 00 00 00 7F 00   ERRORFRAME
> 	bus-off
> 	error-counter-tx-rx{{127}{0}}
>  (1416683061.522799)  can0  20000100   [8]  00 00 00 00 00 00 00 00   ERRORFRAME
> 	restarted-after-bus-off
>  (1416683061.571115)  can0  643   [8]  D9 BB 20 19 28 A0 56 77
>  (1416683061.671163)  can0  736   [7]  62 00 39 0E 13 F4 7E
>  (1416683061.770988)  can0  2E4   [3]  D2 3F C0

This looks now good for the SJA1000 ...

> Tested on mscan using:
>  cangen -g 100 can0
> and
>  candump -ta -e can0,0:0,#FFFFFFFF
> 
> Disconnected bus:
>  (0000088443.957752)  can0  34C   [0] 
>  (0000088444.058159)  can0  2F4   [4]  10 0F 6F C6
>  (0000088444.158494)  can0  7A9   [8]  4D 81 52 6B 19 D6 66 C8
>  (0000088444.269206)  can0  20000004   [8]  00 08 00 00 00 00 00 00   ERRORFRAME
> 	controller-problem{tx-error-warning}
>  (0000088444.273055)  can0  20000004   [8]  00 20 00 00 00 00 00 00   ERRORFRAME
> 	controller-problem{tx-error-passive}
>  (0000088448.329598)  can0  767   [8]  5F 93 2B 62 6A B3 60 48
>  (0000088448.330052)  can0  5F6   [0] 
>  (0000088448.330651)  can0  782   [2]  7F F8
> ...
>  (0000088448.340011)  can0  2BE   [6]  7B 4E E8 41 1F 1F
>  (0000088448.340833)  can0  4E7   [6]  3D 09 BA 75 4D C2
>  (0000088448.341817)  can0  42C   [8]  76 7E A2 B6 3E 88 19 53
>  (0000088448.341923)  can0  20000004   [8]  00 08 00 00 00 00 00 00   ERRORFRAME
> 	controller-problem{tx-error-warning}
>  (0000088448.342207)  can0  611   [0] 
>  (0000088448.342735)  can0  7B9   [2]  79 FE
>  (0000088448.343375)  can0  147   [4]  23 DD F6 38
> ...
>  (0000088448.864031)  can0  017   [6]  56 15 6B E3 4D 13
>  (0000088448.964286)  can0  347   [8]  2D 12 D3 CD 5E 37 AC 7C
>  (0000088449.064405)  can0  146   [8]  5A FD 12 87 17 62 86 4F
>  (0000088449.064492)  can0  20000004   [8]  00 40 00 00 00 00 00 00   ERRORFRAME
> 	controller-problem{back-to-error-active}
>  (0000088449.164524)  can0  593   [8]  5B 83 65 74 70 8B 57 7F
>  (0000088449.264516)  can0  6FB   [6]  31 0D D3 96 6C 8E
>  (0000088449.364658)  can0  32D   [6]  18 88 2A A0 30 13
> 
> Shorted bus:
>  (0000088453.570871)  can0  345   [8]  6C 0E BA 6E 4D 93 F7 0B
>  (0000088453.670542)  can0  0CE   [1]  11
>  (0000088453.770909)  can0  5D9   [4]  4F BB E3 CE
>  (0000088453.870536)  can0  20000004   [8]  00 08 00 00 00 00 00 00   ERRORFRAME
> 	controller-problem{tx-error-warning}
>  (0000088453.873732)  can0  20000040   [8]  00 00 00 00 00 00 00 00   ERRORFRAME
> 	bus-off
>  (0000088453.923596)  can0  20000100   [8]  00 00 00 00 00 00 00 00   ERRORFRAME
> 	restarted-after-bus-off
>  (0000088453.923883)  can0  20000004   [8]  00 08 00 00 00 00 00 00   ERRORFRAME
> 	controller-problem{tx-error-warning}
>  (0000088453.927086)  can0  20000040   [8]  00 00 00 00 00 00 00 00   ERRORFRAME
> 	bus-off
>  (0000088453.976592)  can0  20000100   [8]  00 00 00 00 00 00 00 00   ERRORFRAME
> 	restarted-after-bus-off
>  (0000088454.071587)  can0  07F   [7]  4A 5B 1E B3 5F 63 1E
>  (0000088454.171299)  can0  092   [1]  5A
>  (0000088454.271898)  can0  492   [8]  41 1C 23 91 77 76 27 D7

and MSCAN.

> Tested on flexcan using:
>  cangen -g 1000 can0
>  cangen -g 1000 can1
> and
>  candump -ta -e can0,0:0,#FFFFFFFF
> and
>  berr-reporting on

I think you need this because your Flexcan platform data are wrong as
mentioned earlier.

> Disconnected bus:
>  (000.190615)  can0  2AA   [3]  2F 73 B5
>  (000.809397)  can0  3B5   [7]  1F C1 79 77 5D 56 3E
>  (000.190926)  can0  4AA   [6]  8A 01 7F 1B 43 CA
>  (001.007441)  can0  200000A8   [8]  00 00 00 19 00 00 00 00   ERRORFRAME
> 	protocol-violation{{}{acknowledge-slot}}
> 	no-acknowledgement-on-tx
> 	bus-error
>  (000.007059)  can0  20000004   [8]  00 20 00 00 00 00 00 00   ERRORFRAME
> 	controller-problem{tx-error-passive}
>  (000.005085)  can0  200000A8   [8]  00 00 00 19 00 00 00 00   ERRORFRAME
> 	protocol-violation{{}{acknowledge-slot}}
> 	no-acknowledgement-on-tx
> 	bus-error
> ...
>  (000.010527)  can0  200000A8   [8]  00 00 00 19 00 00 00 00   ERRORFRAME
> 	protocol-violation{{}{acknowledge-slot}}
> 	no-acknowledgement-on-tx
> 	bus-error
>  (000.005166)  can0  5C8   [3]  95 69 4D
>  (000.015339)  can0  200000A8   [8]  00 00 14 19 00 00 00 00   ERRORFRAME
> 	protocol-violation{{bit-stuffing-error,tx-recessive-bit-error}{acknowledge-slot}}
> 	no-acknowledgement-on-tx
> 	bus-error
>  (000.000000)  can0  04A   [2]  39 32
>  (000.005245)  can0  495   [0] 
>  (000.010367)  can0  532   [8]  D4 A9 BB 63 DD 17 F1 5D
>  ...
>  (000.809164)  can0  0A7   [8]  75 E0 DC 41 D9 9D 3F 62
>  (000.190956)  can0  48C   [8]  C7 0D 5D 4D 21 09 DA 2A
>  (000.809165)  can0  20000004   [8]  00 08 00 00 00 00 00 00   ERRORFRAME
> 	controller-problem{tx-error-warning}
>  (000.000015)  can0  04B   [8]  B6 B5 30 40 3D 1D 58 7C
>  (000.190931)  can0  44B   [8]  F9 AC C8 10 CF 16 F4 58
>  (000.809164)  can0  2CB   [8]  13 A2 E5 06 C4 94 14 4B
> ...
>  (000.190798)  can0  118   [8]  B4 6C 6F 55 8B E3 82 04
>  (000.808995)  can0  47C   [3]  CE EE 41
>  (000.191086)  can0  2EB   [8]  B6 3C D6 38 C5 86 0A 1A
>  (000.809276)  can0  20000004   [8]  00 40 00 00 00 00 00 00   ERRORFRAME
> 	controller-problem{back-to-error-active}
>  (000.000017)  can0  4F3   [7]  B6 87 9D 12 C5 0B FC
>  (000.190819)  can0  0D3   [8]  5B 85 38 28 7D F9 D4 32
>  (000.809272)  can0  5A7   [7]  B7 74 DC 5E 41 0E D9
> 
> Shorted bus:
>  (000.809289)  can0  72F   [6]  69 DD 64 0A B1 07
>  (000.190744)  can0  26E   [7]  1E CE 76 36 07 44 58
>  (000.999302)  can0  20000004   [8]  00 08 00 00 00 00 00 00   ERRORFRAME
> 	controller-problem{tx-error-warning}
>  (000.005177)  can0  20000088   [8]  00 00 08 00 00 00 00 00   ERRORFRAME
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	bus-error
>  (000.008899)  can0  20000040   [8]  00 00 00 00 00 00 00 00   ERRORFRAME
> 	bus-off
>  (000.005158)  can0  20000088   [8]  00 00 08 00 00 00 00 00   ERRORFRAME
> 	protocol-violation{{tx-dominant-bit-error}{}}
> 	bus-error
>  (000.040123)  can0  20000100   [8]  00 00 00 00 00 00 00 00   ERRORFRAME
> 	restarted-after-bus-off
>  (000.750963)  can0  6BF   [8]  5A 26 E0 13 B3 FA DE 0E
>  (000.190390)  can0  6CD   [4]  09 97 46 75
>  (000.809340)  can0  5EC   [2]  9A 2B

Looks good as well. Would be nice if you use cangen with a message count
in the data.

> Note: I made the following changes to can-utils:
> diff --git a/lib.c b/lib.c
> index 2c8df32..973be52 100644
> --- a/lib.c
> +++ b/lib.c
> @@ -446,6 +446,7 @@ static const char *controller_problems[] = {
>  	"tx-error-warning",
>  	"rx-error-passive",
>  	"tx-error-passive",
> +	"back-to-error-active",
>  };
>  
>  static const char *protocol_violation_types[] = {
> @@ -455,7 +456,7 @@ static const char *protocol_violation_types[] = {
>  	"tx-dominant-bit-error",
>  	"tx-recessive-bit-error",
>  	"bus-overload",
> -	"back-to-error-active",
> +	"active-error",
>  	"error-on-tx",
>  };
> 
> Andri Yngvason (4):
>   can: dev: Consolidate and unify state change handling.
>   can: sja1000: Consolidate and unify state change handling.
>   can: mscan: Consolidate and unify state change handling.
>   can: flexcan: Consolidate and unify state change handling.
> 
>  drivers/net/can/dev.c             |  94 +++++++++++++++++++++++++++++++++++
>  drivers/net/can/flexcan.c         | 101 +++++++-------------------------------
>  drivers/net/can/mscan/mscan.c     |  48 ++++++------------
>  drivers/net/can/sja1000/sja1000.c |  49 +++++++++---------
>  include/linux/can/dev.h           |   4 ++
>  include/uapi/linux/can/error.h    |   1 +
>  6 files changed, 153 insertions(+), 144 deletions(-)

I will have a closer look to the patches tomorrow.

Thanks,

Wolfgang.



  reply	other threads:[~2014-11-23 19:35 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-22 17:41 [PATCH v3 0/4] Consolidate and unify state change handling Andri Yngvason
2014-11-23 19:35 ` Wolfgang Grandegger [this message]
2014-11-25 15:51   ` Andri Yngvason
2014-11-25 21:07     ` Wolfgang Grandegger
2014-11-26 10:12       ` Andri Yngvason
2014-11-26 10:29         ` Wolfgang Grandegger
2014-11-26 11:22           ` Andri Yngvason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54723716.5000509@grandegger.com \
    --to=wg@grandegger.com \
    --cc=andri.yngvason@marel.com \
    --cc=linux-can@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.