gpiolib: Unify expectations about ->request() returned value

Half of the code in the GPIO library is written in an expectation that
any non-zero value returned from the ->request() callback is an error code,
while some code checks only for negative values.

Unify expectations about ->request() returned value to be non-zero
for an error and 0 for the success.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
This commit is contained in:
Andy Shevchenko 2020-10-21 14:25:36 +03:00 коммит произвёл Bartosz Golaszewski
Родитель 40941954f6
Коммит 8bbff39c6c
2 изменённых файлов: 4 добавлений и 4 удалений

Просмотреть файл

@ -476,7 +476,7 @@ static ssize_t export_store(struct class *class,
*/ */
status = gpiod_request(desc, "sysfs"); status = gpiod_request(desc, "sysfs");
if (status < 0) { if (status) {
if (status == -EPROBE_DEFER) if (status == -EPROBE_DEFER)
status = -ENODEV; status = -ENODEV;
goto done; goto done;

Просмотреть файл

@ -1985,7 +1985,7 @@ static int gpiod_request_commit(struct gpio_desc *desc, const char *label)
ret = -EINVAL; ret = -EINVAL;
spin_lock_irqsave(&gpio_lock, flags); spin_lock_irqsave(&gpio_lock, flags);
if (ret < 0) { if (ret) {
desc_set_label(desc, NULL); desc_set_label(desc, NULL);
kfree_const(label); kfree_const(label);
clear_bit(FLAG_REQUESTED, &desc->flags); clear_bit(FLAG_REQUESTED, &desc->flags);
@ -2051,7 +2051,7 @@ int gpiod_request(struct gpio_desc *desc, const char *label)
if (try_module_get(gdev->owner)) { if (try_module_get(gdev->owner)) {
ret = gpiod_request_commit(desc, label); ret = gpiod_request_commit(desc, label);
if (ret < 0) if (ret)
module_put(gdev->owner); module_put(gdev->owner);
else else
get_device(&gdev->dev); get_device(&gdev->dev);
@ -3958,7 +3958,7 @@ struct gpio_desc *__must_check gpiod_get_index(struct device *dev,
* the device name as label * the device name as label
*/ */
ret = gpiod_request(desc, con_id ? con_id : devname); ret = gpiod_request(desc, con_id ? con_id : devname);
if (ret < 0) { if (ret) {
if (ret == -EBUSY && flags & GPIOD_FLAGS_BIT_NONEXCLUSIVE) { if (ret == -EBUSY && flags & GPIOD_FLAGS_BIT_NONEXCLUSIVE) {
/* /*
* This happens when there are several consumers for * This happens when there are several consumers for