From: Varka Bhadram <varkabhadram@gmail.com>
To: Matthias Klein <matthias.klein@optimeas.de>,
wg@grandegger.com, mkl@pengutronix.de, linux-can@vger.kernel.org,
support@karo-electronics.de
Cc: bigeasy@linutronix.de
Subject: Re: [PATCH V2 5/5] net: can: flexcan: fix for wrong TX error count behaviour on i.MX53
Date: Mon, 28 Jul 2014 12:09:17 +0530 [thread overview]
Message-ID: <53D5F015.30703@gmail.com> (raw)
In-Reply-To: <1406529268-20126-5-git-send-email-matthias.klein@optimeas.de>
On 07/28/2014 12:04 PM, Matthias Klein wrote:
> Once the CAN-bus is open and a packet is sent, the controller switches
> into the PASSIVE state and the TX error count goes to 0x80. When the
> bus is closed and the packet gets acknowledged the controller switches
> to ERROR-WARNING state and the TX error counter is decremented to 0x7f.
> Everything OK so far.
>
> When now the bus is open again and a packet is sent, the controller
> switches into PASSIVE state and sets the TX error count to 0x86.
> When now the bus is closed the TX error is decremented to 0x85, but
> the state does not change to ERROR-WARNING. Now with each successfully
> transfered packet (in PASSIVE state!) the TX error counter is
> decremented, and when the TX error counter reaches 0x7f the controller
> switched back into ERROR-WARNING state.
>
> This fix sets the TX error count back to zero when entering the
> ERROR-WARNING state (after the first retransfered packet is acknowledged).
>
> Signed-off-by: Matthias Klein <matthias.klein@optimeas.de>
> ---
> drivers/net/can/flexcan.c | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
> index b77f1da..f9fefcb 100644
> --- a/drivers/net/can/flexcan.c
> +++ b/drivers/net/can/flexcan.c
> @@ -479,6 +479,34 @@ static int flexcan_poll_bus_err(struct net_device *dev, u32 reg_esr)
> return 1;
> }
>
> +static void flexcan_reset_err_reg(struct flexcan_priv *priv)
> +{
> + struct flexcan_regs __iomem *regs = priv->base;
> +
> + /*
> + * The reset of the error counter is ugly but I don't see any other way.
> + * Open the CAN bus, send packet => HW goes to ERR-pasive, TX-err
> + * counter is around 128 (maybe 129). Close the CAN-Bus, the TX-err
> + * counter drops down to somewhere between 126 … 127, HW goes to
> + * ERR-Warning, everything is fine.
> + *
> + * Now: Repeat the above procedure. What happens is that on send the
> + * TX-err increases to around 134…136 and on connect it drops to
> + * around 130. Occording to ESR the HW is still in passive mode _but_ it
> + * is possible send packets - that means can send packets but has no
> + * clue about it.
> + * To get a consistent behavior here, the error counter are reset so we
> + * fall back to Err-Active mode and the second "can send on open bus"
> + * behaves just like the first one.
> + */
> +
networking comment style...?
/* bla bla
* bla
*/
--
Regards,
Varka Bhadram.
next prev parent reply other threads:[~2014-07-28 6:40 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-28 6:34 [PATCH V2 1/5] net: can: flexcan: provide propper return code in ISR Matthias Klein
2014-07-28 6:34 ` [PATCH V2 2/5] net: can: flexcan: disable error interrupts in non ERR-Active state Matthias Klein
2014-07-28 6:40 ` Varka Bhadram
2014-07-28 6:34 ` [PATCH V2 3/5] net: can: flexcan: handle state passive -> warning transition Matthias Klein
2014-07-28 6:34 ` [PATCH V2 4/5] can: flexcan: fix transition from and to freeze mode in chip_{,un}freeze Matthias Klein
2014-07-28 6:38 ` Marc Kleine-Budde
2014-07-28 6:34 ` [PATCH V2 5/5] net: can: flexcan: fix for wrong TX error count behaviour on i.MX53 Matthias Klein
2014-07-28 6:39 ` Varka Bhadram [this message]
2014-07-28 7:05 ` Marc Kleine-Budde
2014-07-28 7:08 ` Sebastian Andrzej Siewior
2014-07-28 6:36 ` [PATCH V2 1/5] net: can: flexcan: provide propper return code in ISR Varka Bhadram
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=53D5F015.30703@gmail.com \
--to=varkabhadram@gmail.com \
--cc=bigeasy@linutronix.de \
--cc=linux-can@vger.kernel.org \
--cc=matthias.klein@optimeas.de \
--cc=mkl@pengutronix.de \
--cc=support@karo-electronics.de \
--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.