From: Viktor Babrian <babrian.viktor@renyi.mta.hu>
To: Andri Yngvason <andri.yngvason@marel.com>
Cc: Tom Evans <tom_usenet@optusnet.com.au>,
linux-can@vger.kernel.org, Marc Kleine-Budde <mkl@pengutronix.de>
Subject: [PATCH 3.19-rc3] c_can: SIE disabled when berr-reporting is off to reduce irq flood
Date: Sun, 18 Jan 2015 19:30:58 +0100 (CET) [thread overview]
Message-ID: <alpine.DEB.2.02.1501181809150.32136@login> (raw)
In-Reply-To: <20150113153243.26859.47218@shannon>
Status interrupt is to be disabled if bus error reporting is off in order
to reduce interrupt flood when e.g. a frame is not acked. Side effect is
that when berr-reporting off, warn->pass and pass-warn state transitions
may be reported later (upon a successful rx/tx event) or even go
undetected. With proper implementation, these transitions could always be
detected (but still later). It is considered better to have a non-accurate
report of these transitions than having a non-responding system in
possible scenarios.
Signed-off-by: Viktor Babrian <babrian.viktor@renyi.mta.hu>
---
--- linux-3.19-rc3/drivers/net/can/c_can/c_can.c 2015-01-06
02:05:20.000000000 +0100
+++ linux/drivers/net/can/c_can/c_can.c 2015-01-18 17:46:09.000000000
+0100
@@ -242,8 +242,11 @@ static void c_can_irq_control(struct c_c
{
u32 ctrl = priv->read_reg(priv, C_CAN_CTRL_REG) & ~CONTROL_IRQMSK;
+ /* do not enable status irq if bus error reporting is not needed
*/
if (enable)
- ctrl |= CONTROL_IRQMSK;
+ ctrl |= (priv->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING)
?
+ CONTROL_IRQMSK :
+ (CONTROL_IRQMSK & ~CONTROL_SIE);
priv->write_reg(priv, C_CAN_CTRL_REG, ctrl);
}
next prev parent reply other threads:[~2015-01-18 18:31 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-03 17:54 [PATCH v5 3/5] can: mscan: Consolidate and unify state change handling Andri Yngvason
2015-01-12 17:18 ` c_can: (newbie) high system load when frame not acked? Viktor Babrian
[not found] ` <1735533.0yOonAfCy1@heinz>
2015-01-12 18:50 ` Viktor Babrian
2015-01-13 1:19 ` Tom Evans
2015-01-13 15:10 ` Viktor Babrian
2015-01-13 15:16 ` Marc Kleine-Budde
2015-01-13 15:54 ` Viktor Babrian
2015-01-13 15:55 ` Marc Kleine-Budde
2015-01-13 15:32 ` Andri Yngvason
2015-01-14 1:35 ` Tom Evans
2015-01-14 9:55 ` Andri Yngvason
2015-01-15 0:29 ` Tom Evans
2015-01-18 18:30 ` Viktor Babrian [this message]
2015-01-18 18:34 ` [PATCH 3.19-rc3] c_can: SIE disabled when berr-reporting is off to reduce irq flood Marc Kleine-Budde
2015-01-18 18:52 ` Viktor Babrian
2015-01-18 18:56 ` Marc Kleine-Budde
2015-01-19 11:32 ` Viktor Babrian
2015-01-19 22:35 ` Tom Evans
2015-01-18 19:01 ` [PATCH 3.19-rc3] c_can: end transmission on network stop Viktor Babrian
2015-01-20 14:39 ` Marc Kleine-Budde
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=alpine.DEB.2.02.1501181809150.32136@login \
--to=babrian.viktor@renyi.mta.hu \
--cc=andri.yngvason@marel.com \
--cc=linux-can@vger.kernel.org \
--cc=mkl@pengutronix.de \
--cc=tom_usenet@optusnet.com.au \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox