aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx25840
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2008-07-17 11:26:45 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-07-20 06:28:07 -0400
commitca130eef2ca185739a440b893e69fe36038b87c9 (patch)
treee35b288f2a6c1ba816e0ba524ca8966cbab9d147 /drivers/media/video/cx25840
parentcb5aa1c62df81ba2cdbae7f7ce469b231d43aba6 (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.c4
-rw-r--r--drivers/media/video/cx25840/cx25840-core.h1
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;