On Mon, Mar 15, 2021 at 10:14 AM Bartosz Golaszewski <brgl@xxxxxxxx> wrote: > > From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> > > This series adds a new GPIO testing module based on configfs committable items > and sysfs. The goal is to provide a testing driver that will be configurable > at runtime (won't need module reload) and easily extensible. The control over > the attributes is also much more fine-grained than in gpio-mockup. > > This series also contains a respin of the patches I sent separately to the > configfs maintainers - these patches implement the concept of committable > items that was well defined for a long time but never actually completed. > > Apart from the new driver itself, its selftests and the configfs patches, this > series contains some changes to the bitmap API - most importantly: it adds > devres managed variants of bitmap_alloc() and bitmap_zalloc(). > > v1 -> v2: > - add selftests for gpio-sim > - add helper programs for selftests > - update the configfs rename callback to work with the new API introduced in > v5.11 > - fix a missing quote in the documentation > - use !! whenever using bits operation that are required to return 0 or 1 > - use provided bitmap API instead of reimplementing copy or fill operations > - fix a deadlock in gpio_sim_direction_output() > - add new read-only configfs attributes for mapping of configfs items to GPIO > device names > - and address other minor issues pointed out in reviews of v1 > > v2 -> v3: > - use devm_bitmap_alloc() instead of the zalloc variant if we're initializing > the bitmap with 1s > - drop the patch exporting device_is_bound() > - don't return -ENODEV from dev_nam and chip_name configfs attributes, return > a string indicating that the device is not available yet ('n/a') > - fix indentation where it makes sense > - don't protect IDA functions which use their own locking and where it's not > needed > - use kmemdup() instead of kzalloc() + memcpy() > - collected review tags > - minor coding style fixes > > v3 -> v4: > - return 'none' instead of 'n/a' from dev_name and chip_name before the device > is registered > - use sysfs_emit() instead of s*printf() > - drop GPIO_SIM_MAX_PROP as it's only used in an array's definition where it's > fine to hardcode the value > > v4 -> v5: > - export devm bitmap functions with EXPORT_SYMBOL_GPL() instead of a simple > EXPORT_SYMBOL() > > Bartosz Golaszewski (11): > configfs: increase the item name length > configfs: use (1UL << bit) for internal flags > configfs: implement committable items > samples: configfs: add a committable group > lib: bitmap: remove the 'extern' keyword from function declarations > lib: bitmap: order includes alphabetically > lib: bitmap: provide devm_bitmap_alloc() and devm_bitmap_zalloc() > gpio: sim: new testing module > selftests: gpio: provide a helper for reading chip info > selftests: gpio: add a helper for reading GPIO line names > selftests: gpio: add test cases for gpio-sim > > Documentation/admin-guide/gpio/gpio-sim.rst | 72 ++ > Documentation/filesystems/configfs.rst | 6 +- > drivers/gpio/Kconfig | 8 + > drivers/gpio/Makefile | 1 + > drivers/gpio/gpio-sim.c | 874 ++++++++++++++++++ > fs/configfs/configfs_internal.h | 22 +- > fs/configfs/dir.c | 245 ++++- > include/linux/bitmap.h | 127 +-- > include/linux/configfs.h | 3 +- > lib/bitmap.c | 42 +- > samples/configfs/configfs_sample.c | 153 +++ > tools/testing/selftests/gpio/.gitignore | 2 + > tools/testing/selftests/gpio/Makefile | 4 +- > tools/testing/selftests/gpio/config | 1 + > tools/testing/selftests/gpio/gpio-chip-info.c | 57 ++ > tools/testing/selftests/gpio/gpio-line-name.c | 55 ++ > tools/testing/selftests/gpio/gpio-sim.sh | 229 +++++ > 17 files changed, 1815 insertions(+), 86 deletions(-) > create mode 100644 Documentation/admin-guide/gpio/gpio-sim.rst > create mode 100644 drivers/gpio/gpio-sim.c > create mode 100644 tools/testing/selftests/gpio/gpio-chip-info.c > create mode 100644 tools/testing/selftests/gpio/gpio-line-name.c > create mode 100755 tools/testing/selftests/gpio/gpio-sim.sh > > -- > 2.30.1 > Hi Joel, Christoph, FYI The configfs patches from this series have been on the mailing list for months (long before the GPIO part) and have been re-sent several times. You have neither acked or opposed these changes. I don't want to delay the new testing driver anymore so I intend to apply the entire series and take it upstream through the GPIO tree by the end of this week. Best Regards, Bartosz Golaszewski