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

From: Arnd Bergmann
Date: Wed Feb 06 2013 - 12:19:53 EST


On Wednesday 06 February 2013 18:05:14 Takashi Iwai wrote:
> At Wed, 6 Feb 2013 17:24:00 +0100,
> Heiko Carstens wrote:
> >
> > Fix these two compile errors on s390 which does not have HAS_IOPORT
> > nor GENERIC_HARDIRQS:
> >
> > sound/pci/lx6464es/lx6464es.c: In function âsnd_lx6464es_freeâ:
> > sound/pci/lx6464es/lx6464es.c:565:2: error: implicit declaration of function âioport_unmapâ
>
> Shouldn't this be fixed rather in asm-generic/io.h?
> Something like,
>
> #if defined(CONFIG_HAS_IOPORT) && defined(CONFIG_GENERIC_IOMAP)
> extern void __iomem *ioport_map(unsigned long port, unsigned int nr);
> extern void ioport_unmap(void __iomem *p);
> #else
> static inline void __iomem *ioport_map(unsigned long port, unsigned int nr)
> {
> return (void __iomem *) port;
> }
>
> static inline void ioport_unmap(void __iomem *p)
> {
> }
> #endif /* CONFIG_HAS_IOPORT */

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.

> > sound/soc/codecs/wm8903.c: In function âwm8903_set_pdata_irq_triggerâ:
> > sound/soc/codecs/wm8903.c:1954:9: error: implicit declaration of function âirq_get_irq_dataâ
>
> Ditto, how about defining
>
> #ifndef CONFIG_GENERIC_HARDIRQS
> #define irq_get_irq_data(x) NULL
> #endif
>
> somewhere appropriately?
>

Why not just make CONFIG_GENERIC_HARDIRQS mandatory for all
platforms. It is use almost everywhere now.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/