media: v4l: omap3isp: Get the parallel bus type from DT
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tue, 18 Jul 2017 15:51:35 +0000 (11:51 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 26 Jul 2017 12:41:33 +0000 (08:41 -0400)
The OMAP3 ISP supports both external and embedded BT.656 synchronization
for parallel buses. It currently gets the bus type information from the
source subdev through the .g_mbus_config() operation, but should instead
get it from DT as that's the authoritative source of bus configuration
information.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/platform/omap3isp/isp.c
drivers/media/platform/omap3isp/ispccdc.c
drivers/media/platform/omap3isp/omap3isp.h

index 2de7a27..79aff6b 100644 (file)
@@ -2042,6 +2042,7 @@ static int isp_fwnode_parse(struct device *dev, struct fwnode_handle *fwnode,
                        !!(vep.bus.parallel.flags & V4L2_MBUS_FIELD_EVEN_LOW);
                buscfg->bus.parallel.data_pol =
                        !!(vep.bus.parallel.flags & V4L2_MBUS_DATA_ACTIVE_LOW);
+               buscfg->bus.parallel.bt656 = vep.bus_type == V4L2_MBUS_BT656;
                break;
 
        case ISP_OF_PHY_CSIPHY1:
index 7207558..4947876 100644 (file)
@@ -1139,15 +1139,9 @@ static void ccdc_configure(struct isp_ccdc_device *ccdc)
        pad = media_entity_remote_pad(&ccdc->pads[CCDC_PAD_SINK]);
        sensor = media_entity_to_v4l2_subdev(pad->entity);
        if (ccdc->input == CCDC_INPUT_PARALLEL) {
-               struct v4l2_mbus_config cfg;
-               int ret;
-
-               ret = v4l2_subdev_call(sensor, video, g_mbus_config, &cfg);
-               if (!ret)
-                       ccdc->bt656 = cfg.type == V4L2_MBUS_BT656;
-
                parcfg = &((struct isp_bus_cfg *)sensor->host_priv)
                        ->bus.parallel;
+               ccdc->bt656 = parcfg->bt656;
        }
 
        /* CCDC_PAD_SINK */
index 3c26f9a..dfd3cbe 100644 (file)
@@ -46,6 +46,7 @@ enum isp_interface_type {
  *             0 - Positive, 1 - Negative
  * @data_pol: Data polarity
  *             0 - Normal, 1 - One's complement
+ * @bt656: Data contain BT.656 embedded synchronization
  */
 struct isp_parallel_cfg {
        unsigned int data_lane_shift:3;
@@ -54,6 +55,7 @@ struct isp_parallel_cfg {
        unsigned int vs_pol:1;
        unsigned int fld_pol:1;
        unsigned int data_pol:1;
+       unsigned int bt656:1;
 };
 
 enum {