* [Xenomai] RTDM PCI drivers IRQ line conflict
@ 2015-07-01 15:56 Antoine Durand
2015-07-01 16:02 ` Gilles Chanteperdrix
0 siblings, 1 reply; 3+ messages in thread
From: Antoine Durand @ 2015-07-01 15:56 UTC (permalink / raw)
To: xenomai
Hi,
I've two PCI devices for which I'm making RTDM drivers.
I can load the first without any problem.
but when the second driver call rtdm_irq_request (passing the struct
pci_dev->irq field and flag RTDM_IRQTYPE_SHARED), it failed with EBUSY :
The IRQ line is already in use.
lspci before the insmod give that result :
I can see that IRQ for thoses devices are 11 and 11
04:08.0 Class 0680: Device 10b5:9080 (rev 03)
Subsystem: Device 10b5:2402
Flags: bus master, medium devsel, latency 64, IRQ 11
Memory at e0801000 (32-bit, non-prefetchable) [size=256]
I/O ports at d000 [size=256]
Memory at e0800000 (32-bit, non-prefetchable) [size=256]
06:00.0 Class 0680: Device 10e3:0148 (rev 01)
Subsystem: Device 1775:7866
Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 11
Memory at c0000000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [40] PCI-X non-bridge device
when I insmod the modules, the call to pci_enable_device print this for the
first device
pci 0000:05:00.0: using bridge 0000:00:1c.0 INT A to get IRQ 16
rtdm_tsi148 0000:06:00.0: PCI->APIC IRQ transform: INT A -> IRQ 16
and this for the second
rtdm_16aio 0000:02:08.0: using bridge 0000:01:00.0 INT A to get IRQ 16
rtdm_16aio 0000:02:08.0: PCI->APIC IRQ transform: INT A -> IRQ 16
If I understand, IRQ are remapped by APIC but sadly on the same IRQ again.
Is there any way to change affected IRQ lines ?
is it a hardware specific problem ?
The devices seem to not support MSI.
They seem to be unable to share interrupt too.
I run linux 3.16.7 with Xenomai 3 rc5
I'm not sure if it's a linux problem or xenomai specific ?
Thank You for your help.
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [Xenomai] RTDM PCI drivers IRQ line conflict
2015-07-01 15:56 [Xenomai] RTDM PCI drivers IRQ line conflict Antoine Durand
@ 2015-07-01 16:02 ` Gilles Chanteperdrix
2015-07-02 9:11 ` Antoine Durand
0 siblings, 1 reply; 3+ messages in thread
From: Gilles Chanteperdrix @ 2015-07-01 16:02 UTC (permalink / raw)
To: Antoine Durand; +Cc: xenomai
On Wed, Jul 01, 2015 at 05:56:25PM +0200, Antoine Durand wrote:
> Hi,
>
> I've two PCI devices for which I'm making RTDM drivers.
>
> I can load the first without any problem.
>
> but when the second driver call rtdm_irq_request (passing the struct
> pci_dev->irq field and flag RTDM_IRQTYPE_SHARED), it failed with
> EBUSY :
That is a Xenomai configuration issue, you need to enable
CONFIG_XENO_OPT_SHIRQ if you want your RTDM drivers to share IRQs.
--
Gilles.
https://click-hack.org
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Xenomai] RTDM PCI drivers IRQ line conflict
2015-07-01 16:02 ` Gilles Chanteperdrix
@ 2015-07-02 9:11 ` Antoine Durand
0 siblings, 0 replies; 3+ messages in thread
From: Antoine Durand @ 2015-07-02 9:11 UTC (permalink / raw)
To: Gilles Chanteperdrix; +Cc: xenomai
It's OK, thak you !
2015-07-01 18:02 GMT+02:00 Gilles Chanteperdrix <
gilles.chanteperdrix@xenomai.org>:
> On Wed, Jul 01, 2015 at 05:56:25PM +0200, Antoine Durand wrote:
> > Hi,
> >
> > I've two PCI devices for which I'm making RTDM drivers.
> >
> > I can load the first without any problem.
> >
> > but when the second driver call rtdm_irq_request (passing the struct
> > pci_dev->irq field and flag RTDM_IRQTYPE_SHARED), it failed with
> > EBUSY :
>
> That is a Xenomai configuration issue, you need to enable
> CONFIG_XENO_OPT_SHIRQ if you want your RTDM drivers to share IRQs.
>
> --
> Gilles.
> https://click-hack.org
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-07-02 9:11 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-01 15:56 [Xenomai] RTDM PCI drivers IRQ line conflict Antoine Durand
2015-07-01 16:02 ` Gilles Chanteperdrix
2015-07-02 9:11 ` Antoine Durand
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.