]> www.infradead.org Git - users/dwmw2/linux.git/commit
pinctrl: bcm2835: don't -EINVAL on alternate funcs from get_direction()
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 19 Feb 2025 10:27:50 +0000 (11:27 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 4 Mar 2025 07:52:34 +0000 (08:52 +0100)
commit75f87f5d04f73645136d7a603c331d844fc5704a
tree3e591c4db3d96ba2c150e411fc753fc05d3aa82d
parenta5e4cde647851ed67f19a5cb54a99282f32aae99
pinctrl: bcm2835: don't -EINVAL on alternate funcs from get_direction()

Since commit 9d846b1aebbe ("gpiolib: check the return value of
gpio_chip::get_direction()") we check the return value of the
get_direction() callback as per its API contract. This driver returns
-EINVAL if the pin in question is set to one of the alternative
(non-GPIO) functions. This isn't really an error that should be
communicated to GPIOLIB so default to returning the "safe" value of
INPUT in this case. The GPIO subsystem does not have the notion of
"unknown" direction.

Fixes: 9d846b1aebbe ("gpiolib: check the return value of gpio_chip::get_direction()")
Reported-by: Mark Brown <broonie@kernel.org>
Closes: https://lore.kernel.org/all/Z7VFB1nST6lbmBIo@finisterre.sirena.org.uk/
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Stefan Wahren <wahrenst@gmx.net>
Link: https://lore.kernel.org/20250219102750.38519-1-brgl@bgdev.pl
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/bcm/pinctrl-bcm2835.c