aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/ivtv/ivtv-gpio.c
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2009-07-22 20:24:53 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-12 11:18:12 -0400
commit1420d498fd8890bbd878d261f317f9d64544ce0b (patch)
tree4c478693589250643143cda066ea3bd421197b8c /drivers/media/video/ivtv/ivtv-gpio.c
parentd31b67d81b1b724d0610e9f0cfeac494d62ffca4 (diff)
V4L/DVB (12336): ivtv: Fix improper GPIO audio mux input switch on video standard change
Remove the subdev_s_std() method from the GPIO subdev. It appears it was used in the past to effect the switch back from radio mode to tuner mode, but it had a side effect that is improper and against the V4L2 spec, when you were not in radio mode. Whenever the video stanadrd was changed, the GPIO audio mux was set back to the tuner audio input, even if you were set to a Line In input. Thanks to Ravi A. for doing the troubleshooting to point me right to the problem. Reported-by: Ravi A <asvravi@gmail.com> Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/ivtv/ivtv-gpio.c')
-rw-r--r--drivers/media/video/ivtv/ivtv-gpio.c13
1 files changed, 0 insertions, 13 deletions
diff --git a/drivers/media/video/ivtv/ivtv-gpio.c b/drivers/media/video/ivtv/ivtv-gpio.c
index 85ac707228e7..aede061cae5d 100644
--- a/drivers/media/video/ivtv/ivtv-gpio.c
+++ b/drivers/media/video/ivtv/ivtv-gpio.c
@@ -236,18 +236,6 @@ static int subdev_s_radio(struct v4l2_subdev *sd)
236 return 0; 236 return 0;
237} 237}
238 238
239static int subdev_s_std(struct v4l2_subdev *sd, v4l2_std_id std)
240{
241 struct ivtv *itv = sd_to_ivtv(sd);
242 u16 mask, data;
243
244 mask = itv->card->gpio_audio_input.mask;
245 data = itv->card->gpio_audio_input.tuner;
246 if (mask)
247 write_reg((read_reg(IVTV_REG_GPIO_OUT) & ~mask) | (data & mask), IVTV_REG_GPIO_OUT);
248 return 0;
249}
250
251static int subdev_s_audio_routing(struct v4l2_subdev *sd, 239static int subdev_s_audio_routing(struct v4l2_subdev *sd,
252 u32 input, u32 output, u32 config) 240 u32 input, u32 output, u32 config)
253{ 241{
@@ -344,7 +332,6 @@ static const struct v4l2_subdev_core_ops subdev_core_ops = {
344 .g_ctrl = subdev_g_ctrl, 332 .g_ctrl = subdev_g_ctrl,
345 .s_ctrl = subdev_s_ctrl, 333 .s_ctrl = subdev_s_ctrl,
346 .queryctrl = subdev_queryctrl, 334 .queryctrl = subdev_queryctrl,
347 .s_std = subdev_s_std,
348}; 335};
349 336
350static const struct v4l2_subdev_tuner_ops subdev_tuner_ops = { 337static const struct v4l2_subdev_tuner_ops subdev_tuner_ops = {