From: Jonathan Cameron <jic23@kernel.org>
To: William Breathitt Gray <vilhelm.gray@gmail.com>
Cc: kernel@pengutronix.de, linux-stm32@st-md-mailman.stormreply.com,
a.fatoum@pengutronix.de, kamel.bouhara@bootlin.com,
gwendal@chromium.org, alexandre.belloni@bootlin.com,
david@lechnology.com, linux-iio@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, syednwaris@gmail.com,
patrick.havelange@essensium.com, fabrice.gasnier@st.com,
mcoquelin.stm32@gmail.com, alexandre.torgue@st.com,
o.rempel@pengutronix.de, Dan Carpenter <dan.carpenter@oracle.com>
Subject: Re: [PATCH v8 17/22] counter: Add character device interface
Date: Sun, 14 Feb 2021 18:06:12 +0000 [thread overview]
Message-ID: <20210214180612.03af6f0d@archlinux> (raw)
In-Reply-To: <720278e3aaf3f249657ec18d158eca3f962baf8e.1613131238.git.vilhelm.gray@gmail.com>
On Fri, 12 Feb 2021 21:13:41 +0900
William Breathitt Gray <vilhelm.gray@gmail.com> wrote:
> This patch introduces a character device interface for the Counter
> subsystem. Device data is exposed through standard character device read
> operations. Device data is gathered when a Counter event is pushed by
> the respective Counter device driver. Configuration is handled via ioctl
> operations on the respective Counter character device node.
>
> Cc: David Lechner <david@lechnology.com>
> Cc: Gwendal Grignou <gwendal@chromium.org>
> Cc: Dan Carpenter <dan.carpenter@oracle.com>
> Cc: Oleksij Rempel <o.rempel@pengutronix.de>
> Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
Hi William,
A few minor comments. Mostly seems to have come together well and
makes sense to me.
Jonathan
> ---
> drivers/counter/Makefile | 2 +-
> drivers/counter/counter-chrdev.c | 496 +++++++++++++++++++++++++++++++
> drivers/counter/counter-chrdev.h | 16 +
> drivers/counter/counter-core.c | 37 ++-
> include/linux/counter.h | 45 +++
> include/uapi/linux/counter.h | 70 +++++
> 6 files changed, 661 insertions(+), 5 deletions(-)
> create mode 100644 drivers/counter/counter-chrdev.c
> create mode 100644 drivers/counter/counter-chrdev.h
>
...
> diff --git a/drivers/counter/counter-core.c b/drivers/counter/counter-core.c
> index bcf672e1fc0d..c137fcb97d9c 100644
> --- a/drivers/counter/counter-core.c
> +++ b/drivers/counter/counter-core.c
> @@ -5,12 +5,16 @@
> */
> #include <linux/counter.h>
> #include <linux/device.h>
> +#include <linux/device/bus.h>
> #include <linux/export.h>
> +#include <linux/fs.h>
> #include <linux/gfp.h>
> #include <linux/idr.h>
> #include <linux/init.h>
> #include <linux/module.h>
> +#include <linux/types.h>
>
> +#include "counter-chrdev.h"
> #include "counter-sysfs.h"
>
> /* Provides a unique ID for each counter device */
> @@ -33,6 +37,8 @@ static struct bus_type counter_bus_type = {
> .name = "counter"
> };
>
> +static dev_t counter_devt;
> +
> /**
> * counter_register - register Counter to the system
> * @counter: pointer to Counter to register
> @@ -54,7 +60,6 @@ int counter_register(struct counter_device *const counter)
> if (counter->id < 0)
> return counter->id;
>
> - /* Configure device structure for Counter */
Not sure why this comment gets removed here.
> dev->type = &counter_device_type;
> dev->bus = &counter_bus_type;
> if (counter->parent) {
> @@ -65,18 +70,25 @@ int counter_register(struct counter_device *const counter)
> device_initialize(dev);
> dev_set_drvdata(dev, counter);
>
> + /* Add Counter character device */
> + err = counter_chrdev_add(counter, counter_devt);
> + if (err < 0)
> + goto err_free_id;
> +
> /* Add Counter sysfs attributes */
> err = counter_sysfs_add(counter);
> if (err < 0)
> - goto err_free_id;
> + goto err_remove_chrdev;
>
> /* Add device to system */
> err = device_add(dev);
> if (err < 0)
> - goto err_free_id;
> + goto err_remove_chrdev;
It might be worth thinking about using cdev_device_add()
though will require a slightly different order of adding.
>
> return 0;
>
> +err_remove_chrdev:
> + counter_chrdev_remove(counter);
> err_free_id:
> put_device(dev);
> return err;
> @@ -138,13 +150,30 @@ int devm_counter_register(struct device *dev,
> }
> EXPORT_SYMBOL_GPL(devm_counter_register);
>
> +#define COUNTER_DEV_MAX 256
> +
> static int __init counter_init(void)
> {
> - return bus_register(&counter_bus_type);
> + int err;
> +
> + err = bus_register(&counter_bus_type);
> + if (err < 0)
> + return err;
> +
> + err = alloc_chrdev_region(&counter_devt, 0, COUNTER_DEV_MAX, "counter");
> + if (err < 0)
> + goto err_unregister_bus;
> +
> + return 0;
> +
> +err_unregister_bus:
> + bus_unregister(&counter_bus_type);
> + return err;
> }
>
> static void __exit counter_exit(void)
> {
> + unregister_chrdev_region(counter_devt, COUNTER_DEV_MAX);
> bus_unregister(&counter_bus_type);
> }
>
...
> diff --git a/include/uapi/linux/counter.h b/include/uapi/linux/counter.h
> index 6113938a6044..3d647a5383b8 100644
> --- a/include/uapi/linux/counter.h
> +++ b/include/uapi/linux/counter.h
> @@ -6,6 +6,19 @@
> #ifndef _UAPI_COUNTER_H_
> #define _UAPI_COUNTER_H_
>
> +#include <linux/ioctl.h>
> +#include <linux/types.h>
> +
> +/* Component type definitions */
> +enum counter_component_type {
> + COUNTER_COMPONENT_NONE,
> + COUNTER_COMPONENT_SIGNAL,
> + COUNTER_COMPONENT_COUNT,
> + COUNTER_COMPONENT_FUNCTION,
> + COUNTER_COMPONENT_SYNAPSE_ACTION,
> + COUNTER_COMPONENT_EXTENSION,
> +};
> +
> /* Component scope definitions */
> enum counter_scope {
> COUNTER_SCOPE_DEVICE,
> @@ -13,6 +26,63 @@ enum counter_scope {
> COUNTER_SCOPE_COUNT,
> };
>
> +/**
> + * struct counter_component - Counter component identification
> + * @type: component type (one of enum counter_component_type)
> + * @scope: component scope (one of enum counter_scope)
> + * @parent: parent component ID (matching the Y/Z suffix of the respective sysfs
> + * path as described in Documentation/ABI/testing/sysfs-bus-counter)
Probably good to give an example here as well as the cross reference.
> + * @id: component ID (matching the Y/Z suffix of the respective sysfs path as
> + * described in Documentation/ABI/testing/sysfs-bus-counter)
> + */
> +struct counter_component {
> + __u8 type;
> + __u8 scope;
> + __u8 parent;
> + __u8 id;
> +};
> +
> +/* Event type definitions */
> +enum counter_event_type {
> + COUNTER_EVENT_OVERFLOW,
> + COUNTER_EVENT_UNDERFLOW,
> + COUNTER_EVENT_OVERFLOW_UNDERFLOW,
> + COUNTER_EVENT_THRESHOLD,
> + COUNTER_EVENT_INDEX,
> +};
> +
> +/**
> + * struct counter_watch - Counter component watch configuration
> + * @component: component to watch when event triggers
> + * @event: event that triggers (one of enum counter_event_type)
> + * @channel: event channel (typically 0 unless the device supports concurrent
> + * events of the same type)
> + */
> +struct counter_watch {
> + struct counter_component component;
> + __u8 event;
> + __u8 channel;
> +};
> +
> +/* ioctl commands */
> +#define COUNTER_ADD_WATCH_IOCTL _IOW(0x3E, 0x00, struct counter_watch)
> +#define COUNTER_ENABLE_EVENTS_IOCTL _IO(0x3E, 0x01)
> +#define COUNTER_DISABLE_EVENTS_IOCTL _IO(0x3E, 0x02)
> +
> +/**
> + * struct counter_event - Counter event data
> + * @timestamp: best estimate of time of event occurrence, in nanoseconds
> + * @value: component value
> + * @watch: component watch configuration
> + * @status: return status (system error number)
> + */
> +struct counter_event {
> + __aligned_u64 timestamp;
> + __aligned_u64 value;
> + struct counter_watch watch;
> + __u8 status;
> +};
> +
> /* Count direction values */
> enum counter_count_direction {
> COUNTER_COUNT_DIRECTION_FORWARD,
WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <jic23@kernel.org>
To: William Breathitt Gray <vilhelm.gray@gmail.com>
Cc: kamel.bouhara@bootlin.com, gwendal@chromium.org,
a.fatoum@pengutronix.de, david@lechnology.com,
linux-iio@vger.kernel.org, patrick.havelange@essensium.com,
alexandre.belloni@bootlin.com, mcoquelin.stm32@gmail.com,
linux-kernel@vger.kernel.org, o.rempel@pengutronix.de,
Dan Carpenter <dan.carpenter@oracle.com>,
kernel@pengutronix.de, fabrice.gasnier@st.com,
syednwaris@gmail.com, linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org, alexandre.torgue@st.com
Subject: Re: [PATCH v8 17/22] counter: Add character device interface
Date: Sun, 14 Feb 2021 18:06:12 +0000 [thread overview]
Message-ID: <20210214180612.03af6f0d@archlinux> (raw)
In-Reply-To: <720278e3aaf3f249657ec18d158eca3f962baf8e.1613131238.git.vilhelm.gray@gmail.com>
On Fri, 12 Feb 2021 21:13:41 +0900
William Breathitt Gray <vilhelm.gray@gmail.com> wrote:
> This patch introduces a character device interface for the Counter
> subsystem. Device data is exposed through standard character device read
> operations. Device data is gathered when a Counter event is pushed by
> the respective Counter device driver. Configuration is handled via ioctl
> operations on the respective Counter character device node.
>
> Cc: David Lechner <david@lechnology.com>
> Cc: Gwendal Grignou <gwendal@chromium.org>
> Cc: Dan Carpenter <dan.carpenter@oracle.com>
> Cc: Oleksij Rempel <o.rempel@pengutronix.de>
> Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
Hi William,
A few minor comments. Mostly seems to have come together well and
makes sense to me.
Jonathan
> ---
> drivers/counter/Makefile | 2 +-
> drivers/counter/counter-chrdev.c | 496 +++++++++++++++++++++++++++++++
> drivers/counter/counter-chrdev.h | 16 +
> drivers/counter/counter-core.c | 37 ++-
> include/linux/counter.h | 45 +++
> include/uapi/linux/counter.h | 70 +++++
> 6 files changed, 661 insertions(+), 5 deletions(-)
> create mode 100644 drivers/counter/counter-chrdev.c
> create mode 100644 drivers/counter/counter-chrdev.h
>
...
> diff --git a/drivers/counter/counter-core.c b/drivers/counter/counter-core.c
> index bcf672e1fc0d..c137fcb97d9c 100644
> --- a/drivers/counter/counter-core.c
> +++ b/drivers/counter/counter-core.c
> @@ -5,12 +5,16 @@
> */
> #include <linux/counter.h>
> #include <linux/device.h>
> +#include <linux/device/bus.h>
> #include <linux/export.h>
> +#include <linux/fs.h>
> #include <linux/gfp.h>
> #include <linux/idr.h>
> #include <linux/init.h>
> #include <linux/module.h>
> +#include <linux/types.h>
>
> +#include "counter-chrdev.h"
> #include "counter-sysfs.h"
>
> /* Provides a unique ID for each counter device */
> @@ -33,6 +37,8 @@ static struct bus_type counter_bus_type = {
> .name = "counter"
> };
>
> +static dev_t counter_devt;
> +
> /**
> * counter_register - register Counter to the system
> * @counter: pointer to Counter to register
> @@ -54,7 +60,6 @@ int counter_register(struct counter_device *const counter)
> if (counter->id < 0)
> return counter->id;
>
> - /* Configure device structure for Counter */
Not sure why this comment gets removed here.
> dev->type = &counter_device_type;
> dev->bus = &counter_bus_type;
> if (counter->parent) {
> @@ -65,18 +70,25 @@ int counter_register(struct counter_device *const counter)
> device_initialize(dev);
> dev_set_drvdata(dev, counter);
>
> + /* Add Counter character device */
> + err = counter_chrdev_add(counter, counter_devt);
> + if (err < 0)
> + goto err_free_id;
> +
> /* Add Counter sysfs attributes */
> err = counter_sysfs_add(counter);
> if (err < 0)
> - goto err_free_id;
> + goto err_remove_chrdev;
>
> /* Add device to system */
> err = device_add(dev);
> if (err < 0)
> - goto err_free_id;
> + goto err_remove_chrdev;
It might be worth thinking about using cdev_device_add()
though will require a slightly different order of adding.
>
> return 0;
>
> +err_remove_chrdev:
> + counter_chrdev_remove(counter);
> err_free_id:
> put_device(dev);
> return err;
> @@ -138,13 +150,30 @@ int devm_counter_register(struct device *dev,
> }
> EXPORT_SYMBOL_GPL(devm_counter_register);
>
> +#define COUNTER_DEV_MAX 256
> +
> static int __init counter_init(void)
> {
> - return bus_register(&counter_bus_type);
> + int err;
> +
> + err = bus_register(&counter_bus_type);
> + if (err < 0)
> + return err;
> +
> + err = alloc_chrdev_region(&counter_devt, 0, COUNTER_DEV_MAX, "counter");
> + if (err < 0)
> + goto err_unregister_bus;
> +
> + return 0;
> +
> +err_unregister_bus:
> + bus_unregister(&counter_bus_type);
> + return err;
> }
>
> static void __exit counter_exit(void)
> {
> + unregister_chrdev_region(counter_devt, COUNTER_DEV_MAX);
> bus_unregister(&counter_bus_type);
> }
>
...
> diff --git a/include/uapi/linux/counter.h b/include/uapi/linux/counter.h
> index 6113938a6044..3d647a5383b8 100644
> --- a/include/uapi/linux/counter.h
> +++ b/include/uapi/linux/counter.h
> @@ -6,6 +6,19 @@
> #ifndef _UAPI_COUNTER_H_
> #define _UAPI_COUNTER_H_
>
> +#include <linux/ioctl.h>
> +#include <linux/types.h>
> +
> +/* Component type definitions */
> +enum counter_component_type {
> + COUNTER_COMPONENT_NONE,
> + COUNTER_COMPONENT_SIGNAL,
> + COUNTER_COMPONENT_COUNT,
> + COUNTER_COMPONENT_FUNCTION,
> + COUNTER_COMPONENT_SYNAPSE_ACTION,
> + COUNTER_COMPONENT_EXTENSION,
> +};
> +
> /* Component scope definitions */
> enum counter_scope {
> COUNTER_SCOPE_DEVICE,
> @@ -13,6 +26,63 @@ enum counter_scope {
> COUNTER_SCOPE_COUNT,
> };
>
> +/**
> + * struct counter_component - Counter component identification
> + * @type: component type (one of enum counter_component_type)
> + * @scope: component scope (one of enum counter_scope)
> + * @parent: parent component ID (matching the Y/Z suffix of the respective sysfs
> + * path as described in Documentation/ABI/testing/sysfs-bus-counter)
Probably good to give an example here as well as the cross reference.
> + * @id: component ID (matching the Y/Z suffix of the respective sysfs path as
> + * described in Documentation/ABI/testing/sysfs-bus-counter)
> + */
> +struct counter_component {
> + __u8 type;
> + __u8 scope;
> + __u8 parent;
> + __u8 id;
> +};
> +
> +/* Event type definitions */
> +enum counter_event_type {
> + COUNTER_EVENT_OVERFLOW,
> + COUNTER_EVENT_UNDERFLOW,
> + COUNTER_EVENT_OVERFLOW_UNDERFLOW,
> + COUNTER_EVENT_THRESHOLD,
> + COUNTER_EVENT_INDEX,
> +};
> +
> +/**
> + * struct counter_watch - Counter component watch configuration
> + * @component: component to watch when event triggers
> + * @event: event that triggers (one of enum counter_event_type)
> + * @channel: event channel (typically 0 unless the device supports concurrent
> + * events of the same type)
> + */
> +struct counter_watch {
> + struct counter_component component;
> + __u8 event;
> + __u8 channel;
> +};
> +
> +/* ioctl commands */
> +#define COUNTER_ADD_WATCH_IOCTL _IOW(0x3E, 0x00, struct counter_watch)
> +#define COUNTER_ENABLE_EVENTS_IOCTL _IO(0x3E, 0x01)
> +#define COUNTER_DISABLE_EVENTS_IOCTL _IO(0x3E, 0x02)
> +
> +/**
> + * struct counter_event - Counter event data
> + * @timestamp: best estimate of time of event occurrence, in nanoseconds
> + * @value: component value
> + * @watch: component watch configuration
> + * @status: return status (system error number)
> + */
> +struct counter_event {
> + __aligned_u64 timestamp;
> + __aligned_u64 value;
> + struct counter_watch watch;
> + __u8 status;
> +};
> +
> /* Count direction values */
> enum counter_count_direction {
> COUNTER_COUNT_DIRECTION_FORWARD,
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-02-14 18:07 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-12 12:13 [PATCH v8 00/22] Introduce the Counter character device interface William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 01/22] docs: counter: Consolidate Counter sysfs attributes documentation William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-14 16:57 ` Jonathan Cameron
2021-02-14 16:57 ` Jonathan Cameron
2021-02-15 11:05 ` William Breathitt Gray
2021-02-15 11:05 ` William Breathitt Gray
2021-02-20 16:25 ` David Lechner
2021-02-20 16:25 ` David Lechner
2021-02-12 12:13 ` [PATCH v8 02/22] docs: counter: Fix spelling William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-20 16:26 ` David Lechner
2021-02-20 16:26 ` David Lechner
2021-02-12 12:13 ` [PATCH v8 03/22] counter: 104-quad-8: Return error when invalid mode during ceiling_write William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-20 16:30 ` David Lechner
2021-02-20 16:30 ` David Lechner
2021-02-22 2:06 ` William Breathitt Gray
2021-02-22 2:06 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 04/22] counter: 104-quad-8: Annotate hardware config module parameter William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 05/22] counter: 104-quad-8: Add const qualifiers for quad8_preset_register_set William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 06/22] counter: 104-quad-8: Add const qualifier for functions_list array William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 07/22] counter: 104-quad-8: Add const qualifier for actions_list array William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 08/22] counter: ftm-quaddec: " William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 09/22] counter: Return error code on invalid modes William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-14 17:07 ` Jonathan Cameron
2021-02-14 17:07 ` Jonathan Cameron
2021-02-20 16:43 ` David Lechner
2021-02-20 16:43 ` David Lechner
2021-02-22 4:42 ` William Breathitt Gray
2021-02-22 4:42 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 10/22] counter: Standardize to ERANGE for limit exceeded errors William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-14 17:10 ` Jonathan Cameron
2021-02-14 17:10 ` Jonathan Cameron
2021-02-16 1:26 ` William Breathitt Gray
2021-02-16 1:26 ` William Breathitt Gray
2021-02-21 14:03 ` Jonathan Cameron
2021-02-21 14:03 ` Jonathan Cameron
2021-02-20 16:48 ` David Lechner
2021-02-20 16:48 ` David Lechner
2021-02-12 12:13 ` [PATCH v8 11/22] counter: Rename counter_signal_value to counter_signal_level William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-20 16:52 ` David Lechner
2021-02-20 16:52 ` David Lechner
2021-02-12 12:13 ` [PATCH v8 12/22] counter: Rename counter_count_function to counter_function William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-14 17:13 ` Jonathan Cameron
2021-02-14 17:13 ` Jonathan Cameron
2021-02-20 16:56 ` David Lechner
2021-02-20 16:56 ` David Lechner
2021-02-23 5:14 ` William Breathitt Gray
2021-02-23 5:14 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 13/22] counter: Internalize sysfs interface code William Breathitt Gray
2021-02-14 17:32 ` Jonathan Cameron
2021-02-14 17:32 ` Jonathan Cameron
2021-02-20 17:50 ` David Lechner
2021-02-20 17:50 ` David Lechner
2021-02-12 12:13 ` [PATCH v8 14/22] counter: Update counter.h comments to reflect sysfs internalization William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 15/22] docs: counter: Update " William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 16/22] counter: Move counter enums to uapi header William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-20 23:55 ` David Lechner
2021-02-20 23:55 ` David Lechner
2021-02-12 12:13 ` [PATCH v8 17/22] counter: Add character device interface William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-14 18:06 ` Jonathan Cameron [this message]
2021-02-14 18:06 ` Jonathan Cameron
2021-02-24 5:34 ` William Breathitt Gray
2021-02-24 5:34 ` William Breathitt Gray
2021-02-15 9:24 ` Oleksij Rempel
2021-02-15 9:24 ` Oleksij Rempel
2021-02-16 1:53 ` William Breathitt Gray
2021-02-16 1:53 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 18/22] docs: counter: Document " William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-14 17:48 ` Jonathan Cameron
2021-02-14 17:48 ` Jonathan Cameron
2021-02-22 10:11 ` Pavel Machek
2021-02-22 10:11 ` Pavel Machek
2021-02-26 0:27 ` William Breathitt Gray
2021-02-26 0:27 ` William Breathitt Gray
2021-02-26 0:22 ` William Breathitt Gray
2021-02-26 0:22 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 19/22] counter: Implement extension*_name sysfs attributes William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-14 18:09 ` Jonathan Cameron
2021-02-14 18:09 ` Jonathan Cameron
2021-02-19 8:51 ` William Breathitt Gray
2021-02-19 8:51 ` William Breathitt Gray
2021-02-21 14:05 ` Jonathan Cameron
2021-02-21 14:05 ` Jonathan Cameron
2021-02-25 23:32 ` William Breathitt Gray
2021-02-25 23:32 ` William Breathitt Gray
2021-02-27 15:14 ` Jonathan Cameron
2021-02-27 15:14 ` Jonathan Cameron
2021-02-12 12:13 ` [PATCH v8 20/22] counter: Implement events_queue_size sysfs attribute William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-14 18:11 ` Jonathan Cameron
2021-02-14 18:11 ` Jonathan Cameron
2021-02-18 10:32 ` William Breathitt Gray
2021-02-18 10:32 ` William Breathitt Gray
2021-02-21 15:51 ` Jonathan Cameron
2021-02-21 15:51 ` Jonathan Cameron
2021-02-26 0:03 ` William Breathitt Gray
2021-02-26 0:03 ` William Breathitt Gray
2021-02-27 0:14 ` David Lechner
2021-02-27 0:14 ` David Lechner
2021-02-27 0:20 ` William Breathitt Gray
2021-02-27 0:20 ` William Breathitt Gray
2021-02-27 15:18 ` Jonathan Cameron
2021-02-27 15:18 ` Jonathan Cameron
2021-02-28 2:46 ` William Breathitt Gray
2021-02-28 2:46 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 21/22] counter: 104-quad-8: Replace mutex with spinlock William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-14 18:19 ` Jonathan Cameron
2021-02-14 18:19 ` Jonathan Cameron
2021-02-16 2:16 ` William Breathitt Gray
2021-02-16 2:16 ` William Breathitt Gray
2021-02-16 19:27 ` Jonathan Cameron
2021-02-16 19:27 ` Jonathan Cameron
2021-02-18 10:16 ` William Breathitt Gray
2021-02-18 10:16 ` William Breathitt Gray
2021-02-12 12:13 ` [PATCH v8 22/22] counter: 104-quad-8: Add IRQ support for the ACCES 104-QUAD-8 William Breathitt Gray
2021-02-12 12:13 ` William Breathitt Gray
2021-02-14 18:24 ` Jonathan Cameron
2021-02-14 18:24 ` Jonathan Cameron
2021-02-19 9:21 ` William Breathitt Gray
2021-02-19 9:21 ` William Breathitt Gray
-- strict thread matches above, loose matches on Subject: below --
2021-02-13 0:17 [PATCH v8 17/22] counter: Add character device interface kernel test robot
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=20210214180612.03af6f0d@archlinux \
--to=jic23@kernel.org \
--cc=a.fatoum@pengutronix.de \
--cc=alexandre.belloni@bootlin.com \
--cc=alexandre.torgue@st.com \
--cc=dan.carpenter@oracle.com \
--cc=david@lechnology.com \
--cc=fabrice.gasnier@st.com \
--cc=gwendal@chromium.org \
--cc=kamel.bouhara@bootlin.com \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=o.rempel@pengutronix.de \
--cc=patrick.havelange@essensium.com \
--cc=syednwaris@gmail.com \
--cc=vilhelm.gray@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.