Message ID | 20170206093748.GA17017@amd (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Pavel, On Mon, Feb 06, 2017 at 10:37:48AM +0100, Pavel Machek wrote: > > Normally, link configuration can be determined at probe time... but > Nokia N900 has two cameras, and can switch between them at runtime, so > that mechanism is not suitable here. > > Add a hook that tells us link configuration. > > Signed-off-by: Pavel Machek <pavel@ucw.cz> > > diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h > index cf778c5..74148b9 100644 > --- a/include/media/v4l2-subdev.h > +++ b/include/media/v4l2-subdev.h > @@ -25,6 +25,7 @@ > #include <media/v4l2-dev.h> > #include <media/v4l2-fh.h> > #include <media/v4l2-mediabus.h> > +#include <media/v4l2-of.h> > > /* generic v4l2_device notify callback notification values */ > #define V4L2_SUBDEV_IR_RX_NOTIFY _IOW('v', 0, u32) > @@ -383,6 +384,8 @@ struct v4l2_mbus_frame_desc { > * @s_rx_buffer: set a host allocated memory buffer for the subdev. The subdev > * can adjust @size to a lower value and must not write more data to the > * buffer starting at @data than the original value of @size. > + * > + * @g_endpoint_config: get link configuration required by this device. > */ > struct v4l2_subdev_video_ops { > int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config); > @@ -415,6 +418,8 @@ struct v4l2_subdev_video_ops { > const struct v4l2_mbus_config *cfg); > int (*s_rx_buffer)(struct v4l2_subdev *sd, void *buf, > unsigned int *size); > + int (*g_endpoint_config)(struct v4l2_subdev *sd, > + struct v4l2_of_endpoint *cfg); > }; > > /** > > > > I think Laurent has a board that has a similar issue. I'd like to address such issues in conjunction with the CSI-2 virtual channel and data type support, with the patches in the vc branch here: <URL:https://git.linuxtv.org/sailus/media_tree.git/log/?h=vc> V4L2 OF (or fwnode) endpoint alone doesn't contain all the related information, and it'd be nice if the solution was indeed independent of OF (or fwnode). Niklas has been working on more driver support for this so we're getting closer to having these merged.
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h index cf778c5..74148b9 100644 --- a/include/media/v4l2-subdev.h +++ b/include/media/v4l2-subdev.h @@ -25,6 +25,7 @@ #include <media/v4l2-dev.h> #include <media/v4l2-fh.h> #include <media/v4l2-mediabus.h> +#include <media/v4l2-of.h> /* generic v4l2_device notify callback notification values */ #define V4L2_SUBDEV_IR_RX_NOTIFY _IOW('v', 0, u32) @@ -383,6 +384,8 @@ struct v4l2_mbus_frame_desc { * @s_rx_buffer: set a host allocated memory buffer for the subdev. The subdev * can adjust @size to a lower value and must not write more data to the * buffer starting at @data than the original value of @size. + * + * @g_endpoint_config: get link configuration required by this device. */ struct v4l2_subdev_video_ops { int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config); @@ -415,6 +418,8 @@ struct v4l2_subdev_video_ops { const struct v4l2_mbus_config *cfg); int (*s_rx_buffer)(struct v4l2_subdev *sd, void *buf, unsigned int *size); + int (*g_endpoint_config)(struct v4l2_subdev *sd, + struct v4l2_of_endpoint *cfg); }; /**
Normally, link configuration can be determined at probe time... but Nokia N900 has two cameras, and can switch between them at runtime, so that mechanism is not suitable here. Add a hook that tells us link configuration. Signed-off-by: Pavel Machek <pavel@ucw.cz>