mbox series

[00/22] gpio: cdev: add uAPI V2

Message ID 20200623040107.22270-1-warthog618@gmail.com
Headers show
Series gpio: cdev: add uAPI V2 | expand


Kent Gibson June 23, 2020, 4 a.m. UTC
This patchset defines and implements adds a new version of the
GPIO CDEV uAPI to address existing 32/64bit alignment issues, add
support for debounce and event sequence numbers, and provide some
future proofing by adding padding reserved for future use.

The series can be partitioned into three sets; the first twelve
are minor code tidy ups or fixes that I ran across while implementing V2,
the next seven contain the V2 uAPI implementation proper, and the final
three port the GPIO tools to the V2 uAPI.

The more complicated patches include their own commentary where appropriate.


Kent Gibson (22):
  gpiolib: move gpiolib-sysfs function declarations into their own
  gpiolib: cdev: sort includes
  gpiolib: cdev: minor indentation fixes
  gpiolib: cdev: refactor gpiohandle_flags_to_desc_flags
  gpiolib: cdev: rename 'filep' and 'filp' to 'file' to be consistent
    with other use
  gpiolib: cdev: rename numdescs to num_descs
  gpiolib: cdev: remove pointless decrement of i
  gpiolib: cdev: complete the irq/thread timestamp handshake
  gpiolib: cdev: rename priv to gcdev
  gpiolib: cdev: fix minor race in GET_LINEINFO_WATCH
  gpiolib: cdev: remove recalculation of offset
  gpio: uapi: define GPIO_MAX_NAME_SIZE for array sizes
  gpio: uapi: define uAPI V2
  gpiolib: make cdev a build option
  gpiolib: add build option for CDEV V1 ABI
  gpiolib: cdev: add V2 uAPI implementation to parity with V1
  gpiolib: cdev: report edge detection in lineinfo
  gpiolib: cdev: support setting debounce
  gpio: uapi: document uAPI V1 as deprecated
  tools: gpio: switch tools to V2 uAPI
  tools: gpio: add debounce support to gpio-event-mon
  tools: gpio: support monitoring multiple lines

 drivers/gpio/Kconfig         |   28 +-
 drivers/gpio/Makefile        |    2 +-
 drivers/gpio/gpiolib-cdev.c  | 1610 ++++++++++++++++++++++++++++------
 drivers/gpio/gpiolib-cdev.h  |   15 +
 drivers/gpio/gpiolib-sysfs.c |    1 +
 drivers/gpio/gpiolib-sysfs.h |   24 +
 drivers/gpio/gpiolib.c       |    3 +
 drivers/gpio/gpiolib.h       |   24 +-
 include/uapi/linux/gpio.h    |  280 +++++-
 tools/gpio/gpio-event-mon.c  |  133 +--
 tools/gpio/gpio-hammer.c     |   28 +-
 tools/gpio/gpio-utils.c      |  107 +--
 tools/gpio/gpio-utils.h      |   48 +-
 tools/gpio/gpio-watch.c      |   10 +-
 tools/gpio/lsgpio.c          |  112 ++-
 15 files changed, 1933 insertions(+), 492 deletions(-)
 create mode 100644 drivers/gpio/gpiolib-sysfs.h

base-commit: 84651e81ee3323c7d544edfa6ac6026425fe5a52