gpiolib: Identify arrays matching GPIO hardware
authorJanusz Krzysztofik <jmkrzyszt@gmail.com>
Wed, 5 Sep 2018 21:50:06 +0000 (23:50 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 13 Sep 2018 09:16:12 +0000 (11:16 +0200)
commitbf9346f5d47b4506aafbc384dfb5796b0adc3f8d
tree36059c2536ba006875029d5edbe9615d98dc3180
parentb9762bebc6332b40c33e03dea03e30fa12d9e3ed
gpiolib: Identify arrays matching GPIO hardware

Certain GPIO array lookup results may map directly to GPIO pins of a
single GPIO chip in hardware order.  If that condition is recognized
and handled efficiently, significant performance gain of get/set array
functions may be possible.

While processing a request for an array of GPIO descriptors, identify
those which represent corresponding pins of a single GPIO chip.  Skip
over pins which require open source or open drain special processing.
Moreover, identify pins which require inversion.  Pass a pointer to
that information with the array to the caller so it can benefit from
enhanced performance as soon as get/set array functions can accept and
make efficient use of it.

Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Documentation/driver-api/gpio/consumer.rst
drivers/gpio/gpiolib.c
drivers/gpio/gpiolib.h
include/linux/gpio/consumer.h