aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVaibhav Hiremath <hvaibhav@ti.com>2010-03-27 08:37:54 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-05-17 23:52:47 -0400
commit63b59cecb2fa0a274d1c7240112460816d826988 (patch)
tree8da2f8f4f99674ffc9d0eb2fb08e22a438588dda
parent844cc0dcb588ee7005c70cffd92ee7a0c1270729 (diff)
V4L/DVB: V4L: tvp514x: Add Powerup sequence during s_input to lock the signal properly
For the sequence streamon -> streamoff and again s_input, it fails to lock the signal, since streamoff puts TVP514x into power off state which leads to failure in sub-sequent s_input. So add powerup sequence in s_routing (if disabled), since it is important to lock the signal at this stage. Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com> Signed-off-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com> Signed-off-by: Muralidharan Karicheri <mkaricheri@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/tvp514x.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/media/video/tvp514x.c b/drivers/media/video/tvp514x.c
index e4815a1806e3..e826114b7fb8 100644
--- a/drivers/media/video/tvp514x.c
+++ b/drivers/media/video/tvp514x.c
@@ -79,6 +79,8 @@ struct tvp514x_std_info {
79}; 79};
80 80
81static struct tvp514x_reg tvp514x_reg_list_default[0x40]; 81static struct tvp514x_reg tvp514x_reg_list_default[0x40];
82
83static int tvp514x_s_stream(struct v4l2_subdev *sd, int enable);
82/** 84/**
83 * struct tvp514x_decoder - TVP5146/47 decoder object 85 * struct tvp514x_decoder - TVP5146/47 decoder object
84 * @sd: Subdevice Slave handle 86 * @sd: Subdevice Slave handle
@@ -644,6 +646,17 @@ static int tvp514x_s_routing(struct v4l2_subdev *sd,
644 /* Index out of bound */ 646 /* Index out of bound */
645 return -EINVAL; 647 return -EINVAL;
646 648
649 /*
650 * For the sequence streamon -> streamoff and again s_input
651 * it fails to lock the signal, since streamoff puts TVP514x
652 * into power off state which leads to failure in sub-sequent s_input.
653 *
654 * So power up the TVP514x device here, since it is important to lock
655 * the signal at this stage.
656 */
657 if (!decoder->streaming)
658 tvp514x_s_stream(sd, 1);
659
647 input_sel = input; 660 input_sel = input;
648 output_sel = output; 661 output_sel = output;
649 662