mirror of
https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
synced 2025-09-15 00:56:46 +10:00
media: v4l: Support obtaining link frequency via get_mbus_config
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> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
This commit is contained in:
parent
15f0035bfd
commit
9849b9fead
@ -508,12 +508,23 @@ EXPORT_SYMBOL_GPL(__v4l2_get_link_freq_ctrl);
|
|||||||
s64 __v4l2_get_link_freq_pad(struct media_pad *pad, unsigned int mul,
|
s64 __v4l2_get_link_freq_pad(struct media_pad *pad, unsigned int mul,
|
||||||
unsigned int div)
|
unsigned int div)
|
||||||
{
|
{
|
||||||
|
struct v4l2_mbus_config mbus_config = {};
|
||||||
struct v4l2_subdev *sd;
|
struct v4l2_subdev *sd;
|
||||||
|
int ret;
|
||||||
|
|
||||||
sd = media_entity_to_v4l2_subdev(pad->entity);
|
sd = media_entity_to_v4l2_subdev(pad->entity);
|
||||||
if (!sd)
|
ret = v4l2_subdev_call(sd, pad, get_mbus_config, pad->index,
|
||||||
return -ENODEV;
|
&mbus_config);
|
||||||
|
if (ret < 0 && ret != -ENOIOCTLCMD)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
if (mbus_config.link_freq)
|
||||||
|
return mbus_config.link_freq;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fall back to using the link frequency control if the media bus config
|
||||||
|
* doesn't provide a link frequency.
|
||||||
|
*/
|
||||||
return __v4l2_get_link_freq_ctrl(sd->ctrl_handler, mul, div);
|
return __v4l2_get_link_freq_ctrl(sd->ctrl_handler, mul, div);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(__v4l2_get_link_freq_pad);
|
EXPORT_SYMBOL_GPL(__v4l2_get_link_freq_pad);
|
||||||
|
@ -169,6 +169,7 @@ enum v4l2_mbus_type {
|
|||||||
/**
|
/**
|
||||||
* struct v4l2_mbus_config - media bus configuration
|
* struct v4l2_mbus_config - media bus configuration
|
||||||
* @type: interface type
|
* @type: interface type
|
||||||
|
* @link_freq: The link frequency. See also V4L2_CID_LINK_FREQ control.
|
||||||
* @bus: bus configuration data structure
|
* @bus: bus configuration data structure
|
||||||
* @bus.parallel: embedded &struct v4l2_mbus_config_parallel.
|
* @bus.parallel: embedded &struct v4l2_mbus_config_parallel.
|
||||||
* Used if the bus is parallel or BT.656.
|
* Used if the bus is parallel or BT.656.
|
||||||
@ -183,6 +184,7 @@ enum v4l2_mbus_type {
|
|||||||
*/
|
*/
|
||||||
struct v4l2_mbus_config {
|
struct v4l2_mbus_config {
|
||||||
enum v4l2_mbus_type type;
|
enum v4l2_mbus_type type;
|
||||||
|
u64 link_freq;
|
||||||
union {
|
union {
|
||||||
struct v4l2_mbus_config_parallel parallel;
|
struct v4l2_mbus_config_parallel parallel;
|
||||||
struct v4l2_mbus_config_mipi_csi1 mipi_csi1;
|
struct v4l2_mbus_config_mipi_csi1 mipi_csi1;
|
||||||
|
Loading…
Reference in New Issue
Block a user