Hi Andy, On Wed, May 20, 2020 at 2:14 PM Andy Shevchenko <andriy.shevchenko@xxxxxxxxx> wrote: > On Mon, May 11, 2020 at 04:52:51PM +0200, Geert Uytterhoeven wrote: > > GPIO controllers are exported to userspace using /dev/gpiochip* > > character devices. Access control to these devices is provided by > > standard UNIX file system permissions, on an all-or-nothing basis: > > either a GPIO controller is accessible for a user, or it is not. > > Currently no mechanism exists to control access to individual GPIOs. > > > > Hence this adds a GPIO driver to aggregate existing GPIOs, and expose > > them as a new gpiochip. This is useful for implementing access control, > > and assigning a set of GPIOs to a specific user. Furthermore, this > > simplifies and hardens exporting GPIOs to a virtual machine, as the VM > > can just grab the full GPIO controller, and no longer needs to care > > about which GPIOs to grab and which not, reducing the attack surface. > > This has been implemented for ARM virt in QEMU[1]. > > > > Recently, other use cases have been discovered[2], like describing > > simple GPIO-operated devices in DT, and using the GPIO Aggregator as a > > generic GPIO driver for userspace, which is useful for industrial > > control. > > > > Note that the first patch of this series ("i2c: i801: Use GPIO_LOOKUP() > > helper macro") has been applied to i2c/for-next. > > Sorry for late reply, recently noticed this nice idea. > The comment I have is, please, can we reuse bitmap parse algorithm and syntax? > We have too many different formats and parsers in the kernel and bitmap's one > seems suitable here. Thank you, I wasn't aware of that. Which one do you mean? The documentation seems to be confusing, and incomplete. My first guess was bitmap_parse(), but that one assumes hex values? And given it processes the unsigned long bitmap in u32 chunks, I guess it doesn't work as expected on big-endian 64-bit? bitmap_parselist() looks more suitable, and the format seems to be compatible with what's currently used, so it won't change ABI. Is that the one you propose? > (Despite other small clean ups, like strstrip() use) Aka strim()? There are too many of them, to know all of them by heart ;-) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds