From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: linux-media@vger.kernel.org
Cc: laurent.pinchart@ideasonboard.com,
Philipp Zabel <p.zabel@pengutronix.de>,
hverkuil@xs4all.nl, Francesco Dolcini <francesco@dolcini.it>,
aishwarya.kothari@toradex.com, Robert Foss <rfoss@kernel.org>,
Todor Tomov <todor.too@gmail.com>,
Hyun Kwon <hyun.kwon@xilinx.com>,
bingbu.cao@intel.com
Subject: [PATCH v2 11/31] media: v4l: async: Clean up list heads and entries
Date: Tue, 16 May 2023 12:54:57 +0300 [thread overview]
Message-ID: <20230516095517.611711-12-sakari.ailus@linux.intel.com> (raw)
In-Reply-To: <20230516095517.611711-1-sakari.ailus@linux.intel.com>
The naming of list heads and list entries is confusing as they're named
similarly. Use _list for list head and _entry for list entries.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 2 +-
drivers/media/platform/xilinx/xilinx-vipp.c | 6 +--
drivers/media/v4l2-core/v4l2-async.c | 54 +++++++++----------
drivers/staging/media/tegra-video/vi.c | 4 +-
include/media/v4l2-async.h | 36 ++++++-------
include/media/v4l2-subdev.h | 2 +-
6 files changed, 52 insertions(+), 52 deletions(-)
diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c b/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
index 3c84cb1216320..9231d6a65f4ec 100644
--- a/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
+++ b/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
@@ -1420,7 +1420,7 @@ static int cio2_notifier_complete(struct v4l2_async_notifier *notifier)
unsigned int pad;
int ret;
- list_for_each_entry(asd, &cio2->notifier.asd_list, asd_list) {
+ list_for_each_entry(asd, &cio2->notifier.asd_list, asd_entry) {
s_asd = to_sensor_asd(asd);
q = &cio2->queue[s_asd->csi2.port];
diff --git a/drivers/media/platform/xilinx/xilinx-vipp.c b/drivers/media/platform/xilinx/xilinx-vipp.c
index b309af0c83749..52c5a7decf284 100644
--- a/drivers/media/platform/xilinx/xilinx-vipp.c
+++ b/drivers/media/platform/xilinx/xilinx-vipp.c
@@ -56,7 +56,7 @@ xvip_graph_find_entity(struct xvip_composite_device *xdev,
struct xvip_graph_entity *entity;
struct v4l2_async_subdev *asd;
- list_for_each_entry(asd, &xdev->notifier.asd_list, asd_list) {
+ list_for_each_entry(asd, &xdev->notifier.asd_list, asd_entry) {
entity = to_xvip_entity(asd);
if (entity->asd.match.fwnode == fwnode)
return entity;
@@ -291,7 +291,7 @@ static int xvip_graph_notify_complete(struct v4l2_async_notifier *notifier)
dev_dbg(xdev->dev, "notify complete, all subdevs registered\n");
/* Create links for every entity. */
- list_for_each_entry(asd, &xdev->notifier.asd_list, asd_list) {
+ list_for_each_entry(asd, &xdev->notifier.asd_list, asd_entry) {
entity = to_xvip_entity(asd);
ret = xvip_graph_build_one(xdev, entity);
if (ret < 0)
@@ -393,7 +393,7 @@ static int xvip_graph_parse(struct xvip_composite_device *xdev)
if (ret < 0)
return 0;
- list_for_each_entry(asd, &xdev->notifier.asd_list, asd_list) {
+ list_for_each_entry(asd, &xdev->notifier.asd_list, asd_entry) {
entity = to_xvip_entity(asd);
ret = xvip_graph_parse_one(xdev, entity->asd.match.fwnode);
if (ret < 0) {
diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
index 87a34749a8cdc..82016b92102d4 100644
--- a/drivers/media/v4l2-core/v4l2-async.c
+++ b/drivers/media/v4l2-core/v4l2-async.c
@@ -213,7 +213,7 @@ v4l2_async_find_match(struct v4l2_async_notifier *notifier,
struct v4l2_async_match_desc *match);
struct v4l2_async_subdev *asd;
- list_for_each_entry(asd, ¬ifier->waiting, list) {
+ list_for_each_entry(asd, ¬ifier->waiting_list, waiting_entry) {
/* bus_type has been verified valid before */
switch (asd->match.type) {
case V4L2_ASYNC_MATCH_TYPE_I2C:
@@ -262,7 +262,7 @@ v4l2_async_find_subdev_notifier(struct v4l2_subdev *sd)
{
struct v4l2_async_notifier *n;
- list_for_each_entry(n, ¬ifier_list, list)
+ list_for_each_entry(n, ¬ifier_list, notifier_entry)
if (n->sd == sd)
return n;
@@ -287,10 +287,10 @@ v4l2_async_nf_can_complete(struct v4l2_async_notifier *notifier)
{
struct v4l2_subdev *sd;
- if (!list_empty(¬ifier->waiting))
+ if (!list_empty(¬ifier->waiting_list))
return false;
- list_for_each_entry(sd, ¬ifier->done, async_list) {
+ list_for_each_entry(sd, ¬ifier->done_list, async_list) {
struct v4l2_async_notifier *subdev_notifier =
v4l2_async_find_subdev_notifier(sd);
@@ -312,7 +312,7 @@ v4l2_async_nf_try_complete(struct v4l2_async_notifier *notifier)
struct v4l2_async_notifier *__notifier = notifier;
/* Quick check whether there are still more sub-devices here. */
- if (!list_empty(¬ifier->waiting))
+ if (!list_empty(¬ifier->waiting_list))
return 0;
if (notifier->sd)
@@ -391,13 +391,12 @@ static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier,
return ret;
}
- /* Remove from the waiting list */
- list_del(&asd->list);
+ list_del(&asd->waiting_entry);
sd->asd = asd;
sd->notifier = notifier;
/* Move from the global subdevice list to notifier's done */
- list_move(&sd->async_list, ¬ifier->done);
+ list_move(&sd->async_list, ¬ifier->done_list);
dev_dbg(notifier_dev(notifier), "v4l2-async: %s bound (ret %d)\n",
dev_name(sd->dev), ret);
@@ -478,7 +477,7 @@ v4l2_async_nf_unbind_all_subdevs(struct v4l2_async_notifier *notifier,
{
struct v4l2_subdev *sd, *tmp;
- list_for_each_entry_safe(sd, tmp, ¬ifier->done, async_list) {
+ list_for_each_entry_safe(sd, tmp, ¬ifier->done_list, async_list) {
struct v4l2_async_notifier *subdev_notifier =
v4l2_async_find_subdev_notifier(sd);
@@ -487,7 +486,8 @@ v4l2_async_nf_unbind_all_subdevs(struct v4l2_async_notifier *notifier,
v4l2_async_nf_call_unbind(notifier, sd, sd->asd);
if (readd)
- list_add_tail(&sd->asd->list, ¬ifier->waiting);
+ list_add_tail(&sd->asd->waiting_entry,
+ ¬ifier->waiting_list);
v4l2_async_cleanup(sd);
list_move(&sd->async_list, &subdev_list);
@@ -504,11 +504,11 @@ v4l2_async_nf_has_async_match_entry(struct v4l2_async_notifier *notifier,
struct v4l2_async_subdev *asd;
struct v4l2_subdev *sd;
- list_for_each_entry(asd, ¬ifier->waiting, list)
+ list_for_each_entry(asd, ¬ifier->waiting_list, waiting_entry)
if (v4l2_async_match_equal(&asd->match, match))
return true;
- list_for_each_entry(sd, ¬ifier->done, async_list) {
+ list_for_each_entry(sd, ¬ifier->done_list, async_list) {
if (WARN_ON(!sd->asd))
continue;
@@ -533,7 +533,7 @@ v4l2_async_nf_has_async_match(struct v4l2_async_notifier *notifier,
lockdep_assert_held(&list_lock);
/* Check that an asd is not being added more than once. */
- list_for_each_entry(asd, ¬ifier->asd_list, asd_list) {
+ list_for_each_entry(asd, ¬ifier->asd_list, asd_entry) {
if (skip_self && &asd->match == match)
break;
if (v4l2_async_match_equal(&asd->match, match))
@@ -541,7 +541,7 @@ v4l2_async_nf_has_async_match(struct v4l2_async_notifier *notifier,
}
/* Check that an asd does not exist in other notifiers. */
- list_for_each_entry(notifier, ¬ifier_list, list)
+ list_for_each_entry(notifier, ¬ifier_list, notifier_entry)
if (v4l2_async_nf_has_async_match_entry(notifier, match))
return true;
@@ -583,17 +583,17 @@ static int __v4l2_async_nf_register(struct v4l2_async_notifier *notifier)
struct v4l2_async_subdev *asd;
int ret;
- INIT_LIST_HEAD(¬ifier->waiting);
- INIT_LIST_HEAD(¬ifier->done);
+ INIT_LIST_HEAD(¬ifier->waiting_list);
+ INIT_LIST_HEAD(¬ifier->done_list);
mutex_lock(&list_lock);
- list_for_each_entry(asd, ¬ifier->asd_list, asd_list) {
+ list_for_each_entry(asd, ¬ifier->asd_list, asd_entry) {
ret = v4l2_async_nf_match_valid(notifier, &asd->match, true);
if (ret)
goto err_unlock;
- list_add_tail(&asd->list, ¬ifier->waiting);
+ list_add_tail(&asd->waiting_entry, ¬ifier->waiting_list);
}
ret = v4l2_async_nf_try_all_subdevs(notifier);
@@ -605,7 +605,7 @@ static int __v4l2_async_nf_register(struct v4l2_async_notifier *notifier)
goto err_unbind;
/* Keep also completed notifiers on the list */
- list_add(¬ifier->list, ¬ifier_list);
+ list_add(¬ifier->notifier_entry, ¬ifier_list);
mutex_unlock(&list_lock);
@@ -670,7 +670,7 @@ __v4l2_async_nf_unregister(struct v4l2_async_notifier *notifier)
notifier->sd = NULL;
notifier->v4l2_dev = NULL;
- list_del(¬ifier->list);
+ list_del(¬ifier->notifier_entry);
}
void v4l2_async_nf_unregister(struct v4l2_async_notifier *notifier)
@@ -690,7 +690,7 @@ static void __v4l2_async_nf_cleanup(struct v4l2_async_notifier *notifier)
if (!notifier || !notifier->asd_list.next)
return;
- list_for_each_entry_safe(asd, tmp, ¬ifier->asd_list, asd_list) {
+ list_for_each_entry_safe(asd, tmp, ¬ifier->asd_list, asd_entry) {
switch (asd->match.type) {
case V4L2_ASYNC_MATCH_TYPE_FWNODE:
fwnode_handle_put(asd->match.fwnode);
@@ -699,7 +699,7 @@ static void __v4l2_async_nf_cleanup(struct v4l2_async_notifier *notifier)
break;
}
- list_del(&asd->asd_list);
+ list_del(&asd->asd_entry);
v4l2_async_nf_call_destroy(notifier, asd);
kfree(asd);
}
@@ -727,7 +727,7 @@ static int __v4l2_async_nf_add_subdev(struct v4l2_async_notifier *notifier,
if (ret)
goto unlock;
- list_add_tail(&asd->asd_list, ¬ifier->asd_list);
+ list_add_tail(&asd->asd_entry, ¬ifier->asd_list);
unlock:
mutex_unlock(&list_lock);
@@ -823,7 +823,7 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd)
mutex_lock(&list_lock);
- list_for_each_entry(notifier, ¬ifier_list, list) {
+ list_for_each_entry(notifier, ¬ifier_list, notifier_entry) {
struct v4l2_device *v4l2_dev =
v4l2_async_nf_find_v4l2_dev(notifier);
struct v4l2_async_subdev *asd;
@@ -890,7 +890,7 @@ void v4l2_async_unregister_subdev(struct v4l2_subdev *sd)
if (sd->asd) {
struct v4l2_async_notifier *notifier = sd->notifier;
- list_add(&sd->asd->list, ¬ifier->waiting);
+ list_add(&sd->asd->waiting_entry, ¬ifier->waiting_list);
v4l2_async_nf_call_unbind(notifier, sd, sd->asd);
}
@@ -944,9 +944,9 @@ static int pending_subdevs_show(struct seq_file *s, void *data)
mutex_lock(&list_lock);
- list_for_each_entry(notif, ¬ifier_list, list) {
+ list_for_each_entry(notif, ¬ifier_list, notifier_entry) {
seq_printf(s, "%s:\n", v4l2_async_nf_name(notif));
- list_for_each_entry(asd, ¬if->waiting, list)
+ list_for_each_entry(asd, ¬if->waiting_list, waiting_entry)
print_waiting_match(s, &asd->match);
}
diff --git a/drivers/staging/media/tegra-video/vi.c b/drivers/staging/media/tegra-video/vi.c
index 2f1aff7e87170..350871f34f7cc 100644
--- a/drivers/staging/media/tegra-video/vi.c
+++ b/drivers/staging/media/tegra-video/vi.c
@@ -1565,7 +1565,7 @@ tegra_vi_graph_find_entity(struct tegra_vi_channel *chan,
struct tegra_vi_graph_entity *entity;
struct v4l2_async_subdev *asd;
- list_for_each_entry(asd, &chan->notifier.asd_list, asd_list) {
+ list_for_each_entry(asd, &chan->notifier.asd_list, asd_entry) {
entity = to_tegra_vi_graph_entity(asd);
if (entity->asd.match.fwnode == fwnode)
return entity;
@@ -1709,7 +1709,7 @@ static int tegra_vi_graph_notify_complete(struct v4l2_async_notifier *notifier)
}
/* create links between the entities */
- list_for_each_entry(asd, &chan->notifier.asd_list, asd_list) {
+ list_for_each_entry(asd, &chan->notifier.asd_list, asd_entry) {
entity = to_tegra_vi_graph_entity(asd);
ret = tegra_vi_graph_build(chan, entity);
if (ret < 0)
diff --git a/include/media/v4l2-async.h b/include/media/v4l2-async.h
index 8d1506a9755c3..54f9f45ed3d8e 100644
--- a/include/media/v4l2-async.h
+++ b/include/media/v4l2-async.h
@@ -65,10 +65,10 @@ struct v4l2_async_match_desc {
* struct v4l2_async_subdev - sub-device descriptor, as known to a bridge
*
* @match: struct of match type and per-bus type matching data sets
- * @asd_list: used to add struct v4l2_async_subdev objects to the
- * master notifier @asd_list
- * @list: used to link struct v4l2_async_subdev objects, waiting to be
- * probed, to a notifier->waiting list
+ * @asd_entry: used to add struct v4l2_async_subdev objects to the
+ * master notifier @asd_entry
+ * @waiting_entry: used to link struct v4l2_async_subdev objects, waiting to be
+ * probed, to a notifier->waiting_list list
*
* When this struct is used as a member in a driver specific struct,
* the driver specific struct shall contain the &struct
@@ -76,8 +76,8 @@ struct v4l2_async_match_desc {
*/
struct v4l2_async_subdev {
struct v4l2_async_match_desc match;
- struct list_head list;
- struct list_head asd_list;
+ struct list_head asd_entry;
+ struct list_head waiting_entry;
};
/**
@@ -107,9 +107,9 @@ struct v4l2_async_notifier_operations {
* @sd: sub-device that registered the notifier, NULL otherwise
* @parent: parent notifier
* @asd_list: master list of struct v4l2_async_subdev
- * @waiting: list of struct v4l2_async_subdev, waiting for their drivers
- * @done: list of struct v4l2_subdev, already probed
- * @list: member in a global list of notifiers
+ * @waiting_list: list of struct v4l2_async_subdev, waiting for their drivers
+ * @done_list: list of struct v4l2_subdev, already probed
+ * @notifier_entry: member in a global list of notifiers
*/
struct v4l2_async_notifier {
const struct v4l2_async_notifier_operations *ops;
@@ -117,9 +117,9 @@ struct v4l2_async_notifier {
struct v4l2_subdev *sd;
struct v4l2_async_notifier *parent;
struct list_head asd_list;
- struct list_head waiting;
- struct list_head done;
- struct list_head list;
+ struct list_head waiting_list;
+ struct list_head done_list;
+ struct list_head notifier_entry;
};
/**
@@ -134,7 +134,7 @@ void v4l2_async_debug_init(struct dentry *debugfs_dir);
*
* @notifier: pointer to &struct v4l2_async_notifier
*
- * This function initializes the notifier @asd_list. It must be called
+ * This function initializes the notifier @asd_entry. It must be called
* before adding a subdevice to a notifier, using one of:
* v4l2_async_nf_add_fwnode_remote(), v4l2_async_nf_add_fwnode() or
* v4l2_async_nf_add_i2c().
@@ -147,7 +147,7 @@ __v4l2_async_nf_add_fwnode(struct v4l2_async_notifier *notifier,
unsigned int asd_struct_size);
/**
* v4l2_async_nf_add_fwnode - Allocate and add a fwnode async
- * subdev to the notifier's master asd_list.
+ * subdev to the notifier's master asd_entry.
*
* @notifier: pointer to &struct v4l2_async_notifier
* @fwnode: fwnode handle of the sub-device to be matched, pointer to
@@ -157,7 +157,7 @@ __v4l2_async_nf_add_fwnode(struct v4l2_async_notifier *notifier,
* sub-device struct, i.e. both begin at the same memory address.
*
* Allocate a fwnode-matched asd of size asd_struct_size, and add it to the
- * notifiers @asd_list. The function also gets a reference of the fwnode which
+ * notifiers @asd_entry. The function also gets a reference of the fwnode which
* is released later at notifier cleanup time.
*/
#define v4l2_async_nf_add_fwnode(notifier, fwnode, type) \
@@ -170,7 +170,7 @@ __v4l2_async_nf_add_fwnode_remote(struct v4l2_async_notifier *notif,
/**
* v4l2_async_nf_add_fwnode_remote - Allocate and add a fwnode
* remote async subdev to the
- * notifier's master asd_list.
+ * notifier's master asd_entry.
*
* @notifier: pointer to &struct v4l2_async_notifier
* @ep: local endpoint pointing to the remote sub-device to be matched,
@@ -180,7 +180,7 @@ __v4l2_async_nf_add_fwnode_remote(struct v4l2_async_notifier *notif,
* sub-device struct, i.e. both begin at the same memory address.
*
* Gets the remote endpoint of a given local endpoint, set it up for fwnode
- * matching and adds the async sub-device to the notifier's @asd_list. The
+ * matching and adds the async sub-device to the notifier's @asd_entry. The
* function also gets a reference of the fwnode which is released later at
* notifier cleanup time.
*
@@ -196,7 +196,7 @@ __v4l2_async_nf_add_i2c(struct v4l2_async_notifier *notifier,
unsigned int asd_struct_size);
/**
* v4l2_async_nf_add_i2c - Allocate and add an i2c async
- * subdev to the notifier's master asd_list.
+ * subdev to the notifier's master asd_entry.
*
* @notifier: pointer to &struct v4l2_async_notifier
* @adapter: I2C adapter ID to be matched
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
index cfd19e72d0fc4..82e4cf3dd2e05 100644
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
@@ -1020,7 +1020,7 @@ struct v4l2_subdev_platform_data {
* @dev: pointer to the physical device, if any
* @fwnode: The fwnode_handle of the subdev, usually the same as
* either dev->of_node->fwnode or dev->fwnode (whichever is non-NULL).
- * @async_list: Links this subdev to a global subdev_list or @notifier->done
+ * @async_list: Links this subdev to a global subdev_entry or @notifier->done
* list.
* @asd: Pointer to respective &struct v4l2_async_subdev.
* @notifier: Pointer to the managing notifier.
--
2.30.2
next prev parent reply other threads:[~2023-05-16 9:56 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-16 9:54 [PATCH v2 00/31] Separate links and async sub-devices Sakari Ailus
2023-05-16 9:54 ` [PATCH v2 01/31] media: v4l: async: Drop v4l2_async_nf_parse_fwnode_endpoints() Sakari Ailus
2023-05-16 9:54 ` [PATCH v2 02/31] media: Documentation: v4l: Document missing async subdev function Sakari Ailus
2023-05-16 9:54 ` [PATCH v2 03/31] media: xilinx-vipp: Clean up bound async notifier callback Sakari Ailus
2023-05-16 9:54 ` [PATCH v2 04/31] media: v4l: async: Add some debug prints Sakari Ailus
2023-05-16 9:54 ` [PATCH v2 05/31] media: v4l: async: Clean testing for duplicated async subdevs Sakari Ailus
2023-05-16 9:54 ` [PATCH v2 06/31] media: v4l: async: Drop unneeded list entry initialisation Sakari Ailus
2023-05-16 9:54 ` [PATCH v2 07/31] media: v4l: async: Don't check whether asd is NULL in validity check Sakari Ailus
2023-05-16 9:54 ` [PATCH v2 08/31] media: v4l: async: Make V4L2 async match information a struct Sakari Ailus
2023-05-16 9:54 ` [PATCH v2 09/31] media: v4l: async: Rename V4L2_ASYNC_MATCH_ macros, add TYPE_ Sakari Ailus
2023-05-16 9:54 ` [PATCH v2 10/31] media: v4l: async: Only pass match information for async subdev validation Sakari Ailus
2023-05-16 9:54 ` Sakari Ailus [this message]
2023-05-16 9:54 ` [PATCH v2 12/31] media: v4l: async: Simplify async sub-device fwnode matching Sakari Ailus
2023-05-16 9:54 ` [PATCH v2 13/31] media: v4l: async: Rename v4l2_async_subdev as v4l2_async_connection Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 14/31] media: v4l: async: Clean up error handling in v4l2_async_match_notify Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 15/31] media: v4l: async: Drop duplicate handling when adding connections Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 16/31] media: v4l: async: Rework internal lists Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 17/31] media: v4l: async: Obtain async connection based on sub-device Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 18/31] media: v4l: async: Differentiate connecting and creating sub-devices Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 19/31] media: v4l: async: Try more connections Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 20/31] media: v4l: async: Support fwnode endpoint list matching for subdevs Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 21/31] media: adv748x: Return to endpoint matching Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 22/31] media: pxa_camera: Fix probe error handling Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 23/31] media: pxa_camera: Register V4L2 device early, fix " Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 24/31] media: marvell: cafe: Register V4L2 device earlier Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 25/31] media: am437x-vpfe: Register V4L2 device early Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 26/31] media: omap3isp: Initialise V4L2 async notifier later Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 27/31] media: xilinx-vipp: Init async notifier after registering V4L2 device Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 28/31] media: davinci: " Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 29/31] media: qcom: Initialise V4L2 async notifier later Sakari Ailus
2023-05-16 9:55 ` [PATCH v2 30/31] media: v4l: async: Set v4l2_device in async notifier init Sakari Ailus
2023-05-16 20:46 ` kernel test robot
2023-05-16 9:55 ` [PATCH v2 31/31] media: Documentation: v4l: Document sub-device notifiers Sakari Ailus
2023-05-17 7:57 ` [PATCH v2 00/31] Separate links and async sub-devices Alexander Stein
2023-05-17 9:15 ` Sakari Ailus
2023-05-17 9:16 ` Sakari Ailus
2023-05-17 9:43 ` Philipp Zabel
2023-05-17 11:24 ` Marcel Ziswiler
2023-05-17 12:06 ` Philipp Zabel
2023-05-17 21:33 ` Sakari Ailus
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=20230516095517.611711-12-sakari.ailus@linux.intel.com \
--to=sakari.ailus@linux.intel.com \
--cc=aishwarya.kothari@toradex.com \
--cc=bingbu.cao@intel.com \
--cc=francesco@dolcini.it \
--cc=hverkuil@xs4all.nl \
--cc=hyun.kwon@xilinx.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=rfoss@kernel.org \
--cc=todor.too@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.