From: William Towle <william.to...@codethink.co.uk>

Add logic such that the "default-input" property becomes unnecessary
for chips that only have one suitable input (ADV7611 by design, and
ADV7612 due to commit 7111cddd "[media] media: adv7604: reduce support
to first (digital) input").

Additionally, Ian's documentation in commit bf9c8227 ("[media] media:
adv7604: ability to read default input port from DT") states that the
"default-input" property should reside directly in the node for
adv7612. Hence, also adjust the parsing to make the implementation
consistent with this.

Signed-off-by: William Towle <william.to...@codethink.co.uk>
Signed-off-by: Ulrich Hecht <ulrich.hecht+rene...@gmail.com>
---
 drivers/media/i2c/adv7604.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/drivers/media/i2c/adv7604.c b/drivers/media/i2c/adv7604.c
index f8dd750..2097c48 100644
--- a/drivers/media/i2c/adv7604.c
+++ b/drivers/media/i2c/adv7604.c
@@ -2799,7 +2799,7 @@ static int adv76xx_parse_dt(struct adv76xx_state *state)
        struct device_node *endpoint;
        struct device_node *np;
        unsigned int flags;
-       u32 v;
+       u32 v = -1;
 
        np = state->i2c_clients[ADV76XX_PAGE_IO]->dev.of_node;
 
@@ -2809,14 +2809,24 @@ static int adv76xx_parse_dt(struct adv76xx_state *state)
                return -EINVAL;
 
        v4l2_of_parse_endpoint(endpoint, &bus_cfg);
-
-       if (!of_property_read_u32(endpoint, "default-input", &v))
-               state->pdata.default_input = v;
-       else
-               state->pdata.default_input = -1;
-
        of_node_put(endpoint);
 
+       if (of_property_read_u32(np, "default-input", &v)) {
+               /* not specified ... can we choose automatically? */
+               switch (state->info->type) {
+               case ADV7611:
+                       v = 0;
+                       break;
+               case ADV7612:
+                       if (state->info->max_port == ADV76XX_PAD_HDMI_PORT_A)
+                               v = 0;
+                       /* else is unhobbled, leave unspecified */
+               default:
+                       break;
+               }
+       }
+       state->pdata.default_input = v;
+
        flags = bus_cfg.bus.parallel.flags;
 
        if (flags & V4L2_MBUS_HSYNC_ACTIVE_HIGH)
-- 
2.6.4

--
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