Message ID | 20210309205921.15992-1-brgl@bgdev.pl |
---|---|
Headers | show |
Series | gpio: implement the configfs testing module | expand |
On Tue, Mar 09, 2021 at 09:59:10PM +0100, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > 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 Thanks for dropping the device_is_bound() stuff, looks sane to me. greg k-h
From: Bartosz Golaszewski <bgolaszewski@baylibre.com> 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 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 | 879 ++++++++++++++++++ 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, 1820 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