aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx25840/cx25840-core.c
diff options
context:
space:
mode:
authorSven Barth <pascaldragon@googlemail.com>2010-07-10 15:02:21 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-10-21 09:41:45 -0200
commit5af79f86db6a29a158510b5dc255d8844d95c4e9 (patch)
tree0ed6cee8b57b40fcdacb0ca0dd2c3150f281cdd2 /drivers/media/video/cx25840/cx25840-core.c
parent94399431379dfc77565c9861013f41ab0078c18b (diff)
downloadkernel_samsung_smdk4412-5af79f86db6a29a158510b5dc255d8844d95c4e9.zip
kernel_samsung_smdk4412-5af79f86db6a29a158510b5dc255d8844d95c4e9.tar.gz
kernel_samsung_smdk4412-5af79f86db6a29a158510b5dc255d8844d95c4e9.tar.bz2
[media] Add support for AUX_PLL on cx2583x chips
This adds support for the AUX_PLL in cx2583x chips which is available in those although the audio part of the chip is not. The AUX_PLL is used at least by Terratec in their Grabster AV400 device. Signed-off-by: Sven Barth <pascaldragon@googlemail.com> Acked-by: Mike Isely <isely@pobox.com> Reviewed-by: Andy Walls <awalls@md.metrocast.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx25840/cx25840-core.c')
-rw-r--r--drivers/media/video/cx25840/cx25840-core.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c
index f26f9da..af1eea0 100644
--- a/drivers/media/video/cx25840/cx25840-core.c
+++ b/drivers/media/video/cx25840/cx25840-core.c
@@ -870,6 +870,11 @@ static void input_change(struct i2c_client *client)
}
cx25840_and_or(client, 0x401, ~0x60, 0);
cx25840_and_or(client, 0x401, ~0x60, 0x60);
+
+ /* Don't write into audio registers on cx2583x chips */
+ if (is_cx2583x(state))
+ return;
+
cx25840_and_or(client, 0x810, ~0x01, 1);
if (state->radio) {
@@ -1028,10 +1033,8 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
state->vid_input = vid_input;
state->aud_input = aud_input;
- if (!is_cx2583x(state)) {
- cx25840_audio_set_path(client);
- input_change(client);
- }
+ cx25840_audio_set_path(client);
+ input_change(client);
if (is_cx2388x(state)) {
/* Audio channel 1 src : Parallel 1 */
@@ -1552,8 +1555,6 @@ static int cx25840_s_audio_routing(struct v4l2_subdev *sd,
struct cx25840_state *state = to_state(sd);
struct i2c_client *client = v4l2_get_subdevdata(sd);
- if (is_cx2583x(state))
- return -EINVAL;
return set_input(client, state->vid_input, input);
}
@@ -1562,8 +1563,7 @@ static int cx25840_s_frequency(struct v4l2_subdev *sd, struct v4l2_frequency *fr
struct cx25840_state *state = to_state(sd);
struct i2c_client *client = v4l2_get_subdevdata(sd);
- if (!is_cx2583x(state))
- input_change(client);
+ input_change(client);
return 0;
}