On Mon, Aug 21, 2017 at 3:12 PM, Lukas Wunner <lukas@xxxxxxxxx> wrote: > SPI-attached GPIO controllers typically read out all inputs in one go. > If callers desire the values of multipe inputs, ideally a single readout > should take place to return the desired values. However the current > driver API only offers a ->get callback but no ->get_multiple (unlike > ->set_multiple, which is present). Thus, to read multiple inputs, a > full readout needs to be performed for every single value (barring > driver-internal caching), which is inefficient. > > In fact, the lack of a ->get_multiple callback has been bemoaned > repeatedly by the gpio subsystem maintainer: > http://www.spinics.net/lists/linux-gpio/msg10571.html > http://www.spinics.net/lists/devicetree/msg121734.html > > Introduce the missing callback. Add corresponding consumer functions > such as gpiod_get_array_value(). Amend linehandle_ioctl() to take > advantage of the newly added infrastructure. > > Signed-off-by: Lukas Wunner <lukas@xxxxxxxxx> Lean, mean, and clean and introducing the interface that I've been missing for some time. Good work! Let's hope we can merge this early for v4.15 once v4.14-rc1 is out and pile some drivers supporting it on top of it too. I am only worried on how to get __assign_bit() into place in time, or whether I should carry that patch in the GPIO tree simply? We *could* add a local version of it and then switch it over with a follow-up patch... Could you please patch Documentation/gpio/consumer.txt to mention the new functions as well? Maybe we should have a section in Documentation/gpio/driver.txt, that doc is a bit incomplete right now. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html