Skip to content

Commit

Permalink
gpio: provide stubs for devres gpio functions
Browse files Browse the repository at this point in the history
commit 6b3d8145dcfdbbb43f13544e16f44f4574f941dd
"gpiolib: make GPIO_DEVRES depend on GPIOLIB"
breaks builds when device drivers are using devm_gpio*
devres functions without enabling GPIOLIB, relying on
the devres code to be compiled anyway.

Provide stubs so that we get these if we're using the
devres functions without GPIOLIB.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Cc: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Linus Walleij committed Oct 30, 2013
1 parent 3c2c628 commit 403c1d0
Showing 1 changed file with 27 additions and 7 deletions.
34 changes: 27 additions & 7 deletions include/linux/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,15 @@ static inline int irq_to_gpio(unsigned int irq)

#endif /* ! CONFIG_ARCH_HAVE_CUSTOM_GPIO_H */

/* CONFIG_GPIOLIB: bindings for managed devices that want to request gpios */

struct device;

int devm_gpio_request(struct device *dev, unsigned gpio, const char *label);
int devm_gpio_request_one(struct device *dev, unsigned gpio,
unsigned long flags, const char *label);
void devm_gpio_free(struct device *dev, unsigned int gpio);

#else /* ! CONFIG_GPIOLIB */

#include <linux/kernel.h>
Expand Down Expand Up @@ -241,14 +250,25 @@ gpiochip_remove_pin_ranges(struct gpio_chip *chip)
WARN_ON(1);
}

#endif /* ! CONFIG_GPIOLIB */
static inline int devm_gpio_request(struct device *dev, unsigned gpio,
const char *label)
{
WARN_ON(1);
return -EINVAL;
}

struct device;
static inline int devm_gpio_request_one(struct device *dev, unsigned gpio,
unsigned long flags, const char *label)
{
WARN_ON(1);
return -EINVAL;
}

/* bindings for managed devices that want to request gpios */
int devm_gpio_request(struct device *dev, unsigned gpio, const char *label);
int devm_gpio_request_one(struct device *dev, unsigned gpio,
unsigned long flags, const char *label);
void devm_gpio_free(struct device *dev, unsigned int gpio);
static inline void devm_gpio_free(struct device *dev, unsigned int gpio)
{
WARN_ON(1);
}

#endif /* ! CONFIG_GPIOLIB */

#endif /* __LINUX_GPIO_H */

0 comments on commit 403c1d0

Please sign in to comment.