All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] Shared interrupt usage questions
@ 2009-08-18 22:00 Steve Deiters
  2009-08-25  7:04 ` Jan Kiszka
  0 siblings, 1 reply; 2+ messages in thread
From: Steve Deiters @ 2009-08-18 22:00 UTC (permalink / raw)
  To: xenomai

Is there any acceptable method to share interrupts in userspace using
the native or other skin?  I am writing a userspace driver for a
Freescale mpc5121e PSC serial controller, which has 12 programmable
serial controllers which share a single FIFO controller.  The single
FIFO controller has only a single IRQ line for all 12 PSCs.  This is
further complicated by the fact that I also have to share this IRQ line
with the Linux domain, as it uses it for the console and other devices.

I cannot create multiple descriptors for the same IRQ line using
rt_intr_create and the I_SHARED flag doesn't seem to be exported to
userspace.  Is it valid to create one interrupt object and have multiple
tasks call rt_intr_wait for the same interrupt object?
 
As far as sharing with the Linux domain, from the documentation it seems
I would just pass I_PROPAGATE and this should then be transparent to the
Linux domain.  Are there additional concerns I should be aware of with
sharing the IRQ between domains?

I have set this up with a single shared interrupt object and it seems to
function properly.  I just want to make sure I'm not putting myself in a
condition where I could get some obscure race condition or have a
deadlocked interrupt server task.

Thanks.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-08-25  7:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-18 22:00 [Xenomai-help] Shared interrupt usage questions Steve Deiters
2009-08-25  7:04 ` Jan Kiszka

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.