Re: IRQ subsystem menu

From: Paul Thompson
Date: Wed Dec 05 2012 - 21:16:11 EST


Grant Likely <grant.likely@xxxxxxxxxxxx>, on Thu 2012.11.29 said:
> On Mon, 29 Oct 2012 15:03:08 +0100, Michal Marek <mmarek@xxxxxxx> wrote:
> > (Adding lkml and Thomas as IRQ subsystem maintainer to CC)
> >
> > On Sun, Oct 21, 2012 at 03:40:16AM -0400, Paul Thompson wrote:
> > > Hi;
> > >
> > > In menuconfig, General setup -> IRQ subsystem, there are two
> > > possible menu-items. One depends partly on IRQ_DOMAIN, and the other
> > > on MAY_HAVE_SPARSE_IRQ.
> > >
[...]
> > >
> > > Ideally, the "IRQ subsystem" menu would not even show up
> > > if it would contain no menu-items, but I do not know enough to
> > > formulate that constraint.
>
> First, move the 'menu "IRQ subsystem"' line does to right before the
> IRQ_DOMAIN_DEBUG line so that it wraps the options that matter, then you
> can add a "depends on MAY_HAVE_SPARSE_IRQ || IRQ_DOMAIN" line right
> below the menu item.
>
> You'll also need to move the IRQ_FORCED_THREADING line out from inside
> the menu block.
>
> Try it out and let me know how it goes.
>
> g.

Hi;

The logic makes sense to me, and makes the menus appearance
dependent on if either option setting can exist. So, on my system,
the IRQ subsystem menu does not appear.

Paul

See if this attached patch looks right:
--- linux-3.7-rc8/kernel/irq/Kconfig.orig 2012-12-05 20:59:00.963707538 -0500
+++ linux-3.7-rc8/kernel/irq/Kconfig 2012-12-05 21:00:18.454788693 -0500
@@ -3,7 +3,6 @@ config HAVE_GENERIC_HARDIRQS
bool

if HAVE_GENERIC_HARDIRQS
-menu "IRQ subsystem"
#
# Interrupt subsystem related configuration options
#
@@ -56,6 +55,13 @@ config GENERIC_IRQ_CHIP
config IRQ_DOMAIN
bool

+# Support forced irq threading
+config IRQ_FORCED_THREADING
+ bool
+
+menu "IRQ subsystem"
+ depends on ( IRQ_DOMAIN && DEBUG_FS ) || MAY_HAVE_SPARSE_IRQ
+
config IRQ_DOMAIN_DEBUG
bool "Expose hardware/virtual IRQ mapping via debugfs"
depends on IRQ_DOMAIN && DEBUG_FS
@@ -66,10 +72,6 @@ config IRQ_DOMAIN_DEBUG

If you don't know what this means you don't need it.

-# Support forced irq threading
-config IRQ_FORCED_THREADING
- bool
-
config SPARSE_IRQ
bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ
---help---