• Bartosz Golaszewski's avatar
    gpiolib: add new ioctl() for monitoring changes in line info · 51c1064e
    Bartosz Golaszewski authored
    Currently there is no way for user-space to be informed about changes
    in status of GPIO lines e.g. when someone else requests the line or its
    config changes. We can only periodically re-read the line-info. This
    is fine for simple one-off user-space tools, but any daemon that provides
    a centralized access to GPIO chips would benefit hugely from an event
    driven line info synchronization.
    
    This patch adds a new ioctl() that allows user-space processes to reuse
    the file descriptor associated with the character device for watching
    any changes in line properties. Every such event contains the updated
    line information.
    
    Currently the events are generated on three types of status changes: when
    a line is requested, when it's released and when its config is changed.
    The first two are self-explanatory. For the third one: this will only
    happen when another user-space process calls the new SET_CONFIG ioctl()
    as any changes that can happen from within the kernel (i.e.
    set_transitory() or set_debounce()) are of no interest to user-space.
    Signed-off-by: default avatarBartosz Golaszewski <bgolaszewski@baylibre.com>
    Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    51c1064e
gpiolib.c 145 KB