On 06/09/06, Jan Kiszka <[EMAIL PROTECTED]> wrote:
> If such a driver (that requires EDGE_SHARED) is a part of the mainline,
> then
> we may use Kconfig features either (1) to make it "selectable" only when
> XENO_OPT_SHIRQ_EDGE is on or (2) select XENO_OPT_SHIRQ_EDGE automatically
> when the driver has been choosen.

Let's do both, the runtime check + some Kconfig magic for mainline drivers.

For the latter we should reorganise the config options slightly.
XENO_OPT_SHIRQ_* may better depend on a new switch XENO_OPT_SHIRQ. Thus,
when the user enables IRQ sharing and some in-tree driver requires
edge-triggering support, XENO_OPT_SHIRQ_EDGE will be selected by the
driver's Kconfig: select XENO_OPT_SHIRQ_EDGE if XENO_OPT_SHIRQ. With the
current layout it would look like this: select XENO_OPT_SHIRQ_EDGE if

XENO_OPT_SHIRQ_LEVEL doesn't need to be on in order to use XENO_OPT_SHIRQ_EDGE.

Or you probably mean the following behavior :

some driver with XN_ISR_EDGE is selected :


     "run-time" check in xnintr_attach() will report -EBUSY in case the line is already busy

What I meant is

some driver with XN_ISR_EDGE is selected :


So that shared irq support (only for edge-triggered interrupts) gets unconditionally enabled.

in case of (1), XENO_OPT_SHIRQ can't be enabled on its own, i.e. without any of XENO_OPT_SHIRQ_*.

Well, your proposal is probably better. With XN_ISR_EDGE a driver only declares that it's ready to work in shared mode but it doesn't mean it can't work in non-shared one.

If a user has a separate line for it, then the shared-IRQ infrastracture adds just non-used overhead. Yep, you are right (heh... you are asking who had doubts? :)


Best regards,
Dmitry Adamushko
Xenomai-core mailing list

Reply via email to