Subject: Re: [PATCH net-next-2.6 v2] can: Topcliff: PCH_CAN driver: Add Flow control,

From: Wolfgang Grandegger <[email-masked]>
Date: Fri, 19 Nov 2010 09:57:41 +0100

Hi Tomoya,

On 11/19/2010 08:36 AM, Tomoya MORINAGA wrote:
> On Tuesday, November 16, 2010 7:16 PM, Wolfgang Grandegger wrote :
> 
>>> ......It seems the same line continues forever.
>>
>> Yes, it will continue until you connect the cable, that's normal
>> behavior. But that's not the full sequence. Could you please repeat the
>> test as shown below:
>>
>>   First start the following command in a *separate* session.
>>   # candump any,0:0,#FFFFFFFF"
>>
>>   Then setup and start the CAN controller:
>>   # ip link set can0 up type can bitrate 125000
>>   # cansend can0 123#deadbeef
>>
> 
> I show the result of the above command below,
> 
> [root@localhost can-utils]# candump any,0:0,#FFFFFFFF
>   can0  20000020  [8] 00 00 00 00 00 00 08 00   ERRORFRAME
>   can0  20000020  [8] 00 00 00 00 00 00 10 00   ERRORFRAME
>   can0  20000020  [8] 00 00 00 00 00 00 18 00   ERRORFRAME
>   can0  20000020  [8] 00 00 00 00 00 00 20 00   ERRORFRAME
>   can0  20000020  [8] 00 00 00 00 00 00 28 00   ERRORFRAME
>   can0  20000020  [8] 00 00 00 00 00 00 30 00   ERRORFRAME
>   can0  20000020  [8] 00 00 00 00 00 00 38 00   ERRORFRAME
>   can0  20000020  [8] 00 00 00 00 00 00 40 00   ERRORFRAME
>   can0  20000020  [8] 00 00 00 00 00 00 48 00   ERRORFRAME
>   can0  20000020  [8] 00 00 00 00 00 00 50 00   ERRORFRAME
>   can0  20000020  [8] 00 00 00 00 00 00 58 00   ERRORFRAME

The above lines describe bus errors. Therefore it should be

    can0  20000088  [8] 00 00 80 19 00 00 58 00   ERRORFRAME

>   can0  20000024  [8] 00 00 00 00 00 00 60 00   ERRORFRAME

The TX error counter has reached 96 signaling a can error state change
to "error warning".

>   can0  20000024  [8] 00 08 00 00 00 00 68 00   ERRORFRAME

CAN_ERR_CRTL in the id and CAN_ERR_CRTL_TX_WARNING in data[1], but ...

>   can0  20000024  [8] 00 08 00 00 00 00 70 00   ERRORFRAME

the state change should be signaled only *once*.

>   can0  20000024  [8] 00 08 00 00 00 00 78 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 80 00   ERRORFRAME

"Error passive" state is reached and CAN_ERR_CRTL_TX_PASSIVE sould be
set in data[1], but CAN_ERR_CRTL_TX_WARNING should be removed.

>   can0  20000024  [8] 00 28 00 00 00 00 80 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 80 00   ERRORFRAME
>   can0  20000024  [8] 00 28 00 00 00 00 80 00   ERRORFRAME

Sounds magic, well, I'm going to prepare a patch as soon as your pending
patch series is applied.

Could you please do the same testing while triggering a bus-off? After
the test, the output of "ip -d -s link" would be interesting as well.

Thanks,

Wolfgang.