On Sat, Feb 04, 2012 at 06:06:32PM +0100, Sam Ravnborg wrote:
On Sat, Feb 04, 2012 at 03:54:39PM +0000, Mark Brown wrote:
Rather than requiring architectures that use gpiolib but don't have any
need to define anything custom to copy an asm/gpio.h provide a Kconfig
symbol which architectures must select in order to include gpio.h and
for other architectures just provide the trivial implementation directly.
Hi Mark.
There is an even simpler solution.
For each arch that uses asm-generic/gpio.h add a line
to arch/$ARCH/include/asm/Kbuild like this:
generic-y += gpio.h
This will then make this arch pick up the asm-generic version when
you do #include <asm/gpio.h>.
You're assuming that asm-generic/gpio.h was invented to be a replacement
for an architecture asm/gpio.h. Unfortunately, things aren't that
simple.
It would have been a lot better if asm-generic/gpio.h was tacked on the
bottom of linux/gpio.h - because that's what it really is. It's core
code features, not platform stuff.
What's platform specific about asm/gpio.h is the number of GPIOs in
the system, and whether it wants to intercept the gpio_xxx() functions
to provide fast access to on-chip GPIOs.
What I'd suggest is moving asm-generic/gpio.h to linux/gpiolib.h, and
making asm-generic/gpio.h include that as a patch until stuff is fixed
for its new location. That should result in a proper asm-generic/gpio.h
being:
/* The trivial gpiolib dispatchers */
#define gpio_get_value __gpio_get_value
#define gpio_set_value __gpio_set_value
#define gpio_cansleep __gpio_cansleep
#define gpio_to_irq __gpio_to_irq
and nothing else.
Alternatively, instead of linux/gpiolib.h, put it in linux/gpio.h instead,
but that gets more icky because of the mess of asm/gpio.h includes (which
I've been banging on for years about in ARM patches and they're _still_
coming.)
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html