From: Wolfgang Grandegger <wg@grandegger.com>
To: Oliver Hartkopp <socketcan@hartkopp.net>,
Pavel Pisa <pisa@cmp.felk.cvut.cz>,
Kurt Van Dijck <kurt.van.dijck@eia.be>,
Stephane Grosjean <s.grosjean@peak-system.com>
Cc: Austin Schuh <austin@peloton-tech.com>, linux-can@vger.kernel.org
Subject: Re: sja1000 interrupt problem
Date: Wed, 13 Nov 2013 20:29:51 +0100 [thread overview]
Message-ID: <5283D32F.3080808@grandegger.com> (raw)
In-Reply-To: <5283C7F6.6000004@hartkopp.net>
Hi Oliver,
On 11/13/2013 07:41 PM, Oliver Hartkopp wrote:
> On 13.11.2013 10:52, Wolfgang Grandegger wrote:
>
>>
>> In Linux-CAN we have something similar:
>>
>> http://lxr.linux.no/#linux/drivers/net/can/sja1000/ems_pcmcia.c#L90
>>
>
> Indeed.
>
> I think reworking the sja1000.c driver (as suggested by Kurt) won't make it.
> It only touches the generic irq handling.
>
> The peak_pci driver creates (depending on the number of channels) e.g.
> two/four AFAICS pretty *independent* sja1000 netdevices.
>
> Currently at the end of the generic sja1000 interrupt handling the according
> irq bit in the PITA is cleared. This is not necessarily at the end of the
> interrupt chain.
>
> What we would need to set up a similar handling as we have in EMS PCMCIA or
> the EMS PCI (referenced by Pavel) is a "group of sja1000 netdevices" which is
> placed on a single PEAK PCI adapter.
Why? Normally we do not have such problems with level sensitive
interrupts. Also so far it's pure speculation that this might be the
cause of the problem.
> Indeed there is already a chain of sja1000 netdevices:
>
> http://lxr.linux.no/#linux+v3.12/drivers/net/can/sja1000/peak_pci.c#L645
>
> BUT this is only used to clean up all channels when the PCI device is removed
> or some errors occur at creation time.
>
> IMO the existing chain of netdevices is not only needed for the device removal
> but also for the interrupt handling.
>
> When ever the interrupt for the PCI adapter occurs all channels have to be
> handled (in a private peak_pci_interrupt() function) and finally the PITA has
> to be cleared there too.
>
> That change won't make use of the possibility to clear single IRQ bits in the
> PITA anymore. And the PITA has to be checked first (e.g. to check if we have a
> new interrupt somewhere later in the interrupt chain) to skip the irq handling
> when it's obsolete.
>
> Any thoughts?
See my comments above. If the PEAK PCI hardware is setting the levels
correctly, there is no problem with the current interrupt handling.
Wolfgang.
next prev parent reply other threads:[~2013-11-13 19:29 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-08 0:47 sja1000 interrupt problem Austin Schuh
2013-10-08 6:32 ` Wolfgang Grandegger
2013-10-08 6:58 ` Oliver Hartkopp
2013-10-08 18:48 ` Austin Schuh
2013-10-08 19:44 ` Wolfgang Grandegger
2013-10-08 20:47 ` Austin Schuh
2013-10-09 6:21 ` Wolfgang Grandegger
2013-10-09 6:31 ` Wolfgang Grandegger
2013-10-09 6:47 ` Wolfgang Grandegger
[not found] ` <CANGgnMZpPGctUWGcg7Lp-QFPc7d6A5GeL9KQYnpeYMR8WukgdA@mail.gmail.com>
2013-11-07 8:15 ` Wolfgang Grandegger
2013-11-07 23:43 ` Austin Schuh
2013-11-09 14:21 ` Oliver Hartkopp
2013-11-12 2:59 ` Austin Schuh
2013-11-12 21:26 ` Oliver Hartkopp
2013-11-12 23:22 ` Austin Schuh
2013-11-13 3:41 ` Austin Schuh
2013-11-13 6:58 ` Oliver Hartkopp
2013-11-13 9:48 ` Kurt Van Dijck
2013-11-13 6:44 ` Oliver Hartkopp
2013-11-13 8:11 ` Wolfgang Grandegger
2013-11-13 9:08 ` Pavel Pisa
2013-11-13 9:52 ` Wolfgang Grandegger
2013-11-13 18:41 ` Oliver Hartkopp
2013-11-13 19:29 ` Wolfgang Grandegger [this message]
2013-11-13 22:00 ` Oliver Hartkopp
2013-11-13 11:02 ` Kurt Van Dijck
2013-11-16 21:42 ` Oliver Hartkopp
2013-11-17 8:18 ` Wolfgang Grandegger
2013-11-17 14:27 ` Oliver Hartkopp
2013-11-17 17:23 ` Wolfgang Grandegger
2013-11-17 20:46 ` Wolfgang Grandegger
2013-11-18 17:08 ` Austin Schuh
2013-12-09 21:54 ` Austin Schuh
2013-12-09 21:54 ` Austin Schuh
2013-12-10 7:49 ` Wolfgang Grandegger
2013-12-10 8:05 ` Austin Schuh
2013-12-10 9:32 ` Wolfgang Grandegger
2013-12-10 13:47 ` Oliver Hartkopp
2013-12-10 14:23 ` Oliver Hartkopp
2013-12-10 14:41 ` Wolfgang Grandegger
2013-12-10 16:05 ` Oliver Hartkopp
2013-12-10 21:12 ` Wolfgang Grandegger
2013-12-11 16:59 ` Oliver Hartkopp
2013-12-11 19:27 ` Wolfgang Grandegger
2013-12-12 6:13 ` Oliver Hartkopp
2013-12-12 17:38 ` Oliver Hartkopp
2013-12-12 22:56 ` Wolfgang Grandegger
2013-12-13 0:07 ` Austin Schuh
2013-12-13 16:16 ` Oliver Hartkopp
2013-12-13 9:38 ` Oliver Hartkopp
2013-12-13 10:04 ` Wolfgang Grandegger
2013-12-13 10:09 ` Wolfgang Grandegger
2013-12-13 16:25 ` Oliver Hartkopp
2013-12-13 17:33 ` Wolfgang Grandegger
2013-12-13 10:07 ` Marc Kleine-Budde
2013-12-13 16:22 ` Oliver Hartkopp
2013-12-13 17:14 ` Oliver Hartkopp
2013-12-13 21:14 ` Oliver Hartkopp
2013-12-14 9:51 ` Oliver Hartkopp
2013-12-20 23:13 ` Austin Schuh
2013-12-21 8:29 ` Wolfgang Grandegger
2013-12-21 13:12 ` Oliver Hartkopp
2013-12-21 12:55 ` Oliver Hartkopp
2013-12-23 15:58 ` Oliver Hartkopp
2013-11-09 19:42 ` Wolfgang Grandegger
[not found] ` <CANGgnMbb+VResUC6h+cK6Hfe5PLJx9R9ao6bMdJM2e5BPaDamw@mail.gmail.com>
2013-11-12 22:15 ` Wolfgang Grandegger
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=5283D32F.3080808@grandegger.com \
--to=wg@grandegger.com \
--cc=austin@peloton-tech.com \
--cc=kurt.van.dijck@eia.be \
--cc=linux-can@vger.kernel.org \
--cc=pisa@cmp.felk.cvut.cz \
--cc=s.grosjean@peak-system.com \
--cc=socketcan@hartkopp.net \
/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;
as well as URLs for NNTP newsgroup(s).