Message ID | 20210315091400.13772-1-brgl@bgdev.pl |
---|---|
Headers | show |
Series | gpio: implement the configfs testing module | expand |
On Mon, Mar 15, 2021 at 10:14 AM Bartosz Golaszewski <brgl@bgdev.pl> 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 > > 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
On Mon, Mar 22, 2021 at 03:32:24PM +0100, Bartosz Golaszewski wrote: > On Mon, Mar 15, 2021 at 10:14 AM Bartosz Golaszewski <brgl@bgdev.pl> 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(). > 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. Fine with me, feel free to add Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> where it's appropriate. -- With Best Regards, Andy Shevchenko
On Mon, Mar 22, 2021 at 3:32 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > 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. I say go ahead. Acked-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
On Thu, Mar 25, 2021 at 10:29 AM Linus Walleij <linus.walleij@linaro.org> wrote: > > On Mon, Mar 22, 2021 at 3:32 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > > 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. > > I say go ahead. > Acked-by: Linus Walleij <linus.walleij@linaro.org> > > Yours, > Linus Walleij Series applied, thanks for the reviews! Bartosz
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 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