gpiolib: Deduplicate find_first_zero_bit() call
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 30 Jun 2020 09:21:46 +0000 (12:21 +0300)
committerBartosz Golaszewski <bgolaszewski@baylibre.com>
Tue, 30 Jun 2020 10:39:14 +0000 (12:39 +0200)
bitmap_full() is a shortcut to find_first_zero_bit().
Thus, no need to call it twice.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
drivers/gpio/gpiolib.c

index 4fa075d..fa01455 100644 (file)
@@ -3705,10 +3705,9 @@ int gpiod_get_array_value_complex(bool raw, bool can_sleep,
                        bitmap_xor(value_bitmap, value_bitmap,
                                   array_info->invert_mask, array_size);
 
-               if (bitmap_full(array_info->get_mask, array_size))
-                       return 0;
-
                i = find_first_zero_bit(array_info->get_mask, array_size);
+               if (i == array_size)
+                       return 0;
        } else {
                array_info = NULL;
        }
@@ -3989,10 +3988,9 @@ int gpiod_set_array_value_complex(bool raw, bool can_sleep,
                gpio_chip_set_multiple(array_info->chip, array_info->set_mask,
                                       value_bitmap);
 
-               if (bitmap_full(array_info->set_mask, array_size))
-                       return 0;
-
                i = find_first_zero_bit(array_info->set_mask, array_size);
+               if (i == array_size)
+                       return 0;
        } else {
                array_info = NULL;
        }