Re: [PATCH v5 00/11] gpio: implement the configfs testing module

From: Bartosz Golaszewski
Date: Mon Mar 22 2021 - 10:33:19 EST


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