mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
pinctrl: make the CONFIG_PINCTRL=n gpio config stubs return -ENOTSUPP
With CONFIG_PINCTRL=n, pinctrl_gpio_get_config() and pinctrl_gpio_set_config() are stubs that return 0. The getter reports success without touching the config it was asked to fill, so a caller reads the packed parameter it passed in back as if it were the pin's state; the setter reports success for a configuration nobody applied. With CONFIG_PINCTRL=y the same callers already get -ENOTSUPP from gpiochip_generic_config() and gpiochip_generic_get_config() for a chip without pin ranges, and gpiolib treats that value as "the backend cannot do this" and carries on. Return it from the stubs too, so a kernel without pinctrl behaves like a chip without pin ranges instead of claiming success. Suggested-by: Haibo Chen <haibo.chen@nxp.com> Signed-off-by: Mehmet Fide <mehmet.fide@screeningeagle.com> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> Signed-off-by: Linus Walleij <linusw@kernel.org>
This commit is contained in:
parent
cee9395acd
commit
b44aec8765
|
|
@ -107,14 +107,14 @@ static inline int
|
||||||
pinctrl_gpio_get_config(struct gpio_chip *gc, unsigned int offset,
|
pinctrl_gpio_get_config(struct gpio_chip *gc, unsigned int offset,
|
||||||
unsigned long *config)
|
unsigned long *config)
|
||||||
{
|
{
|
||||||
return 0;
|
return -ENOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
pinctrl_gpio_set_config(struct gpio_chip *gc, unsigned int offset,
|
pinctrl_gpio_set_config(struct gpio_chip *gc, unsigned int offset,
|
||||||
unsigned long config)
|
unsigned long config)
|
||||||
{
|
{
|
||||||
return 0;
|
return -ENOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct pinctrl * __must_check pinctrl_get(struct device *dev)
|
static inline struct pinctrl * __must_check pinctrl_get(struct device *dev)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user