diff options
Diffstat (limited to 'drivers/media/video/cx25840/cx25840-core.c')
-rw-r--r-- | drivers/media/video/cx25840/cx25840-core.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c index a65b3cc4bf03..a961bb2ab0fd 100644 --- a/drivers/media/video/cx25840/cx25840-core.c +++ b/drivers/media/video/cx25840/cx25840-core.c | |||
@@ -32,8 +32,9 @@ | |||
32 | #include <linux/videodev2.h> | 32 | #include <linux/videodev2.h> |
33 | #include <linux/i2c.h> | 33 | #include <linux/i2c.h> |
34 | #include <media/v4l2-common.h> | 34 | #include <media/v4l2-common.h> |
35 | #include <media/cx25840.h> | ||
35 | 36 | ||
36 | #include "cx25840.h" | 37 | #include "cx25840-core.h" |
37 | 38 | ||
38 | MODULE_DESCRIPTION("Conexant CX25840 audio/video decoder driver"); | 39 | MODULE_DESCRIPTION("Conexant CX25840 audio/video decoder driver"); |
39 | MODULE_AUTHOR("Ulf Eklund, Chris Kennedy, Hans Verkuil, Tyler Trafford"); | 40 | MODULE_AUTHOR("Ulf Eklund, Chris Kennedy, Hans Verkuil, Tyler Trafford"); |
@@ -668,6 +669,7 @@ static int cx25840_command(struct i2c_client *client, unsigned int cmd, | |||
668 | { | 669 | { |
669 | struct cx25840_state *state = i2c_get_clientdata(client); | 670 | struct cx25840_state *state = i2c_get_clientdata(client); |
670 | struct v4l2_tuner *vt = arg; | 671 | struct v4l2_tuner *vt = arg; |
672 | struct v4l2_routing *route = arg; | ||
671 | 673 | ||
672 | switch (cmd) { | 674 | switch (cmd) { |
673 | #ifdef CONFIG_VIDEO_ADV_DEBUG | 675 | #ifdef CONFIG_VIDEO_ADV_DEBUG |
@@ -749,19 +751,21 @@ static int cx25840_command(struct i2c_client *client, unsigned int cmd, | |||
749 | state->radio = 1; | 751 | state->radio = 1; |
750 | break; | 752 | break; |
751 | 753 | ||
752 | case VIDIOC_G_INPUT: | 754 | case VIDIOC_INT_G_VIDEO_ROUTING: |
753 | *(int *)arg = state->vid_input; | 755 | route->input = state->vid_input; |
756 | route->output = 0; | ||
754 | break; | 757 | break; |
755 | 758 | ||
756 | case VIDIOC_S_INPUT: | 759 | case VIDIOC_INT_S_VIDEO_ROUTING: |
757 | return set_input(client, *(enum cx25840_video_input *)arg, state->aud_input); | 760 | return set_input(client, route->input, state->aud_input); |
758 | 761 | ||
759 | case VIDIOC_S_AUDIO: | 762 | case VIDIOC_INT_G_AUDIO_ROUTING: |
760 | { | 763 | route->input = state->aud_input; |
761 | struct v4l2_audio *input = arg; | 764 | route->output = 0; |
765 | break; | ||
762 | 766 | ||
763 | return set_input(client, state->vid_input, input->index); | 767 | case VIDIOC_INT_S_AUDIO_ROUTING: |
764 | } | 768 | return set_input(client, state->vid_input, route->input); |
765 | 769 | ||
766 | case VIDIOC_S_FREQUENCY: | 770 | case VIDIOC_S_FREQUENCY: |
767 | input_change(client); | 771 | input_change(client); |