aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2007-01-19 23:56:04 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-02-21 10:34:41 -0500
commit606cf9caeb3b908426757924bfdce85cb854aa81 (patch)
treef7236b01b9d8e3af4b12116a9c0ebe055f1ac60c /drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c
parent27c7b710a4010e10b14500c0b27bb4c2a806de1b (diff)
V4L/DVB (5093): Pvrusb2: Emit VIDIOC_S_TUNER correctly
Audio mode changes are not private to the audio chip - other I2C modules need to see this as well. And since the command in question is VIDIOC_S_TUNER which is a standard v4l2 command, we really should be broadcasting it out. This change sets up a broadcast pathway for VIDIOC_S_TUNER and also eliminates the now redundant code from the audio chip handler. This fix enables stereo reception for the FM radio Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c')
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c b/drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c
index 16fa075a1eec..49773764383b 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c
@@ -33,15 +33,17 @@
33#define trace_i2c(...) pvr2_trace(PVR2_TRACE_I2C,__VA_ARGS__) 33#define trace_i2c(...) pvr2_trace(PVR2_TRACE_I2C,__VA_ARGS__)
34 34
35#define OP_STANDARD 0 35#define OP_STANDARD 0
36#define OP_BCSH 1 36#define OP_AUDIOMODE 1
37#define OP_VOLUME 2 37#define OP_BCSH 2
38#define OP_FREQ 3 38#define OP_VOLUME 3
39#define OP_AUDIORATE 4 39#define OP_FREQ 4
40#define OP_SIZE 5 40#define OP_AUDIORATE 5
41#define OP_LOG 6 41#define OP_SIZE 6
42#define OP_LOG 7
42 43
43static const struct pvr2_i2c_op * const ops[] = { 44static const struct pvr2_i2c_op * const ops[] = {
44 [OP_STANDARD] = &pvr2_i2c_op_v4l2_standard, 45 [OP_STANDARD] = &pvr2_i2c_op_v4l2_standard,
46 [OP_AUDIOMODE] = &pvr2_i2c_op_v4l2_audiomode,
45 [OP_BCSH] = &pvr2_i2c_op_v4l2_bcsh, 47 [OP_BCSH] = &pvr2_i2c_op_v4l2_bcsh,
46 [OP_VOLUME] = &pvr2_i2c_op_v4l2_volume, 48 [OP_VOLUME] = &pvr2_i2c_op_v4l2_volume,
47 [OP_FREQ] = &pvr2_i2c_op_v4l2_frequency, 49 [OP_FREQ] = &pvr2_i2c_op_v4l2_frequency,
@@ -54,6 +56,7 @@ void pvr2_i2c_probe(struct pvr2_hdw *hdw,struct pvr2_i2c_client *cp)
54 int id; 56 int id;
55 id = cp->client->driver->id; 57 id = cp->client->driver->id;
56 cp->ctl_mask = ((1 << OP_STANDARD) | 58 cp->ctl_mask = ((1 << OP_STANDARD) |
59 (1 << OP_AUDIOMODE) |
57 (1 << OP_BCSH) | 60 (1 << OP_BCSH) |
58 (1 << OP_VOLUME) | 61 (1 << OP_VOLUME) |
59 (1 << OP_FREQ) | 62 (1 << OP_FREQ) |