* [PATCH 0/3] Random cleanups
@ 2023-05-05 20:50 Sakari Ailus
2023-05-05 20:50 ` [PATCH 1/3] media: mc: Make media_get_pad_index() use pad type flag Sakari Ailus
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Sakari Ailus @ 2023-05-05 20:50 UTC (permalink / raw)
To: linux-media; +Cc: laurent.pinchart, tomi.valkeinen, bingbu.cao
Hi all,
These three patches are seemingly random cleanups but are a pre-requisite
for another set for supporting generic metadata formats. I'll post that
set separately. These three should be merged independently though..
Sakari Ailus (3):
media: mc: Make media_get_pad_index() use pad type flag
media: Documentation: Rename meta format files
media: uapi: Use unsigned int values for assigning bits in u32 fields
.../userspace-api/media/v4l/meta-formats.rst | 14 +++----
...{pixfmt-meta-d4xx.rst => metafmt-d4xx.rst} | 0
...-intel-ipu3.rst => metafmt-intel-ipu3.rst} | 0
...fmt-meta-rkisp1.rst => metafmt-rkisp1.rst} | 0
.../{pixfmt-meta-uvc.rst => metafmt-uvc.rst} | 0
...ixfmt-meta-vivid.rst => metafmt-vivid.rst} | 0
...meta-vsp1-hgo.rst => metafmt-vsp1-hgo.rst} | 0
...meta-vsp1-hgt.rst => metafmt-vsp1-hgt.rst} | 0
MAINTAINERS | 4 +-
drivers/media/dvb-core/dvbdev.c | 4 +-
drivers/media/mc/mc-entity.c | 16 +++-----
drivers/media/usb/au0828/au0828-core.c | 2 +-
drivers/media/v4l2-core/v4l2-mc.c | 38 ++++++++++++-------
include/media/media-entity.h | 4 +-
include/uapi/linux/media.h | 28 +++++++-------
15 files changed, 58 insertions(+), 52 deletions(-)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-d4xx.rst => metafmt-d4xx.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-intel-ipu3.rst => metafmt-intel-ipu3.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-rkisp1.rst => metafmt-rkisp1.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-uvc.rst => metafmt-uvc.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-vivid.rst => metafmt-vivid.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-vsp1-hgo.rst => metafmt-vsp1-hgo.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-vsp1-hgt.rst => metafmt-vsp1-hgt.rst} (100%)
--
2.30.2
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/3] media: mc: Make media_get_pad_index() use pad type flag
2023-05-05 20:50 [PATCH 0/3] Random cleanups Sakari Ailus
@ 2023-05-05 20:50 ` Sakari Ailus
2023-05-06 11:25 ` Laurent Pinchart
2023-05-05 20:51 ` [PATCH 2/3] media: Documentation: Rename meta format files Sakari Ailus
2023-05-05 20:51 ` [PATCH 3/3] media: uapi: Use unsigned int values for assigning bits in u32 fields Sakari Ailus
2 siblings, 1 reply; 13+ messages in thread
From: Sakari Ailus @ 2023-05-05 20:50 UTC (permalink / raw)
To: linux-media; +Cc: laurent.pinchart, tomi.valkeinen, bingbu.cao
Use the pad flag specifying the pad type instead of a boolean in
preparation for internal source pads.
Also make the loop variable unsigned.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
drivers/media/dvb-core/dvbdev.c | 4 +--
drivers/media/mc/mc-entity.c | 16 ++++-------
drivers/media/usb/au0828/au0828-core.c | 2 +-
drivers/media/v4l2-core/v4l2-mc.c | 38 +++++++++++++++++---------
include/media/media-entity.h | 4 +--
5 files changed, 35 insertions(+), 29 deletions(-)
diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
index 0ed087caf7f3..0091b5375e45 100644
--- a/drivers/media/dvb-core/dvbdev.c
+++ b/drivers/media/dvb-core/dvbdev.c
@@ -707,7 +707,7 @@ int dvb_create_media_graph(struct dvb_adapter *adap,
MEDIA_LNK_FL_ENABLED,
false);
} else {
- pad_sink = media_get_pad_index(tuner, true,
+ pad_sink = media_get_pad_index(tuner, MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_sink < 0)
return -EINVAL;
@@ -725,7 +725,7 @@ int dvb_create_media_graph(struct dvb_adapter *adap,
if (ntuner && ndemod) {
/* NOTE: first found tuner source pad presumed correct */
- pad_source = media_get_pad_index(tuner, false,
+ pad_source = media_get_pad_index(tuner, MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_ANALOG);
if (pad_source < 0)
return -EINVAL;
diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c
index e7216a985ba6..ef34ddd715c9 100644
--- a/drivers/media/mc/mc-entity.c
+++ b/drivers/media/mc/mc-entity.c
@@ -1052,25 +1052,19 @@ static void __media_entity_remove_link(struct media_entity *entity,
kfree(link);
}
-int media_get_pad_index(struct media_entity *entity, bool is_sink,
+int media_get_pad_index(struct media_entity *entity, u32 pad_type,
enum media_pad_signal_type sig_type)
{
- int i;
- bool pad_is_sink;
+ unsigned int i;
if (!entity)
return -EINVAL;
for (i = 0; i < entity->num_pads; i++) {
- if (entity->pads[i].flags & MEDIA_PAD_FL_SINK)
- pad_is_sink = true;
- else if (entity->pads[i].flags & MEDIA_PAD_FL_SOURCE)
- pad_is_sink = false;
- else
- continue; /* This is an error! */
-
- if (pad_is_sink != is_sink)
+ if ((entity->pads[i].flags &
+ (MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_SOURCE)) != pad_type)
continue;
+
if (entity->pads[i].sig_type == sig_type)
return i;
}
diff --git a/drivers/media/usb/au0828/au0828-core.c b/drivers/media/usb/au0828/au0828-core.c
index b3a09d3ac7d2..1e246b47766d 100644
--- a/drivers/media/usb/au0828/au0828-core.c
+++ b/drivers/media/usb/au0828/au0828-core.c
@@ -250,7 +250,7 @@ static void au0828_media_graph_notify(struct media_entity *new,
create_link:
if (decoder && mixer) {
- ret = media_get_pad_index(decoder, false,
+ ret = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_AUDIO);
if (ret >= 0)
ret = media_create_pad_link(decoder, ret,
diff --git a/drivers/media/v4l2-core/v4l2-mc.c b/drivers/media/v4l2-core/v4l2-mc.c
index bf0c18100664..209a7efd08fe 100644
--- a/drivers/media/v4l2-core/v4l2-mc.c
+++ b/drivers/media/v4l2-core/v4l2-mc.c
@@ -105,9 +105,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
/* Link the tuner and IF video output pads */
if (tuner) {
if (if_vid) {
- pad_source = media_get_pad_index(tuner, false,
+ pad_source = media_get_pad_index(tuner,
+ MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_ANALOG);
- pad_sink = media_get_pad_index(if_vid, true,
+ pad_sink = media_get_pad_index(if_vid,
+ MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_source < 0 || pad_sink < 0) {
dev_warn(mdev->dev, "Couldn't get tuner and/or PLL pad(s): (%d, %d)\n",
@@ -122,9 +124,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
return ret;
}
- pad_source = media_get_pad_index(if_vid, false,
+ pad_source = media_get_pad_index(if_vid,
+ MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_ANALOG);
- pad_sink = media_get_pad_index(decoder, true,
+ pad_sink = media_get_pad_index(decoder,
+ MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_source < 0 || pad_sink < 0) {
dev_warn(mdev->dev, "get decoder and/or PLL pad(s): (%d, %d)\n",
@@ -139,9 +143,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
return ret;
}
} else {
- pad_source = media_get_pad_index(tuner, false,
+ pad_source = media_get_pad_index(tuner,
+ MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_ANALOG);
- pad_sink = media_get_pad_index(decoder, true,
+ pad_sink = media_get_pad_index(decoder,
+ MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_source < 0 || pad_sink < 0) {
dev_warn(mdev->dev, "couldn't get tuner and/or decoder pad(s): (%d, %d)\n",
@@ -156,9 +162,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
}
if (if_aud) {
- pad_source = media_get_pad_index(tuner, false,
+ pad_source = media_get_pad_index(tuner,
+ MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_AUDIO);
- pad_sink = media_get_pad_index(if_aud, true,
+ pad_sink = media_get_pad_index(if_aud,
+ MEDIA_PAD_FL_SINK,
PAD_SIGNAL_AUDIO);
if (pad_source < 0 || pad_sink < 0) {
dev_warn(mdev->dev, "couldn't get tuner and/or decoder pad(s) for audio: (%d, %d)\n",
@@ -180,7 +188,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
/* Create demod to V4L, VBI and SDR radio links */
if (io_v4l) {
- pad_source = media_get_pad_index(decoder, false, PAD_SIGNAL_DV);
+ pad_source = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
+ PAD_SIGNAL_DV);
if (pad_source < 0) {
dev_warn(mdev->dev, "couldn't get decoder output pad for V4L I/O\n");
return -EINVAL;
@@ -195,7 +204,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
}
if (io_swradio) {
- pad_source = media_get_pad_index(decoder, false, PAD_SIGNAL_DV);
+ pad_source = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
+ PAD_SIGNAL_DV);
if (pad_source < 0) {
dev_warn(mdev->dev, "couldn't get decoder output pad for SDR\n");
return -EINVAL;
@@ -210,7 +220,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
}
if (io_vbi) {
- pad_source = media_get_pad_index(decoder, false, PAD_SIGNAL_DV);
+ pad_source = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
+ PAD_SIGNAL_DV);
if (pad_source < 0) {
dev_warn(mdev->dev, "couldn't get decoder output pad for VBI\n");
return -EINVAL;
@@ -231,7 +242,7 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
case MEDIA_ENT_F_CONN_RF:
if (!tuner)
continue;
- pad_sink = media_get_pad_index(tuner, true,
+ pad_sink = media_get_pad_index(tuner, MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_sink < 0) {
dev_warn(mdev->dev, "couldn't get tuner analog pad sink\n");
@@ -243,7 +254,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
break;
case MEDIA_ENT_F_CONN_SVIDEO:
case MEDIA_ENT_F_CONN_COMPOSITE:
- pad_sink = media_get_pad_index(decoder, true,
+ pad_sink = media_get_pad_index(decoder,
+ MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_sink < 0) {
dev_warn(mdev->dev, "couldn't get decoder analog pad sink\n");
diff --git a/include/media/media-entity.h b/include/media/media-entity.h
index 741f9c629c6f..e4f556911c3f 100644
--- a/include/media/media-entity.h
+++ b/include/media/media-entity.h
@@ -741,7 +741,7 @@ static inline void media_entity_cleanup(struct media_entity *entity) {}
* media_get_pad_index() - retrieves a pad index from an entity
*
* @entity: entity where the pads belong
- * @is_sink: true if the pad is a sink, false if it is a source
+ * @pad_type: the type of the pad, one of MEDIA_PAD_FL_* pad types
* @sig_type: type of signal of the pad to be search
*
* This helper function finds the first pad index inside an entity that
@@ -752,7 +752,7 @@ static inline void media_entity_cleanup(struct media_entity *entity) {}
* On success, return the pad number. If the pad was not found or the media
* entity is a NULL pointer, return -EINVAL.
*/
-int media_get_pad_index(struct media_entity *entity, bool is_sink,
+int media_get_pad_index(struct media_entity *entity, u32 pad_type,
enum media_pad_signal_type sig_type);
/**
--
2.30.2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/3] media: Documentation: Rename meta format files
2023-05-05 20:50 [PATCH 0/3] Random cleanups Sakari Ailus
2023-05-05 20:50 ` [PATCH 1/3] media: mc: Make media_get_pad_index() use pad type flag Sakari Ailus
@ 2023-05-05 20:51 ` Sakari Ailus
2023-05-06 11:25 ` Laurent Pinchart
2023-05-05 20:51 ` [PATCH 3/3] media: uapi: Use unsigned int values for assigning bits in u32 fields Sakari Ailus
2 siblings, 1 reply; 13+ messages in thread
From: Sakari Ailus @ 2023-05-05 20:51 UTC (permalink / raw)
To: linux-media; +Cc: laurent.pinchart, tomi.valkeinen, bingbu.cao
Rename meta format files, using "metafmt" prefix instead of "pixfmt-meta".
These are metadata formats, not pixel formats.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: Bingbu Cao <bingbu.cao@intel.com>
Cc: Dafna Hirschfeld <dafna@fastmail.com>
---
.../userspace-api/media/v4l/meta-formats.rst | 14 +++++++-------
.../v4l/{pixfmt-meta-d4xx.rst => metafmt-d4xx.rst} | 0
...-meta-intel-ipu3.rst => metafmt-intel-ipu3.rst} | 0
.../{pixfmt-meta-rkisp1.rst => metafmt-rkisp1.rst} | 0
.../v4l/{pixfmt-meta-uvc.rst => metafmt-uvc.rst} | 0
.../{pixfmt-meta-vivid.rst => metafmt-vivid.rst} | 0
...xfmt-meta-vsp1-hgo.rst => metafmt-vsp1-hgo.rst} | 0
...xfmt-meta-vsp1-hgt.rst => metafmt-vsp1-hgt.rst} | 0
MAINTAINERS | 4 ++--
9 files changed, 9 insertions(+), 9 deletions(-)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-d4xx.rst => metafmt-d4xx.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-intel-ipu3.rst => metafmt-intel-ipu3.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-rkisp1.rst => metafmt-rkisp1.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-uvc.rst => metafmt-uvc.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-vivid.rst => metafmt-vivid.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-vsp1-hgo.rst => metafmt-vsp1-hgo.rst} (100%)
rename Documentation/userspace-api/media/v4l/{pixfmt-meta-vsp1-hgt.rst => metafmt-vsp1-hgt.rst} (100%)
diff --git a/Documentation/userspace-api/media/v4l/meta-formats.rst b/Documentation/userspace-api/media/v4l/meta-formats.rst
index fff25357fe86..0bb61fc5bc00 100644
--- a/Documentation/userspace-api/media/v4l/meta-formats.rst
+++ b/Documentation/userspace-api/media/v4l/meta-formats.rst
@@ -12,10 +12,10 @@ These formats are used for the :ref:`metadata` interface only.
.. toctree::
:maxdepth: 1
- pixfmt-meta-d4xx
- pixfmt-meta-intel-ipu3
- pixfmt-meta-rkisp1
- pixfmt-meta-uvc
- pixfmt-meta-vsp1-hgo
- pixfmt-meta-vsp1-hgt
- pixfmt-meta-vivid
+ metafmt-d4xx
+ metafmt-intel-ipu3
+ metafmt-rkisp1
+ metafmt-uvc
+ metafmt-vsp1-hgo
+ metafmt-vsp1-hgt
+ metafmt-vivid
diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-d4xx.rst b/Documentation/userspace-api/media/v4l/metafmt-d4xx.rst
similarity index 100%
rename from Documentation/userspace-api/media/v4l/pixfmt-meta-d4xx.rst
rename to Documentation/userspace-api/media/v4l/metafmt-d4xx.rst
diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-intel-ipu3.rst b/Documentation/userspace-api/media/v4l/metafmt-intel-ipu3.rst
similarity index 100%
rename from Documentation/userspace-api/media/v4l/pixfmt-meta-intel-ipu3.rst
rename to Documentation/userspace-api/media/v4l/metafmt-intel-ipu3.rst
diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-rkisp1.rst b/Documentation/userspace-api/media/v4l/metafmt-rkisp1.rst
similarity index 100%
rename from Documentation/userspace-api/media/v4l/pixfmt-meta-rkisp1.rst
rename to Documentation/userspace-api/media/v4l/metafmt-rkisp1.rst
diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-uvc.rst b/Documentation/userspace-api/media/v4l/metafmt-uvc.rst
similarity index 100%
rename from Documentation/userspace-api/media/v4l/pixfmt-meta-uvc.rst
rename to Documentation/userspace-api/media/v4l/metafmt-uvc.rst
diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-vivid.rst b/Documentation/userspace-api/media/v4l/metafmt-vivid.rst
similarity index 100%
rename from Documentation/userspace-api/media/v4l/pixfmt-meta-vivid.rst
rename to Documentation/userspace-api/media/v4l/metafmt-vivid.rst
diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-vsp1-hgo.rst b/Documentation/userspace-api/media/v4l/metafmt-vsp1-hgo.rst
similarity index 100%
rename from Documentation/userspace-api/media/v4l/pixfmt-meta-vsp1-hgo.rst
rename to Documentation/userspace-api/media/v4l/metafmt-vsp1-hgo.rst
diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-vsp1-hgt.rst b/Documentation/userspace-api/media/v4l/metafmt-vsp1-hgt.rst
similarity index 100%
rename from Documentation/userspace-api/media/v4l/pixfmt-meta-vsp1-hgt.rst
rename to Documentation/userspace-api/media/v4l/metafmt-vsp1-hgt.rst
diff --git a/MAINTAINERS b/MAINTAINERS
index e25ebb7c781b..546826109900 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -10359,7 +10359,7 @@ L: linux-media@vger.kernel.org
S: Maintained
F: Documentation/admin-guide/media/ipu3.rst
F: Documentation/admin-guide/media/ipu3_rcb.svg
-F: Documentation/userspace-api/media/v4l/pixfmt-meta-intel-ipu3.rst
+F: Documentation/userspace-api/media/v4l/metafmt-intel-ipu3.rst
F: drivers/staging/media/ipu3/
INTEL IXP4XX CRYPTO SUPPORT
@@ -18026,7 +18026,7 @@ L: linux-rockchip@lists.infradead.org
S: Maintained
F: Documentation/admin-guide/media/rkisp1.rst
F: Documentation/devicetree/bindings/media/rockchip-isp1.yaml
-F: Documentation/userspace-api/media/v4l/pixfmt-meta-rkisp1.rst
+F: Documentation/userspace-api/media/v4l/metafmt-rkisp1.rst
F: drivers/media/platform/rockchip/rkisp1
F: include/uapi/linux/rkisp1-config.h
--
2.30.2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 3/3] media: uapi: Use unsigned int values for assigning bits in u32 fields
2023-05-05 20:50 [PATCH 0/3] Random cleanups Sakari Ailus
2023-05-05 20:50 ` [PATCH 1/3] media: mc: Make media_get_pad_index() use pad type flag Sakari Ailus
2023-05-05 20:51 ` [PATCH 2/3] media: Documentation: Rename meta format files Sakari Ailus
@ 2023-05-05 20:51 ` Sakari Ailus
2023-05-06 11:32 ` Laurent Pinchart
2 siblings, 1 reply; 13+ messages in thread
From: Sakari Ailus @ 2023-05-05 20:51 UTC (permalink / raw)
To: linux-media; +Cc: laurent.pinchart, tomi.valkeinen, bingbu.cao
Use unsigned int values annoted by "U" for u32 fields. While this is a
good practice, there doesn't appear to be a bug that this patch would fix.
The patch has been generated using the following command:
perl -i -pe 's/\([0-9]+\K <</U <</g' -- include/uapi/linux/media.h
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
include/uapi/linux/media.h | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h
index 3ddadaea849f..edb8dfef9eba 100644
--- a/include/uapi/linux/media.h
+++ b/include/uapi/linux/media.h
@@ -140,8 +140,8 @@ struct media_device_info {
#define MEDIA_ENT_F_DV_ENCODER (MEDIA_ENT_F_BASE + 0x6002)
/* Entity flags */
-#define MEDIA_ENT_FL_DEFAULT (1 << 0)
-#define MEDIA_ENT_FL_CONNECTOR (1 << 1)
+#define MEDIA_ENT_FL_DEFAULT (1U << 0)
+#define MEDIA_ENT_FL_CONNECTOR (1U << 1)
/* OR with the entity id value to find the next entity */
#define MEDIA_ENT_ID_FLAG_NEXT (1U << 31)
@@ -205,9 +205,9 @@ struct media_entity_desc {
};
};
-#define MEDIA_PAD_FL_SINK (1 << 0)
-#define MEDIA_PAD_FL_SOURCE (1 << 1)
-#define MEDIA_PAD_FL_MUST_CONNECT (1 << 2)
+#define MEDIA_PAD_FL_SINK (1U << 0)
+#define MEDIA_PAD_FL_SOURCE (1U << 1)
+#define MEDIA_PAD_FL_MUST_CONNECT (1U << 2)
struct media_pad_desc {
__u32 entity; /* entity ID */
@@ -216,14 +216,14 @@ struct media_pad_desc {
__u32 reserved[2];
};
-#define MEDIA_LNK_FL_ENABLED (1 << 0)
-#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)
-#define MEDIA_LNK_FL_DYNAMIC (1 << 2)
+#define MEDIA_LNK_FL_ENABLED (1U << 0)
+#define MEDIA_LNK_FL_IMMUTABLE (1U << 1)
+#define MEDIA_LNK_FL_DYNAMIC (1U << 2)
#define MEDIA_LNK_FL_LINK_TYPE (0xf << 28)
-# define MEDIA_LNK_FL_DATA_LINK (0 << 28)
-# define MEDIA_LNK_FL_INTERFACE_LINK (1 << 28)
-# define MEDIA_LNK_FL_ANCILLARY_LINK (2 << 28)
+# define MEDIA_LNK_FL_DATA_LINK (0U << 28)
+# define MEDIA_LNK_FL_INTERFACE_LINK (1U << 28)
+# define MEDIA_LNK_FL_ANCILLARY_LINK (2U << 28)
struct media_link_desc {
struct media_pad_desc source;
@@ -293,7 +293,7 @@ struct media_links_enum {
* struct media_device_info.
*/
#define MEDIA_V2_ENTITY_HAS_FLAGS(media_version) \
- ((media_version) >= ((4 << 16) | (19 << 8) | 0))
+ ((media_version) >= ((4U << 16) | (19U << 8) | 0))
struct media_v2_entity {
__u32 id;
@@ -328,7 +328,7 @@ struct media_v2_interface {
* struct media_device_info.
*/
#define MEDIA_V2_PAD_HAS_INDEX(media_version) \
- ((media_version) >= ((4 << 16) | (19 << 8) | 0))
+ ((media_version) >= ((4U << 16) | (19U << 8) | 0))
struct media_v2_pad {
__u32 id;
@@ -432,7 +432,7 @@ struct media_v2_topology {
#define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
/* Obsolete symbol for media_version, no longer used in the kernel */
-#define MEDIA_API_VERSION ((0 << 16) | (1 << 8) | 0)
+#define MEDIA_API_VERSION ((0U << 16) | (1U << 8) | 0)
#endif
--
2.30.2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 1/3] media: mc: Make media_get_pad_index() use pad type flag
2023-05-05 20:50 ` [PATCH 1/3] media: mc: Make media_get_pad_index() use pad type flag Sakari Ailus
@ 2023-05-06 11:25 ` Laurent Pinchart
0 siblings, 0 replies; 13+ messages in thread
From: Laurent Pinchart @ 2023-05-06 11:25 UTC (permalink / raw)
To: Sakari Ailus; +Cc: linux-media, tomi.valkeinen, bingbu.cao
Hi Sakari,
Thank you for the patch.
On Fri, May 05, 2023 at 11:50:59PM +0300, Sakari Ailus wrote:
> Use the pad flag specifying the pad type instead of a boolean in
> preparation for internal source pads.
>
> Also make the loop variable unsigned.
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> ---
> drivers/media/dvb-core/dvbdev.c | 4 +--
> drivers/media/mc/mc-entity.c | 16 ++++-------
> drivers/media/usb/au0828/au0828-core.c | 2 +-
> drivers/media/v4l2-core/v4l2-mc.c | 38 +++++++++++++++++---------
> include/media/media-entity.h | 4 +--
> 5 files changed, 35 insertions(+), 29 deletions(-)
>
> diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
> index 0ed087caf7f3..0091b5375e45 100644
> --- a/drivers/media/dvb-core/dvbdev.c
> +++ b/drivers/media/dvb-core/dvbdev.c
> @@ -707,7 +707,7 @@ int dvb_create_media_graph(struct dvb_adapter *adap,
> MEDIA_LNK_FL_ENABLED,
> false);
> } else {
> - pad_sink = media_get_pad_index(tuner, true,
> + pad_sink = media_get_pad_index(tuner, MEDIA_PAD_FL_SINK,
> PAD_SIGNAL_ANALOG);
> if (pad_sink < 0)
> return -EINVAL;
> @@ -725,7 +725,7 @@ int dvb_create_media_graph(struct dvb_adapter *adap,
>
> if (ntuner && ndemod) {
> /* NOTE: first found tuner source pad presumed correct */
> - pad_source = media_get_pad_index(tuner, false,
> + pad_source = media_get_pad_index(tuner, MEDIA_PAD_FL_SOURCE,
> PAD_SIGNAL_ANALOG);
> if (pad_source < 0)
> return -EINVAL;
> diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c
> index e7216a985ba6..ef34ddd715c9 100644
> --- a/drivers/media/mc/mc-entity.c
> +++ b/drivers/media/mc/mc-entity.c
> @@ -1052,25 +1052,19 @@ static void __media_entity_remove_link(struct media_entity *entity,
> kfree(link);
> }
>
> -int media_get_pad_index(struct media_entity *entity, bool is_sink,
> +int media_get_pad_index(struct media_entity *entity, u32 pad_type,
> enum media_pad_signal_type sig_type)
> {
> - int i;
> - bool pad_is_sink;
> + unsigned int i;
>
> if (!entity)
> return -EINVAL;
>
> for (i = 0; i < entity->num_pads; i++) {
> - if (entity->pads[i].flags & MEDIA_PAD_FL_SINK)
> - pad_is_sink = true;
> - else if (entity->pads[i].flags & MEDIA_PAD_FL_SOURCE)
> - pad_is_sink = false;
> - else
> - continue; /* This is an error! */
> -
> - if (pad_is_sink != is_sink)
> + if ((entity->pads[i].flags &
> + (MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_SOURCE)) != pad_type)
> continue;
> +
> if (entity->pads[i].sig_type == sig_type)
> return i;
> }
> diff --git a/drivers/media/usb/au0828/au0828-core.c b/drivers/media/usb/au0828/au0828-core.c
> index b3a09d3ac7d2..1e246b47766d 100644
> --- a/drivers/media/usb/au0828/au0828-core.c
> +++ b/drivers/media/usb/au0828/au0828-core.c
> @@ -250,7 +250,7 @@ static void au0828_media_graph_notify(struct media_entity *new,
>
> create_link:
> if (decoder && mixer) {
> - ret = media_get_pad_index(decoder, false,
> + ret = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
> PAD_SIGNAL_AUDIO);
> if (ret >= 0)
> ret = media_create_pad_link(decoder, ret,
> diff --git a/drivers/media/v4l2-core/v4l2-mc.c b/drivers/media/v4l2-core/v4l2-mc.c
> index bf0c18100664..209a7efd08fe 100644
> --- a/drivers/media/v4l2-core/v4l2-mc.c
> +++ b/drivers/media/v4l2-core/v4l2-mc.c
> @@ -105,9 +105,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
> /* Link the tuner and IF video output pads */
> if (tuner) {
> if (if_vid) {
> - pad_source = media_get_pad_index(tuner, false,
> + pad_source = media_get_pad_index(tuner,
> + MEDIA_PAD_FL_SOURCE,
> PAD_SIGNAL_ANALOG);
> - pad_sink = media_get_pad_index(if_vid, true,
> + pad_sink = media_get_pad_index(if_vid,
> + MEDIA_PAD_FL_SINK,
> PAD_SIGNAL_ANALOG);
> if (pad_source < 0 || pad_sink < 0) {
> dev_warn(mdev->dev, "Couldn't get tuner and/or PLL pad(s): (%d, %d)\n",
> @@ -122,9 +124,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
> return ret;
> }
>
> - pad_source = media_get_pad_index(if_vid, false,
> + pad_source = media_get_pad_index(if_vid,
> + MEDIA_PAD_FL_SOURCE,
> PAD_SIGNAL_ANALOG);
> - pad_sink = media_get_pad_index(decoder, true,
> + pad_sink = media_get_pad_index(decoder,
> + MEDIA_PAD_FL_SINK,
> PAD_SIGNAL_ANALOG);
> if (pad_source < 0 || pad_sink < 0) {
> dev_warn(mdev->dev, "get decoder and/or PLL pad(s): (%d, %d)\n",
> @@ -139,9 +143,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
> return ret;
> }
> } else {
> - pad_source = media_get_pad_index(tuner, false,
> + pad_source = media_get_pad_index(tuner,
> + MEDIA_PAD_FL_SOURCE,
> PAD_SIGNAL_ANALOG);
> - pad_sink = media_get_pad_index(decoder, true,
> + pad_sink = media_get_pad_index(decoder,
> + MEDIA_PAD_FL_SINK,
> PAD_SIGNAL_ANALOG);
> if (pad_source < 0 || pad_sink < 0) {
> dev_warn(mdev->dev, "couldn't get tuner and/or decoder pad(s): (%d, %d)\n",
> @@ -156,9 +162,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
> }
>
> if (if_aud) {
> - pad_source = media_get_pad_index(tuner, false,
> + pad_source = media_get_pad_index(tuner,
> + MEDIA_PAD_FL_SOURCE,
> PAD_SIGNAL_AUDIO);
> - pad_sink = media_get_pad_index(if_aud, true,
> + pad_sink = media_get_pad_index(if_aud,
> + MEDIA_PAD_FL_SINK,
> PAD_SIGNAL_AUDIO);
> if (pad_source < 0 || pad_sink < 0) {
> dev_warn(mdev->dev, "couldn't get tuner and/or decoder pad(s) for audio: (%d, %d)\n",
> @@ -180,7 +188,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
>
> /* Create demod to V4L, VBI and SDR radio links */
> if (io_v4l) {
> - pad_source = media_get_pad_index(decoder, false, PAD_SIGNAL_DV);
> + pad_source = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
> + PAD_SIGNAL_DV);
> if (pad_source < 0) {
> dev_warn(mdev->dev, "couldn't get decoder output pad for V4L I/O\n");
> return -EINVAL;
> @@ -195,7 +204,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
> }
>
> if (io_swradio) {
> - pad_source = media_get_pad_index(decoder, false, PAD_SIGNAL_DV);
> + pad_source = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
> + PAD_SIGNAL_DV);
> if (pad_source < 0) {
> dev_warn(mdev->dev, "couldn't get decoder output pad for SDR\n");
> return -EINVAL;
> @@ -210,7 +220,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
> }
>
> if (io_vbi) {
> - pad_source = media_get_pad_index(decoder, false, PAD_SIGNAL_DV);
> + pad_source = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
> + PAD_SIGNAL_DV);
> if (pad_source < 0) {
> dev_warn(mdev->dev, "couldn't get decoder output pad for VBI\n");
> return -EINVAL;
> @@ -231,7 +242,7 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
> case MEDIA_ENT_F_CONN_RF:
> if (!tuner)
> continue;
> - pad_sink = media_get_pad_index(tuner, true,
> + pad_sink = media_get_pad_index(tuner, MEDIA_PAD_FL_SINK,
> PAD_SIGNAL_ANALOG);
> if (pad_sink < 0) {
> dev_warn(mdev->dev, "couldn't get tuner analog pad sink\n");
> @@ -243,7 +254,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
> break;
> case MEDIA_ENT_F_CONN_SVIDEO:
> case MEDIA_ENT_F_CONN_COMPOSITE:
> - pad_sink = media_get_pad_index(decoder, true,
> + pad_sink = media_get_pad_index(decoder,
> + MEDIA_PAD_FL_SINK,
> PAD_SIGNAL_ANALOG);
> if (pad_sink < 0) {
> dev_warn(mdev->dev, "couldn't get decoder analog pad sink\n");
> diff --git a/include/media/media-entity.h b/include/media/media-entity.h
> index 741f9c629c6f..e4f556911c3f 100644
> --- a/include/media/media-entity.h
> +++ b/include/media/media-entity.h
> @@ -741,7 +741,7 @@ static inline void media_entity_cleanup(struct media_entity *entity) {}
> * media_get_pad_index() - retrieves a pad index from an entity
> *
> * @entity: entity where the pads belong
> - * @is_sink: true if the pad is a sink, false if it is a source
> + * @pad_type: the type of the pad, one of MEDIA_PAD_FL_* pad types
> * @sig_type: type of signal of the pad to be search
> *
> * This helper function finds the first pad index inside an entity that
> @@ -752,7 +752,7 @@ static inline void media_entity_cleanup(struct media_entity *entity) {}
> * On success, return the pad number. If the pad was not found or the media
> * entity is a NULL pointer, return -EINVAL.
> */
> -int media_get_pad_index(struct media_entity *entity, bool is_sink,
> +int media_get_pad_index(struct media_entity *entity, u32 pad_type,
> enum media_pad_signal_type sig_type);
>
> /**
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/3] media: Documentation: Rename meta format files
2023-05-05 20:51 ` [PATCH 2/3] media: Documentation: Rename meta format files Sakari Ailus
@ 2023-05-06 11:25 ` Laurent Pinchart
0 siblings, 0 replies; 13+ messages in thread
From: Laurent Pinchart @ 2023-05-06 11:25 UTC (permalink / raw)
To: Sakari Ailus; +Cc: linux-media, tomi.valkeinen, bingbu.cao
Hi Sakari,
Thank you for the patch.
On Fri, May 05, 2023 at 11:51:00PM +0300, Sakari Ailus wrote:
> Rename meta format files, using "metafmt" prefix instead of "pixfmt-meta".
> These are metadata formats, not pixel formats.
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> Cc: Bingbu Cao <bingbu.cao@intel.com>
> Cc: Dafna Hirschfeld <dafna@fastmail.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> ---
> .../userspace-api/media/v4l/meta-formats.rst | 14 +++++++-------
> .../v4l/{pixfmt-meta-d4xx.rst => metafmt-d4xx.rst} | 0
> ...-meta-intel-ipu3.rst => metafmt-intel-ipu3.rst} | 0
> .../{pixfmt-meta-rkisp1.rst => metafmt-rkisp1.rst} | 0
> .../v4l/{pixfmt-meta-uvc.rst => metafmt-uvc.rst} | 0
> .../{pixfmt-meta-vivid.rst => metafmt-vivid.rst} | 0
> ...xfmt-meta-vsp1-hgo.rst => metafmt-vsp1-hgo.rst} | 0
> ...xfmt-meta-vsp1-hgt.rst => metafmt-vsp1-hgt.rst} | 0
> MAINTAINERS | 4 ++--
> 9 files changed, 9 insertions(+), 9 deletions(-)
> rename Documentation/userspace-api/media/v4l/{pixfmt-meta-d4xx.rst => metafmt-d4xx.rst} (100%)
> rename Documentation/userspace-api/media/v4l/{pixfmt-meta-intel-ipu3.rst => metafmt-intel-ipu3.rst} (100%)
> rename Documentation/userspace-api/media/v4l/{pixfmt-meta-rkisp1.rst => metafmt-rkisp1.rst} (100%)
> rename Documentation/userspace-api/media/v4l/{pixfmt-meta-uvc.rst => metafmt-uvc.rst} (100%)
> rename Documentation/userspace-api/media/v4l/{pixfmt-meta-vivid.rst => metafmt-vivid.rst} (100%)
> rename Documentation/userspace-api/media/v4l/{pixfmt-meta-vsp1-hgo.rst => metafmt-vsp1-hgo.rst} (100%)
> rename Documentation/userspace-api/media/v4l/{pixfmt-meta-vsp1-hgt.rst => metafmt-vsp1-hgt.rst} (100%)
>
> diff --git a/Documentation/userspace-api/media/v4l/meta-formats.rst b/Documentation/userspace-api/media/v4l/meta-formats.rst
> index fff25357fe86..0bb61fc5bc00 100644
> --- a/Documentation/userspace-api/media/v4l/meta-formats.rst
> +++ b/Documentation/userspace-api/media/v4l/meta-formats.rst
> @@ -12,10 +12,10 @@ These formats are used for the :ref:`metadata` interface only.
> .. toctree::
> :maxdepth: 1
>
> - pixfmt-meta-d4xx
> - pixfmt-meta-intel-ipu3
> - pixfmt-meta-rkisp1
> - pixfmt-meta-uvc
> - pixfmt-meta-vsp1-hgo
> - pixfmt-meta-vsp1-hgt
> - pixfmt-meta-vivid
> + metafmt-d4xx
> + metafmt-intel-ipu3
> + metafmt-rkisp1
> + metafmt-uvc
> + metafmt-vsp1-hgo
> + metafmt-vsp1-hgt
> + metafmt-vivid
> diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-d4xx.rst b/Documentation/userspace-api/media/v4l/metafmt-d4xx.rst
> similarity index 100%
> rename from Documentation/userspace-api/media/v4l/pixfmt-meta-d4xx.rst
> rename to Documentation/userspace-api/media/v4l/metafmt-d4xx.rst
> diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-intel-ipu3.rst b/Documentation/userspace-api/media/v4l/metafmt-intel-ipu3.rst
> similarity index 100%
> rename from Documentation/userspace-api/media/v4l/pixfmt-meta-intel-ipu3.rst
> rename to Documentation/userspace-api/media/v4l/metafmt-intel-ipu3.rst
> diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-rkisp1.rst b/Documentation/userspace-api/media/v4l/metafmt-rkisp1.rst
> similarity index 100%
> rename from Documentation/userspace-api/media/v4l/pixfmt-meta-rkisp1.rst
> rename to Documentation/userspace-api/media/v4l/metafmt-rkisp1.rst
> diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-uvc.rst b/Documentation/userspace-api/media/v4l/metafmt-uvc.rst
> similarity index 100%
> rename from Documentation/userspace-api/media/v4l/pixfmt-meta-uvc.rst
> rename to Documentation/userspace-api/media/v4l/metafmt-uvc.rst
> diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-vivid.rst b/Documentation/userspace-api/media/v4l/metafmt-vivid.rst
> similarity index 100%
> rename from Documentation/userspace-api/media/v4l/pixfmt-meta-vivid.rst
> rename to Documentation/userspace-api/media/v4l/metafmt-vivid.rst
> diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-vsp1-hgo.rst b/Documentation/userspace-api/media/v4l/metafmt-vsp1-hgo.rst
> similarity index 100%
> rename from Documentation/userspace-api/media/v4l/pixfmt-meta-vsp1-hgo.rst
> rename to Documentation/userspace-api/media/v4l/metafmt-vsp1-hgo.rst
> diff --git a/Documentation/userspace-api/media/v4l/pixfmt-meta-vsp1-hgt.rst b/Documentation/userspace-api/media/v4l/metafmt-vsp1-hgt.rst
> similarity index 100%
> rename from Documentation/userspace-api/media/v4l/pixfmt-meta-vsp1-hgt.rst
> rename to Documentation/userspace-api/media/v4l/metafmt-vsp1-hgt.rst
> diff --git a/MAINTAINERS b/MAINTAINERS
> index e25ebb7c781b..546826109900 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -10359,7 +10359,7 @@ L: linux-media@vger.kernel.org
> S: Maintained
> F: Documentation/admin-guide/media/ipu3.rst
> F: Documentation/admin-guide/media/ipu3_rcb.svg
> -F: Documentation/userspace-api/media/v4l/pixfmt-meta-intel-ipu3.rst
> +F: Documentation/userspace-api/media/v4l/metafmt-intel-ipu3.rst
> F: drivers/staging/media/ipu3/
>
> INTEL IXP4XX CRYPTO SUPPORT
> @@ -18026,7 +18026,7 @@ L: linux-rockchip@lists.infradead.org
> S: Maintained
> F: Documentation/admin-guide/media/rkisp1.rst
> F: Documentation/devicetree/bindings/media/rockchip-isp1.yaml
> -F: Documentation/userspace-api/media/v4l/pixfmt-meta-rkisp1.rst
> +F: Documentation/userspace-api/media/v4l/metafmt-rkisp1.rst
> F: drivers/media/platform/rockchip/rkisp1
> F: include/uapi/linux/rkisp1-config.h
>
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/3] media: uapi: Use unsigned int values for assigning bits in u32 fields
2023-05-05 20:51 ` [PATCH 3/3] media: uapi: Use unsigned int values for assigning bits in u32 fields Sakari Ailus
@ 2023-05-06 11:32 ` Laurent Pinchart
2023-05-08 6:19 ` Sakari Ailus
0 siblings, 1 reply; 13+ messages in thread
From: Laurent Pinchart @ 2023-05-06 11:32 UTC (permalink / raw)
To: Sakari Ailus; +Cc: linux-media, tomi.valkeinen, bingbu.cao
Hi Sakari,
Thank you for the patch.
On Fri, May 05, 2023 at 11:51:01PM +0300, Sakari Ailus wrote:
> Use unsigned int values annoted by "U" for u32 fields. While this is a
> good practice, there doesn't appear to be a bug that this patch would fix.
>
> The patch has been generated using the following command:
>
> perl -i -pe 's/\([0-9]+\K <</U <</g' -- include/uapi/linux/media.h
How about using the _BITUL() macro from include/uapi/linux/const.h ?
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> include/uapi/linux/media.h | 28 ++++++++++++++--------------
> 1 file changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h
> index 3ddadaea849f..edb8dfef9eba 100644
> --- a/include/uapi/linux/media.h
> +++ b/include/uapi/linux/media.h
> @@ -140,8 +140,8 @@ struct media_device_info {
> #define MEDIA_ENT_F_DV_ENCODER (MEDIA_ENT_F_BASE + 0x6002)
>
> /* Entity flags */
> -#define MEDIA_ENT_FL_DEFAULT (1 << 0)
> -#define MEDIA_ENT_FL_CONNECTOR (1 << 1)
> +#define MEDIA_ENT_FL_DEFAULT (1U << 0)
> +#define MEDIA_ENT_FL_CONNECTOR (1U << 1)
>
> /* OR with the entity id value to find the next entity */
> #define MEDIA_ENT_ID_FLAG_NEXT (1U << 31)
> @@ -205,9 +205,9 @@ struct media_entity_desc {
> };
> };
>
> -#define MEDIA_PAD_FL_SINK (1 << 0)
> -#define MEDIA_PAD_FL_SOURCE (1 << 1)
> -#define MEDIA_PAD_FL_MUST_CONNECT (1 << 2)
> +#define MEDIA_PAD_FL_SINK (1U << 0)
> +#define MEDIA_PAD_FL_SOURCE (1U << 1)
> +#define MEDIA_PAD_FL_MUST_CONNECT (1U << 2)
>
> struct media_pad_desc {
> __u32 entity; /* entity ID */
> @@ -216,14 +216,14 @@ struct media_pad_desc {
> __u32 reserved[2];
> };
>
> -#define MEDIA_LNK_FL_ENABLED (1 << 0)
> -#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)
> -#define MEDIA_LNK_FL_DYNAMIC (1 << 2)
> +#define MEDIA_LNK_FL_ENABLED (1U << 0)
> +#define MEDIA_LNK_FL_IMMUTABLE (1U << 1)
> +#define MEDIA_LNK_FL_DYNAMIC (1U << 2)
>
> #define MEDIA_LNK_FL_LINK_TYPE (0xf << 28)
> -# define MEDIA_LNK_FL_DATA_LINK (0 << 28)
> -# define MEDIA_LNK_FL_INTERFACE_LINK (1 << 28)
> -# define MEDIA_LNK_FL_ANCILLARY_LINK (2 << 28)
> +# define MEDIA_LNK_FL_DATA_LINK (0U << 28)
> +# define MEDIA_LNK_FL_INTERFACE_LINK (1U << 28)
> +# define MEDIA_LNK_FL_ANCILLARY_LINK (2U << 28)
>
> struct media_link_desc {
> struct media_pad_desc source;
> @@ -293,7 +293,7 @@ struct media_links_enum {
> * struct media_device_info.
> */
> #define MEDIA_V2_ENTITY_HAS_FLAGS(media_version) \
> - ((media_version) >= ((4 << 16) | (19 << 8) | 0))
> + ((media_version) >= ((4U << 16) | (19U << 8) | 0))
>
> struct media_v2_entity {
> __u32 id;
> @@ -328,7 +328,7 @@ struct media_v2_interface {
> * struct media_device_info.
> */
> #define MEDIA_V2_PAD_HAS_INDEX(media_version) \
> - ((media_version) >= ((4 << 16) | (19 << 8) | 0))
> + ((media_version) >= ((4U << 16) | (19U << 8) | 0))
>
> struct media_v2_pad {
> __u32 id;
> @@ -432,7 +432,7 @@ struct media_v2_topology {
> #define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
>
> /* Obsolete symbol for media_version, no longer used in the kernel */
> -#define MEDIA_API_VERSION ((0 << 16) | (1 << 8) | 0)
> +#define MEDIA_API_VERSION ((0U << 16) | (1U << 8) | 0)
>
> #endif
>
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/3] media: uapi: Use unsigned int values for assigning bits in u32 fields
2023-05-06 11:32 ` Laurent Pinchart
@ 2023-05-08 6:19 ` Sakari Ailus
2023-05-08 6:30 ` Laurent Pinchart
0 siblings, 1 reply; 13+ messages in thread
From: Sakari Ailus @ 2023-05-08 6:19 UTC (permalink / raw)
To: Laurent Pinchart; +Cc: linux-media, tomi.valkeinen, bingbu.cao
Hi Laurent,
On Sat, May 06, 2023 at 02:32:23PM +0300, Laurent Pinchart wrote:
> Hi Sakari,
>
> Thank you for the patch.
>
> On Fri, May 05, 2023 at 11:51:01PM +0300, Sakari Ailus wrote:
> > Use unsigned int values annoted by "U" for u32 fields. While this is a
> > good practice, there doesn't appear to be a bug that this patch would fix.
> >
> > The patch has been generated using the following command:
> >
> > perl -i -pe 's/\([0-9]+\K <</U <</g' -- include/uapi/linux/media.h
>
> How about using the _BITUL() macro from include/uapi/linux/const.h ?
These are u32 whereas _BITUL makes an unsigned long. Int (as in U) is 32
bits on all platforms where Linux is used AFAIK.
And thanks for the review!
--
Kind regards,
Sakari Ailus
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/3] media: uapi: Use unsigned int values for assigning bits in u32 fields
2023-05-08 6:19 ` Sakari Ailus
@ 2023-05-08 6:30 ` Laurent Pinchart
2023-05-08 6:58 ` Sakari Ailus
0 siblings, 1 reply; 13+ messages in thread
From: Laurent Pinchart @ 2023-05-08 6:30 UTC (permalink / raw)
To: Sakari Ailus; +Cc: linux-media, tomi.valkeinen, bingbu.cao
Hi Sakari,
On Mon, May 08, 2023 at 09:19:24AM +0300, Sakari Ailus wrote:
> On Sat, May 06, 2023 at 02:32:23PM +0300, Laurent Pinchart wrote:
> > On Fri, May 05, 2023 at 11:51:01PM +0300, Sakari Ailus wrote:
> > > Use unsigned int values annoted by "U" for u32 fields. While this is a
> > > good practice, there doesn't appear to be a bug that this patch would fix.
> > >
> > > The patch has been generated using the following command:
> > >
> > > perl -i -pe 's/\([0-9]+\K <</U <</g' -- include/uapi/linux/media.h
> >
> > How about using the _BITUL() macro from include/uapi/linux/const.h ?
>
> These are u32 whereas _BITUL makes an unsigned long. Int (as in U) is 32
> bits on all platforms where Linux is used AFAIK.
I know, but is it a problem ?
> And thanks for the review!
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/3] media: uapi: Use unsigned int values for assigning bits in u32 fields
2023-05-08 6:30 ` Laurent Pinchart
@ 2023-05-08 6:58 ` Sakari Ailus
2023-05-08 7:52 ` Laurent Pinchart
0 siblings, 1 reply; 13+ messages in thread
From: Sakari Ailus @ 2023-05-08 6:58 UTC (permalink / raw)
To: Laurent Pinchart; +Cc: linux-media, tomi.valkeinen, bingbu.cao
Hi Laurent,
On Mon, May 08, 2023 at 09:30:23AM +0300, Laurent Pinchart wrote:
> Hi Sakari,
>
> On Mon, May 08, 2023 at 09:19:24AM +0300, Sakari Ailus wrote:
> > On Sat, May 06, 2023 at 02:32:23PM +0300, Laurent Pinchart wrote:
> > > On Fri, May 05, 2023 at 11:51:01PM +0300, Sakari Ailus wrote:
> > > > Use unsigned int values annoted by "U" for u32 fields. While this is a
> > > > good practice, there doesn't appear to be a bug that this patch would fix.
> > > >
> > > > The patch has been generated using the following command:
> > > >
> > > > perl -i -pe 's/\([0-9]+\K <</U <</g' -- include/uapi/linux/media.h
> > >
> > > How about using the _BITUL() macro from include/uapi/linux/const.h ?
> >
> > These are u32 whereas _BITUL makes an unsigned long. Int (as in U) is 32
> > bits on all platforms where Linux is used AFAIK.
>
> I know, but is it a problem ?
If we have a u32 field, unsigned int is the right type for that (from
non-fixed length C types), not unsigned long. In practice it would work, I
have no doubts about that. The compiler could still do different decisions
due to this, promoting values to a 64-bits for instance.
If we had _BITU(), I'd be happy to use that. :-)
How about this: let's merge this patch and then see how a _BITU() macro
would fare.
--
Kind regards,
Sakari Ailus
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/3] media: uapi: Use unsigned int values for assigning bits in u32 fields
2023-05-08 6:58 ` Sakari Ailus
@ 2023-05-08 7:52 ` Laurent Pinchart
2023-05-08 8:34 ` Sakari Ailus
0 siblings, 1 reply; 13+ messages in thread
From: Laurent Pinchart @ 2023-05-08 7:52 UTC (permalink / raw)
To: Sakari Ailus; +Cc: linux-media, tomi.valkeinen, bingbu.cao
Hi Sakari,
On Mon, May 08, 2023 at 09:58:48AM +0300, Sakari Ailus wrote:
> On Mon, May 08, 2023 at 09:30:23AM +0300, Laurent Pinchart wrote:
> > On Mon, May 08, 2023 at 09:19:24AM +0300, Sakari Ailus wrote:
> > > On Sat, May 06, 2023 at 02:32:23PM +0300, Laurent Pinchart wrote:
> > > > On Fri, May 05, 2023 at 11:51:01PM +0300, Sakari Ailus wrote:
> > > > > Use unsigned int values annoted by "U" for u32 fields. While this is a
> > > > > good practice, there doesn't appear to be a bug that this patch would fix.
> > > > >
> > > > > The patch has been generated using the following command:
> > > > >
> > > > > perl -i -pe 's/\([0-9]+\K <</U <</g' -- include/uapi/linux/media.h
> > > >
> > > > How about using the _BITUL() macro from include/uapi/linux/const.h ?
> > >
> > > These are u32 whereas _BITUL makes an unsigned long. Int (as in U) is 32
> > > bits on all platforms where Linux is used AFAIK.
> >
> > I know, but is it a problem ?
>
> If we have a u32 field, unsigned int is the right type for that (from
> non-fixed length C types), not unsigned long. In practice it would work, I
> have no doubts about that. The compiler could still do different decisions
> due to this, promoting values to a 64-bits for instance.
>
> If we had _BITU(), I'd be happy to use that. :-)
Note how BIT() is defined in include/vdso/bits.h:
#include <vdso/const.h>
#define BIT(nr) (UL(1) << (nr))
And in include/vdso/const.h:
#include <uapi/linux/const.h>
#define UL(x) (_UL(x))
BIT() is thus essentially identical to _BITUL(). As we use the former
everywhere without any trouble, I wouldn't expect issue with the latter.
> How about this: let's merge this patch and then see how a _BITU() macro
> would fare.
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/3] media: uapi: Use unsigned int values for assigning bits in u32 fields
2023-05-08 7:52 ` Laurent Pinchart
@ 2023-05-08 8:34 ` Sakari Ailus
0 siblings, 0 replies; 13+ messages in thread
From: Sakari Ailus @ 2023-05-08 8:34 UTC (permalink / raw)
To: Laurent Pinchart; +Cc: linux-media, tomi.valkeinen, bingbu.cao
On Mon, May 08, 2023 at 10:52:09AM +0300, Laurent Pinchart wrote:
> Hi Sakari,
>
> On Mon, May 08, 2023 at 09:58:48AM +0300, Sakari Ailus wrote:
> > On Mon, May 08, 2023 at 09:30:23AM +0300, Laurent Pinchart wrote:
> > > On Mon, May 08, 2023 at 09:19:24AM +0300, Sakari Ailus wrote:
> > > > On Sat, May 06, 2023 at 02:32:23PM +0300, Laurent Pinchart wrote:
> > > > > On Fri, May 05, 2023 at 11:51:01PM +0300, Sakari Ailus wrote:
> > > > > > Use unsigned int values annoted by "U" for u32 fields. While this is a
> > > > > > good practice, there doesn't appear to be a bug that this patch would fix.
> > > > > >
> > > > > > The patch has been generated using the following command:
> > > > > >
> > > > > > perl -i -pe 's/\([0-9]+\K <</U <</g' -- include/uapi/linux/media.h
> > > > >
> > > > > How about using the _BITUL() macro from include/uapi/linux/const.h ?
> > > >
> > > > These are u32 whereas _BITUL makes an unsigned long. Int (as in U) is 32
> > > > bits on all platforms where Linux is used AFAIK.
> > >
> > > I know, but is it a problem ?
> >
> > If we have a u32 field, unsigned int is the right type for that (from
> > non-fixed length C types), not unsigned long. In practice it would work, I
> > have no doubts about that. The compiler could still do different decisions
> > due to this, promoting values to a 64-bits for instance.
> >
> > If we had _BITU(), I'd be happy to use that. :-)
>
> Note how BIT() is defined in include/vdso/bits.h:
>
> #include <vdso/const.h>
>
> #define BIT(nr) (UL(1) << (nr))
>
> And in include/vdso/const.h:
>
> #include <uapi/linux/const.h>
>
> #define UL(x) (_UL(x))
>
> BIT() is thus essentially identical to _BITUL(). As we use the former
> everywhere without any trouble, I wouldn't expect issue with the latter.
Fair enough. I'll switch to _BITUL() in v2.
--
Sakari Ailus
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/3] media: mc: Make media_get_pad_index() use pad type flag
2023-05-08 9:17 [PATCH v2 0/3] Random cleanups Sakari Ailus
@ 2023-05-08 9:17 ` Sakari Ailus
0 siblings, 0 replies; 13+ messages in thread
From: Sakari Ailus @ 2023-05-08 9:17 UTC (permalink / raw)
To: linux-media; +Cc: laurent.pinchart, bingbu.cao
Use the pad flag specifying the pad type instead of a boolean in
preparation for internal source pads.
Also make the loop variable unsigned.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
drivers/media/dvb-core/dvbdev.c | 4 +--
drivers/media/mc/mc-entity.c | 16 ++++-------
drivers/media/usb/au0828/au0828-core.c | 2 +-
drivers/media/v4l2-core/v4l2-mc.c | 38 +++++++++++++++++---------
include/media/media-entity.h | 4 +--
5 files changed, 35 insertions(+), 29 deletions(-)
diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
index 0ed087caf7f3..0091b5375e45 100644
--- a/drivers/media/dvb-core/dvbdev.c
+++ b/drivers/media/dvb-core/dvbdev.c
@@ -707,7 +707,7 @@ int dvb_create_media_graph(struct dvb_adapter *adap,
MEDIA_LNK_FL_ENABLED,
false);
} else {
- pad_sink = media_get_pad_index(tuner, true,
+ pad_sink = media_get_pad_index(tuner, MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_sink < 0)
return -EINVAL;
@@ -725,7 +725,7 @@ int dvb_create_media_graph(struct dvb_adapter *adap,
if (ntuner && ndemod) {
/* NOTE: first found tuner source pad presumed correct */
- pad_source = media_get_pad_index(tuner, false,
+ pad_source = media_get_pad_index(tuner, MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_ANALOG);
if (pad_source < 0)
return -EINVAL;
diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c
index e7216a985ba6..ef34ddd715c9 100644
--- a/drivers/media/mc/mc-entity.c
+++ b/drivers/media/mc/mc-entity.c
@@ -1052,25 +1052,19 @@ static void __media_entity_remove_link(struct media_entity *entity,
kfree(link);
}
-int media_get_pad_index(struct media_entity *entity, bool is_sink,
+int media_get_pad_index(struct media_entity *entity, u32 pad_type,
enum media_pad_signal_type sig_type)
{
- int i;
- bool pad_is_sink;
+ unsigned int i;
if (!entity)
return -EINVAL;
for (i = 0; i < entity->num_pads; i++) {
- if (entity->pads[i].flags & MEDIA_PAD_FL_SINK)
- pad_is_sink = true;
- else if (entity->pads[i].flags & MEDIA_PAD_FL_SOURCE)
- pad_is_sink = false;
- else
- continue; /* This is an error! */
-
- if (pad_is_sink != is_sink)
+ if ((entity->pads[i].flags &
+ (MEDIA_PAD_FL_SINK | MEDIA_PAD_FL_SOURCE)) != pad_type)
continue;
+
if (entity->pads[i].sig_type == sig_type)
return i;
}
diff --git a/drivers/media/usb/au0828/au0828-core.c b/drivers/media/usb/au0828/au0828-core.c
index b3a09d3ac7d2..1e246b47766d 100644
--- a/drivers/media/usb/au0828/au0828-core.c
+++ b/drivers/media/usb/au0828/au0828-core.c
@@ -250,7 +250,7 @@ static void au0828_media_graph_notify(struct media_entity *new,
create_link:
if (decoder && mixer) {
- ret = media_get_pad_index(decoder, false,
+ ret = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_AUDIO);
if (ret >= 0)
ret = media_create_pad_link(decoder, ret,
diff --git a/drivers/media/v4l2-core/v4l2-mc.c b/drivers/media/v4l2-core/v4l2-mc.c
index bf0c18100664..209a7efd08fe 100644
--- a/drivers/media/v4l2-core/v4l2-mc.c
+++ b/drivers/media/v4l2-core/v4l2-mc.c
@@ -105,9 +105,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
/* Link the tuner and IF video output pads */
if (tuner) {
if (if_vid) {
- pad_source = media_get_pad_index(tuner, false,
+ pad_source = media_get_pad_index(tuner,
+ MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_ANALOG);
- pad_sink = media_get_pad_index(if_vid, true,
+ pad_sink = media_get_pad_index(if_vid,
+ MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_source < 0 || pad_sink < 0) {
dev_warn(mdev->dev, "Couldn't get tuner and/or PLL pad(s): (%d, %d)\n",
@@ -122,9 +124,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
return ret;
}
- pad_source = media_get_pad_index(if_vid, false,
+ pad_source = media_get_pad_index(if_vid,
+ MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_ANALOG);
- pad_sink = media_get_pad_index(decoder, true,
+ pad_sink = media_get_pad_index(decoder,
+ MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_source < 0 || pad_sink < 0) {
dev_warn(mdev->dev, "get decoder and/or PLL pad(s): (%d, %d)\n",
@@ -139,9 +143,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
return ret;
}
} else {
- pad_source = media_get_pad_index(tuner, false,
+ pad_source = media_get_pad_index(tuner,
+ MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_ANALOG);
- pad_sink = media_get_pad_index(decoder, true,
+ pad_sink = media_get_pad_index(decoder,
+ MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_source < 0 || pad_sink < 0) {
dev_warn(mdev->dev, "couldn't get tuner and/or decoder pad(s): (%d, %d)\n",
@@ -156,9 +162,11 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
}
if (if_aud) {
- pad_source = media_get_pad_index(tuner, false,
+ pad_source = media_get_pad_index(tuner,
+ MEDIA_PAD_FL_SOURCE,
PAD_SIGNAL_AUDIO);
- pad_sink = media_get_pad_index(if_aud, true,
+ pad_sink = media_get_pad_index(if_aud,
+ MEDIA_PAD_FL_SINK,
PAD_SIGNAL_AUDIO);
if (pad_source < 0 || pad_sink < 0) {
dev_warn(mdev->dev, "couldn't get tuner and/or decoder pad(s) for audio: (%d, %d)\n",
@@ -180,7 +188,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
/* Create demod to V4L, VBI and SDR radio links */
if (io_v4l) {
- pad_source = media_get_pad_index(decoder, false, PAD_SIGNAL_DV);
+ pad_source = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
+ PAD_SIGNAL_DV);
if (pad_source < 0) {
dev_warn(mdev->dev, "couldn't get decoder output pad for V4L I/O\n");
return -EINVAL;
@@ -195,7 +204,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
}
if (io_swradio) {
- pad_source = media_get_pad_index(decoder, false, PAD_SIGNAL_DV);
+ pad_source = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
+ PAD_SIGNAL_DV);
if (pad_source < 0) {
dev_warn(mdev->dev, "couldn't get decoder output pad for SDR\n");
return -EINVAL;
@@ -210,7 +220,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
}
if (io_vbi) {
- pad_source = media_get_pad_index(decoder, false, PAD_SIGNAL_DV);
+ pad_source = media_get_pad_index(decoder, MEDIA_PAD_FL_SOURCE,
+ PAD_SIGNAL_DV);
if (pad_source < 0) {
dev_warn(mdev->dev, "couldn't get decoder output pad for VBI\n");
return -EINVAL;
@@ -231,7 +242,7 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
case MEDIA_ENT_F_CONN_RF:
if (!tuner)
continue;
- pad_sink = media_get_pad_index(tuner, true,
+ pad_sink = media_get_pad_index(tuner, MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_sink < 0) {
dev_warn(mdev->dev, "couldn't get tuner analog pad sink\n");
@@ -243,7 +254,8 @@ int v4l2_mc_create_media_graph(struct media_device *mdev)
break;
case MEDIA_ENT_F_CONN_SVIDEO:
case MEDIA_ENT_F_CONN_COMPOSITE:
- pad_sink = media_get_pad_index(decoder, true,
+ pad_sink = media_get_pad_index(decoder,
+ MEDIA_PAD_FL_SINK,
PAD_SIGNAL_ANALOG);
if (pad_sink < 0) {
dev_warn(mdev->dev, "couldn't get decoder analog pad sink\n");
diff --git a/include/media/media-entity.h b/include/media/media-entity.h
index 741f9c629c6f..e4f556911c3f 100644
--- a/include/media/media-entity.h
+++ b/include/media/media-entity.h
@@ -741,7 +741,7 @@ static inline void media_entity_cleanup(struct media_entity *entity) {}
* media_get_pad_index() - retrieves a pad index from an entity
*
* @entity: entity where the pads belong
- * @is_sink: true if the pad is a sink, false if it is a source
+ * @pad_type: the type of the pad, one of MEDIA_PAD_FL_* pad types
* @sig_type: type of signal of the pad to be search
*
* This helper function finds the first pad index inside an entity that
@@ -752,7 +752,7 @@ static inline void media_entity_cleanup(struct media_entity *entity) {}
* On success, return the pad number. If the pad was not found or the media
* entity is a NULL pointer, return -EINVAL.
*/
-int media_get_pad_index(struct media_entity *entity, bool is_sink,
+int media_get_pad_index(struct media_entity *entity, u32 pad_type,
enum media_pad_signal_type sig_type);
/**
--
2.30.2
^ permalink raw reply related [flat|nested] 13+ messages in thread
end of thread, other threads:[~2023-05-08 9:28 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-05 20:50 [PATCH 0/3] Random cleanups Sakari Ailus
2023-05-05 20:50 ` [PATCH 1/3] media: mc: Make media_get_pad_index() use pad type flag Sakari Ailus
2023-05-06 11:25 ` Laurent Pinchart
2023-05-05 20:51 ` [PATCH 2/3] media: Documentation: Rename meta format files Sakari Ailus
2023-05-06 11:25 ` Laurent Pinchart
2023-05-05 20:51 ` [PATCH 3/3] media: uapi: Use unsigned int values for assigning bits in u32 fields Sakari Ailus
2023-05-06 11:32 ` Laurent Pinchart
2023-05-08 6:19 ` Sakari Ailus
2023-05-08 6:30 ` Laurent Pinchart
2023-05-08 6:58 ` Sakari Ailus
2023-05-08 7:52 ` Laurent Pinchart
2023-05-08 8:34 ` Sakari Ailus
-- strict thread matches above, loose matches on Subject: below --
2023-05-08 9:17 [PATCH v2 0/3] Random cleanups Sakari Ailus
2023-05-08 9:17 ` [PATCH 1/3] media: mc: Make media_get_pad_index() use pad type flag Sakari Ailus
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.