Hi Hans,
(CC'ing Sakari)
On Monday 06 Feb 2017 10:50:22 Hans Verkuil wrote:
On 02/05/2017 04:48 PM, Laurent Pinchart wrote:mux\n");
On Tuesday 24 Jan 2017 18:07:55 Steve Longerbeam wrote:
On 01/24/2017 04:02 AM, Philipp Zabel wrote:
On Fri, 2017-01-20 at 15:03 +0100, Hans Verkuil wrote:
+
+int vidsw_g_mbus_config(struct v4l2_subdev *sd, struct
v4l2_mbus_config
*cfg)
+{
+ struct vidsw *vidsw = v4l2_subdev_to_vidsw(sd);
+ struct media_pad *pad;
+ int ret;
+
+ if (vidsw->active == -1) {
+ dev_err(sd->dev, "no configuration for inactive
to the+ return -EINVAL;
+ }
+
+ /*
+ * Retrieve media bus configuration from the entity connected
(mea culpa, s/point/idea/)That's not a good point.Hi Hans, the imx-media driver was only calling g_mbus_config to the+ * active inputI am not certain this op is needed at all. In the current kernel this
+ */
+ pad = media_entity_remote_pad(&vidsw->pads[vidsw->active]);
+ if (pad) {
+ sd = media_entity_to_v4l2_subdev(pad->entity);
+ ret = v4l2_subdev_call(sd, video, g_mbus_config, cfg);
+ if (ret == -ENOIOCTLCMD)
+ pad = NULL;
+ else if (ret < 0) {
+ dev_err(sd->dev, "failed to get source
configuration\n");
+ return ret;
+ }
+ }
+ if (!pad) {
+ /* Mirror the input side on the output side */
+ cfg->type = vidsw->endpoint[vidsw->active].bus_type;
+ if (cfg->type == V4L2_MBUS_PARALLEL ||
+ cfg->type == V4L2_MBUS_BT656)
+ cfg->flags = vidsw->endpoint[vidsw-
active].bus.parallel.flags;
+ }
+
+ return 0;
+}
op is only used by soc_camera, pxa_camera and omap3isp (somewhat
dubious). Normally this information should come from the device tree
and there should be no need for this op.
My (tentative) long-term plan was to get rid of this op.
If you don't need it, then I recommend it is removed.
camera sensor, and it was doing that to determine the sensor's bus type.
This info was already available from parsing a v4l2_of_endpoint from the
sensor node. So it was simple to remove the g_mbus_config calls, and
instead rely on the parsed sensor v4l2_of_endpoint.
The imx-media driver must not parse the sensor DT node as it is not aware
of what bindings the sensor is compatible with.
It all depends on what type of information needs to be retrieved, and whetherInformation must insteadShouldn't this come from the imx-media DT node? BTW, why is omap3isp using
be queried from the sensor subdev at runtime, through the g_mbus_config()
operation.
Of course, if you can get the information from the imx-media DT node,
that's certainly an option. It's only information provided by the sensor
driver that you have no choice but query using a subdev operation.
this?
it can change at runtime or is fixed. Adding properties to the imx-media DT
node is certainly fine as long as those properties describe the i.MX side.
In the omap3isp case, we use the operation to query whether parallel data
contains embedded sync (BT.656) or uses separate h/v sync signals.
The reason I am suspicious about this op is that it came from soc-camera andPart of it is possibly outdated, but for buses that support multiple modes of
predates the DT. The contents of v4l2_mbus_config seems very much like a HW
description to me, i.e. something that belongs in the DT.
operation (such as the parallel bus case described above) we need to make that
information discoverable at runtime. Maybe this should be considered as
related to Sakari's efforts to support VC/DT for CSI-2, and supported through
the API he is working on.