From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: linux-media@vger.kernel.org
Cc: Jacopo Mondi <jacopo.mondi@ideasonboard.com>,
hverkuil@xs4all.nl, laurent.pinchart@ideasonboard.com
Subject: [PATCH v7 2/5] media: v4l: Support obtaining link frequency via get_mbus_config
Date: Tue, 10 Dec 2024 09:59:03 +0200 [thread overview]
Message-ID: <20241210075906.609490-3-sakari.ailus@linux.intel.com> (raw)
In-Reply-To: <20241210075906.609490-1-sakari.ailus@linux.intel.com>
Add link_freq field to struct v4l2_mbus_config in order to pass the link
frequency to the receiving sub-device.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
drivers/media/v4l2-core/v4l2-common.c | 11 ++++++++---
include/media/v4l2-mediabus.h | 2 ++
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c
index 9fe74c7e064f..88fbd5608f00 100644
--- a/drivers/media/v4l2-core/v4l2-common.c
+++ b/drivers/media/v4l2-core/v4l2-common.c
@@ -508,13 +508,18 @@ EXPORT_SYMBOL_GPL(__v4l2_get_link_freq_ctrl);
s64 __v4l2_get_link_freq_pad(struct media_pad *pad, unsigned int mul,
unsigned int div)
{
+ struct v4l2_mbus_config mbus_config = {};
struct v4l2_subdev *sd;
+ int ret;
sd = media_entity_to_v4l2_subdev(pad->entity);
- if (!sd)
- return -ENODEV;
+ ret = v4l2_subdev_call(sd, pad, get_mbus_config, pad->index,
+ &mbus_config);
+ if (ret < 0 && ret != -ENOIOCTLCMD)
+ return ret;
- return __v4l2_get_link_freq_ctrl(sd->ctrl_handler, mul, div);
+ return mbus_config.link_freq ?:
+ __v4l2_get_link_freq_ctrl(sd->ctrl_handler, mul, div);
}
EXPORT_SYMBOL_GPL(__v4l2_get_link_freq_pad);
#endif /* CONFIG_MEDIA_CONTROLLER */
diff --git a/include/media/v4l2-mediabus.h b/include/media/v4l2-mediabus.h
index 5bce6e423e94..cc5f776dc662 100644
--- a/include/media/v4l2-mediabus.h
+++ b/include/media/v4l2-mediabus.h
@@ -148,6 +148,7 @@ enum v4l2_mbus_type {
/**
* struct v4l2_mbus_config - media bus configuration
* @type: interface type
+ * @link_freq: The link frequency. See also V4L2_CID_LINK_FREQ control.
* @bus: bus configuration data structure
* @bus.parallel: embedded &struct v4l2_mbus_config_parallel.
* Used if the bus is parallel or BT.656.
@@ -162,6 +163,7 @@ enum v4l2_mbus_type {
*/
struct v4l2_mbus_config {
enum v4l2_mbus_type type;
+ u64 link_freq;
union {
struct v4l2_mbus_config_parallel parallel;
struct v4l2_mbus_config_mipi_csi1 mipi_csi1;
--
2.39.5
next prev parent reply other threads:[~2024-12-10 7:59 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-10 7:59 [PATCH v7 0/5] Use V4L2 mbus config for conveying MEI CSI link frequency Sakari Ailus
2024-12-10 7:59 ` [PATCH v7 1/5] media: v4l: Support passing media pad argument to v4l2_get_link_freq() Sakari Ailus
2024-12-12 17:04 ` Jacopo Mondi
2024-12-15 16:45 ` Laurent Pinchart
2024-12-16 8:38 ` Sakari Ailus
2024-12-10 7:59 ` Sakari Ailus [this message]
2024-12-12 17:05 ` [PATCH v7 2/5] media: v4l: Support obtaining link frequency via get_mbus_config Jacopo Mondi
2024-12-15 16:59 ` Laurent Pinchart
2024-12-16 8:46 ` Sakari Ailus
2024-12-16 11:16 ` Laurent Pinchart
2024-12-16 12:15 ` Sakari Ailus
2024-12-16 13:51 ` Laurent Pinchart
2024-12-10 7:59 ` [PATCH v7 3/5] media: Documentation: Update link frequency driver documentation Sakari Ailus
2024-12-12 16:53 ` Jacopo Mondi
2024-12-13 7:15 ` Sakari Ailus
2024-12-15 17:02 ` Laurent Pinchart
2024-12-16 8:07 ` Sakari Ailus
2024-12-16 8:08 ` Sakari Ailus
2024-12-16 11:20 ` Laurent Pinchart
2024-12-16 12:05 ` Sakari Ailus
2024-12-16 13:51 ` Laurent Pinchart
2024-12-10 7:59 ` [PATCH v7 4/5] media: ivsc: csi: Obtain link frequency from the media pad Sakari Ailus
2024-12-10 7:59 ` [PATCH v7 5/5] media: intel/ipu6: Obtain link frequency from a sub-device Sakari Ailus
2024-12-15 17:08 ` Laurent Pinchart
2024-12-16 7:47 ` Sakari Ailus
2024-12-16 9:07 ` Laurent Pinchart
2024-12-16 9:18 ` Sakari Ailus
2024-12-16 9:40 ` Laurent Pinchart
2024-12-16 8:03 ` Sakari Ailus
2024-12-16 11:13 ` Laurent Pinchart
2024-12-16 11:21 ` 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=20241210075906.609490-3-sakari.ailus@linux.intel.com \
--to=sakari.ailus@linux.intel.com \
--cc=hverkuil@xs4all.nl \
--cc=jacopo.mondi@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
/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.