[PATCH 3/3] video: ipuv3: imx-ldb: Support video modes in ldb node
Sascha Hauer
s.hauer at pengutronix.de
Tue Sep 22 00:19:19 PDT 2015
We used to support video modes directly in the ldb device node, that
was lost in: 5bda17e video: ipuv3: Replace ipu_output with VPL.
Add this support back.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
drivers/video/imx-ipu-v3/imx-ldb.c | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/drivers/video/imx-ipu-v3/imx-ldb.c b/drivers/video/imx-ipu-v3/imx-ldb.c
index 2f49ed2..f502f19 100644
--- a/drivers/video/imx-ipu-v3/imx-ldb.c
+++ b/drivers/video/imx-ipu-v3/imx-ldb.c
@@ -282,9 +282,18 @@ static int imx_ldb_ioctl(struct vpl *vpl, unsigned int port,
V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
return 0;
- default:
- return vpl_ioctl(vpl, imx_ldb_ch->output_port, cmd, data);
+ case VPL_GET_VIDEOMODES:
+ if (imx_ldb_ch->modes) {
+ struct display_timings *timings = data;
+ timings->num_modes = imx_ldb_ch->modes->num_modes;
+ timings->modes = imx_ldb_ch->modes->modes;
+ return 0;
+ }
+
+ break;
}
+
+ return vpl_ioctl(vpl, imx_ldb_ch->output_port, cmd, data);
}
static int imx_ldb_probe(struct device_d *dev)
@@ -329,8 +338,15 @@ static int imx_ldb_probe(struct device_d *dev)
/* The output port is port at 4 with mux or port at 1 without mux */
port = of_graph_get_port_by_id(child, channel->output_port);
if (!port) {
- dev_warn(dev, "No port found for %s\n", child->full_name);
- continue;
+ /*
+ * No output port found, see if we can get modes from the
+ * ldb node.
+ */
+ channel->modes = of_get_display_timings(child);
+ if (!channel->modes) {
+ dev_warn(dev, "No port found for %s\n", child->full_name);
+ continue;
+ }
}
channel->vpl.node = child;
--
2.5.1
More information about the barebox
mailing list