All of lore.kernel.org
 help / color / mirror / Atom feed
From: "ZHU Yi (ST-FIR/ENG1-Zhu)" <Yi.Zhu5@cn.bosch.com>
To: Wolfgang Grandegger <wg@grandegger.com>,
	Pankaj Bansal <pankaj.bansal@nxp.com>,
	Marc Kleine-Budde <mkl@pengutronix.de>,
	"linux-can@vger.kernel.org" <linux-can@vger.kernel.org>
Cc: Varun Sethi <V.Sethi@nxp.com>,
	Poonam Aggrwal <poonam.aggrwal@nxp.com>,
	Bhupesh Sharma <bhupesh.sharma@freescale.com>
Subject: RE: [PATCH v2 2/2] can: flexcan: adding platform specific details for LS1021A
Date: Thu, 16 Nov 2017 07:23:00 +0000	[thread overview]
Message-ID: <ff7b32a8bc694c92b10967bfd2de24fa@SGPMBX1017.APAC.bosch.com> (raw)
In-Reply-To: <343d8c69-a01a-5ff7-75a2-99523391f97c@grandegger.com>

Hello Pankaj,

>From: Wolfgang Grandegger [mailto:wg@grandegger.com]
>Sent: Thursday, November 16, 2017 3:06 PM
>
>Am 16.11.2017 um 06:34 schrieb Pankaj Bansal:
>> [...]
>>> Please add your IP core to the "FLEXCAN hardware feature flags" table [1] in
>>> the driver. Also please test the transition interrupts for changes in the CAN
>>> error state, see the commits of ZHU Yi
>>> (ST-FIR/ENG1-Zhu) <Yi.Zhu5@cn.bosch.com> on the driver. [2]
>>>
>>
>> I did not understand this quirk (FLEXCAN_QUIRK_BROKEN_PERR_STATE).
>> What does this quirk do ? how do I check if my IP supports it or not ?
>> How do I test this ?
>>
>> Can you please help me to understand ?
>
>It's about reporting CAN error state changes "error-active" -> "warning"
>-> "error-passive" -> "bus-off" and back. The quirk might be required to
>trigger the state-change to "error-passive".

The FLEXCAN_QUIRK_BROKEN_PERR_STATE in conjunction with the
FLEXCAN_QUIRK_BROKEN_WERR_STATE were added for:
1. solve error state transition problems found in some core
2. throttle error interrupt flooding when applicable
due to some core cannot generate state interrupt for error
warning (that's the WERR_STATE stands for) and/or error passive
(that's the PERR_STATE stands for), thus the user space cannot
receive correct state transitions via listening to the SocketCAN socket.

The workaround overcomes the interrupt support shortage by:
1. derive correct state from error counters upon any interrupt.
2. disable/enable error interrupt to minimize the potential
   performance impact caused by error interrupt flooding.

These two quirks need to set according to hardware features, e.g.,
the i.MX28 and i.MX6 set the PERR_STATE quirk because they have the
[TR]WRN_INT connected but no interrupt for error passive. If they
don't have the [TR]WRN_INT too, then both quirks are required.
(PS: As we understand so far, there is no flexcan core lack of error
warning interrupt but have error passive interrupt, so the WERR_STATE
should never been set alone).

>
>You can test such state changes by doing:
>
>1. Send messages without CAN cable connected
>
>2. Short-circuit the CAN low and high signals
>
>Then connect the cable and remove the short-circuit and send messages
>using "cansend" or "cangen". Please also use "ip set link can0 ...
>restart-ms 100" to recover from bus-off automatically.
>
>While testing watch the error messages with the command below and report
>the results to the list.
>
># candump -td -e any,0:0,#FFFFFFFF

The fast way to check whether your IP needs the quirk or not is look
into the reference and find whether it supports the aforementioned
interrupts, if anyone is missing, then the quirk is needed. Please
consult suggestion from Wolfgang about how to test.

Best regards
Yi

  reply	other threads:[~2017-11-16  7:23 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-10  9:59 [PATCH 1/2] can: flexcan: Remodel FlexCAN register r/w APIs for big endian FlexCAN controllers Pankaj Bansal
2017-11-10  9:59 ` [PATCH 2/2] can: flexcan: adding platform specific details for LS1021A Pankaj Bansal
2017-11-10 10:06 ` [PATCH 1/2] can: flexcan: Remodel FlexCAN register r/w APIs for big endian FlexCAN controllers Marc Kleine-Budde
2017-11-10 11:06   ` Pankaj Bansal
2017-11-10 11:09     ` Marc Kleine-Budde
2017-11-10 12:35       ` Pankaj Bansal
     [not found]         ` <AM0PR0402MB394051B0FAADBC45AF71439CF1540-mYCQpYF9suc3mfjNbz3WnI3W/0Ik+aLCnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2017-11-10 12:49           ` Marc Kleine-Budde
2017-11-10 16:32             ` Pankaj Bansal
     [not found]               ` <AM0PR0402MB3940DE05B2BA456D0FF54498F1540-mYCQpYF9suc3mfjNbz3WnI3W/0Ik+aLCnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2017-11-13 15:50                 ` Marc Kleine-Budde
2017-11-10 10:48 ` Marc Kleine-Budde
2017-11-14 11:56 ` [PATCH v2 " Pankaj Bansal
2017-11-14 11:56   ` [PATCH v2 2/2] can: flexcan: adding platform specific details for LS1021A Pankaj Bansal
2017-11-14 12:59     ` Marc Kleine-Budde
2017-11-16  5:34       ` Pankaj Bansal
2017-11-16  7:05         ` Wolfgang Grandegger
2017-11-16  7:23           ` ZHU Yi (ST-FIR/ENG1-Zhu) [this message]
2017-11-20 11:11             ` Pankaj Bansal
2017-11-21  2:13               ` ZHU Yi (ST-FIR/ENG1-Zhu)
2017-11-21  2:37                 ` Pankaj Bansal
2017-11-21  3:31                   ` ZHU Yi (ST-FIR/ENG1-Zhu)
2017-11-21 10:01                     ` Pankaj Bansal
2017-11-23  7:23                       ` ZHU Yi (ST-FIR/ENG1-Zhu)
2017-11-21 12:43                 ` Marc Kleine-Budde
2017-11-22  2:56                   ` ZHU Yi (ST-FIR/ENG1-Zhu)
2017-11-22  6:27                     ` Pankaj Bansal
2017-11-22 13:56                       ` Marc Kleine-Budde
2017-11-22 11:59                     ` Marc Kleine-Budde
2017-11-23  1:26                       ` ZHU Yi (ST-FIR/ENG1-Zhu)
     [not found]                       ` <CALw8SCUGuCmq+S_9-o-ZDYJuASveuj71WH97jYsEvNZX2N5ZXA@mail.gmail.com>
2017-11-23 20:17                         ` Mirza Krak
2017-11-23 21:05                           ` Wolfgang Grandegger
2017-11-24 16:02                             ` Mirza Krak
2017-11-24 19:19                               ` Wolfgang Grandegger
2017-11-26 21:11                                 ` Mirza Krak
2017-11-27 14:00                                   ` Marc Kleine-Budde
     [not found]                                     ` <CALw8SCVNqN0SM1e=bxXZFMVL0VN0iy0LgFj9Hv4BeRwAbb9Y6A@mail.gmail.com>
2017-11-28 22:11                                       ` Mirza Krak
2017-12-01 10:12                                         ` Mirza Krak
2017-12-01 10:32                                           ` Marc Kleine-Budde
2017-11-27 16:34                           ` Stefan Agner
2017-11-14 15:24   ` [PATCH v2 1/2] can: flexcan: Remodel FlexCAN register r/w APIs for big endian FlexCAN controllers Marc Kleine-Budde
2017-11-16  5:24     ` Pankaj Bansal
2017-11-16 12:04       ` Marc Kleine-Budde
2017-11-21 12:18     ` Pankaj Bansal
2017-11-21 12:38       ` Marc Kleine-Budde
2017-11-23  9:09   ` [PATCH v3 " Pankaj Bansal
2017-11-23  9:09     ` [PATCH v3 2/2] can: flexcan: adding platform specific details for LS1021A Pankaj Bansal
2017-11-23  9:16       ` Marc Kleine-Budde
2017-11-23 10:01         ` Pankaj Bansal
2017-11-23 10:07           ` Marc Kleine-Budde
2017-11-23 12:01             ` Pankaj Bansal
2017-11-23 12:33               ` Marc Kleine-Budde
2017-11-23  9:18     ` [PATCH v3 1/2] can: flexcan: Remodel FlexCAN register r/w APIs for big endian FlexCAN controllers Marc Kleine-Budde
2017-11-23  9:55       ` Pankaj Bansal

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=ff7b32a8bc694c92b10967bfd2de24fa@SGPMBX1017.APAC.bosch.com \
    --to=yi.zhu5@cn.bosch.com \
    --cc=V.Sethi@nxp.com \
    --cc=bhupesh.sharma@freescale.com \
    --cc=linux-can@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    --cc=pankaj.bansal@nxp.com \
    --cc=poonam.aggrwal@nxp.com \
    --cc=wg@grandegger.com \
    /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.