From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Bartosz Golaszewski <brgl@bgdev.pl>
Cc: Kent Gibson <warthog618@gmail.com>,
Linus Walleij <linus.walleij@linaro.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
Bartosz Golaszewski <bgolaszewski@baylibre.com>
Subject: Re: [PATCH v4 12/13] gpiolib: add new ioctl() for monitoring changes in line info
Date: Wed, 8 Jan 2020 14:46:50 +0200 [thread overview]
Message-ID: <20200108124650.GR32742@smile.fi.intel.com> (raw)
In-Reply-To: <20191224120709.18247-13-brgl@bgdev.pl>
On Tue, Dec 24, 2019 at 01:07:08PM +0100, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> 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.
...
> - } else if (cmd == GPIO_GET_LINEINFO_IOCTL) {
> + } else if (cmd == GPIO_GET_LINEINFO_IOCTL ||
> + cmd == GPIO_GET_LINEINFO_WATCH_IOCTL) {
What about to split the functionality to something like lineinfo_get() and...
> struct gpioline_info lineinfo;
> - struct gpio_desc *desc;
Hmm... Is it correct patch for this change?
>
> if (copy_from_user(&lineinfo, ip, sizeof(lineinfo)))
> return -EFAULT;
> @@ -1246,11 +1260,25 @@ static long gpio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
>
> if (copy_to_user(ip, &lineinfo, sizeof(lineinfo)))
> return -EFAULT;
> +
> + if (cmd == GPIO_GET_LINEINFO_WATCH_IOCTL)
> + set_bit(desc_to_gpio(desc), priv->watched_lines);
> +
...simple use
} else if (cmd == GPIO_GET_LINEINFO_IOCTL) {
return lineinfo_get();
} else if {cmd == GPIO_GET_LINEINFO_WATCH_IOCTL) {
ret = lineinfo_get()
set_bit();
return ret;
}
?
> return 0;
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2020-01-08 12:46 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-24 12:06 [PATCH v4 00/13] gpiolib: add an ioctl() for monitoring line status changes Bartosz Golaszewski
2019-12-24 12:06 ` [PATCH v4 01/13] gpiolib: use 'unsigned int' instead of 'unsigned' in gpio_set_config() Bartosz Golaszewski
2020-01-07 10:02 ` Linus Walleij
2019-12-24 12:06 ` [PATCH v4 02/13] gpiolib: have a single place of calling set_config() Bartosz Golaszewski
2020-01-07 10:02 ` Linus Walleij
2020-01-20 8:44 ` Geert Uytterhoeven
2020-01-20 9:54 ` Andy Shevchenko
2020-01-23 10:16 ` Bartosz Golaszewski
2020-02-01 19:52 ` Guenter Roeck
2020-02-03 11:04 ` Bartosz Golaszewski
2019-12-24 12:06 ` [PATCH v4 03/13] gpiolib: convert the type of hwnum to unsigned int in gpiochip_get_desc() Bartosz Golaszewski
2020-01-07 10:03 ` Linus Walleij
2019-12-24 12:07 ` [PATCH v4 04/13] gpiolib: use gpiochip_get_desc() in linehandle_create() Bartosz Golaszewski
2020-01-07 10:04 ` Linus Walleij
2019-12-24 12:07 ` [PATCH v4 05/13] gpiolib: use gpiochip_get_desc() in lineevent_create() Bartosz Golaszewski
2020-01-07 10:04 ` Linus Walleij
2019-12-24 12:07 ` [PATCH v4 06/13] gpiolib: use gpiochip_get_desc() in gpio_ioctl() Bartosz Golaszewski
2020-01-07 10:04 ` Linus Walleij
2019-12-24 12:07 ` [PATCH v4 07/13] kfifo: provide noirqsave variants of spinlocked in and out helpers Bartosz Golaszewski
2019-12-24 12:07 ` [PATCH v4 08/13] kfifo: provide kfifo_is_empty_spinlocked() Bartosz Golaszewski
2019-12-24 12:07 ` [PATCH v4 09/13] gpiolib: rework the locking mechanism for lineevent kfifo Bartosz Golaszewski
2020-01-08 11:06 ` Andy Shevchenko
2019-12-24 12:07 ` [PATCH v4 10/13] gpiolib: emit a debug message when adding events to a full kfifo Bartosz Golaszewski
2019-12-24 12:07 ` [PATCH v4 11/13] gpiolib: provide a dedicated function for setting lineinfo Bartosz Golaszewski
2020-01-08 12:41 ` Andy Shevchenko
2019-12-24 12:07 ` [PATCH v4 12/13] gpiolib: add new ioctl() for monitoring changes in line info Bartosz Golaszewski
2020-01-08 12:46 ` Andy Shevchenko [this message]
2020-01-08 16:55 ` Bartosz Golaszewski
2020-06-09 0:23 ` Kent Gibson
2020-06-09 7:58 ` Bartosz Golaszewski
2019-12-24 12:07 ` [PATCH v4 13/13] tools: gpio: implement gpio-watch Bartosz Golaszewski
2020-01-08 12:47 ` Andy Shevchenko
2020-01-07 10:07 ` [PATCH v4 00/13] gpiolib: add an ioctl() for monitoring line status changes Linus Walleij
2020-01-07 10:38 ` Bartosz Golaszewski
2020-01-07 12:50 ` Linus Walleij
2020-01-07 13:15 ` Stefani Seibold
2020-01-07 14:44 ` Andy Shevchenko
2020-01-07 14:45 ` Andy Shevchenko
2020-01-07 15:19 ` Bartosz Golaszewski
2020-01-07 15:58 ` Andy Shevchenko
2020-01-07 16:51 ` Bartosz Golaszewski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200108124650.GR32742@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=bgolaszewski@baylibre.com \
--cc=brgl@bgdev.pl \
--cc=gregkh@linuxfoundation.org \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=warthog618@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.