diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2008-07-17 11:26:45 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-20 06:28:07 -0400 |
commit | ca130eef2ca185739a440b893e69fe36038b87c9 (patch) | |
tree | e35b288f2a6c1ba816e0ba524ca8966cbab9d147 /drivers/media/video/cx25840 | |
parent | cb5aa1c62df81ba2cdbae7f7ce469b231d43aba6 (diff) |
V4L/DVB (8377): ivtv/cx18: ensure the default control values are correct
For several MPEG controls and the volume control the default as returned
by VIDIOC_QUERYCTRL was incorrect and did not match the actual initial
value.
This is now fixed for cx18 and ivtv.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/cx25840')
-rw-r--r-- | drivers/media/video/cx25840/cx25840-core.c | 4 | ||||
-rw-r--r-- | drivers/media/video/cx25840/cx25840-core.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c index 120c498cb60c..e7bf4f4c1319 100644 --- a/drivers/media/video/cx25840/cx25840-core.c +++ b/drivers/media/video/cx25840/cx25840-core.c | |||
@@ -1204,6 +1204,8 @@ static int cx25840_command(struct i2c_client *client, unsigned int cmd, | |||
1204 | 1204 | ||
1205 | switch (qc->id) { | 1205 | switch (qc->id) { |
1206 | case V4L2_CID_AUDIO_VOLUME: | 1206 | case V4L2_CID_AUDIO_VOLUME: |
1207 | return v4l2_ctrl_query_fill(qc, 0, 65535, | ||
1208 | 65535 / 100, state->default_volume); | ||
1207 | case V4L2_CID_AUDIO_MUTE: | 1209 | case V4L2_CID_AUDIO_MUTE: |
1208 | case V4L2_CID_AUDIO_BALANCE: | 1210 | case V4L2_CID_AUDIO_BALANCE: |
1209 | case V4L2_CID_AUDIO_BASS: | 1211 | case V4L2_CID_AUDIO_BASS: |
@@ -1411,6 +1413,8 @@ static int cx25840_probe(struct i2c_client *client, | |||
1411 | state->pvr150_workaround = 0; | 1413 | state->pvr150_workaround = 0; |
1412 | state->audmode = V4L2_TUNER_MODE_LANG1; | 1414 | state->audmode = V4L2_TUNER_MODE_LANG1; |
1413 | state->unmute_volume = -1; | 1415 | state->unmute_volume = -1; |
1416 | state->default_volume = 228 - cx25840_read(client, 0x8d4); | ||
1417 | state->default_volume = ((state->default_volume / 2) + 23) << 9; | ||
1414 | state->vbi_line_offset = 8; | 1418 | state->vbi_line_offset = 8; |
1415 | state->id = id; | 1419 | state->id = id; |
1416 | state->rev = device_id; | 1420 | state->rev = device_id; |
diff --git a/drivers/media/video/cx25840/cx25840-core.h b/drivers/media/video/cx25840/cx25840-core.h index 27d8e52cd67e..72916ba975a8 100644 --- a/drivers/media/video/cx25840/cx25840-core.h +++ b/drivers/media/video/cx25840/cx25840-core.h | |||
@@ -44,6 +44,7 @@ struct cx25840_state { | |||
44 | u32 audclk_freq; | 44 | u32 audclk_freq; |
45 | int audmode; | 45 | int audmode; |
46 | int unmute_volume; /* -1 if not muted */ | 46 | int unmute_volume; /* -1 if not muted */ |
47 | int default_volume; | ||
47 | int vbi_line_offset; | 48 | int vbi_line_offset; |
48 | u32 id; | 49 | u32 id; |
49 | u32 rev; | 50 | u32 rev; |