Thread (7 messages) 7 messages, 3 authors, 2010-09-01

Re: [PATCH] gpiolib: Add 'struct gpio_chip' forward declaration for !GPIOLIB case

From: Grant Likely <hidden>
Date: 2010-09-01 15:26:22
Also in: lkml

On Tue, Aug 31, 2010 at 09:07:56PM +0400, Anton Vorontsov wrote:
On Tue, Aug 31, 2010 at 10:44:14AM -0600, Grant Likely wrote:
quoted
On Tue, Aug 31, 2010 at 2:37 AM, Anton Vorontsov [off-list ref] wrote:
quoted
On Tue, Aug 31, 2010 at 02:03:44AM -0600, Grant Likely wrote:
quoted
On Tue, Aug 24, 2010 at 01:26:23PM +0400, Anton Vorontsov wrote:
quoted
With CONFIG_GPIOLIB=n, the 'struct gpio_chip' is not declared,
so the following pops up on PowerPC:

  cc1: warnings being treated as errors
  In file included from arch/powerpc/platforms/52xx/mpc52xx_common.c:19:
  include/linux/of_gpio.h:74: warning: 'struct gpio_chip' declared
                              inside parameter list
  include/linux/of_gpio.h:74: warning: its scope is only this definition
                              or declaration, which is probably not what
                          you want
  include/linux/of_gpio.h:75: warning: 'struct gpio_chip' declared
                              inside parameter list
  make[2]: *** [arch/powerpc/platforms/52xx/mpc52xx_common.o] Error 1

This patch fixes the issue by providing the proper forward declaration.

Signed-off-by: Anton Vorontsov <redacted>
This doesn't actually solve the problem, and gpiochip should
remain undefined when CONFIG_GPIOLIB=n to catch exactly these
build failures.  The real problem is that I merged a change
into the mpc5200 code that required CONFIG_GPIOLIB be enabled
without reflecting that requirement in Kconfig.
No, look closer. The error is in of_gpio.h, and it's perfectly
fine to include it w/o GPIOLIB=y.
Looking even closer, we're both wrong.  You're right I didn't look
carefully enough, and the error is in of_gpio.h, not the .c file.

However, it is not okay to get the definitions from of_gpio.h when
CONFIG_GPIOLIB=n.  If GPIOLIB, or more specifically OF_GPIO isn't set,
then the of_gpio.h definitions should either not be defined, or should
be defined as empty stubs (where appropriate).
Grrr. Grant, look again, even closer than you did.
Gah.  Very bad day yesterday.  Applied and sorry for the noise.

g.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help