From: Vaibhav Hiremath <hvaib...@ti.com>

Driver should switch to AutoSwitch mode on S_INPUT and QUERYSTD ioctls.
It has been observed that, if user configure the standard explicitely
then driver preserves the old settings.

Reviewed by: Vaibhav Hiremath <hvaib...@ti.com>
Signed-off-by: Brijesh Jadav <brijes...@ti.com>
---
 drivers/media/video/tvp514x.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/tvp514x.c b/drivers/media/video/tvp514x.c
index 2443726..0b0412d 100644
--- a/drivers/media/video/tvp514x.c
+++ b/drivers/media/video/tvp514x.c
@@ -523,10 +523,18 @@ static int tvp514x_querystd(struct v4l2_subdev *sd, 
v4l2_std_id *std_id)
        enum tvp514x_std current_std;
        enum tvp514x_input input_sel;
        u8 sync_lock_status, lock_mask;
+       int err;

        if (std_id == NULL)
                return -EINVAL;

+       err = tvp514x_write_reg(sd, REG_VIDEO_STD,
+                       VIDEO_STD_AUTO_SWITCH_BIT);
+       if (err < 0)
+               return err;
+
+       msleep(LOCK_RETRY_DELAY);
+
        /* get the current standard */
        current_std = tvp514x_get_current_std(sd);
        if (current_std == STD_INVALID)
@@ -643,6 +651,15 @@ static int tvp514x_s_routing(struct v4l2_subdev *sd,
                /* Index out of bound */
                return -EINVAL;

+       /* Since this api is goint to detect the input, it is required
+          to set the standard in the auto switch mode */
+       err = tvp514x_write_reg(sd, REG_VIDEO_STD,
+                       VIDEO_STD_AUTO_SWITCH_BIT);
+       if (err < 0)
+               return err;
+
+       msleep(LOCK_RETRY_DELAY);
+
        input_sel = input;
        output_sel = output;

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