Re: [PATCH 12/15] sound: add missing HAS_IOPORT and GENERIC_HARDIRQS dependencies

Arnd Bergmann
2013-02-06T21:58:08Z

On Wednesday 06 February 2013, Heiko Carstens wrote:
> On Wed, Feb 06, 2013 at 06:26:02PM +0100, Takashi Iwai wrote:
> > At Thu, 07 Feb 2013 02:13:19 +0100,
> > Arnd Bergmann wrote:
> > > No, it is intentional that the CONFIG_HAS_IOPORT symbol refers to
> > > the fact that you can use the ioport_map function, in order to
> > > disallow building drivers that depend on this function when it
> > > is unavailable. I actually want to change this, but in the opposite
> > > way of what you are proposing:
> > >
> > > I think CONFIG_HAS_IOPORT should refer to the fact that the
> > > inb/outb family of functions are usuable and be unset when
> > > they are not provided, and I would introduce a new
> > > CONFIG_HAS_IOPORT_MAP symbol for those (few) platforms that
> > > have a working inb/outb but no ioport_map.
> >
> > Yet another Kconfig, but sounds reasonable :)
>
> Right... I just wanted to make s390 compile with the Kconfig methods we use
> since nearly a decade and not change the world ;)

Your patch looks fine here, I was just mentioning that this is going to
change. After my patch, things will be different for s390 as well, because
it presumably won't provide the inb/outb accessors any more then
and not set the (new) CONFIG_HAS_IOPORT.

> > >
> > > Why not just make CONFIG_GENERIC_HARDIRQS mandatory for all
> > > platforms. It is use almost everywhere now.
> >
> > I wonder it, too...
>
> I haven't looked into it, but I doubt if that is possible without large
> effort, if at all. s390 doesn't have any irq chips, nor something like
> edge or level triggered irqs.
> Instead we have floating interrupts. Does that fit into the concept of
> GENERIC_HARDIRQS at all?
> If so, we can give it a try, sure. But that won't happen any time soon.
>
> Or are you simply proposing we should have both, our own irq handling plus
> GENERIC_HARDIRQS with dummy functions?

I think you should use GENERIC_HARDIRQ just for PCI, and rename the s390
interrupt handling to something that does not conflict. I understand
that the concepts are quite different, but with PCI support, you actually
do get all the weird interrupt hardware.
More importantly, some features provided by GENERIC_HARDIRQ are replacing
the traditional interfaces now, e.g. devm_request_irq() is actually
recommended over request_irq() for normal drivers these days, as it
simplifies the error handling.

Arnd