Current v4l2_of_parse_parallel_bus function attempts to parse the
DT properties for the parallel bus as well as BT656 bus.
If the pclk-sample property is defined for the BT656 bus, it is still
marked as a parallel bus.
Fix this by parsing the pclk after the bus_type is selected.
Only when hsync or vsync properties are specified, the bus_type should
be set to V4L2_MBUS_PARALLEL.

Signed-off-by: Nikhil Devshatwar <nikhil...@ti.com>
---
 drivers/media/v4l2-core/v4l2-of.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/media/v4l2-core/v4l2-of.c 
b/drivers/media/v4l2-core/v4l2-of.c
index c52fb96..b27cbb1 100644
--- a/drivers/media/v4l2-core/v4l2-of.c
+++ b/drivers/media/v4l2-core/v4l2-of.c
@@ -93,10 +93,6 @@ static void v4l2_of_parse_parallel_bus(const struct 
device_node *node,
                flags |= v ? V4L2_MBUS_VSYNC_ACTIVE_HIGH :
                        V4L2_MBUS_VSYNC_ACTIVE_LOW;
 
-       if (!of_property_read_u32(node, "pclk-sample", &v))
-               flags |= v ? V4L2_MBUS_PCLK_SAMPLE_RISING :
-                       V4L2_MBUS_PCLK_SAMPLE_FALLING;
-
        if (!of_property_read_u32(node, "field-even-active", &v))
                flags |= v ? V4L2_MBUS_FIELD_EVEN_HIGH :
                        V4L2_MBUS_FIELD_EVEN_LOW;
@@ -105,6 +101,10 @@ static void v4l2_of_parse_parallel_bus(const struct 
device_node *node,
        else
                endpoint->bus_type = V4L2_MBUS_BT656;
 
+       if (!of_property_read_u32(node, "pclk-sample", &v))
+               flags |= v ? V4L2_MBUS_PCLK_SAMPLE_RISING :
+                       V4L2_MBUS_PCLK_SAMPLE_FALLING;
+
        if (!of_property_read_u32(node, "data-active", &v))
                flags |= v ? V4L2_MBUS_DATA_ACTIVE_HIGH :
                        V4L2_MBUS_DATA_ACTIVE_LOW;
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to