diff options
Diffstat (limited to 'drivers/media/video/wm8775.c')
-rw-r--r-- | drivers/media/video/wm8775.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/media/video/wm8775.c b/drivers/media/video/wm8775.c index 8cb64f8a8a91..d81a88bbe43d 100644 --- a/drivers/media/video/wm8775.c +++ b/drivers/media/video/wm8775.c | |||
@@ -79,21 +79,26 @@ static int wm8775_command(struct i2c_client *client, unsigned int cmd, | |||
79 | void *arg) | 79 | void *arg) |
80 | { | 80 | { |
81 | struct wm8775_state *state = i2c_get_clientdata(client); | 81 | struct wm8775_state *state = i2c_get_clientdata(client); |
82 | struct v4l2_audio *input = arg; | 82 | struct v4l2_routing *route = arg; |
83 | struct v4l2_control *ctrl = arg; | 83 | struct v4l2_control *ctrl = arg; |
84 | 84 | ||
85 | switch (cmd) { | 85 | switch (cmd) { |
86 | case VIDIOC_S_AUDIO: | 86 | case VIDIOC_INT_G_AUDIO_ROUTING: |
87 | route->input = state->input; | ||
88 | route->output = 0; | ||
89 | break; | ||
90 | |||
91 | case VIDIOC_INT_S_AUDIO_ROUTING: | ||
87 | /* There are 4 inputs and one output. Zero or more inputs | 92 | /* There are 4 inputs and one output. Zero or more inputs |
88 | are multiplexed together to the output. Hence there are | 93 | are multiplexed together to the output. Hence there are |
89 | 16 combinations. | 94 | 16 combinations. |
90 | If only one input is active (the normal case) then the | 95 | If only one input is active (the normal case) then the |
91 | input values 1, 2, 4 or 8 should be used. */ | 96 | input values 1, 2, 4 or 8 should be used. */ |
92 | if (input->index > 15) { | 97 | if (route->input > 15) { |
93 | v4l_err(client, "Invalid input %d.\n", input->index); | 98 | v4l_err(client, "Invalid input %d.\n", route->input); |
94 | return -EINVAL; | 99 | return -EINVAL; |
95 | } | 100 | } |
96 | state->input = input->index; | 101 | state->input = route->input; |
97 | if (state->muted) | 102 | if (state->muted) |
98 | break; | 103 | break; |
99 | wm8775_write(client, R21, 0x0c0); | 104 | wm8775_write(client, R21, 0x0c0); |
@@ -102,11 +107,6 @@ static int wm8775_command(struct i2c_client *client, unsigned int cmd, | |||
102 | wm8775_write(client, R21, 0x100 + state->input); | 107 | wm8775_write(client, R21, 0x100 + state->input); |
103 | break; | 108 | break; |
104 | 109 | ||
105 | case VIDIOC_G_AUDIO: | ||
106 | memset(input, 0, sizeof(*input)); | ||
107 | input->index = state->input; | ||
108 | break; | ||
109 | |||
110 | case VIDIOC_G_CTRL: | 110 | case VIDIOC_G_CTRL: |
111 | if (ctrl->id != V4L2_CID_AUDIO_MUTE) | 111 | if (ctrl->id != V4L2_CID_AUDIO_MUTE) |
112 | return -EINVAL; | 112 | return -EINVAL; |