diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-23 10:40:19 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-23 10:40:19 -0700 |
commit | 135aae340d66c5e273af297bbd5178a5e5c458ee (patch) | |
tree | 7301bfc6a1c85e74788a2fbcc36eb5b78122df31 /drivers/media/video/pvrusb2/pvrusb2-cs53l32a.c | |
parent | 811e42cfba334d27797989ac8b0bea4981cb9581 (diff) | |
parent | eebf8d86acf0db974dfaad8e8285f4e12ca488e2 (diff) |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (62 commits)
V4L/DVB (12131): BUGFIX: An incorrect Carrier Recovery Loop optimization table was being
V4L/DVB (12130): Fix a redundant compiler warning
V4L/DVB (12003): v4l2: Move bounding code outside I2C ifdef block
V4L/DVB (11913): cx231xx: TRY_FMT should not actually set anything
V4L/DVB (11912): em28xx: Use v4l bounding/alignment function
V4L/DVB (11911): cx231xx: Use v4l bounding/alignment function
V4L/DVB (11910): mt9: Use v4l bounding/alignment function
V4L/DVB (11909): cx23885: Use v4l bounding/alignment function
V4L/DVB (11908): w8968cf: Use v4l bounding/alignment function
V4L/DVB (11907): cx88: Use v4l bounding/alignment function
V4L/DVB (11906): saa7134: Use v4l bounding/alignment function
V4L/DVB (11905): vivi: Use v4l bounding/alignment function
V4L/DVB (11904): zoran: Use v4l bounding/alignment functiob
V4L/DVB (11903): sh_mobile_ceu_camera: Use v4l bounding/alignment function
V4L/DVB (11902): pxa-camera: Use v4l bounding/alignment function
V4L/DVB (11901): v4l2: Create helper function for bounding and aligning images
V4L/DVB (12128): v4l2: update framework documentation.
V4L/DVB (12125): v4l2: add new s_config subdev ops and v4l2_i2c_new_subdev_cfg/board calls
V4L/DVB (12122): pvrusb2: De-obfuscate code which handles routing schemes
V4L/DVB (12121): pvrusb2: Improve handling of routing schemes
...
Diffstat (limited to 'drivers/media/video/pvrusb2/pvrusb2-cs53l32a.c')
-rw-r--r-- | drivers/media/video/pvrusb2/pvrusb2-cs53l32a.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-cs53l32a.c b/drivers/media/video/pvrusb2/pvrusb2-cs53l32a.c index 9023adf3fdc..68980e19409 100644 --- a/drivers/media/video/pvrusb2/pvrusb2-cs53l32a.c +++ b/drivers/media/video/pvrusb2/pvrusb2-cs53l32a.c @@ -49,11 +49,13 @@ static const int routing_scheme1[] = { [PVR2_CVAL_INPUT_SVIDEO] = 0, }; -static const struct routing_scheme routing_schemes[] = { - [PVR2_ROUTING_SCHEME_ONAIR] = { - .def = routing_scheme1, - .cnt = ARRAY_SIZE(routing_scheme1), - }, +static const struct routing_scheme routing_def1 = { + .def = routing_scheme1, + .cnt = ARRAY_SIZE(routing_scheme1), +}; + +static const struct routing_scheme *routing_schemes[] = { + [PVR2_ROUTING_SCHEME_ONAIR] = &routing_def1, }; @@ -65,12 +67,11 @@ void pvr2_cs53l32a_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd) u32 input; pvr2_trace(PVR2_TRACE_CHIPS, "subdev v4l2 set_input(%d)", hdw->input_val); - if ((sid < ARRAY_SIZE(routing_schemes)) && - ((sp = routing_schemes + sid) != NULL) && - (hdw->input_val >= 0) && - (hdw->input_val < sp->cnt)) { - input = sp->def[hdw->input_val]; - } else { + sp = (sid < ARRAY_SIZE(routing_schemes)) ? + routing_schemes[sid] : NULL; + if ((sp == NULL) || + (hdw->input_val < 0) || + (hdw->input_val >= sp->cnt)) { pvr2_trace(PVR2_TRACE_ERROR_LEGS, "*** WARNING *** subdev v4l2 set_input:" " Invalid routing scheme (%u)" @@ -78,6 +79,7 @@ void pvr2_cs53l32a_subdev_update(struct pvr2_hdw *hdw, struct v4l2_subdev *sd) sid, hdw->input_val); return; } + input = sp->def[hdw->input_val]; sd->ops->audio->s_routing(sd, input, 0, 0); } } |