Error Trace

[Home]

Bug # 53

Show/hide error trace
Error trace
Function bodies
Blocks
  • Others...
    Function bodies without model function calls
    Initialization function calls
    Initialization function bodies
    Entry point
    Entry point body
    Function calls
    Skipped function calls
    Formal parameter names
    Declarations
    Assumes
    Assume conditions
    Returns
    Return values
    DEG initialization
    DEG function calls
    Model function calls
    Model function bodies
    Model asserts
    Model state changes
    Model function function calls
    Model function function bodies
    Model returns
    Model others
    Identation
    Line numbers
    Expand signs
-__BLAST_initialize_/work/ldvuser/ref_launch/work/current--X--drivers--X--defaultlinux-4.0-rc1.tar.xz--X--132_1a/linux-4.0-rc1.tar.xz/csd_deg_dscv/8231/dscv_tempdir/dscv/rcv/132_1a/main-ldv_main1_sequence_infinite_withcheck_stateful/preprocess/1-cpp/drivers/media/usb/usbvision/usbvision-core.o.i()
{
52 -adjust_compression = 1;
adjust_x_offset = 4294967295;
adjust_y_offset = 4294967295;
scratch_buf_size = 131072;
return ;
}
-__BLAST_initialize_/work/ldvuser/ref_launch/work/current--X--drivers--X--defaultlinux-4.0-rc1.tar.xz--X--132_1a/linux-4.0-rc1.tar.xz/csd_deg_dscv/8231/dscv_tempdir/dscv/rcv/132_1a/main-ldv_main1_sequence_infinite_withcheck_stateful/preprocess/1-cpp/drivers/media/usb/usbvision/usbvision-video.o.i()
{
107 -usbvision_v4l2_format[ 0 ].supported = 1;
usbvision_v4l2_format[ 0 ].bytes_per_pixel = 1;
usbvision_v4l2_format[ 0 ].depth = 8;
usbvision_v4l2_format[ 0 ].format = 1497715271;
usbvision_v4l2_format[ 0 ].desc = "GREY";
usbvision_v4l2_format[ 1 ].supported = 1;
usbvision_v4l2_format[ 1 ].bytes_per_pixel = 2;
usbvision_v4l2_format[ 1 ].depth = 16;
usbvision_v4l2_format[ 1 ].format = 1346520914;
usbvision_v4l2_format[ 1 ].desc = "RGB565";
usbvision_v4l2_format[ 2 ].supported = 1;
usbvision_v4l2_format[ 2 ].bytes_per_pixel = 3;
usbvision_v4l2_format[ 2 ].depth = 24;
usbvision_v4l2_format[ 2 ].format = 859981650;
usbvision_v4l2_format[ 2 ].desc = "RGB24";
usbvision_v4l2_format[ 3 ].supported = 1;
usbvision_v4l2_format[ 3 ].bytes_per_pixel = 4;
usbvision_v4l2_format[ 3 ].depth = 32;
usbvision_v4l2_format[ 3 ].format = 876758866;
usbvision_v4l2_format[ 3 ].desc = "RGB32";
usbvision_v4l2_format[ 4 ].supported = 1;
usbvision_v4l2_format[ 4 ].bytes_per_pixel = 2;
usbvision_v4l2_format[ 4 ].depth = 16;
usbvision_v4l2_format[ 4 ].format = 1329743698;
usbvision_v4l2_format[ 4 ].desc = "RGB555";
usbvision_v4l2_format[ 5 ].supported = 1;
usbvision_v4l2_format[ 5 ].bytes_per_pixel = 2;
usbvision_v4l2_format[ 5 ].depth = 16;
usbvision_v4l2_format[ 5 ].format = 1448695129;
usbvision_v4l2_format[ 5 ].desc = "YUV422";
usbvision_v4l2_format[ 6 ].supported = 1;
usbvision_v4l2_format[ 6 ].bytes_per_pixel = 2;
usbvision_v4l2_format[ 6 ].depth = 12;
usbvision_v4l2_format[ 6 ].format = 842094169;
usbvision_v4l2_format[ 6 ].desc = "YUV420P";
usbvision_v4l2_format[ 7 ].supported = 1;
usbvision_v4l2_format[ 7 ].bytes_per_pixel = 2;
usbvision_v4l2_format[ 7 ].depth = 16;
usbvision_v4l2_format[ 7 ].format = 1345466932;
usbvision_v4l2_format[ 7 ].desc = "YUV422P";
isoc_mode = 96;
power_on_at_open = 1;
video_nr = -1;
radio_nr = -1;
dev_attr_version.attr.name = "version";
dev_attr_version.attr.mode = 292;
dev_attr_version.attr.ignore_lockdep = 0;
dev_attr_version.attr.key = 0;
dev_attr_version.attr.skey.subkeys[ 0 ].__one_byte = 0;
dev_attr_version.attr.skey.subkeys[ 1 ].__one_byte = 0;
dev_attr_version.attr.skey.subkeys[ 2 ].__one_byte = 0;
dev_attr_version.attr.skey.subkeys[ 3 ].__one_byte = 0;
dev_attr_version.attr.skey.subkeys[ 4 ].__one_byte = 0;
dev_attr_version.attr.skey.subkeys[ 5 ].__one_byte = 0;
dev_attr_version.attr.skey.subkeys[ 6 ].__one_byte = 0;
dev_attr_version.attr.skey.subkeys[ 7 ].__one_byte = 0;
dev_attr_version.show = &(show_version);
dev_attr_version.store = 0;
dev_attr_model.attr.name = "model";
dev_attr_model.attr.mode = 292;
dev_attr_model.attr.ignore_lockdep = 0;
dev_attr_model.attr.key = 0;
dev_attr_model.attr.skey.subkeys[ 0 ].__one_byte = 0;
dev_attr_model.attr.skey.subkeys[ 1 ].__one_byte = 0;
dev_attr_model.attr.skey.subkeys[ 2 ].__one_byte = 0;
dev_attr_model.attr.skey.subkeys[ 3 ].__one_byte = 0;
dev_attr_model.attr.skey.subkeys[ 4 ].__one_byte = 0;
dev_attr_model.attr.skey.subkeys[ 5 ].__one_byte = 0;
dev_attr_model.attr.skey.subkeys[ 6 ].__one_byte = 0;
dev_attr_model.attr.skey.subkeys[ 7 ].__one_byte = 0;
dev_attr_model.show = &(show_model);
dev_attr_model.store = 0;
dev_attr_hue.attr.name = "hue";
dev_attr_hue.attr.mode = 292;
dev_attr_hue.attr.ignore_lockdep = 0;
dev_attr_hue.attr.key = 0;
dev_attr_hue.attr.skey.subkeys[ 0 ].__one_byte = 0;
dev_attr_hue.attr.skey.subkeys[ 1 ].__one_byte = 0;
dev_attr_hue.attr.skey.subkeys[ 2 ].__one_byte = 0;
dev_attr_hue.attr.skey.subkeys[ 3 ].__one_byte = 0;
dev_attr_hue.attr.skey.subkeys[ 4 ].__one_byte = 0;
dev_attr_hue.attr.skey.subkeys[ 5 ].__one_byte = 0;
dev_attr_hue.attr.skey.subkeys[ 6 ].__one_byte = 0;
dev_attr_hue.attr.skey.subkeys[ 7 ].__one_byte = 0;
dev_attr_hue.show = &(show_hue);
dev_attr_hue.store = 0;
dev_attr_contrast.attr.name = "contrast";
dev_attr_contrast.attr.mode = 292;
dev_attr_contrast.attr.ignore_lockdep = 0;
dev_attr_contrast.attr.key = 0;
dev_attr_contrast.attr.skey.subkeys[ 0 ].__one_byte = 0;
dev_attr_contrast.attr.skey.subkeys[ 1 ].__one_byte = 0;
dev_attr_contrast.attr.skey.subkeys[ 2 ].__one_byte = 0;
dev_attr_contrast.attr.skey.subkeys[ 3 ].__one_byte = 0;
dev_attr_contrast.attr.skey.subkeys[ 4 ].__one_byte = 0;
dev_attr_contrast.attr.skey.subkeys[ 5 ].__one_byte = 0;
dev_attr_contrast.attr.skey.subkeys[ 6 ].__one_byte = 0;
dev_attr_contrast.attr.skey.subkeys[ 7 ].__one_byte = 0;
dev_attr_contrast.show = &(show_contrast);
dev_attr_contrast.store = 0;
dev_attr_brightness.attr.name = "brightness";
dev_attr_brightness.attr.mode = 292;
dev_attr_brightness.attr.ignore_lockdep = 0;
dev_attr_brightness.attr.key = 0;
dev_attr_brightness.attr.skey.subkeys[ 0 ].__one_byte = 0;
dev_attr_brightness.attr.skey.subkeys[ 1 ].__one_byte = 0;
dev_attr_brightness.attr.skey.subkeys[ 2 ].__one_byte = 0;
dev_attr_brightness.attr.skey.subkeys[ 3 ].__one_byte = 0;
dev_attr_brightness.attr.skey.subkeys[ 4 ].__one_byte = 0;
dev_attr_brightness.attr.skey.subkeys[ 5 ].__one_byte = 0;
dev_attr_brightness.attr.skey.subkeys[ 6 ].__one_byte = 0;
dev_attr_brightness.attr.skey.subkeys[ 7 ].__one_byte = 0;
dev_attr_brightness.show = &(show_brightness);
dev_attr_brightness.store = 0;
dev_attr_saturation.attr.name = "saturation";
dev_attr_saturation.attr.mode = 292;
dev_attr_saturation.attr.ignore_lockdep = 0;
dev_attr_saturation.attr.key = 0;
dev_attr_saturation.attr.skey.subkeys[ 0 ].__one_byte = 0;
dev_attr_saturation.attr.skey.subkeys[ 1 ].__one_byte = 0;
dev_attr_saturation.attr.skey.subkeys[ 2 ].__one_byte = 0;
dev_attr_saturation.attr.skey.subkeys[ 3 ].__one_byte = 0;
dev_attr_saturation.attr.skey.subkeys[ 4 ].__one_byte = 0;
dev_attr_saturation.attr.skey.subkeys[ 5 ].__one_byte = 0;
dev_attr_saturation.attr.skey.subkeys[ 6 ].__one_byte = 0;
dev_attr_saturation.attr.skey.subkeys[ 7 ].__one_byte = 0;
dev_attr_saturation.show = &(show_saturation);
dev_attr_saturation.store = 0;
dev_attr_streaming.attr.name = "streaming";
dev_attr_streaming.attr.mode = 292;
dev_attr_streaming.attr.ignore_lockdep = 0;
dev_attr_streaming.attr.key = 0;
dev_attr_streaming.attr.skey.subkeys[ 0 ].__one_byte = 0;
dev_attr_streaming.attr.skey.subkeys[ 1 ].__one_byte = 0;
dev_attr_streaming.attr.skey.subkeys[ 2 ].__one_byte = 0;
dev_attr_streaming.attr.skey.subkeys[ 3 ].__one_byte = 0;
dev_attr_streaming.attr.skey.subkeys[ 4 ].__one_byte = 0;
dev_attr_streaming.attr.skey.subkeys[ 5 ].__one_byte = 0;
dev_attr_streaming.attr.skey.subkeys[ 6 ].__one_byte = 0;
dev_attr_streaming.attr.skey.subkeys[ 7 ].__one_byte = 0;
dev_attr_streaming.show = &(show_streaming);
dev_attr_streaming.store = 0;
dev_attr_compression.attr.name = "compression";
dev_attr_compression.attr.mode = 292;
dev_attr_compression.attr.ignore_lockdep = 0;
dev_attr_compression.attr.key = 0;
dev_attr_compression.attr.skey.subkeys[ 0 ].__one_byte = 0;
dev_attr_compression.attr.skey.subkeys[ 1 ].__one_byte = 0;
dev_attr_compression.attr.skey.subkeys[ 2 ].__one_byte = 0;
dev_attr_compression.attr.skey.subkeys[ 3 ].__one_byte = 0;
dev_attr_compression.attr.skey.subkeys[ 4 ].__one_byte = 0;
dev_attr_compression.attr.skey.subkeys[ 5 ].__one_byte = 0;
dev_attr_compression.attr.skey.subkeys[ 6 ].__one_byte = 0;
dev_attr_compression.attr.skey.subkeys[ 7 ].__one_byte = 0;
dev_attr_compression.show = &(show_compression);
dev_attr_compression.store = 0;
dev_attr_bridge.attr.name = "bridge";
dev_attr_bridge.attr.mode = 292;
dev_attr_bridge.attr.ignore_lockdep = 0;
dev_attr_bridge.attr.key = 0;
dev_attr_bridge.attr.skey.subkeys[ 0 ].__one_byte = 0;
dev_attr_bridge.attr.skey.subkeys[ 1 ].__one_byte = 0;
dev_attr_bridge.attr.skey.subkeys[ 2 ].__one_byte = 0;
dev_attr_bridge.attr.skey.subkeys[ 3 ].__one_byte = 0;
dev_attr_bridge.attr.skey.subkeys[ 4 ].__one_byte = 0;
dev_attr_bridge.attr.skey.subkeys[ 5 ].__one_byte = 0;
dev_attr_bridge.attr.skey.subkeys[ 6 ].__one_byte = 0;
dev_attr_bridge.attr.skey.subkeys[ 7 ].__one_byte = 0;
dev_attr_bridge.show = &(show_device_bridge);
dev_attr_bridge.store = 0;
usbvision_fops.owner = &(__this_module);
usbvision_fops.read = &(usbvision_v4l2_read);
usbvision_fops.write = 0;
usbvision_fops.poll = 0;
usbvision_fops.ioctl = 0;
usbvision_fops.unlocked_ioctl = &(video_ioctl2);
usbvision_fops.compat_ioctl32 = 0;
usbvision_fops.get_unmapped_area = 0;
usbvision_fops.mmap = &(usbvision_v4l2_mmap);
usbvision_fops.open = &(usbvision_v4l2_open);
usbvision_fops.release = &(usbvision_v4l2_close);
usbvision_ioctl_ops.vidioc_querycap = &(vidioc_querycap);
usbvision_ioctl_ops.vidioc_g_priority = 0;
usbvision_ioctl_ops.vidioc_s_priority = 0;
usbvision_ioctl_ops.vidioc_enum_fmt_vid_cap = &(vidioc_enum_fmt_vid_cap);
usbvision_ioctl_ops.vidioc_enum_fmt_vid_overlay = 0;
usbvision_ioctl_ops.vidioc_enum_fmt_vid_out = 0;
usbvision_ioctl_ops.vidioc_enum_fmt_vid_cap_mplane = 0;
usbvision_ioctl_ops.vidioc_enum_fmt_vid_out_mplane = 0;
usbvision_ioctl_ops.vidioc_enum_fmt_sdr_cap = 0;
usbvision_ioctl_ops.vidioc_g_fmt_vid_cap = &(vidioc_g_fmt_vid_cap);
usbvision_ioctl_ops.vidioc_g_fmt_vid_overlay = 0;
usbvision_ioctl_ops.vidioc_g_fmt_vid_out = 0;
usbvision_ioctl_ops.vidioc_g_fmt_vid_out_overlay = 0;
usbvision_ioctl_ops.vidioc_g_fmt_vbi_cap = 0;
usbvision_ioctl_ops.vidioc_g_fmt_vbi_out = 0;
usbvision_ioctl_ops.vidioc_g_fmt_sliced_vbi_cap = 0;
usbvision_ioctl_ops.vidioc_g_fmt_sliced_vbi_out = 0;
usbvision_ioctl_ops.vidioc_g_fmt_vid_cap_mplane = 0;
usbvision_ioctl_ops.vidioc_g_fmt_vid_out_mplane = 0;
usbvision_ioctl_ops.vidioc_g_fmt_sdr_cap = 0;
usbvision_ioctl_ops.vidioc_s_fmt_vid_cap = &(vidioc_s_fmt_vid_cap);
usbvision_ioctl_ops.vidioc_s_fmt_vid_overlay = 0;
usbvision_ioctl_ops.vidioc_s_fmt_vid_out = 0;
usbvision_ioctl_ops.vidioc_s_fmt_vid_out_overlay = 0;
usbvision_ioctl_ops.vidioc_s_fmt_vbi_cap = 0;
usbvision_ioctl_ops.vidioc_s_fmt_vbi_out = 0;
usbvision_ioctl_ops.vidioc_s_fmt_sliced_vbi_cap = 0;
usbvision_ioctl_ops.vidioc_s_fmt_sliced_vbi_out = 0;
usbvision_ioctl_ops.vidioc_s_fmt_vid_cap_mplane = 0;
usbvision_ioctl_ops.vidioc_s_fmt_vid_out_mplane = 0;
usbvision_ioctl_ops.vidioc_s_fmt_sdr_cap = 0;
usbvision_ioctl_ops.vidioc_try_fmt_vid_cap = &(vidioc_try_fmt_vid_cap);
usbvision_ioctl_ops.vidioc_try_fmt_vid_overlay = 0;
usbvision_ioctl_ops.vidioc_try_fmt_vid_out = 0;
usbvision_ioctl_ops.vidioc_try_fmt_vid_out_overlay = 0;
usbvision_ioctl_ops.vidioc_try_fmt_vbi_cap = 0;
usbvision_ioctl_ops.vidioc_try_fmt_vbi_out = 0;
usbvision_ioctl_ops.vidioc_try_fmt_sliced_vbi_cap = 0;
usbvision_ioctl_ops.vidioc_try_fmt_sliced_vbi_out = 0;
usbvision_ioctl_ops.vidioc_try_fmt_vid_cap_mplane = 0;
usbvision_ioctl_ops.vidioc_try_fmt_vid_out_mplane = 0;
usbvision_ioctl_ops.vidioc_try_fmt_sdr_cap = 0;
usbvision_ioctl_ops.vidioc_reqbufs = &(vidioc_reqbufs);
usbvision_ioctl_ops.vidioc_querybuf = &(vidioc_querybuf);
usbvision_ioctl_ops.vidioc_qbuf = &(vidioc_qbuf);
usbvision_ioctl_ops.vidioc_expbuf = 0;
usbvision_ioctl_ops.vidioc_dqbuf = &(vidioc_dqbuf);
usbvision_ioctl_ops.vidioc_create_bufs = 0;
usbvision_ioctl_ops.vidioc_prepare_buf = 0;
usbvision_ioctl_ops.vidioc_overlay = 0;
usbvision_ioctl_ops.vidioc_g_fbuf = 0;
usbvision_ioctl_ops.vidioc_s_fbuf = 0;
usbvision_ioctl_ops.vidioc_streamon = &(vidioc_streamon);
usbvision_ioctl_ops.vidioc_streamoff = &(vidioc_streamoff);
usbvision_ioctl_ops.vidioc_g_std = &(vidioc_g_std);
usbvision_ioctl_ops.vidioc_s_std = &(vidioc_s_std);
usbvision_ioctl_ops.vidioc_querystd = 0;
usbvision_ioctl_ops.vidioc_enum_input = &(vidioc_enum_input);
usbvision_ioctl_ops.vidioc_g_input = &(vidioc_g_input);
usbvision_ioctl_ops.vidioc_s_input = &(vidioc_s_input);
usbvision_ioctl_ops.vidioc_enum_output = 0;
usbvision_ioctl_ops.vidioc_g_output = 0;
usbvision_ioctl_ops.vidioc_s_output = 0;
usbvision_ioctl_ops.vidioc_queryctrl = &(vidioc_queryctrl);
usbvision_ioctl_ops.vidioc_query_ext_ctrl = 0;
usbvision_ioctl_ops.vidioc_g_ctrl = &(vidioc_g_ctrl);
usbvision_ioctl_ops.vidioc_s_ctrl = &(vidioc_s_ctrl);
usbvision_ioctl_ops.vidioc_g_ext_ctrls = 0;
usbvision_ioctl_ops.vidioc_s_ext_ctrls = 0;
usbvision_ioctl_ops.vidioc_try_ext_ctrls = 0;
usbvision_ioctl_ops.vidioc_querymenu = 0;
usbvision_ioctl_ops.vidioc_enumaudio = 0;
usbvision_ioctl_ops.vidioc_g_audio = &(vidioc_g_audio);
usbvision_ioctl_ops.vidioc_s_audio = &(vidioc_s_audio);
usbvision_ioctl_ops.vidioc_enumaudout = 0;
usbvision_ioctl_ops.vidioc_g_audout = 0;
usbvision_ioctl_ops.vidioc_s_audout = 0;
usbvision_ioctl_ops.vidioc_g_modulator = 0;
usbvision_ioctl_ops.vidioc_s_modulator = 0;
usbvision_ioctl_ops.vidioc_cropcap = 0;
usbvision_ioctl_ops.vidioc_g_crop = 0;
usbvision_ioctl_ops.vidioc_s_crop = 0;
usbvision_ioctl_ops.vidioc_g_selection = 0;
usbvision_ioctl_ops.vidioc_s_selection = 0;
usbvision_ioctl_ops.vidioc_g_jpegcomp = 0;
usbvision_ioctl_ops.vidioc_s_jpegcomp = 0;
usbvision_ioctl_ops.vidioc_g_enc_index = 0;
usbvision_ioctl_ops.vidioc_encoder_cmd = 0;
usbvision_ioctl_ops.vidioc_try_encoder_cmd = 0;
usbvision_ioctl_ops.vidioc_decoder_cmd = 0;
usbvision_ioctl_ops.vidioc_try_decoder_cmd = 0;
usbvision_ioctl_ops.vidioc_g_parm = 0;
usbvision_ioctl_ops.vidioc_s_parm = 0;
usbvision_ioctl_ops.vidioc_g_tuner = &(vidioc_g_tuner);
usbvision_ioctl_ops.vidioc_s_tuner = &(vidioc_s_tuner);
usbvision_ioctl_ops.vidioc_g_frequency = &(vidioc_g_frequency);
usbvision_ioctl_ops.vidioc_s_frequency = &(vidioc_s_frequency);
usbvision_ioctl_ops.vidioc_enum_freq_bands = 0;
usbvision_ioctl_ops.vidioc_g_sliced_vbi_cap = 0;
usbvision_ioctl_ops.vidioc_log_status = 0;
usbvision_ioctl_ops.vidioc_s_hw_freq_seek = 0;
usbvision_ioctl_ops.vidioc_g_register = &(vidioc_g_register);
usbvision_ioctl_ops.vidioc_s_register = &(vidioc_s_register);
usbvision_ioctl_ops.vidioc_g_chip_info = 0;
usbvision_ioctl_ops.vidioc_enum_framesizes = 0;
usbvision_ioctl_ops.vidioc_enum_frameintervals = 0;
usbvision_ioctl_ops.vidioc_s_dv_timings = 0;
usbvision_ioctl_ops.vidioc_g_dv_timings = 0;
usbvision_ioctl_ops.vidioc_query_dv_timings = 0;
usbvision_ioctl_ops.vidioc_enum_dv_timings = 0;
usbvision_ioctl_ops.vidioc_dv_timings_cap = 0;
usbvision_ioctl_ops.vidioc_g_edid = 0;
usbvision_ioctl_ops.vidioc_s_edid = 0;
usbvision_ioctl_ops.vidioc_subscribe_event = 0;
usbvision_ioctl_ops.vidioc_unsubscribe_event = 0;
usbvision_ioctl_ops.vidioc_default = 0;
usbvision_video_template.entity.list.next = 0;
usbvision_video_template.entity.list.prev = 0;
usbvision_video_template.entity.parent = 0;
usbvision_video_template.entity.id = 0;
usbvision_video_template.entity.name = 0;
usbvision_video_template.entity.type = 0;
usbvision_video_template.entity.revision = 0;
usbvision_video_template.entity.flags = 0;
usbvision_video_template.entity.group_id = 0;
usbvision_video_template.entity.num_pads = 0;
usbvision_video_template.entity.num_links = 0;
usbvision_video_template.entity.num_backlinks = 0;
usbvision_video_template.entity.max_links = 0;
usbvision_video_template.entity.pads = 0;
usbvision_video_template.entity.links = 0;
usbvision_video_template.entity.ops = 0;
usbvision_video_template.entity.stream_count = 0;
usbvision_video_template.entity.use_count = 0;
usbvision_video_template.entity.pipe = 0;
usbvision_video_template.entity.info.alsa.card = 0;
usbvision_video_template.entity.info.alsa.device = 0;
usbvision_video_template.entity.info.alsa.subdevice = 0;
usbvision_video_template.fops = &(usbvision_fops);
usbvision_video_template.dev.parent = 0;
usbvision_video_template.dev.p = 0;
usbvision_video_template.dev.kobj.name = 0;
usbvision_video_template.dev.kobj.entry.next = 0;
usbvision_video_template.dev.kobj.entry.prev = 0;
usbvision_video_template.dev.kobj.parent = 0;
usbvision_video_template.dev.kobj.kset = 0;
usbvision_video_template.dev.kobj.ktype = 0;
usbvision_video_template.dev.kobj.sd = 0;
usbvision_video_template.dev.kobj.kref.refcount.counter = 0;
usbvision_video_template.dev.kobj.release.work.data.counter = 0;
usbvision_video_template.dev.kobj.release.work.entry.next = 0;
usbvision_video_template.dev.kobj.release.work.entry.prev = 0;
usbvision_video_template.dev.kobj.release.work.func = 0;
usbvision_video_template.dev.kobj.release.work.lockdep_map.key = 0;
usbvision_video_template.dev.kobj.release.work.lockdep_map.class_cache[ 0 ] = 0;
usbvision_video_template.dev.kobj.release.work.lockdep_map.class_cache[ 1 ] = 0;
usbvision_video_template.dev.kobj.release.work.lockdep_map.name = 0;
usbvision_video_template.dev.kobj.release.work.lockdep_map.cpu = 0;
usbvision_video_template.dev.kobj.release.work.lockdep_map.ip = 0;
usbvision_video_template.dev.kobj.release.timer.entry.next = 0;
usbvision_video_template.dev.kobj.release.timer.entry.prev = 0;
usbvision_video_template.dev.kobj.release.timer.expires = 0;
usbvision_video_template.dev.kobj.release.timer.base = 0;
usbvision_video_template.dev.kobj.release.timer.function = 0;
usbvision_video_template.dev.kobj.release.timer.data = 0;
usbvision_video_template.dev.kobj.release.timer.slack = 0;
usbvision_video_template.dev.kobj.release.timer.start_pid = 0;
usbvision_video_template.dev.kobj.release.timer.start_site = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 0 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 1 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 2 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 3 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 4 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 5 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 6 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 7 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 8 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 9 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 10 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 11 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 12 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 13 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 14 ] = 0;
usbvision_video_template.dev.kobj.release.timer.start_comm[ 15 ] = 0;
usbvision_video_template.dev.kobj.release.timer.lockdep_map.key = 0;
usbvision_video_template.dev.kobj.release.timer.lockdep_map.class_cache[ 0 ] = 0;
usbvision_video_template.dev.kobj.release.timer.lockdep_map.class_cache[ 1 ] = 0;
usbvision_video_template.dev.kobj.release.timer.lockdep_map.name = 0;
usbvision_video_template.dev.kobj.release.timer.lockdep_map.cpu = 0;
usbvision_video_template.dev.kobj.release.timer.lockdep_map.ip = 0;
usbvision_video_template.dev.kobj.release.wq = 0;
usbvision_video_template.dev.kobj.release.cpu = 0;
usbvision_video_template.dev.kobj.state_initialized = 0;
usbvision_video_template.dev.kobj.state_in_sysfs = 0;
usbvision_video_template.dev.kobj.state_add_uevent_sent = 0;
usbvision_video_template.dev.kobj.state_remove_uevent_sent = 0;
usbvision_video_template.dev.kobj.uevent_suppress = 0;
usbvision_video_template.dev.init_name = 0;
usbvision_video_template.dev.type = 0;
usbvision_video_template.dev.mutex.count.counter = 0;
usbvision_video_template.dev.mutex.wait_lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_video_template.dev.mutex.wait_lock.__annonCompField19.rlock.magic = 0;
usbvision_video_template.dev.mutex.wait_lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_video_template.dev.mutex.wait_lock.__annonCompField19.rlock.owner = 0;
usbvision_video_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_video_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_video_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_video_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_video_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_video_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_video_template.dev.mutex.wait_list.next = 0;
usbvision_video_template.dev.mutex.wait_list.prev = 0;
usbvision_video_template.dev.mutex.owner = 0;
usbvision_video_template.dev.mutex.magic = 0;
usbvision_video_template.dev.mutex.dep_map.key = 0;
usbvision_video_template.dev.mutex.dep_map.class_cache[ 0 ] = 0;
usbvision_video_template.dev.mutex.dep_map.class_cache[ 1 ] = 0;
usbvision_video_template.dev.mutex.dep_map.name = 0;
usbvision_video_template.dev.mutex.dep_map.cpu = 0;
usbvision_video_template.dev.mutex.dep_map.ip = 0;
usbvision_video_template.dev.bus = 0;
usbvision_video_template.dev.driver = 0;
usbvision_video_template.dev.platform_data = 0;
usbvision_video_template.dev.driver_data = 0;
usbvision_video_template.dev.power.power_state.event = 0;
usbvision_video_template.dev.power.can_wakeup = 0;
usbvision_video_template.dev.power.async_suspend = 0;
usbvision_video_template.dev.power.is_prepared = 0;
usbvision_video_template.dev.power.is_suspended = 0;
usbvision_video_template.dev.power.is_noirq_suspended = 0;
usbvision_video_template.dev.power.is_late_suspended = 0;
usbvision_video_template.dev.power.ignore_children = 0;
usbvision_video_template.dev.power.early_init = 0;
usbvision_video_template.dev.power.direct_complete = 0;
usbvision_video_template.dev.power.lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_video_template.dev.power.lock.__annonCompField19.rlock.magic = 0;
usbvision_video_template.dev.power.lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_video_template.dev.power.lock.__annonCompField19.rlock.owner = 0;
usbvision_video_template.dev.power.lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_video_template.dev.power.lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_video_template.dev.power.lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_video_template.dev.power.lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_video_template.dev.power.lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_video_template.dev.power.lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_video_template.dev.power.entry.next = 0;
usbvision_video_template.dev.power.entry.prev = 0;
usbvision_video_template.dev.power.completion.done = 0;
usbvision_video_template.dev.power.completion.wait.lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_video_template.dev.power.completion.wait.lock.__annonCompField19.rlock.magic = 0;
usbvision_video_template.dev.power.completion.wait.lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_video_template.dev.power.completion.wait.lock.__annonCompField19.rlock.owner = 0;
usbvision_video_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_video_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_video_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_video_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_video_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_video_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_video_template.dev.power.completion.wait.task_list.next = 0;
usbvision_video_template.dev.power.completion.wait.task_list.prev = 0;
usbvision_video_template.dev.power.wakeup = 0;
usbvision_video_template.dev.power.wakeup_path = 0;
usbvision_video_template.dev.power.syscore = 0;
usbvision_video_template.dev.power.suspend_timer.entry.next = 0;
usbvision_video_template.dev.power.suspend_timer.entry.prev = 0;
usbvision_video_template.dev.power.suspend_timer.expires = 0;
usbvision_video_template.dev.power.suspend_timer.base = 0;
usbvision_video_template.dev.power.suspend_timer.function = 0;
usbvision_video_template.dev.power.suspend_timer.data = 0;
usbvision_video_template.dev.power.suspend_timer.slack = 0;
usbvision_video_template.dev.power.suspend_timer.start_pid = 0;
usbvision_video_template.dev.power.suspend_timer.start_site = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 0 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 1 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 2 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 3 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 4 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 5 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 6 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 7 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 8 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 9 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 10 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 11 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 12 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 13 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 14 ] = 0;
usbvision_video_template.dev.power.suspend_timer.start_comm[ 15 ] = 0;
usbvision_video_template.dev.power.suspend_timer.lockdep_map.key = 0;
usbvision_video_template.dev.power.suspend_timer.lockdep_map.class_cache[ 0 ] = 0;
usbvision_video_template.dev.power.suspend_timer.lockdep_map.class_cache[ 1 ] = 0;
usbvision_video_template.dev.power.suspend_timer.lockdep_map.name = 0;
usbvision_video_template.dev.power.suspend_timer.lockdep_map.cpu = 0;
usbvision_video_template.dev.power.suspend_timer.lockdep_map.ip = 0;
usbvision_video_template.dev.power.timer_expires = 0;
usbvision_video_template.dev.power.work.data.counter = 0;
usbvision_video_template.dev.power.work.entry.next = 0;
usbvision_video_template.dev.power.work.entry.prev = 0;
usbvision_video_template.dev.power.work.func = 0;
usbvision_video_template.dev.power.work.lockdep_map.key = 0;
usbvision_video_template.dev.power.work.lockdep_map.class_cache[ 0 ] = 0;
usbvision_video_template.dev.power.work.lockdep_map.class_cache[ 1 ] = 0;
usbvision_video_template.dev.power.work.lockdep_map.name = 0;
usbvision_video_template.dev.power.work.lockdep_map.cpu = 0;
usbvision_video_template.dev.power.work.lockdep_map.ip = 0;
usbvision_video_template.dev.power.wait_queue.lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_video_template.dev.power.wait_queue.lock.__annonCompField19.rlock.magic = 0;
usbvision_video_template.dev.power.wait_queue.lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_video_template.dev.power.wait_queue.lock.__annonCompField19.rlock.owner = 0;
usbvision_video_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_video_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_video_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_video_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_video_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_video_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_video_template.dev.power.wait_queue.task_list.next = 0;
usbvision_video_template.dev.power.wait_queue.task_list.prev = 0;
usbvision_video_template.dev.power.usage_count.counter = 0;
usbvision_video_template.dev.power.child_count.counter = 0;
usbvision_video_template.dev.power.disable_depth = 0;
usbvision_video_template.dev.power.idle_notification = 0;
usbvision_video_template.dev.power.request_pending = 0;
usbvision_video_template.dev.power.deferred_resume = 0;
usbvision_video_template.dev.power.run_wake = 0;
usbvision_video_template.dev.power.runtime_auto = 0;
usbvision_video_template.dev.power.no_callbacks = 0;
usbvision_video_template.dev.power.irq_safe = 0;
usbvision_video_template.dev.power.use_autosuspend = 0;
usbvision_video_template.dev.power.timer_autosuspends = 0;
usbvision_video_template.dev.power.memalloc_noio = 0;
usbvision_video_template.dev.power.request = 0;
usbvision_video_template.dev.power.runtime_status = 0;
usbvision_video_template.dev.power.runtime_error = 0;
usbvision_video_template.dev.power.autosuspend_delay = 0;
usbvision_video_template.dev.power.last_busy = 0;
usbvision_video_template.dev.power.active_jiffies = 0;
usbvision_video_template.dev.power.suspended_jiffies = 0;
usbvision_video_template.dev.power.accounting_timestamp = 0;
usbvision_video_template.dev.power.subsys_data = 0;
usbvision_video_template.dev.power.set_latency_tolerance = 0;
usbvision_video_template.dev.power.qos = 0;
usbvision_video_template.dev.pm_domain = 0;
usbvision_video_template.dev.pins = 0;
usbvision_video_template.dev.numa_node = 0;
usbvision_video_template.dev.dma_mask = 0;
usbvision_video_template.dev.coherent_dma_mask = 0;
usbvision_video_template.dev.dma_pfn_offset = 0;
usbvision_video_template.dev.dma_parms = 0;
usbvision_video_template.dev.dma_pools.next = 0;
usbvision_video_template.dev.dma_pools.prev = 0;
usbvision_video_template.dev.dma_mem = 0;
usbvision_video_template.dev.cma_area = 0;
usbvision_video_template.dev.archdata.dma_ops = 0;
usbvision_video_template.dev.archdata.iommu = 0;
usbvision_video_template.dev.of_node = 0;
usbvision_video_template.dev.acpi_node.companion = 0;
usbvision_video_template.dev.devt = 0;
usbvision_video_template.dev.id = 0;
usbvision_video_template.dev.devres_lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_video_template.dev.devres_lock.__annonCompField19.rlock.magic = 0;
usbvision_video_template.dev.devres_lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_video_template.dev.devres_lock.__annonCompField19.rlock.owner = 0;
usbvision_video_template.dev.devres_lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_video_template.dev.devres_lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_video_template.dev.devres_lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_video_template.dev.devres_lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_video_template.dev.devres_lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_video_template.dev.devres_lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_video_template.dev.devres_head.next = 0;
usbvision_video_template.dev.devres_head.prev = 0;
usbvision_video_template.dev.knode_class.n_klist = 0;
usbvision_video_template.dev.knode_class.n_node.next = 0;
usbvision_video_template.dev.knode_class.n_node.prev = 0;
usbvision_video_template.dev.knode_class.n_ref.refcount.counter = 0;
usbvision_video_template.dev.class = 0;
usbvision_video_template.dev.groups = 0;
usbvision_video_template.dev.release = 0;
usbvision_video_template.dev.iommu_group = 0;
usbvision_video_template.dev.offline_disabled = 0;
usbvision_video_template.dev.offline = 0;
usbvision_video_template.cdev = 0;
usbvision_video_template.v4l2_dev = 0;
usbvision_video_template.dev_parent = 0;
usbvision_video_template.ctrl_handler = 0;
usbvision_video_template.queue = 0;
usbvision_video_template.prio = 0;
usbvision_video_template.name[ 0 ] = 117;
usbvision_video_template.name[ 1 ] = 115;
usbvision_video_template.name[ 2 ] = 98;
usbvision_video_template.name[ 3 ] = 118;
usbvision_video_template.name[ 4 ] = 105;
usbvision_video_template.name[ 5 ] = 115;
usbvision_video_template.name[ 6 ] = 105;
usbvision_video_template.name[ 7 ] = 111;
usbvision_video_template.name[ 8 ] = 110;
usbvision_video_template.name[ 9 ] = 45;
usbvision_video_template.name[ 10 ] = 118;
usbvision_video_template.name[ 11 ] = 105;
usbvision_video_template.name[ 12 ] = 100;
usbvision_video_template.name[ 13 ] = 101;
usbvision_video_template.name[ 14 ] = 111;
usbvision_video_template.name[ 15 ] = 0;
usbvision_video_template.name[ 16 ] = 0;
usbvision_video_template.name[ 17 ] = 0;
usbvision_video_template.name[ 18 ] = 0;
usbvision_video_template.name[ 19 ] = 0;
usbvision_video_template.name[ 20 ] = 0;
usbvision_video_template.name[ 21 ] = 0;
usbvision_video_template.name[ 22 ] = 0;
usbvision_video_template.name[ 23 ] = 0;
usbvision_video_template.name[ 24 ] = 0;
usbvision_video_template.name[ 25 ] = 0;
usbvision_video_template.name[ 26 ] = 0;
usbvision_video_template.name[ 27 ] = 0;
usbvision_video_template.name[ 28 ] = 0;
usbvision_video_template.name[ 29 ] = 0;
usbvision_video_template.name[ 30 ] = 0;
usbvision_video_template.name[ 31 ] = 0;
usbvision_video_template.vfl_type = 0;
usbvision_video_template.vfl_dir = 0;
usbvision_video_template.minor = 0;
usbvision_video_template.num = 0;
usbvision_video_template.flags = 0;
usbvision_video_template.index = 0;
usbvision_video_template.fh_lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_video_template.fh_lock.__annonCompField19.rlock.magic = 0;
usbvision_video_template.fh_lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_video_template.fh_lock.__annonCompField19.rlock.owner = 0;
usbvision_video_template.fh_lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_video_template.fh_lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_video_template.fh_lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_video_template.fh_lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_video_template.fh_lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_video_template.fh_lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_video_template.fh_list.next = 0;
usbvision_video_template.fh_list.prev = 0;
usbvision_video_template.dev_debug = 0;
usbvision_video_template.tvnorms = 16757247;
usbvision_video_template.release = &(video_device_release);
usbvision_video_template.ioctl_ops = &(usbvision_ioctl_ops);
usbvision_video_template.valid_ioctls[ 0 ] = 0;
usbvision_video_template.valid_ioctls[ 1 ] = 0;
usbvision_video_template.valid_ioctls[ 2 ] = 0;
usbvision_video_template.disable_locking[ 0 ] = 0;
usbvision_video_template.disable_locking[ 1 ] = 0;
usbvision_video_template.disable_locking[ 2 ] = 0;
usbvision_video_template.lock = 0;
usbvision_radio_fops.owner = &(__this_module);
usbvision_radio_fops.read = 0;
usbvision_radio_fops.write = 0;
usbvision_radio_fops.poll = 0;
usbvision_radio_fops.ioctl = 0;
usbvision_radio_fops.unlocked_ioctl = &(video_ioctl2);
usbvision_radio_fops.compat_ioctl32 = 0;
usbvision_radio_fops.get_unmapped_area = 0;
usbvision_radio_fops.mmap = 0;
usbvision_radio_fops.open = &(usbvision_radio_open);
usbvision_radio_fops.release = &(usbvision_radio_close);
usbvision_radio_ioctl_ops.vidioc_querycap = &(vidioc_querycap);
usbvision_radio_ioctl_ops.vidioc_g_priority = 0;
usbvision_radio_ioctl_ops.vidioc_s_priority = 0;
usbvision_radio_ioctl_ops.vidioc_enum_fmt_vid_cap = 0;
usbvision_radio_ioctl_ops.vidioc_enum_fmt_vid_overlay = 0;
usbvision_radio_ioctl_ops.vidioc_enum_fmt_vid_out = 0;
usbvision_radio_ioctl_ops.vidioc_enum_fmt_vid_cap_mplane = 0;
usbvision_radio_ioctl_ops.vidioc_enum_fmt_vid_out_mplane = 0;
usbvision_radio_ioctl_ops.vidioc_enum_fmt_sdr_cap = 0;
usbvision_radio_ioctl_ops.vidioc_g_fmt_vid_cap = 0;
usbvision_radio_ioctl_ops.vidioc_g_fmt_vid_overlay = 0;
usbvision_radio_ioctl_ops.vidioc_g_fmt_vid_out = 0;
usbvision_radio_ioctl_ops.vidioc_g_fmt_vid_out_overlay = 0;
usbvision_radio_ioctl_ops.vidioc_g_fmt_vbi_cap = 0;
usbvision_radio_ioctl_ops.vidioc_g_fmt_vbi_out = 0;
usbvision_radio_ioctl_ops.vidioc_g_fmt_sliced_vbi_cap = 0;
usbvision_radio_ioctl_ops.vidioc_g_fmt_sliced_vbi_out = 0;
usbvision_radio_ioctl_ops.vidioc_g_fmt_vid_cap_mplane = 0;
usbvision_radio_ioctl_ops.vidioc_g_fmt_vid_out_mplane = 0;
usbvision_radio_ioctl_ops.vidioc_g_fmt_sdr_cap = 0;
usbvision_radio_ioctl_ops.vidioc_s_fmt_vid_cap = 0;
usbvision_radio_ioctl_ops.vidioc_s_fmt_vid_overlay = 0;
usbvision_radio_ioctl_ops.vidioc_s_fmt_vid_out = 0;
usbvision_radio_ioctl_ops.vidioc_s_fmt_vid_out_overlay = 0;
usbvision_radio_ioctl_ops.vidioc_s_fmt_vbi_cap = 0;
usbvision_radio_ioctl_ops.vidioc_s_fmt_vbi_out = 0;
usbvision_radio_ioctl_ops.vidioc_s_fmt_sliced_vbi_cap = 0;
usbvision_radio_ioctl_ops.vidioc_s_fmt_sliced_vbi_out = 0;
usbvision_radio_ioctl_ops.vidioc_s_fmt_vid_cap_mplane = 0;
usbvision_radio_ioctl_ops.vidioc_s_fmt_vid_out_mplane = 0;
usbvision_radio_ioctl_ops.vidioc_s_fmt_sdr_cap = 0;
usbvision_radio_ioctl_ops.vidioc_try_fmt_vid_cap = 0;
usbvision_radio_ioctl_ops.vidioc_try_fmt_vid_overlay = 0;
usbvision_radio_ioctl_ops.vidioc_try_fmt_vid_out = 0;
usbvision_radio_ioctl_ops.vidioc_try_fmt_vid_out_overlay = 0;
usbvision_radio_ioctl_ops.vidioc_try_fmt_vbi_cap = 0;
usbvision_radio_ioctl_ops.vidioc_try_fmt_vbi_out = 0;
usbvision_radio_ioctl_ops.vidioc_try_fmt_sliced_vbi_cap = 0;
usbvision_radio_ioctl_ops.vidioc_try_fmt_sliced_vbi_out = 0;
usbvision_radio_ioctl_ops.vidioc_try_fmt_vid_cap_mplane = 0;
usbvision_radio_ioctl_ops.vidioc_try_fmt_vid_out_mplane = 0;
usbvision_radio_ioctl_ops.vidioc_try_fmt_sdr_cap = 0;
usbvision_radio_ioctl_ops.vidioc_reqbufs = 0;
usbvision_radio_ioctl_ops.vidioc_querybuf = 0;
usbvision_radio_ioctl_ops.vidioc_qbuf = 0;
usbvision_radio_ioctl_ops.vidioc_expbuf = 0;
usbvision_radio_ioctl_ops.vidioc_dqbuf = 0;
usbvision_radio_ioctl_ops.vidioc_create_bufs = 0;
usbvision_radio_ioctl_ops.vidioc_prepare_buf = 0;
usbvision_radio_ioctl_ops.vidioc_overlay = 0;
usbvision_radio_ioctl_ops.vidioc_g_fbuf = 0;
usbvision_radio_ioctl_ops.vidioc_s_fbuf = 0;
usbvision_radio_ioctl_ops.vidioc_streamon = 0;
usbvision_radio_ioctl_ops.vidioc_streamoff = 0;
usbvision_radio_ioctl_ops.vidioc_g_std = 0;
usbvision_radio_ioctl_ops.vidioc_s_std = 0;
usbvision_radio_ioctl_ops.vidioc_querystd = 0;
usbvision_radio_ioctl_ops.vidioc_enum_input = &(vidioc_enum_input);
usbvision_radio_ioctl_ops.vidioc_g_input = &(vidioc_g_input);
usbvision_radio_ioctl_ops.vidioc_s_input = &(vidioc_s_input);
usbvision_radio_ioctl_ops.vidioc_enum_output = 0;
usbvision_radio_ioctl_ops.vidioc_g_output = 0;
usbvision_radio_ioctl_ops.vidioc_s_output = 0;
usbvision_radio_ioctl_ops.vidioc_queryctrl = &(vidioc_queryctrl);
usbvision_radio_ioctl_ops.vidioc_query_ext_ctrl = 0;
usbvision_radio_ioctl_ops.vidioc_g_ctrl = &(vidioc_g_ctrl);
usbvision_radio_ioctl_ops.vidioc_s_ctrl = &(vidioc_s_ctrl);
usbvision_radio_ioctl_ops.vidioc_g_ext_ctrls = 0;
usbvision_radio_ioctl_ops.vidioc_s_ext_ctrls = 0;
usbvision_radio_ioctl_ops.vidioc_try_ext_ctrls = 0;
usbvision_radio_ioctl_ops.vidioc_querymenu = 0;
usbvision_radio_ioctl_ops.vidioc_enumaudio = 0;
usbvision_radio_ioctl_ops.vidioc_g_audio = &(vidioc_g_audio);
usbvision_radio_ioctl_ops.vidioc_s_audio = &(vidioc_s_audio);
usbvision_radio_ioctl_ops.vidioc_enumaudout = 0;
usbvision_radio_ioctl_ops.vidioc_g_audout = 0;
usbvision_radio_ioctl_ops.vidioc_s_audout = 0;
usbvision_radio_ioctl_ops.vidioc_g_modulator = 0;
usbvision_radio_ioctl_ops.vidioc_s_modulator = 0;
usbvision_radio_ioctl_ops.vidioc_cropcap = 0;
usbvision_radio_ioctl_ops.vidioc_g_crop = 0;
usbvision_radio_ioctl_ops.vidioc_s_crop = 0;
usbvision_radio_ioctl_ops.vidioc_g_selection = 0;
usbvision_radio_ioctl_ops.vidioc_s_selection = 0;
usbvision_radio_ioctl_ops.vidioc_g_jpegcomp = 0;
usbvision_radio_ioctl_ops.vidioc_s_jpegcomp = 0;
usbvision_radio_ioctl_ops.vidioc_g_enc_index = 0;
usbvision_radio_ioctl_ops.vidioc_encoder_cmd = 0;
usbvision_radio_ioctl_ops.vidioc_try_encoder_cmd = 0;
usbvision_radio_ioctl_ops.vidioc_decoder_cmd = 0;
usbvision_radio_ioctl_ops.vidioc_try_decoder_cmd = 0;
usbvision_radio_ioctl_ops.vidioc_g_parm = 0;
usbvision_radio_ioctl_ops.vidioc_s_parm = 0;
usbvision_radio_ioctl_ops.vidioc_g_tuner = &(vidioc_g_tuner);
usbvision_radio_ioctl_ops.vidioc_s_tuner = &(vidioc_s_tuner);
usbvision_radio_ioctl_ops.vidioc_g_frequency = &(vidioc_g_frequency);
usbvision_radio_ioctl_ops.vidioc_s_frequency = &(vidioc_s_frequency);
usbvision_radio_ioctl_ops.vidioc_enum_freq_bands = 0;
usbvision_radio_ioctl_ops.vidioc_g_sliced_vbi_cap = 0;
usbvision_radio_ioctl_ops.vidioc_log_status = 0;
usbvision_radio_ioctl_ops.vidioc_s_hw_freq_seek = 0;
usbvision_radio_ioctl_ops.vidioc_g_register = 0;
usbvision_radio_ioctl_ops.vidioc_s_register = 0;
usbvision_radio_ioctl_ops.vidioc_g_chip_info = 0;
usbvision_radio_ioctl_ops.vidioc_enum_framesizes = 0;
usbvision_radio_ioctl_ops.vidioc_enum_frameintervals = 0;
usbvision_radio_ioctl_ops.vidioc_s_dv_timings = 0;
usbvision_radio_ioctl_ops.vidioc_g_dv_timings = 0;
usbvision_radio_ioctl_ops.vidioc_query_dv_timings = 0;
usbvision_radio_ioctl_ops.vidioc_enum_dv_timings = 0;
usbvision_radio_ioctl_ops.vidioc_dv_timings_cap = 0;
usbvision_radio_ioctl_ops.vidioc_g_edid = 0;
usbvision_radio_ioctl_ops.vidioc_s_edid = 0;
usbvision_radio_ioctl_ops.vidioc_subscribe_event = 0;
usbvision_radio_ioctl_ops.vidioc_unsubscribe_event = 0;
usbvision_radio_ioctl_ops.vidioc_default = 0;
usbvision_radio_template.entity.list.next = 0;
usbvision_radio_template.entity.list.prev = 0;
usbvision_radio_template.entity.parent = 0;
usbvision_radio_template.entity.id = 0;
usbvision_radio_template.entity.name = 0;
usbvision_radio_template.entity.type = 0;
usbvision_radio_template.entity.revision = 0;
usbvision_radio_template.entity.flags = 0;
usbvision_radio_template.entity.group_id = 0;
usbvision_radio_template.entity.num_pads = 0;
usbvision_radio_template.entity.num_links = 0;
usbvision_radio_template.entity.num_backlinks = 0;
usbvision_radio_template.entity.max_links = 0;
usbvision_radio_template.entity.pads = 0;
usbvision_radio_template.entity.links = 0;
usbvision_radio_template.entity.ops = 0;
usbvision_radio_template.entity.stream_count = 0;
usbvision_radio_template.entity.use_count = 0;
usbvision_radio_template.entity.pipe = 0;
usbvision_radio_template.entity.info.alsa.card = 0;
usbvision_radio_template.entity.info.alsa.device = 0;
usbvision_radio_template.entity.info.alsa.subdevice = 0;
usbvision_radio_template.fops = &(usbvision_radio_fops);
usbvision_radio_template.dev.parent = 0;
usbvision_radio_template.dev.p = 0;
usbvision_radio_template.dev.kobj.name = 0;
usbvision_radio_template.dev.kobj.entry.next = 0;
usbvision_radio_template.dev.kobj.entry.prev = 0;
usbvision_radio_template.dev.kobj.parent = 0;
usbvision_radio_template.dev.kobj.kset = 0;
usbvision_radio_template.dev.kobj.ktype = 0;
usbvision_radio_template.dev.kobj.sd = 0;
usbvision_radio_template.dev.kobj.kref.refcount.counter = 0;
usbvision_radio_template.dev.kobj.release.work.data.counter = 0;
usbvision_radio_template.dev.kobj.release.work.entry.next = 0;
usbvision_radio_template.dev.kobj.release.work.entry.prev = 0;
usbvision_radio_template.dev.kobj.release.work.func = 0;
usbvision_radio_template.dev.kobj.release.work.lockdep_map.key = 0;
usbvision_radio_template.dev.kobj.release.work.lockdep_map.class_cache[ 0 ] = 0;
usbvision_radio_template.dev.kobj.release.work.lockdep_map.class_cache[ 1 ] = 0;
usbvision_radio_template.dev.kobj.release.work.lockdep_map.name = 0;
usbvision_radio_template.dev.kobj.release.work.lockdep_map.cpu = 0;
usbvision_radio_template.dev.kobj.release.work.lockdep_map.ip = 0;
usbvision_radio_template.dev.kobj.release.timer.entry.next = 0;
usbvision_radio_template.dev.kobj.release.timer.entry.prev = 0;
usbvision_radio_template.dev.kobj.release.timer.expires = 0;
usbvision_radio_template.dev.kobj.release.timer.base = 0;
usbvision_radio_template.dev.kobj.release.timer.function = 0;
usbvision_radio_template.dev.kobj.release.timer.data = 0;
usbvision_radio_template.dev.kobj.release.timer.slack = 0;
usbvision_radio_template.dev.kobj.release.timer.start_pid = 0;
usbvision_radio_template.dev.kobj.release.timer.start_site = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 0 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 1 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 2 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 3 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 4 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 5 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 6 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 7 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 8 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 9 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 10 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 11 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 12 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 13 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 14 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.start_comm[ 15 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.lockdep_map.key = 0;
usbvision_radio_template.dev.kobj.release.timer.lockdep_map.class_cache[ 0 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.lockdep_map.class_cache[ 1 ] = 0;
usbvision_radio_template.dev.kobj.release.timer.lockdep_map.name = 0;
usbvision_radio_template.dev.kobj.release.timer.lockdep_map.cpu = 0;
usbvision_radio_template.dev.kobj.release.timer.lockdep_map.ip = 0;
usbvision_radio_template.dev.kobj.release.wq = 0;
usbvision_radio_template.dev.kobj.release.cpu = 0;
usbvision_radio_template.dev.kobj.state_initialized = 0;
usbvision_radio_template.dev.kobj.state_in_sysfs = 0;
usbvision_radio_template.dev.kobj.state_add_uevent_sent = 0;
usbvision_radio_template.dev.kobj.state_remove_uevent_sent = 0;
usbvision_radio_template.dev.kobj.uevent_suppress = 0;
usbvision_radio_template.dev.init_name = 0;
usbvision_radio_template.dev.type = 0;
usbvision_radio_template.dev.mutex.count.counter = 0;
usbvision_radio_template.dev.mutex.wait_lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_radio_template.dev.mutex.wait_lock.__annonCompField19.rlock.magic = 0;
usbvision_radio_template.dev.mutex.wait_lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_radio_template.dev.mutex.wait_lock.__annonCompField19.rlock.owner = 0;
usbvision_radio_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_radio_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_radio_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_radio_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_radio_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_radio_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_radio_template.dev.mutex.wait_list.next = 0;
usbvision_radio_template.dev.mutex.wait_list.prev = 0;
usbvision_radio_template.dev.mutex.owner = 0;
usbvision_radio_template.dev.mutex.magic = 0;
usbvision_radio_template.dev.mutex.dep_map.key = 0;
usbvision_radio_template.dev.mutex.dep_map.class_cache[ 0 ] = 0;
usbvision_radio_template.dev.mutex.dep_map.class_cache[ 1 ] = 0;
usbvision_radio_template.dev.mutex.dep_map.name = 0;
usbvision_radio_template.dev.mutex.dep_map.cpu = 0;
usbvision_radio_template.dev.mutex.dep_map.ip = 0;
usbvision_radio_template.dev.bus = 0;
usbvision_radio_template.dev.driver = 0;
usbvision_radio_template.dev.platform_data = 0;
usbvision_radio_template.dev.driver_data = 0;
usbvision_radio_template.dev.power.power_state.event = 0;
usbvision_radio_template.dev.power.can_wakeup = 0;
usbvision_radio_template.dev.power.async_suspend = 0;
usbvision_radio_template.dev.power.is_prepared = 0;
usbvision_radio_template.dev.power.is_suspended = 0;
usbvision_radio_template.dev.power.is_noirq_suspended = 0;
usbvision_radio_template.dev.power.is_late_suspended = 0;
usbvision_radio_template.dev.power.ignore_children = 0;
usbvision_radio_template.dev.power.early_init = 0;
usbvision_radio_template.dev.power.direct_complete = 0;
usbvision_radio_template.dev.power.lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_radio_template.dev.power.lock.__annonCompField19.rlock.magic = 0;
usbvision_radio_template.dev.power.lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_radio_template.dev.power.lock.__annonCompField19.rlock.owner = 0;
usbvision_radio_template.dev.power.lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_radio_template.dev.power.lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_radio_template.dev.power.lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_radio_template.dev.power.lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_radio_template.dev.power.lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_radio_template.dev.power.lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_radio_template.dev.power.entry.next = 0;
usbvision_radio_template.dev.power.entry.prev = 0;
usbvision_radio_template.dev.power.completion.done = 0;
usbvision_radio_template.dev.power.completion.wait.lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_radio_template.dev.power.completion.wait.lock.__annonCompField19.rlock.magic = 0;
usbvision_radio_template.dev.power.completion.wait.lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_radio_template.dev.power.completion.wait.lock.__annonCompField19.rlock.owner = 0;
usbvision_radio_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_radio_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_radio_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_radio_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_radio_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_radio_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_radio_template.dev.power.completion.wait.task_list.next = 0;
usbvision_radio_template.dev.power.completion.wait.task_list.prev = 0;
usbvision_radio_template.dev.power.wakeup = 0;
usbvision_radio_template.dev.power.wakeup_path = 0;
usbvision_radio_template.dev.power.syscore = 0;
usbvision_radio_template.dev.power.suspend_timer.entry.next = 0;
usbvision_radio_template.dev.power.suspend_timer.entry.prev = 0;
usbvision_radio_template.dev.power.suspend_timer.expires = 0;
usbvision_radio_template.dev.power.suspend_timer.base = 0;
usbvision_radio_template.dev.power.suspend_timer.function = 0;
usbvision_radio_template.dev.power.suspend_timer.data = 0;
usbvision_radio_template.dev.power.suspend_timer.slack = 0;
usbvision_radio_template.dev.power.suspend_timer.start_pid = 0;
usbvision_radio_template.dev.power.suspend_timer.start_site = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 0 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 1 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 2 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 3 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 4 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 5 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 6 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 7 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 8 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 9 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 10 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 11 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 12 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 13 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 14 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.start_comm[ 15 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.lockdep_map.key = 0;
usbvision_radio_template.dev.power.suspend_timer.lockdep_map.class_cache[ 0 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.lockdep_map.class_cache[ 1 ] = 0;
usbvision_radio_template.dev.power.suspend_timer.lockdep_map.name = 0;
usbvision_radio_template.dev.power.suspend_timer.lockdep_map.cpu = 0;
usbvision_radio_template.dev.power.suspend_timer.lockdep_map.ip = 0;
usbvision_radio_template.dev.power.timer_expires = 0;
usbvision_radio_template.dev.power.work.data.counter = 0;
usbvision_radio_template.dev.power.work.entry.next = 0;
usbvision_radio_template.dev.power.work.entry.prev = 0;
usbvision_radio_template.dev.power.work.func = 0;
usbvision_radio_template.dev.power.work.lockdep_map.key = 0;
usbvision_radio_template.dev.power.work.lockdep_map.class_cache[ 0 ] = 0;
usbvision_radio_template.dev.power.work.lockdep_map.class_cache[ 1 ] = 0;
usbvision_radio_template.dev.power.work.lockdep_map.name = 0;
usbvision_radio_template.dev.power.work.lockdep_map.cpu = 0;
usbvision_radio_template.dev.power.work.lockdep_map.ip = 0;
usbvision_radio_template.dev.power.wait_queue.lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_radio_template.dev.power.wait_queue.lock.__annonCompField19.rlock.magic = 0;
usbvision_radio_template.dev.power.wait_queue.lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_radio_template.dev.power.wait_queue.lock.__annonCompField19.rlock.owner = 0;
usbvision_radio_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_radio_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_radio_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_radio_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_radio_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_radio_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_radio_template.dev.power.wait_queue.task_list.next = 0;
usbvision_radio_template.dev.power.wait_queue.task_list.prev = 0;
usbvision_radio_template.dev.power.usage_count.counter = 0;
usbvision_radio_template.dev.power.child_count.counter = 0;
usbvision_radio_template.dev.power.disable_depth = 0;
usbvision_radio_template.dev.power.idle_notification = 0;
usbvision_radio_template.dev.power.request_pending = 0;
usbvision_radio_template.dev.power.deferred_resume = 0;
usbvision_radio_template.dev.power.run_wake = 0;
usbvision_radio_template.dev.power.runtime_auto = 0;
usbvision_radio_template.dev.power.no_callbacks = 0;
usbvision_radio_template.dev.power.irq_safe = 0;
usbvision_radio_template.dev.power.use_autosuspend = 0;
usbvision_radio_template.dev.power.timer_autosuspends = 0;
usbvision_radio_template.dev.power.memalloc_noio = 0;
usbvision_radio_template.dev.power.request = 0;
usbvision_radio_template.dev.power.runtime_status = 0;
usbvision_radio_template.dev.power.runtime_error = 0;
usbvision_radio_template.dev.power.autosuspend_delay = 0;
usbvision_radio_template.dev.power.last_busy = 0;
usbvision_radio_template.dev.power.active_jiffies = 0;
usbvision_radio_template.dev.power.suspended_jiffies = 0;
usbvision_radio_template.dev.power.accounting_timestamp = 0;
usbvision_radio_template.dev.power.subsys_data = 0;
usbvision_radio_template.dev.power.set_latency_tolerance = 0;
usbvision_radio_template.dev.power.qos = 0;
usbvision_radio_template.dev.pm_domain = 0;
usbvision_radio_template.dev.pins = 0;
usbvision_radio_template.dev.numa_node = 0;
usbvision_radio_template.dev.dma_mask = 0;
usbvision_radio_template.dev.coherent_dma_mask = 0;
usbvision_radio_template.dev.dma_pfn_offset = 0;
usbvision_radio_template.dev.dma_parms = 0;
usbvision_radio_template.dev.dma_pools.next = 0;
usbvision_radio_template.dev.dma_pools.prev = 0;
usbvision_radio_template.dev.dma_mem = 0;
usbvision_radio_template.dev.cma_area = 0;
usbvision_radio_template.dev.archdata.dma_ops = 0;
usbvision_radio_template.dev.archdata.iommu = 0;
usbvision_radio_template.dev.of_node = 0;
usbvision_radio_template.dev.acpi_node.companion = 0;
usbvision_radio_template.dev.devt = 0;
usbvision_radio_template.dev.id = 0;
usbvision_radio_template.dev.devres_lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_radio_template.dev.devres_lock.__annonCompField19.rlock.magic = 0;
usbvision_radio_template.dev.devres_lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_radio_template.dev.devres_lock.__annonCompField19.rlock.owner = 0;
usbvision_radio_template.dev.devres_lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_radio_template.dev.devres_lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_radio_template.dev.devres_lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_radio_template.dev.devres_lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_radio_template.dev.devres_lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_radio_template.dev.devres_lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_radio_template.dev.devres_head.next = 0;
usbvision_radio_template.dev.devres_head.prev = 0;
usbvision_radio_template.dev.knode_class.n_klist = 0;
usbvision_radio_template.dev.knode_class.n_node.next = 0;
usbvision_radio_template.dev.knode_class.n_node.prev = 0;
usbvision_radio_template.dev.knode_class.n_ref.refcount.counter = 0;
usbvision_radio_template.dev.class = 0;
usbvision_radio_template.dev.groups = 0;
usbvision_radio_template.dev.release = 0;
usbvision_radio_template.dev.iommu_group = 0;
usbvision_radio_template.dev.offline_disabled = 0;
usbvision_radio_template.dev.offline = 0;
usbvision_radio_template.cdev = 0;
usbvision_radio_template.v4l2_dev = 0;
usbvision_radio_template.dev_parent = 0;
usbvision_radio_template.ctrl_handler = 0;
usbvision_radio_template.queue = 0;
usbvision_radio_template.prio = 0;
usbvision_radio_template.name[ 0 ] = 117;
usbvision_radio_template.name[ 1 ] = 115;
usbvision_radio_template.name[ 2 ] = 98;
usbvision_radio_template.name[ 3 ] = 118;
usbvision_radio_template.name[ 4 ] = 105;
usbvision_radio_template.name[ 5 ] = 115;
usbvision_radio_template.name[ 6 ] = 105;
usbvision_radio_template.name[ 7 ] = 111;
usbvision_radio_template.name[ 8 ] = 110;
usbvision_radio_template.name[ 9 ] = 45;
usbvision_radio_template.name[ 10 ] = 114;
usbvision_radio_template.name[ 11 ] = 97;
usbvision_radio_template.name[ 12 ] = 100;
usbvision_radio_template.name[ 13 ] = 105;
usbvision_radio_template.name[ 14 ] = 111;
usbvision_radio_template.name[ 15 ] = 0;
usbvision_radio_template.name[ 16 ] = 0;
usbvision_radio_template.name[ 17 ] = 0;
usbvision_radio_template.name[ 18 ] = 0;
usbvision_radio_template.name[ 19 ] = 0;
usbvision_radio_template.name[ 20 ] = 0;
usbvision_radio_template.name[ 21 ] = 0;
usbvision_radio_template.name[ 22 ] = 0;
usbvision_radio_template.name[ 23 ] = 0;
usbvision_radio_template.name[ 24 ] = 0;
usbvision_radio_template.name[ 25 ] = 0;
usbvision_radio_template.name[ 26 ] = 0;
usbvision_radio_template.name[ 27 ] = 0;
usbvision_radio_template.name[ 28 ] = 0;
usbvision_radio_template.name[ 29 ] = 0;
usbvision_radio_template.name[ 30 ] = 0;
usbvision_radio_template.name[ 31 ] = 0;
usbvision_radio_template.vfl_type = 0;
usbvision_radio_template.vfl_dir = 0;
usbvision_radio_template.minor = 0;
usbvision_radio_template.num = 0;
usbvision_radio_template.flags = 0;
usbvision_radio_template.index = 0;
usbvision_radio_template.fh_lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_radio_template.fh_lock.__annonCompField19.rlock.magic = 0;
usbvision_radio_template.fh_lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_radio_template.fh_lock.__annonCompField19.rlock.owner = 0;
usbvision_radio_template.fh_lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_radio_template.fh_lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_radio_template.fh_lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_radio_template.fh_lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_radio_template.fh_lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_radio_template.fh_lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_radio_template.fh_list.next = 0;
usbvision_radio_template.fh_list.prev = 0;
usbvision_radio_template.dev_debug = 0;
usbvision_radio_template.tvnorms = 0;
usbvision_radio_template.release = &(video_device_release);
usbvision_radio_template.ioctl_ops = &(usbvision_radio_ioctl_ops);
usbvision_radio_template.valid_ioctls[ 0 ] = 0;
usbvision_radio_template.valid_ioctls[ 1 ] = 0;
usbvision_radio_template.valid_ioctls[ 2 ] = 0;
usbvision_radio_template.disable_locking[ 0 ] = 0;
usbvision_radio_template.disable_locking[ 1 ] = 0;
usbvision_radio_template.disable_locking[ 2 ] = 0;
usbvision_radio_template.lock = 0;
usbvision_driver.name = "usbvision";
usbvision_driver.probe = &(usbvision_probe);
usbvision_driver.disconnect = &(usbvision_disconnect);
usbvision_driver.unlocked_ioctl = 0;
usbvision_driver.suspend = 0;
usbvision_driver.resume = 0;
usbvision_driver.reset_resume = 0;
usbvision_driver.pre_reset = 0;
usbvision_driver.post_reset = 0;
usbvision_driver.id_table = &(usbvision_table);
usbvision_driver.dynids.lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
usbvision_driver.dynids.lock.__annonCompField19.rlock.magic = 0;
usbvision_driver.dynids.lock.__annonCompField19.rlock.owner_cpu = 0;
usbvision_driver.dynids.lock.__annonCompField19.rlock.owner = 0;
usbvision_driver.dynids.lock.__annonCompField19.rlock.dep_map.key = 0;
usbvision_driver.dynids.lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
usbvision_driver.dynids.lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
usbvision_driver.dynids.lock.__annonCompField19.rlock.dep_map.name = 0;
usbvision_driver.dynids.lock.__annonCompField19.rlock.dep_map.cpu = 0;
usbvision_driver.dynids.lock.__annonCompField19.rlock.dep_map.ip = 0;
usbvision_driver.dynids.list.next = 0;
usbvision_driver.dynids.list.prev = 0;
usbvision_driver.drvwrap.driver.name = 0;
usbvision_driver.drvwrap.driver.bus = 0;
usbvision_driver.drvwrap.driver.owner = 0;
usbvision_driver.drvwrap.driver.mod_name = 0;
usbvision_driver.drvwrap.driver.suppress_bind_attrs = 0;
usbvision_driver.drvwrap.driver.of_match_table = 0;
usbvision_driver.drvwrap.driver.acpi_match_table = 0;
usbvision_driver.drvwrap.driver.probe = 0;
usbvision_driver.drvwrap.driver.remove = 0;
usbvision_driver.drvwrap.driver.shutdown = 0;
usbvision_driver.drvwrap.driver.suspend = 0;
usbvision_driver.drvwrap.driver.resume = 0;
usbvision_driver.drvwrap.driver.groups = 0;
usbvision_driver.drvwrap.driver.pm = 0;
usbvision_driver.drvwrap.driver.p = 0;
usbvision_driver.drvwrap.for_devices = 0;
usbvision_driver.no_dynamic_id = 0;
usbvision_driver.supports_autosuspend = 0;
usbvision_driver.disable_hub_initiated_lpm = 0;
usbvision_driver.soft_unbind = 0;
return ;
}
-__BLAST_initialize_/work/ldvuser/ref_launch/work/current--X--drivers--X--defaultlinux-4.0-rc1.tar.xz--X--132_1a/linux-4.0-rc1.tar.xz/csd_deg_dscv/8231/dscv_tempdir/dscv/rcv/132_1a/main-ldv_main1_sequence_infinite_withcheck_stateful/preprocess/1-cpp/drivers/media/usb/usbvision/usbvision-i2c.o.i()
{
171 -usbvision_algo.master_xfer = &(usbvision_i2c_xfer);
usbvision_algo.smbus_xfer = 0;
usbvision_algo.functionality = &(functionality);
usbvision_algo.reg_slave = 0;
usbvision_algo.unreg_slave = 0;
i2c_adap_template.owner = &(__this_module);
i2c_adap_template.class = 0;
i2c_adap_template.algo = 0;
i2c_adap_template.algo_data = 0;
i2c_adap_template.bus_lock.wait_lock.raw_lock.__annonCompField7.head_tail = 0;
i2c_adap_template.bus_lock.wait_lock.magic = 0;
i2c_adap_template.bus_lock.wait_lock.owner_cpu = 0;
i2c_adap_template.bus_lock.wait_lock.owner = 0;
i2c_adap_template.bus_lock.wait_lock.dep_map.key = 0;
i2c_adap_template.bus_lock.wait_lock.dep_map.class_cache[ 0 ] = 0;
i2c_adap_template.bus_lock.wait_lock.dep_map.class_cache[ 1 ] = 0;
i2c_adap_template.bus_lock.wait_lock.dep_map.name = 0;
i2c_adap_template.bus_lock.wait_lock.dep_map.cpu = 0;
i2c_adap_template.bus_lock.wait_lock.dep_map.ip = 0;
i2c_adap_template.bus_lock.waiters.rb_node = 0;
i2c_adap_template.bus_lock.waiters_leftmost = 0;
i2c_adap_template.bus_lock.owner = 0;
i2c_adap_template.bus_lock.save_state = 0;
i2c_adap_template.bus_lock.name = 0;
i2c_adap_template.bus_lock.file = 0;
i2c_adap_template.bus_lock.line = 0;
i2c_adap_template.bus_lock.magic = 0;
i2c_adap_template.timeout = 0;
i2c_adap_template.retries = 0;
i2c_adap_template.dev.parent = 0;
i2c_adap_template.dev.p = 0;
i2c_adap_template.dev.kobj.name = 0;
i2c_adap_template.dev.kobj.entry.next = 0;
i2c_adap_template.dev.kobj.entry.prev = 0;
i2c_adap_template.dev.kobj.parent = 0;
i2c_adap_template.dev.kobj.kset = 0;
i2c_adap_template.dev.kobj.ktype = 0;
i2c_adap_template.dev.kobj.sd = 0;
i2c_adap_template.dev.kobj.kref.refcount.counter = 0;
i2c_adap_template.dev.kobj.release.work.data.counter = 0;
i2c_adap_template.dev.kobj.release.work.entry.next = 0;
i2c_adap_template.dev.kobj.release.work.entry.prev = 0;
i2c_adap_template.dev.kobj.release.work.func = 0;
i2c_adap_template.dev.kobj.release.work.lockdep_map.key = 0;
i2c_adap_template.dev.kobj.release.work.lockdep_map.class_cache[ 0 ] = 0;
i2c_adap_template.dev.kobj.release.work.lockdep_map.class_cache[ 1 ] = 0;
i2c_adap_template.dev.kobj.release.work.lockdep_map.name = 0;
i2c_adap_template.dev.kobj.release.work.lockdep_map.cpu = 0;
i2c_adap_template.dev.kobj.release.work.lockdep_map.ip = 0;
i2c_adap_template.dev.kobj.release.timer.entry.next = 0;
i2c_adap_template.dev.kobj.release.timer.entry.prev = 0;
i2c_adap_template.dev.kobj.release.timer.expires = 0;
i2c_adap_template.dev.kobj.release.timer.base = 0;
i2c_adap_template.dev.kobj.release.timer.function = 0;
i2c_adap_template.dev.kobj.release.timer.data = 0;
i2c_adap_template.dev.kobj.release.timer.slack = 0;
i2c_adap_template.dev.kobj.release.timer.start_pid = 0;
i2c_adap_template.dev.kobj.release.timer.start_site = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 0 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 1 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 2 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 3 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 4 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 5 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 6 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 7 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 8 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 9 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 10 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 11 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 12 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 13 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 14 ] = 0;
i2c_adap_template.dev.kobj.release.timer.start_comm[ 15 ] = 0;
i2c_adap_template.dev.kobj.release.timer.lockdep_map.key = 0;
i2c_adap_template.dev.kobj.release.timer.lockdep_map.class_cache[ 0 ] = 0;
i2c_adap_template.dev.kobj.release.timer.lockdep_map.class_cache[ 1 ] = 0;
i2c_adap_template.dev.kobj.release.timer.lockdep_map.name = 0;
i2c_adap_template.dev.kobj.release.timer.lockdep_map.cpu = 0;
i2c_adap_template.dev.kobj.release.timer.lockdep_map.ip = 0;
i2c_adap_template.dev.kobj.release.wq = 0;
i2c_adap_template.dev.kobj.release.cpu = 0;
i2c_adap_template.dev.kobj.state_initialized = 0;
i2c_adap_template.dev.kobj.state_in_sysfs = 0;
i2c_adap_template.dev.kobj.state_add_uevent_sent = 0;
i2c_adap_template.dev.kobj.state_remove_uevent_sent = 0;
i2c_adap_template.dev.kobj.uevent_suppress = 0;
i2c_adap_template.dev.init_name = 0;
i2c_adap_template.dev.type = 0;
i2c_adap_template.dev.mutex.count.counter = 0;
i2c_adap_template.dev.mutex.wait_lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
i2c_adap_template.dev.mutex.wait_lock.__annonCompField19.rlock.magic = 0;
i2c_adap_template.dev.mutex.wait_lock.__annonCompField19.rlock.owner_cpu = 0;
i2c_adap_template.dev.mutex.wait_lock.__annonCompField19.rlock.owner = 0;
i2c_adap_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.key = 0;
i2c_adap_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
i2c_adap_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
i2c_adap_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.name = 0;
i2c_adap_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.cpu = 0;
i2c_adap_template.dev.mutex.wait_lock.__annonCompField19.rlock.dep_map.ip = 0;
i2c_adap_template.dev.mutex.wait_list.next = 0;
i2c_adap_template.dev.mutex.wait_list.prev = 0;
i2c_adap_template.dev.mutex.owner = 0;
i2c_adap_template.dev.mutex.magic = 0;
i2c_adap_template.dev.mutex.dep_map.key = 0;
i2c_adap_template.dev.mutex.dep_map.class_cache[ 0 ] = 0;
i2c_adap_template.dev.mutex.dep_map.class_cache[ 1 ] = 0;
i2c_adap_template.dev.mutex.dep_map.name = 0;
i2c_adap_template.dev.mutex.dep_map.cpu = 0;
i2c_adap_template.dev.mutex.dep_map.ip = 0;
i2c_adap_template.dev.bus = 0;
i2c_adap_template.dev.driver = 0;
i2c_adap_template.dev.platform_data = 0;
i2c_adap_template.dev.driver_data = 0;
i2c_adap_template.dev.power.power_state.event = 0;
i2c_adap_template.dev.power.can_wakeup = 0;
i2c_adap_template.dev.power.async_suspend = 0;
i2c_adap_template.dev.power.is_prepared = 0;
i2c_adap_template.dev.power.is_suspended = 0;
i2c_adap_template.dev.power.is_noirq_suspended = 0;
i2c_adap_template.dev.power.is_late_suspended = 0;
i2c_adap_template.dev.power.ignore_children = 0;
i2c_adap_template.dev.power.early_init = 0;
i2c_adap_template.dev.power.direct_complete = 0;
i2c_adap_template.dev.power.lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
i2c_adap_template.dev.power.lock.__annonCompField19.rlock.magic = 0;
i2c_adap_template.dev.power.lock.__annonCompField19.rlock.owner_cpu = 0;
i2c_adap_template.dev.power.lock.__annonCompField19.rlock.owner = 0;
i2c_adap_template.dev.power.lock.__annonCompField19.rlock.dep_map.key = 0;
i2c_adap_template.dev.power.lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
i2c_adap_template.dev.power.lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
i2c_adap_template.dev.power.lock.__annonCompField19.rlock.dep_map.name = 0;
i2c_adap_template.dev.power.lock.__annonCompField19.rlock.dep_map.cpu = 0;
i2c_adap_template.dev.power.lock.__annonCompField19.rlock.dep_map.ip = 0;
i2c_adap_template.dev.power.entry.next = 0;
i2c_adap_template.dev.power.entry.prev = 0;
i2c_adap_template.dev.power.completion.done = 0;
i2c_adap_template.dev.power.completion.wait.lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
i2c_adap_template.dev.power.completion.wait.lock.__annonCompField19.rlock.magic = 0;
i2c_adap_template.dev.power.completion.wait.lock.__annonCompField19.rlock.owner_cpu = 0;
i2c_adap_template.dev.power.completion.wait.lock.__annonCompField19.rlock.owner = 0;
i2c_adap_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.key = 0;
i2c_adap_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
i2c_adap_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
i2c_adap_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.name = 0;
i2c_adap_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.cpu = 0;
i2c_adap_template.dev.power.completion.wait.lock.__annonCompField19.rlock.dep_map.ip = 0;
i2c_adap_template.dev.power.completion.wait.task_list.next = 0;
i2c_adap_template.dev.power.completion.wait.task_list.prev = 0;
i2c_adap_template.dev.power.wakeup = 0;
i2c_adap_template.dev.power.wakeup_path = 0;
i2c_adap_template.dev.power.syscore = 0;
i2c_adap_template.dev.power.suspend_timer.entry.next = 0;
i2c_adap_template.dev.power.suspend_timer.entry.prev = 0;
i2c_adap_template.dev.power.suspend_timer.expires = 0;
i2c_adap_template.dev.power.suspend_timer.base = 0;
i2c_adap_template.dev.power.suspend_timer.function = 0;
i2c_adap_template.dev.power.suspend_timer.data = 0;
i2c_adap_template.dev.power.suspend_timer.slack = 0;
i2c_adap_template.dev.power.suspend_timer.start_pid = 0;
i2c_adap_template.dev.power.suspend_timer.start_site = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 0 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 1 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 2 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 3 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 4 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 5 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 6 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 7 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 8 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 9 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 10 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 11 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 12 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 13 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 14 ] = 0;
i2c_adap_template.dev.power.suspend_timer.start_comm[ 15 ] = 0;
i2c_adap_template.dev.power.suspend_timer.lockdep_map.key = 0;
i2c_adap_template.dev.power.suspend_timer.lockdep_map.class_cache[ 0 ] = 0;
i2c_adap_template.dev.power.suspend_timer.lockdep_map.class_cache[ 1 ] = 0;
i2c_adap_template.dev.power.suspend_timer.lockdep_map.name = 0;
i2c_adap_template.dev.power.suspend_timer.lockdep_map.cpu = 0;
i2c_adap_template.dev.power.suspend_timer.lockdep_map.ip = 0;
i2c_adap_template.dev.power.timer_expires = 0;
i2c_adap_template.dev.power.work.data.counter = 0;
i2c_adap_template.dev.power.work.entry.next = 0;
i2c_adap_template.dev.power.work.entry.prev = 0;
i2c_adap_template.dev.power.work.func = 0;
i2c_adap_template.dev.power.work.lockdep_map.key = 0;
i2c_adap_template.dev.power.work.lockdep_map.class_cache[ 0 ] = 0;
i2c_adap_template.dev.power.work.lockdep_map.class_cache[ 1 ] = 0;
i2c_adap_template.dev.power.work.lockdep_map.name = 0;
i2c_adap_template.dev.power.work.lockdep_map.cpu = 0;
i2c_adap_template.dev.power.work.lockdep_map.ip = 0;
i2c_adap_template.dev.power.wait_queue.lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
i2c_adap_template.dev.power.wait_queue.lock.__annonCompField19.rlock.magic = 0;
i2c_adap_template.dev.power.wait_queue.lock.__annonCompField19.rlock.owner_cpu = 0;
i2c_adap_template.dev.power.wait_queue.lock.__annonCompField19.rlock.owner = 0;
i2c_adap_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.key = 0;
i2c_adap_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
i2c_adap_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
i2c_adap_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.name = 0;
i2c_adap_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.cpu = 0;
i2c_adap_template.dev.power.wait_queue.lock.__annonCompField19.rlock.dep_map.ip = 0;
i2c_adap_template.dev.power.wait_queue.task_list.next = 0;
i2c_adap_template.dev.power.wait_queue.task_list.prev = 0;
i2c_adap_template.dev.power.usage_count.counter = 0;
i2c_adap_template.dev.power.child_count.counter = 0;
i2c_adap_template.dev.power.disable_depth = 0;
i2c_adap_template.dev.power.idle_notification = 0;
i2c_adap_template.dev.power.request_pending = 0;
i2c_adap_template.dev.power.deferred_resume = 0;
i2c_adap_template.dev.power.run_wake = 0;
i2c_adap_template.dev.power.runtime_auto = 0;
i2c_adap_template.dev.power.no_callbacks = 0;
i2c_adap_template.dev.power.irq_safe = 0;
i2c_adap_template.dev.power.use_autosuspend = 0;
i2c_adap_template.dev.power.timer_autosuspends = 0;
i2c_adap_template.dev.power.memalloc_noio = 0;
i2c_adap_template.dev.power.request = 0;
i2c_adap_template.dev.power.runtime_status = 0;
i2c_adap_template.dev.power.runtime_error = 0;
i2c_adap_template.dev.power.autosuspend_delay = 0;
i2c_adap_template.dev.power.last_busy = 0;
i2c_adap_template.dev.power.active_jiffies = 0;
i2c_adap_template.dev.power.suspended_jiffies = 0;
i2c_adap_template.dev.power.accounting_timestamp = 0;
i2c_adap_template.dev.power.subsys_data = 0;
i2c_adap_template.dev.power.set_latency_tolerance = 0;
i2c_adap_template.dev.power.qos = 0;
i2c_adap_template.dev.pm_domain = 0;
i2c_adap_template.dev.pins = 0;
i2c_adap_template.dev.numa_node = 0;
i2c_adap_template.dev.dma_mask = 0;
i2c_adap_template.dev.coherent_dma_mask = 0;
i2c_adap_template.dev.dma_pfn_offset = 0;
i2c_adap_template.dev.dma_parms = 0;
i2c_adap_template.dev.dma_pools.next = 0;
i2c_adap_template.dev.dma_pools.prev = 0;
i2c_adap_template.dev.dma_mem = 0;
i2c_adap_template.dev.cma_area = 0;
i2c_adap_template.dev.archdata.dma_ops = 0;
i2c_adap_template.dev.archdata.iommu = 0;
i2c_adap_template.dev.of_node = 0;
i2c_adap_template.dev.acpi_node.companion = 0;
i2c_adap_template.dev.devt = 0;
i2c_adap_template.dev.id = 0;
i2c_adap_template.dev.devres_lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
i2c_adap_template.dev.devres_lock.__annonCompField19.rlock.magic = 0;
i2c_adap_template.dev.devres_lock.__annonCompField19.rlock.owner_cpu = 0;
i2c_adap_template.dev.devres_lock.__annonCompField19.rlock.owner = 0;
i2c_adap_template.dev.devres_lock.__annonCompField19.rlock.dep_map.key = 0;
i2c_adap_template.dev.devres_lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
i2c_adap_template.dev.devres_lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
i2c_adap_template.dev.devres_lock.__annonCompField19.rlock.dep_map.name = 0;
i2c_adap_template.dev.devres_lock.__annonCompField19.rlock.dep_map.cpu = 0;
i2c_adap_template.dev.devres_lock.__annonCompField19.rlock.dep_map.ip = 0;
i2c_adap_template.dev.devres_head.next = 0;
i2c_adap_template.dev.devres_head.prev = 0;
i2c_adap_template.dev.knode_class.n_klist = 0;
i2c_adap_template.dev.knode_class.n_node.next = 0;
i2c_adap_template.dev.knode_class.n_node.prev = 0;
i2c_adap_template.dev.knode_class.n_ref.refcount.counter = 0;
i2c_adap_template.dev.class = 0;
i2c_adap_template.dev.groups = 0;
i2c_adap_template.dev.release = 0;
i2c_adap_template.dev.iommu_group = 0;
i2c_adap_template.dev.offline_disabled = 0;
i2c_adap_template.dev.offline = 0;
i2c_adap_template.nr = 0;
i2c_adap_template.name[ 0 ] = 117;
i2c_adap_template.name[ 1 ] = 115;
i2c_adap_template.name[ 2 ] = 98;
i2c_adap_template.name[ 3 ] = 118;
i2c_adap_template.name[ 4 ] = 105;
i2c_adap_template.name[ 5 ] = 115;
i2c_adap_template.name[ 6 ] = 105;
i2c_adap_template.name[ 7 ] = 111;
i2c_adap_template.name[ 8 ] = 110;
i2c_adap_template.name[ 9 ] = 0;
i2c_adap_template.dev_released.done = 0;
i2c_adap_template.dev_released.wait.lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
i2c_adap_template.dev_released.wait.lock.__annonCompField19.rlock.magic = 0;
i2c_adap_template.dev_released.wait.lock.__annonCompField19.rlock.owner_cpu = 0;
i2c_adap_template.dev_released.wait.lock.__annonCompField19.rlock.owner = 0;
i2c_adap_template.dev_released.wait.lock.__annonCompField19.rlock.dep_map.key = 0;
i2c_adap_template.dev_released.wait.lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
i2c_adap_template.dev_released.wait.lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
i2c_adap_template.dev_released.wait.lock.__annonCompField19.rlock.dep_map.name = 0;
i2c_adap_template.dev_released.wait.lock.__annonCompField19.rlock.dep_map.cpu = 0;
i2c_adap_template.dev_released.wait.lock.__annonCompField19.rlock.dep_map.ip = 0;
i2c_adap_template.dev_released.wait.task_list.next = 0;
i2c_adap_template.dev_released.wait.task_list.prev = 0;
i2c_adap_template.userspace_clients_lock.count.counter = 0;
i2c_adap_template.userspace_clients_lock.wait_lock.__annonCompField19.rlock.raw_lock.__annonCompField7.head_tail = 0;
i2c_adap_template.userspace_clients_lock.wait_lock.__annonCompField19.rlock.magic = 0;
i2c_adap_template.userspace_clients_lock.wait_lock.__annonCompField19.rlock.owner_cpu = 0;
i2c_adap_template.userspace_clients_lock.wait_lock.__annonCompField19.rlock.owner = 0;
i2c_adap_template.userspace_clients_lock.wait_lock.__annonCompField19.rlock.dep_map.key = 0;
i2c_adap_template.userspace_clients_lock.wait_lock.__annonCompField19.rlock.dep_map.class_cache[ 0 ] = 0;
i2c_adap_template.userspace_clients_lock.wait_lock.__annonCompField19.rlock.dep_map.class_cache[ 1 ] = 0;
i2c_adap_template.userspace_clients_lock.wait_lock.__annonCompField19.rlock.dep_map.name = 0;
i2c_adap_template.userspace_clients_lock.wait_lock.__annonCompField19.rlock.dep_map.cpu = 0;
i2c_adap_template.userspace_clients_lock.wait_lock.__annonCompField19.rlock.dep_map.ip = 0;
i2c_adap_template.userspace_clients_lock.wait_list.next = 0;
i2c_adap_template.userspace_clients_lock.wait_list.prev = 0;
i2c_adap_template.userspace_clients_lock.owner = 0;
i2c_adap_template.userspace_clients_lock.magic = 0;
i2c_adap_template.userspace_clients_lock.dep_map.key = 0;
i2c_adap_template.userspace_clients_lock.dep_map.class_cache[ 0 ] = 0;
i2c_adap_template.userspace_clients_lock.dep_map.class_cache[ 1 ] = 0;
i2c_adap_template.userspace_clients_lock.dep_map.name = 0;
i2c_adap_template.userspace_clients_lock.dep_map.cpu = 0;
i2c_adap_template.userspace_clients_lock.dep_map.ip = 0;
i2c_adap_template.userspace_clients.next = 0;
i2c_adap_template.userspace_clients.prev = 0;
i2c_adap_template.bus_recovery_info = 0;
return ;
}
-__BLAST_initialize_/work/ldvuser/ref_launch/work/current--X--drivers--X--defaultlinux-4.0-rc1.tar.xz--X--132_1a/linux-4.0-rc1.tar.xz/csd_deg_dscv/8231/dscv_tempdir/dscv/rcv/132_1a/main-ldv_main1_sequence_infinite_withcheck_stateful/preprocess/1-cpp/drivers/media/usb/usbvision/usbvision-cards.o.i()
{
34 -usbvision_device_data[ 0 ].video_norm = 45056;
usbvision_device_data[ 0 ].model_string = "Xanboo";
usbvision_device_data[ 0 ].interface = -1;
usbvision_device_data[ 0 ].codec = 7113;
usbvision_device_data[ 0 ].video_channels = 4;
usbvision_device_data[ 0 ].audio_channels = 1;
usbvision_device_data[ 0 ].radio = 0;
usbvision_device_data[ 0 ].vbi = 1;
usbvision_device_data[ 0 ].tuner = 0;
usbvision_device_data[ 0 ].vin_reg1_override = 0;
usbvision_device_data[ 0 ].vin_reg2_override = 0;
usbvision_device_data[ 0 ].dvi_yuv_override = 0;
usbvision_device_data[ 0 ].vin_reg1 = 0;
usbvision_device_data[ 0 ].vin_reg2 = 0;
usbvision_device_data[ 0 ].dvi_yuv = 0;
usbvision_device_data[ 0 ].tuner_type = 0;
usbvision_device_data[ 0 ].x_offset = -1;
usbvision_device_data[ 0 ].y_offset = -1;
usbvision_device_data[ 1 ].video_norm = 255;
usbvision_device_data[ 1 ].model_string = "Belkin USB VideoBus II Adapter";
usbvision_device_data[ 1 ].interface = -1;
usbvision_device_data[ 1 ].codec = 7113;
usbvision_device_data[ 1 ].video_channels = 2;
usbvision_device_data[ 1 ].audio_channels = 1;
usbvision_device_data[ 1 ].radio = 0;
usbvision_device_data[ 1 ].vbi = 1;
usbvision_device_data[ 1 ].tuner = 0;
usbvision_device_data[ 1 ].vin_reg1_override = 0;
usbvision_device_data[ 1 ].vin_reg2_override = 0;
usbvision_device_data[ 1 ].dvi_yuv_override = 1;
usbvision_device_data[ 1 ].vin_reg1 = 0;
usbvision_device_data[ 1 ].vin_reg2 = 0;
usbvision_device_data[ 1 ].dvi_yuv = 7;
usbvision_device_data[ 1 ].tuner_type = 0;
usbvision_device_data[ 1 ].x_offset = 0;
usbvision_device_data[ 1 ].y_offset = 3;
usbvision_device_data[ 2 ].video_norm = 45056;
usbvision_device_data[ 2 ].model_string = "Belkin Components USB VideoBus";
usbvision_device_data[ 2 ].interface = -1;
usbvision_device_data[ 2 ].codec = 7111;
usbvision_device_data[ 2 ].video_channels = 2;
usbvision_device_data[ 2 ].audio_channels = 1;
usbvision_device_data[ 2 ].radio = 0;
usbvision_device_data[ 2 ].vbi = 1;
usbvision_device_data[ 2 ].tuner = 0;
usbvision_device_data[ 2 ].vin_reg1_override = 0;
usbvision_device_data[ 2 ].vin_reg2_override = 0;
usbvision_device_data[ 2 ].dvi_yuv_override = 0;
usbvision_device_data[ 2 ].vin_reg1 = 0;
usbvision_device_data[ 2 ].vin_reg2 = 0;
usbvision_device_data[ 2 ].dvi_yuv = 0;
usbvision_device_data[ 2 ].tuner_type = 0;
usbvision_device_data[ 2 ].x_offset = -1;
usbvision_device_data[ 2 ].y_offset = -1;
usbvision_device_data[ 3 ].video_norm = 45056;
usbvision_device_data[ 3 ].model_string = "Belkin USB VideoBus II";
usbvision_device_data[ 3 ].interface = -1;
usbvision_device_data[ 3 ].codec = 7113;
usbvision_device_data[ 3 ].video_channels = 2;
usbvision_device_data[ 3 ].audio_channels = 1;
usbvision_device_data[ 3 ].radio = 0;
usbvision_device_data[ 3 ].vbi = 1;
usbvision_device_data[ 3 ].tuner = 0;
usbvision_device_data[ 3 ].vin_reg1_override = 0;
usbvision_device_data[ 3 ].vin_reg2_override = 0;
usbvision_device_data[ 3 ].dvi_yuv_override = 1;
usbvision_device_data[ 3 ].vin_reg1 = 0;
usbvision_device_data[ 3 ].vin_reg2 = 0;
usbvision_device_data[ 3 ].dvi_yuv = 7;
usbvision_device_data[ 3 ].tuner_type = 0;
usbvision_device_data[ 3 ].x_offset = 0;
usbvision_device_data[ 3 ].y_offset = 3;
usbvision_device_data[ 4 ].video_norm = 255;
usbvision_device_data[ 4 ].model_string = "echoFX InterView Lite";
usbvision_device_data[ 4 ].interface = 0;
usbvision_device_data[ 4 ].codec = 7111;
usbvision_device_data[ 4 ].video_channels = 2;
usbvision_device_data[ 4 ].audio_channels = 0;
usbvision_device_data[ 4 ].radio = 0;
usbvision_device_data[ 4 ].vbi = 1;
usbvision_device_data[ 4 ].tuner = 0;
usbvision_device_data[ 4 ].vin_reg1_override = 0;
usbvision_device_data[ 4 ].vin_reg2_override = 0;
usbvision_device_data[ 4 ].dvi_yuv_override = 1;
usbvision_device_data[ 4 ].vin_reg1 = 0;
usbvision_device_data[ 4 ].vin_reg2 = 0;
usbvision_device_data[ 4 ].dvi_yuv = 7;
usbvision_device_data[ 4 ].tuner_type = 0;
usbvision_device_data[ 4 ].x_offset = -1;
usbvision_device_data[ 4 ].y_offset = -1;
usbvision_device_data[ 5 ].video_norm = 45056;
usbvision_device_data[ 5 ].model_string = "USBGear USBG-V1 resp. HAMA USB";
usbvision_device_data[ 5 ].interface = -1;
usbvision_device_data[ 5 ].codec = 7111;
usbvision_device_data[ 5 ].video_channels = 2;
usbvision_device_data[ 5 ].audio_channels = 1;
usbvision_device_data[ 5 ].radio = 0;
usbvision_device_data[ 5 ].vbi = 1;
usbvision_device_data[ 5 ].tuner = 0;
usbvision_device_data[ 5 ].vin_reg1_override = 0;
usbvision_device_data[ 5 ].vin_reg2_override = 0;
usbvision_device_data[ 5 ].dvi_yuv_override = 0;
usbvision_device_data[ 5 ].vin_reg1 = 0;
usbvision_device_data[ 5 ].vin_reg2 = 0;
usbvision_device_data[ 5 ].dvi_yuv = 0;
usbvision_device_data[ 5 ].tuner_type = 0;
usbvision_device_data[ 5 ].x_offset = -1;
usbvision_device_data[ 5 ].y_offset = -1;
usbvision_device_data[ 6 ].video_norm = 45056;
usbvision_device_data[ 6 ].model_string = "D-Link V100";
usbvision_device_data[ 6 ].interface = -1;
usbvision_device_data[ 6 ].codec = 7113;
usbvision_device_data[ 6 ].video_channels = 4;
usbvision_device_data[ 6 ].audio_channels = 0;
usbvision_device_data[ 6 ].radio = 0;
usbvision_device_data[ 6 ].vbi = 1;
usbvision_device_data[ 6 ].tuner = 0;
usbvision_device_data[ 6 ].vin_reg1_override = 0;
usbvision_device_data[ 6 ].vin_reg2_override = 0;
usbvision_device_data[ 6 ].dvi_yuv_override = 1;
usbvision_device_data[ 6 ].vin_reg1 = 0;
usbvision_device_data[ 6 ].vin_reg2 = 0;
usbvision_device_data[ 6 ].dvi_yuv = 7;
usbvision_device_data[ 6 ].tuner_type = 0;
usbvision_device_data[ 6 ].x_offset = 0;
usbvision_device_data[ 6 ].y_offset = 3;
usbvision_device_data[ 7 ].video_norm = 45056;
usbvision_device_data[ 7 ].model_string = "X10 USB Camera";
usbvision_device_data[ 7 ].interface = -1;
usbvision_device_data[ 7 ].codec = 7111;
usbvision_device_data[ 7 ].video_channels = 2;
usbvision_device_data[ 7 ].audio_channels = 1;
usbvision_device_data[ 7 ].radio = 0;
usbvision_device_data[ 7 ].vbi = 1;
usbvision_device_data[ 7 ].tuner = 0;
usbvision_device_data[ 7 ].vin_reg1_override = 0;
usbvision_device_data[ 7 ].vin_reg2_override = 0;
usbvision_device_data[ 7 ].dvi_yuv_override = 0;
usbvision_device_data[ 7 ].vin_reg1 = 0;
usbvision_device_data[ 7 ].vin_reg2 = 0;
usbvision_device_data[ 7 ].dvi_yuv = 0;
usbvision_device_data[ 7 ].tuner_type = 0;
usbvision_device_data[ 7 ].x_offset = -1;
usbvision_device_data[ 7 ].y_offset = -1;
usbvision_device_data[ 8 ].video_norm = 255;
usbvision_device_data[ 8 ].model_string = "Hauppauge WinTV USB Live (PAL B/G)";
usbvision_device_data[ 8 ].interface = -1;
usbvision_device_data[ 8 ].codec = 7111;
usbvision_device_data[ 8 ].video_channels = 2;
usbvision_device_data[ 8 ].audio_channels = 1;
usbvision_device_data[ 8 ].radio = 0;
usbvision_device_data[ 8 ].vbi = 1;
usbvision_device_data[ 8 ].tuner = 0;
usbvision_device_data[ 8 ].vin_reg1_override = 0;
usbvision_device_data[ 8 ].vin_reg2_override = 0;
usbvision_device_data[ 8 ].dvi_yuv_override = 1;
usbvision_device_data[ 8 ].vin_reg1 = 0;
usbvision_device_data[ 8 ].vin_reg2 = 0;
usbvision_device_data[ 8 ].dvi_yuv = 7;
usbvision_device_data[ 8 ].tuner_type = 0;
usbvision_device_data[ 8 ].x_offset = -1;
usbvision_device_data[ 8 ].y_offset = 3;
usbvision_device_data[ 9 ].video_norm = 45056;
usbvision_device_data[ 9 ].model_string = "Hauppauge WinTV USB Live Pro (NTSC M/N)";
usbvision_device_data[ 9 ].interface = -1;
usbvision_device_data[ 9 ].codec = 7113;
usbvision_device_data[ 9 ].video_channels = 2;
usbvision_device_data[ 9 ].audio_channels = 0;
usbvision_device_data[ 9 ].radio = 0;
usbvision_device_data[ 9 ].vbi = 1;
usbvision_device_data[ 9 ].tuner = 0;
usbvision_device_data[ 9 ].vin_reg1_override = 0;
usbvision_device_data[ 9 ].vin_reg2_override = 0;
usbvision_device_data[ 9 ].dvi_yuv_override = 1;
usbvision_device_data[ 9 ].vin_reg1 = 0;
usbvision_device_data[ 9 ].vin_reg2 = 0;
usbvision_device_data[ 9 ].dvi_yuv = 7;
usbvision_device_data[ 9 ].tuner_type = 0;
usbvision_device_data[ 9 ].x_offset = 0;
usbvision_device_data[ 9 ].y_offset = 3;
usbvision_device_data[ 10 ].video_norm = 255;
usbvision_device_data[ 10 ].model_string = "Zoran Co. PMD (Nogatech) AV-grabber Manhattan";
usbvision_device_data[ 10 ].interface = -1;
usbvision_device_data[ 10 ].codec = 7113;
usbvision_device_data[ 10 ].video_channels = 2;
usbvision_device_data[ 10 ].audio_channels = 2;
usbvision_device_data[ 10 ].radio = 0;
usbvision_device_data[ 10 ].vbi = 1;
usbvision_device_data[ 10 ].tuner = 0;
usbvision_device_data[ 10 ].vin_reg1_override = 0;
usbvision_device_data[ 10 ].vin_reg2_override = 0;
usbvision_device_data[ 10 ].dvi_yuv_override = 1;
usbvision_device_data[ 10 ].vin_reg1 = 0;
usbvision_device_data[ 10 ].vin_reg2 = 0;
usbvision_device_data[ 10 ].dvi_yuv = 7;
usbvision_device_data[ 10 ].tuner_type = 0;
usbvision_device_data[ 10 ].x_offset = 0;
usbvision_device_data[ 10 ].y_offset = 3;
usbvision_device_data[ 11 ].video_norm = 45056;
usbvision_device_data[ 11 ].model_string = "Nogatech USB-TV (NTSC) FM";
usbvision_device_data[ 11 ].interface = -1;
usbvision_device_data[ 11 ].codec = 7111;
usbvision_device_data[ 11 ].video_channels = 3;
usbvision_device_data[ 11 ].audio_channels = 1;
usbvision_device_data[ 11 ].radio = 1;
usbvision_device_data[ 11 ].vbi = 1;
usbvision_device_data[ 11 ].tuner = 1;
usbvision_device_data[ 11 ].vin_reg1_override = 0;
usbvision_device_data[ 11 ].vin_reg2_override = 0;
usbvision_device_data[ 11 ].dvi_yuv_override = 0;
usbvision_device_data[ 11 ].vin_reg1 = 0;
usbvision_device_data[ 11 ].vin_reg2 = 0;
usbvision_device_data[ 11 ].dvi_yuv = 0;
usbvision_device_data[ 11 ].tuner_type = 17;
usbvision_device_data[ 11 ].x_offset = -1;
usbvision_device_data[ 11 ].y_offset = 20;
usbvision_device_data[ 12 ].video_norm = 45056;
usbvision_device_data[ 12 ].model_string = "PNY USB-TV (NTSC) FM";
usbvision_device_data[ 12 ].interface = -1;
usbvision_device_data[ 12 ].codec = 7111;
usbvision_device_data[ 12 ].video_channels = 3;
usbvision_device_data[ 12 ].audio_channels = 1;
usbvision_device_data[ 12 ].radio = 1;
usbvision_device_data[ 12 ].vbi = 1;
usbvision_device_data[ 12 ].tuner = 1;
usbvision_device_data[ 12 ].vin_reg1_override = 0;
usbvision_device_data[ 12 ].vin_reg2_override = 0;
usbvision_device_data[ 12 ].dvi_yuv_override = 0;
usbvision_device_data[ 12 ].vin_reg1 = 0;
usbvision_device_data[ 12 ].vin_reg2 = 0;
usbvision_device_data[ 12 ].dvi_yuv = 0;
usbvision_device_data[ 12 ].tuner_type = 17;
usbvision_device_data[ 12 ].x_offset = -1;
usbvision_device_data[ 12 ].y_offset = 20;
usbvision_device_data[ 13 ].video_norm = 255;
usbvision_device_data[ 13 ].model_string = "PixelView PlayTv-USB PRO (PAL) FM";
usbvision_device_data[ 13 ].interface = 0;
usbvision_device_data[ 13 ].codec = 7113;
usbvision_device_data[ 13 ].video_channels = 3;
usbvision_device_data[ 13 ].audio_channels = 1;
usbvision_device_data[ 13 ].radio = 1;
usbvision_device_data[ 13 ].vbi = 1;
usbvision_device_data[ 13 ].tuner = 1;
usbvision_device_data[ 13 ].vin_reg1_override = 0;
usbvision_device_data[ 13 ].vin_reg2_override = 0;
usbvision_device_data[ 13 ].dvi_yuv_override = 1;
usbvision_device_data[ 13 ].vin_reg1 = 0;
usbvision_device_data[ 13 ].vin_reg2 = 0;
usbvision_device_data[ 13 ].dvi_yuv = 7;
usbvision_device_data[ 13 ].tuner_type = 5;
usbvision_device_data[ 13 ].x_offset = 0;
usbvision_device_data[ 13 ].y_offset = 3;
usbvision_device_data[ 14 ].video_norm = 255;
usbvision_device_data[ 14 ].model_string = "ZTV ZT-721 2.4GHz USB A/V Receiver";
usbvision_device_data[ 14 ].interface = 0;
usbvision_device_data[ 14 ].codec = 7113;
usbvision_device_data[ 14 ].video_channels = 3;
usbvision_device_data[ 14 ].audio_channels = 1;
usbvision_device_data[ 14 ].radio = 1;
usbvision_device_data[ 14 ].vbi = 1;
usbvision_device_data[ 14 ].tuner = 1;
usbvision_device_data[ 14 ].vin_reg1_override = 0;
usbvision_device_data[ 14 ].vin_reg2_override = 0;
usbvision_device_data[ 14 ].dvi_yuv_override = 1;
usbvision_device_data[ 14 ].vin_reg1 = 0;
usbvision_device_data[ 14 ].vin_reg2 = 0;
usbvision_device_data[ 14 ].dvi_yuv = 7;
usbvision_device_data[ 14 ].tuner_type = 5;
usbvision_device_data[ 14 ].x_offset = 0;
usbvision_device_data[ 14 ].y_offset = 3;
usbvision_device_data[ 15 ].video_norm = 45056;
usbvision_device_data[ 15 ].model_string = "Hauppauge WinTV USB (NTSC M/N)";
usbvision_device_data[ 15 ].interface = -1;
usbvision_device_data[ 15 ].codec = 7111;
usbvision_device_data[ 15 ].video_channels = 3;
usbvision_device_data[ 15 ].audio_channels = 1;
usbvision_device_data[ 15 ].radio = 0;
usbvision_device_data[ 15 ].vbi = 1;
usbvision_device_data[ 15 ].tuner = 1;
usbvision_device_data[ 15 ].vin_reg1_override = 0;
usbvision_device_data[ 15 ].vin_reg2_override = 0;
usbvision_device_data[ 15 ].dvi_yuv_override = 0;
usbvision_device_data[ 15 ].vin_reg1 = 0;
usbvision_device_data[ 15 ].vin_reg2 = 0;
usbvision_device_data[ 15 ].dvi_yuv = 0;
usbvision_device_data[ 15 ].tuner_type = 17;
usbvision_device_data[ 15 ].x_offset = -1;
usbvision_device_data[ 15 ].y_offset = 20;
usbvision_device_data[ 16 ].video_norm = 255;
usbvision_device_data[ 16 ].model_string = "Hauppauge WinTV USB (PAL B/G)";
usbvision_device_data[ 16 ].interface = -1;
usbvision_device_data[ 16 ].codec = 7111;
usbvision_device_data[ 16 ].video_channels = 3;
usbvision_device_data[ 16 ].audio_channels = 1;
usbvision_device_data[ 16 ].radio = 0;
usbvision_device_data[ 16 ].vbi = 1;
usbvision_device_data[ 16 ].tuner = 1;
usbvision_device_data[ 16 ].vin_reg1_override = 0;
usbvision_device_data[ 16 ].vin_reg2_override = 0;
usbvision_device_data[ 16 ].dvi_yuv_override = 0;
usbvision_device_data[ 16 ].vin_reg1 = 0;
usbvision_device_data[ 16 ].vin_reg2 = 0;
usbvision_device_data[ 16 ].dvi_yuv = 0;
usbvision_device_data[ 16 ].tuner_type = 5;
usbvision_device_data[ 16 ].x_offset = -1;
usbvision_device_data[ 16 ].y_offset = -1;
usbvision_device_data[ 17 ].video_norm = 255;
usbvision_device_data[ 17 ].model_string = "Hauppauge WinTV USB (PAL I)";
usbvision_device_data[ 17 ].interface = -1;
usbvision_device_data[ 17 ].codec = 7111;
usbvision_device_data[ 17 ].video_channels = 3;
usbvision_device_data[ 17 ].audio_channels = 1;
usbvision_device_data[ 17 ].radio = 0;
usbvision_device_data[ 17 ].vbi = 1;
usbvision_device_data[ 17 ].tuner = 1;
usbvision_device_data[ 17 ].vin_reg1_override = 0;
usbvision_device_data[ 17 ].vin_reg2_override = 0;
usbvision_device_data[ 17 ].dvi_yuv_override = 0;
usbvision_device_data[ 17 ].vin_reg1 = 0;
usbvision_device_data[ 17 ].vin_reg2 = 0;
usbvision_device_data[ 17 ].dvi_yuv = 0;
usbvision_device_data[ 17 ].tuner_type = 5;
usbvision_device_data[ 17 ].x_offset = -1;
usbvision_device_data[ 17 ].y_offset = -1;
usbvision_device_data[ 18 ].video_norm = 16711680;
usbvision_device_data[ 18 ].model_string = "Hauppauge WinTV USB (PAL/SECAM L)";
usbvision_device_data[ 18 ].interface = -1;
usbvision_device_data[ 18 ].codec = 7111;
usbvision_device_data[ 18 ].video_channels = 3;
usbvision_device_data[ 18 ].audio_channels = 1;
usbvision_device_data[ 18 ].radio = 0;
usbvision_device_data[ 18 ].vbi = 1;
usbvision_device_data[ 18 ].tuner = 1;
usbvision_device_data[ 18 ].vin_reg1_override = 0;
usbvision_device_data[ 18 ].vin_reg2_override = 0;
usbvision_device_data[ 18 ].dvi_yuv_override = 0;
usbvision_device_data[ 18 ].vin_reg1 = 0;
usbvision_device_data[ 18 ].vin_reg2 = 0;
usbvision_device_data[ 18 ].dvi_yuv = 0;
usbvision_device_data[ 18 ].tuner_type = 3;
usbvision_device_data[ 18 ].x_offset = 128;
usbvision_device_data[ 18 ].y_offset = 22;
usbvision_device_data[ 19 ].video_norm = 255;
usbvision_device_data[ 19 ].model_string = "Hauppauge WinTV USB (PAL D/K)";
usbvision_device_data[ 19 ].interface = -1;
usbvision_device_data[ 19 ].codec = 7111;
usbvision_device_data[ 19 ].video_channels = 3;
usbvision_device_data[ 19 ].audio_channels = 1;
usbvision_device_data[ 19 ].radio = 0;
usbvision_device_data[ 19 ].vbi = 1;
usbvision_device_data[ 19 ].tuner = 1;
usbvision_device_data[ 19 ].vin_reg1_override = 0;
usbvision_device_data[ 19 ].vin_reg2_override = 0;
usbvision_device_data[ 19 ].dvi_yuv_override = 0;
usbvision_device_data[ 19 ].vin_reg1 = 0;
usbvision_device_data[ 19 ].vin_reg2 = 0;
usbvision_device_data[ 19 ].dvi_yuv = 0;
usbvision_device_data[ 19 ].tuner_type = 5;
usbvision_device_data[ 19 ].x_offset = -1;
usbvision_device_data[ 19 ].y_offset = -1;
usbvision_device_data[ 20 ].video_norm = 45056;
usbvision_device_data[ 20 ].model_string = "Hauppauge WinTV USB (NTSC FM)";
usbvision_device_data[ 20 ].interface = -1;
usbvision_device_data[ 20 ].codec = 7111;
usbvision_device_data[ 20 ].video_channels = 3;
usbvision_device_data[ 20 ].audio_channels = 1;
usbvision_device_data[ 20 ].radio = 1;
usbvision_device_data[ 20 ].vbi = 1;
usbvision_device_data[ 20 ].tuner = 1;
usbvision_device_data[ 20 ].vin_reg1_override = 0;
usbvision_device_data[ 20 ].vin_reg2_override = 0;
usbvision_device_data[ 20 ].dvi_yuv_override = 0;
usbvision_device_data[ 20 ].vin_reg1 = 0;
usbvision_device_data[ 20 ].vin_reg2 = 0;
usbvision_device_data[ 20 ].dvi_yuv = 0;
usbvision_device_data[ 20 ].tuner_type = 17;
usbvision_device_data[ 20 ].x_offset = -1;
usbvision_device_data[ 20 ].y_offset = -1;
usbvision_device_data[ 21 ].video_norm = 255;
usbvision_device_data[ 21 ].model_string = "Hauppauge WinTV USB (PAL B/G FM)";
usbvision_device_data[ 21 ].interface = -1;
usbvision_device_data[ 21 ].codec = 7111;
usbvision_device_data[ 21 ].video_channels = 3;
usbvision_device_data[ 21 ].audio_channels = 1;
usbvision_device_data[ 21 ].radio = 1;
usbvision_device_data[ 21 ].vbi = 1;
usbvision_device_data[ 21 ].tuner = 1;
usbvision_device_data[ 21 ].vin_reg1_override = 0;
usbvision_device_data[ 21 ].vin_reg2_override = 0;
usbvision_device_data[ 21 ].dvi_yuv_override = 0;
usbvision_device_data[ 21 ].vin_reg1 = 0;
usbvision_device_data[ 21 ].vin_reg2 = 0;
usbvision_device_data[ 21 ].dvi_yuv = 0;
usbvision_device_data[ 21 ].tuner_type = 5;
usbvision_device_data[ 21 ].x_offset = -1;
usbvision_device_data[ 21 ].y_offset = -1;
usbvision_device_data[ 22 ].video_norm = 255;
usbvision_device_data[ 22 ].model_string = "Hauppauge WinTV USB (PAL I FM)";
usbvision_device_data[ 22 ].interface = -1;
usbvision_device_data[ 22 ].codec = 7111;
usbvision_device_data[ 22 ].video_channels = 3;
usbvision_device_data[ 22 ].audio_channels = 1;
usbvision_device_data[ 22 ].radio = 1;
usbvision_device_data[ 22 ].vbi = 1;
usbvision_device_data[ 22 ].tuner = 1;
usbvision_device_data[ 22 ].vin_reg1_override = 0;
usbvision_device_data[ 22 ].vin_reg2_override = 0;
usbvision_device_data[ 22 ].dvi_yuv_override = 0;
usbvision_device_data[ 22 ].vin_reg1 = 0;
usbvision_device_data[ 22 ].vin_reg2 = 0;
usbvision_device_data[ 22 ].dvi_yuv = 0;
usbvision_device_data[ 22 ].tuner_type = 5;
usbvision_device_data[ 22 ].x_offset = -1;
usbvision_device_data[ 22 ].y_offset = -1;
usbvision_device_data[ 23 ].video_norm = 255;
usbvision_device_data[ 23 ].model_string = "Hauppauge WinTV USB (PAL D/K FM)";
usbvision_device_data[ 23 ].interface = -1;
usbvision_device_data[ 23 ].codec = 7111;
usbvision_device_data[ 23 ].video_channels = 3;
usbvision_device_data[ 23 ].audio_channels = 1;
usbvision_device_data[ 23 ].radio = 1;
usbvision_device_data[ 23 ].vbi = 1;
usbvision_device_data[ 23 ].tuner = 1;
usbvision_device_data[ 23 ].vin_reg1_override = 0;
usbvision_device_data[ 23 ].vin_reg2_override = 0;
usbvision_device_data[ 23 ].dvi_yuv_override = 0;
usbvision_device_data[ 23 ].vin_reg1 = 0;
usbvision_device_data[ 23 ].vin_reg2 = 0;
usbvision_device_data[ 23 ].dvi_yuv = 0;
usbvision_device_data[ 23 ].tuner_type = 5;
usbvision_device_data[ 23 ].x_offset = -1;
usbvision_device_data[ 23 ].y_offset = -1;
usbvision_device_data[ 24 ].video_norm = 45056;
usbvision_device_data[ 24 ].model_string = "Hauppauge WinTV USB Pro (NTSC M/N)";
usbvision_device_data[ 24 ].interface = 0;
usbvision_device_data[ 24 ].codec = 7113;
usbvision_device_data[ 24 ].video_channels = 3;
usbvision_device_data[ 24 ].audio_channels = 1;
usbvision_device_data[ 24 ].radio = 1;
usbvision_device_data[ 24 ].vbi = 1;
usbvision_device_data[ 24 ].tuner = 1;
usbvision_device_data[ 24 ].vin_reg1_override = 0;
usbvision_device_data[ 24 ].vin_reg2_override = 0;
usbvision_device_data[ 24 ].dvi_yuv_override = 1;
usbvision_device_data[ 24 ].vin_reg1 = 0;
usbvision_device_data[ 24 ].vin_reg2 = 0;
usbvision_device_data[ 24 ].dvi_yuv = 7;
usbvision_device_data[ 24 ].tuner_type = 45;
usbvision_device_data[ 24 ].x_offset = 0;
usbvision_device_data[ 24 ].y_offset = 3;
usbvision_device_data[ 25 ].video_norm = 45056;
usbvision_device_data[ 25 ].model_string = "Hauppauge WinTV USB Pro (NTSC M/N) V2";
usbvision_device_data[ 25 ].interface = 0;
usbvision_device_data[ 25 ].codec = 7113;
usbvision_device_data[ 25 ].video_channels = 3;
usbvision_device_data[ 25 ].audio_channels = 1;
usbvision_device_data[ 25 ].radio = 1;
usbvision_device_data[ 25 ].vbi = 1;
usbvision_device_data[ 25 ].tuner = 1;
usbvision_device_data[ 25 ].vin_reg1_override = 0;
usbvision_device_data[ 25 ].vin_reg2_override = 0;
usbvision_device_data[ 25 ].dvi_yuv_override = 1;
usbvision_device_data[ 25 ].vin_reg1 = 0;
usbvision_device_data[ 25 ].vin_reg2 = 0;
usbvision_device_data[ 25 ].dvi_yuv = 7;
usbvision_device_data[ 25 ].tuner_type = 45;
usbvision_device_data[ 25 ].x_offset = 0;
usbvision_device_data[ 25 ].y_offset = 3;
usbvision_device_data[ 26 ].video_norm = 255;
usbvision_device_data[ 26 ].model_string = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L)";
usbvision_device_data[ 26 ].interface = 0;
usbvision_device_data[ 26 ].codec = 7113;
usbvision_device_data[ 26 ].video_channels = 3;
usbvision_device_data[ 26 ].audio_channels = 1;
usbvision_device_data[ 26 ].radio = 0;
usbvision_device_data[ 26 ].vbi = 1;
usbvision_device_data[ 26 ].tuner = 1;
usbvision_device_data[ 26 ].vin_reg1_override = 0;
usbvision_device_data[ 26 ].vin_reg2_override = 0;
usbvision_device_data[ 26 ].dvi_yuv_override = 1;
usbvision_device_data[ 26 ].vin_reg1 = 0;
usbvision_device_data[ 26 ].vin_reg2 = 0;
usbvision_device_data[ 26 ].dvi_yuv = 7;
usbvision_device_data[ 26 ].tuner_type = 38;
usbvision_device_data[ 26 ].x_offset = 0;
usbvision_device_data[ 26 ].y_offset = 3;
usbvision_device_data[ 27 ].video_norm = 45056;
usbvision_device_data[ 27 ].model_string = "Hauppauge WinTV USB Pro (NTSC M/N) V3";
usbvision_device_data[ 27 ].interface = 0;
usbvision_device_data[ 27 ].codec = 7113;
usbvision_device_data[ 27 ].video_channels = 3;
usbvision_device_data[ 27 ].audio_channels = 1;
usbvision_device_data[ 27 ].radio = 1;
usbvision_device_data[ 27 ].vbi = 1;
usbvision_device_data[ 27 ].tuner = 1;
usbvision_device_data[ 27 ].vin_reg1_override = 0;
usbvision_device_data[ 27 ].vin_reg2_override = 0;
usbvision_device_data[ 27 ].dvi_yuv_override = 1;
usbvision_device_data[ 27 ].vin_reg1 = 0;
usbvision_device_data[ 27 ].vin_reg2 = 0;
usbvision_device_data[ 27 ].dvi_yuv = 7;
usbvision_device_data[ 27 ].tuner_type = 17;
usbvision_device_data[ 27 ].x_offset = 0;
usbvision_device_data[ 27 ].y_offset = 3;
usbvision_device_data[ 28 ].video_norm = 255;
usbvision_device_data[ 28 ].model_string = "Hauppauge WinTV USB Pro (PAL B/G)";
usbvision_device_data[ 28 ].interface = 0;
usbvision_device_data[ 28 ].codec = 7113;
usbvision_device_data[ 28 ].video_channels = 3;
usbvision_device_data[ 28 ].audio_channels = 1;
usbvision_device_data[ 28 ].radio = 0;
usbvision_device_data[ 28 ].vbi = 1;
usbvision_device_data[ 28 ].tuner = 1;
usbvision_device_data[ 28 ].vin_reg1_override = 0;
usbvision_device_data[ 28 ].vin_reg2_override = 0;
usbvision_device_data[ 28 ].dvi_yuv_override = 1;
usbvision_device_data[ 28 ].vin_reg1 = 0;
usbvision_device_data[ 28 ].vin_reg2 = 0;
usbvision_device_data[ 28 ].dvi_yuv = 7;
usbvision_device_data[ 28 ].tuner_type = 5;
usbvision_device_data[ 28 ].x_offset = 0;
usbvision_device_data[ 28 ].y_offset = 3;
usbvision_device_data[ 29 ].video_norm = 255;
usbvision_device_data[ 29 ].model_string = "Hauppauge WinTV USB Pro (PAL I)";
usbvision_device_data[ 29 ].interface = 0;
usbvision_device_data[ 29 ].codec = 7113;
usbvision_device_data[ 29 ].video_channels = 3;
usbvision_device_data[ 29 ].audio_channels = 1;
usbvision_device_data[ 29 ].radio = 0;
usbvision_device_data[ 29 ].vbi = 1;
usbvision_device_data[ 29 ].tuner = 1;
usbvision_device_data[ 29 ].vin_reg1_override = 0;
usbvision_device_data[ 29 ].vin_reg2_override = 0;
usbvision_device_data[ 29 ].dvi_yuv_override = 1;
usbvision_device_data[ 29 ].vin_reg1 = 0;
usbvision_device_data[ 29 ].vin_reg2 = 0;
usbvision_device_data[ 29 ].dvi_yuv = 7;
usbvision_device_data[ 29 ].tuner_type = 5;
usbvision_device_data[ 29 ].x_offset = 0;
usbvision_device_data[ 29 ].y_offset = 3;
usbvision_device_data[ 30 ].video_norm = 16711680;
usbvision_device_data[ 30 ].model_string = "Hauppauge WinTV USB Pro (PAL/SECAM L)";
usbvision_device_data[ 30 ].interface = -1;
usbvision_device_data[ 30 ].codec = 7113;
usbvision_device_data[ 30 ].video_channels = 3;
usbvision_device_data[ 30 ].audio_channels = 1;
usbvision_device_data[ 30 ].radio = 0;
usbvision_device_data[ 30 ].vbi = 1;
usbvision_device_data[ 30 ].tuner = 1;
usbvision_device_data[ 30 ].vin_reg1_override = 0;
usbvision_device_data[ 30 ].vin_reg2_override = 0;
usbvision_device_data[ 30 ].dvi_yuv_override = 1;
usbvision_device_data[ 30 ].vin_reg1 = 0;
usbvision_device_data[ 30 ].vin_reg2 = 0;
usbvision_device_data[ 30 ].dvi_yuv = 7;
usbvision_device_data[ 30 ].tuner_type = 3;
usbvision_device_data[ 30 ].x_offset = 0;
usbvision_device_data[ 30 ].y_offset = 3;
usbvision_device_data[ 31 ].video_norm = 255;
usbvision_device_data[ 31 ].model_string = "Hauppauge WinTV USB Pro (PAL D/K)";
usbvision_device_data[ 31 ].interface = -1;
usbvision_device_data[ 31 ].codec = 7113;
usbvision_device_data[ 31 ].video_channels = 3;
usbvision_device_data[ 31 ].audio_channels = 1;
usbvision_device_data[ 31 ].radio = 0;
usbvision_device_data[ 31 ].vbi = 1;
usbvision_device_data[ 31 ].tuner = 1;
usbvision_device_data[ 31 ].vin_reg1_override = 0;
usbvision_device_data[ 31 ].vin_reg2_override = 0;
usbvision_device_data[ 31 ].dvi_yuv_override = 1;
usbvision_device_data[ 31 ].vin_reg1 = 0;
usbvision_device_data[ 31 ].vin_reg2 = 0;
usbvision_device_data[ 31 ].dvi_yuv = 7;
usbvision_device_data[ 31 ].tuner_type = 5;
usbvision_device_data[ 31 ].x_offset = 0;
usbvision_device_data[ 31 ].y_offset = 3;
usbvision_device_data[ 32 ].video_norm = 16711680;
usbvision_device_data[ 32 ].model_string = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L)";
usbvision_device_data[ 32 ].interface = -1;
usbvision_device_data[ 32 ].codec = 7113;
usbvision_device_data[ 32 ].video_channels = 3;
usbvision_device_data[ 32 ].audio_channels = 1;
usbvision_device_data[ 32 ].radio = 0;
usbvision_device_data[ 32 ].vbi = 1;
usbvision_device_data[ 32 ].tuner = 1;
usbvision_device_data[ 32 ].vin_reg1_override = 0;
usbvision_device_data[ 32 ].vin_reg2_override = 0;
usbvision_device_data[ 32 ].dvi_yuv_override = 1;
usbvision_device_data[ 32 ].vin_reg1 = 0;
usbvision_device_data[ 32 ].vin_reg2 = 0;
usbvision_device_data[ 32 ].dvi_yuv = 7;
usbvision_device_data[ 32 ].tuner_type = 3;
usbvision_device_data[ 32 ].x_offset = 0;
usbvision_device_data[ 32 ].y_offset = 3;
usbvision_device_data[ 33 ].video_norm = 16711680;
usbvision_device_data[ 33 ].model_string = "Hauppauge WinTV USB Pro (PAL/SECAM BGDK/I/L) V2";
usbvision_device_data[ 33 ].interface = -1;
usbvision_device_data[ 33 ].codec = 7113;
usbvision_device_data[ 33 ].video_channels = 3;
usbvision_device_data[ 33 ].audio_channels = 1;
usbvision_device_data[ 33 ].radio = 0;
usbvision_device_data[ 33 ].vbi = 1;
usbvision_device_data[ 33 ].tuner = 1;
usbvision_device_data[ 33 ].vin_reg1_override = 0;
usbvision_device_data[ 33 ].vin_reg2_override = 0;
usbvision_device_data[ 33 ].dvi_yuv_override = 1;
usbvision_device_data[ 33 ].vin_reg1 = 0;
usbvision_device_data[ 33 ].vin_reg2 = 0;
usbvision_device_data[ 33 ].dvi_yuv = 7;
usbvision_device_data[ 33 ].tuner_type = 3;
usbvision_device_data[ 33 ].x_offset = 0;
usbvision_device_data[ 33 ].y_offset = 3;
usbvision_device_data[ 34 ].video_norm = 255;
usbvision_device_data[ 34 ].model_string = "Hauppauge WinTV USB Pro (PAL B/G) V2";
usbvision_device_data[ 34 ].interface = -1;
usbvision_device_data[ 34 ].codec = 7113;
usbvision_device_data[ 34 ].video_channels = 3;
usbvision_device_data[ 34 ].audio_channels = 1;
usbvision_device_data[ 34 ].radio = 0;
usbvision_device_data[ 34 ].vbi = 1;
usbvision_device_data[ 34 ].tuner = 1;
usbvision_device_data[ 34 ].vin_reg1_override = 0;
usbvision_device_data[ 34 ].vin_reg2_override = 0;
usbvision_device_data[ 34 ].dvi_yuv_override = 1;
usbvision_device_data[ 34 ].vin_reg1 = 0;
usbvision_device_data[ 34 ].vin_reg2 = 0;
usbvision_device_data[ 34 ].dvi_yuv = 7;
usbvision_device_data[ 34 ].tuner_type = 10;
usbvision_device_data[ 34 ].x_offset = 0;
usbvision_device_data[ 34 ].y_offset = 3;
usbvision_device_data[ 35 ].video_norm = 255;
usbvision_device_data[ 35 ].model_string = "Hauppauge WinTV USB Pro (PAL B/G,D/K)";
usbvision_device_data[ 35 ].interface = -1;
usbvision_device_data[ 35 ].codec = 7113;
usbvision_device_data[ 35 ].video_channels = 3;
usbvision_device_data[ 35 ].audio_channels = 1;
usbvision_device_data[ 35 ].radio = 0;
usbvision_device_data[ 35 ].vbi = 1;
usbvision_device_data[ 35 ].tuner = 1;
usbvision_device_data[ 35 ].vin_reg1_override = 0;
usbvision_device_data[ 35 ].vin_reg2_override = 0;
usbvision_device_data[ 35 ].dvi_yuv_override = 1;
usbvision_device_data[ 35 ].vin_reg1 = 0;
usbvision_device_data[ 35 ].vin_reg2 = 0;
usbvision_device_data[ 35 ].dvi_yuv = 7;
usbvision_device_data[ 35 ].tuner_type = 10;
usbvision_device_data[ 35 ].x_offset = 0;
usbvision_device_data[ 35 ].y_offset = 3;
usbvision_device_data[ 36 ].video_norm = 255;
usbvision_device_data[ 36 ].model_string = "Hauppauge WinTV USB Pro (PAL I,D/K)";
usbvision_device_data[ 36 ].interface = -1;
usbvision_device_data[ 36 ].codec = 7113;
usbvision_device_data[ 36 ].video_channels = 3;
usbvision_device_data[ 36 ].audio_channels = 1;
usbvision_device_data[ 36 ].radio = 0;
usbvision_device_data[ 36 ].vbi = 1;
usbvision_device_data[ 36 ].tuner = 1;
usbvision_device_data[ 36 ].vin_reg1_override = 0;
usbvision_device_data[ 36 ].vin_reg2_override = 0;
usbvision_device_data[ 36 ].dvi_yuv_override = 1;
usbvision_device_data[ 36 ].vin_reg1 = 0;
usbvision_device_data[ 36 ].vin_reg2 = 0;
usbvision_device_data[ 36 ].dvi_yuv = 7;
usbvision_device_data[ 36 ].tuner_type = 37;
usbvision_device_data[ 36 ].x_offset = 0;
usbvision_device_data[ 36 ].y_offset = 3;
usbvision_device_data[ 37 ].video_norm = 45056;
usbvision_device_data[ 37 ].model_string = "Hauppauge WinTV USB Pro (NTSC M/N FM)";
usbvision_device_data[ 37 ].interface = -1;
usbvision_device_data[ 37 ].codec = 7113;
usbvision_device_data[ 37 ].video_channels = 3;
usbvision_device_data[ 37 ].audio_channels = 1;
usbvision_device_data[ 37 ].radio = 1;
usbvision_device_data[ 37 ].vbi = 1;
usbvision_device_data[ 37 ].tuner = 1;
usbvision_device_data[ 37 ].vin_reg1_override = 0;
usbvision_device_data[ 37 ].vin_reg2_override = 0;
usbvision_device_data[ 37 ].dvi_yuv_override = 1;
usbvision_device_data[ 37 ].vin_reg1 = 0;
usbvision_device_data[ 37 ].vin_reg2 = 0;
usbvision_device_data[ 37 ].dvi_yuv = 7;
usbvision_device_data[ 37 ].tuner_type = 17;
usbvision_device_data[ 37 ].x_offset = 0;
usbvision_device_data[ 37 ].y_offset = 3;
usbvision_device_data[ 38 ].video_norm = 255;
usbvision_device_data[ 38 ].model_string = "Hauppauge WinTV USB Pro (PAL B/G FM)";
usbvision_device_data[ 38 ].interface = 0;
usbvision_device_data[ 38 ].codec = 7113;
usbvision_device_data[ 38 ].video_channels = 3;
usbvision_device_data[ 38 ].audio_channels = 1;
usbvision_device_data[ 38 ].radio = 1;
usbvision_device_data[ 38 ].vbi = 1;
usbvision_device_data[ 38 ].tuner = 1;
usbvision_device_data[ 38 ].vin_reg1_override = 0;
usbvision_device_data[ 38 ].vin_reg2_override = 0;
usbvision_device_data[ 38 ].dvi_yuv_override = 1;
usbvision_device_data[ 38 ].vin_reg1 = 0;
usbvision_device_data[ 38 ].vin_reg2 = 0;
usbvision_device_data[ 38 ].dvi_yuv = 7;
usbvision_device_data[ 38 ].tuner_type = 5;
usbvision_device_data[ 38 ].x_offset = 0;
usbvision_device_data[ 38 ].y_offset = 3;
usbvision_device_data[ 39 ].video_norm = 255;
usbvision_device_data[ 39 ].model_string = "Hauppauge WinTV USB Pro (PAL I FM)";
usbvision_device_data[ 39 ].interface = 0;
usbvision_device_data[ 39 ].codec = 7113;
usbvision_device_data[ 39 ].video_channels = 3;
usbvision_device_data[ 39 ].audio_channels = 1;
usbvision_device_data[ 39 ].radio = 1;
usbvision_device_data[ 39 ].vbi = 1;
usbvision_device_data[ 39 ].tuner = 1;
usbvision_device_data[ 39 ].vin_reg1_override = 0;
usbvision_device_data[ 39 ].vin_reg2_override = 0;
usbvision_device_data[ 39 ].dvi_yuv_override = 1;
usbvision_device_data[ 39 ].vin_reg1 = 0;
usbvision_device_data[ 39 ].vin_reg2 = 0;
usbvision_device_data[ 39 ].dvi_yuv = 7;
usbvision_device_data[ 39 ].tuner_type = 5;
usbvision_device_data[ 39 ].x_offset = 0;
usbvision_device_data[ 39 ].y_offset = 3;
usbvision_device_data[ 40 ].video_norm = 255;
usbvision_device_data[ 40 ].model_string = "Hauppauge WinTV USB Pro (PAL D/K FM)";
usbvision_device_data[ 40 ].interface = 0;
usbvision_device_data[ 40 ].codec = 7113;
usbvision_device_data[ 40 ].video_channels = 3;
usbvision_device_data[ 40 ].audio_channels = 1;
usbvision_device_data[ 40 ].radio = 1;
usbvision_device_data[ 40 ].vbi = 1;
usbvision_device_data[ 40 ].tuner = 1;
usbvision_device_data[ 40 ].vin_reg1_override = 0;
usbvision_device_data[ 40 ].vin_reg2_override = 0;
usbvision_device_data[ 40 ].dvi_yuv_override = 1;
usbvision_device_data[ 40 ].vin_reg1 = 0;
usbvision_device_data[ 40 ].vin_reg2 = 0;
usbvision_device_data[ 40 ].dvi_yuv = 7;
usbvision_device_data[ 40 ].tuner_type = 5;
usbvision_device_data[ 40 ].x_offset = 0;
usbvision_device_data[ 40 ].y_offset = 3;
usbvision_device_data[ 41 ].video_norm = 255;
usbvision_device_data[ 41 ].model_string = "Hauppauge WinTV USB Pro (Temic PAL/SECAM B/G/I/D/K/L FM)";
usbvision_device_data[ 41 ].interface = 0;
usbvision_device_data[ 41 ].codec = 7113;
usbvision_device_data[ 41 ].video_channels = 3;
usbvision_device_data[ 41 ].audio_channels = 1;
usbvision_device_data[ 41 ].radio = 1;
usbvision_device_data[ 41 ].vbi = 1;
usbvision_device_data[ 41 ].tuner = 1;
usbvision_device_data[ 41 ].vin_reg1_override = 0;
usbvision_device_data[ 41 ].vin_reg2_override = 0;
usbvision_device_data[ 41 ].dvi_yuv_override = 1;
usbvision_device_data[ 41 ].vin_reg1 = 0;
usbvision_device_data[ 41 ].vin_reg2 = 0;
usbvision_device_data[ 41 ].dvi_yuv = 7;
usbvision_device_data[ 41 ].tuner_type = 45;
usbvision_device_data[ 41 ].x_offset = 0;
usbvision_device_data[ 41 ].y_offset = 3;
usbvision_device_data[ 42 ].video_norm = 255;
usbvision_device_data[ 42 ].model_string = "Hauppauge WinTV USB Pro (Temic PAL B/G FM)";
usbvision_device_data[ 42 ].interface = 0;
usbvision_device_data[ 42 ].codec = 7113;
usbvision_device_data[ 42 ].video_channels = 3;
usbvision_device_data[ 42 ].audio_channels = 1;
usbvision_device_data[ 42 ].radio = 1;
usbvision_device_data[ 42 ].vbi = 1;
usbvision_device_data[ 42 ].tuner = 1;
usbvision_device_data[ 42 ].vin_reg1_override = 0;
usbvision_device_data[ 42 ].vin_reg2_override = 0;
usbvision_device_data[ 42 ].dvi_yuv_override = 1;
usbvision_device_data[ 42 ].vin_reg1 = 0;
usbvision_device_data[ 42 ].vin_reg2 = 0;
usbvision_device_data[ 42 ].dvi_yuv = 7;
usbvision_device_data[ 42 ].tuner_type = 45;
usbvision_device_data[ 42 ].x_offset = 0;
usbvision_device_data[ 42 ].y_offset = 3;
usbvision_device_data[ 43 ].video_norm = 255;
usbvision_device_data[ 43 ].model_string = "Hauppauge WinTV USB Pro (PAL/SECAM B/G/I/D/K/L FM)";
usbvision_device_data[ 43 ].interface = 0;
usbvision_device_data[ 43 ].codec = 7113;
usbvision_device_data[ 43 ].video_channels = 3;
usbvision_device_data[ 43 ].audio_channels = 1;
usbvision_device_data[ 43 ].radio = 1;
usbvision_device_data[ 43 ].vbi = 1;
usbvision_device_data[ 43 ].tuner = 1;
usbvision_device_data[ 43 ].vin_reg1_override = 0;
usbvision_device_data[ 43 ].vin_reg2_override = 0;
usbvision_device_data[ 43 ].dvi_yuv_override = 1;
usbvision_device_data[ 43 ].vin_reg1 = 0;
usbvision_device_data[ 43 ].vin_reg2 = 0;
usbvision_device_data[ 43 ].dvi_yuv = 7;
usbvision_device_data[ 43 ].tuner_type = 38;
usbvision_device_data[ 43 ].x_offset = 0;
usbvision_device_data[ 43 ].y_offset = 3;
usbvision_device_data[ 44 ].video_norm = 45056;
usbvision_device_data[ 44 ].model_string = "Hauppauge WinTV USB Pro (NTSC M/N FM) V2";
usbvision_device_data[ 44 ].interface = 0;
usbvision_device_data[ 44 ].codec = 7113;
usbvision_device_data[ 44 ].video_channels = 3;
usbvision_device_data[ 44 ].audio_channels = 1;
usbvision_device_data[ 44 ].radio = 1;
usbvision_device_data[ 44 ].vbi = 1;
usbvision_device_data[ 44 ].tuner = 1;
usbvision_device_data[ 44 ].vin_reg1_override = 0;
usbvision_device_data[ 44 ].vin_reg2_override = 0;
usbvision_device_data[ 44 ].dvi_yuv_override = 1;
usbvision_device_data[ 44 ].vin_reg1 = 0;
usbvision_device_data[ 44 ].vin_reg2 = 0;
usbvision_device_data[ 44 ].dvi_yuv = 7;
usbvision_device_data[ 44 ].tuner_type = 17;
usbvision_device_data[ 44 ].x_offset = 0;
usbvision_device_data[ 44 ].y_offset = 3;
usbvision_device_data[ 45 ].video_norm = 45056;
usbvision_device_data[ 45 ].model_string = "Camtel Technology USB TV Genie Pro FM Model TVB330";
usbvision_device_data[ 45 ].interface = -1;
usbvision_device_data[ 45 ].codec = 7113;
usbvision_device_data[ 45 ].video_channels = 3;
usbvision_device_data[ 45 ].audio_channels = 1;
usbvision_device_data[ 45 ].radio = 1;
usbvision_device_data[ 45 ].vbi = 1;
usbvision_device_data[ 45 ].tuner = 1;
usbvision_device_data[ 45 ].vin_reg1_override = 0;
usbvision_device_data[ 45 ].vin_reg2_override = 0;
usbvision_device_data[ 45 ].dvi_yuv_override = 0;
usbvision_device_data[ 45 ].vin_reg1 = 0;
usbvision_device_data[ 45 ].vin_reg2 = 0;
usbvision_device_data[ 45 ].dvi_yuv = 0;
usbvision_device_data[ 45 ].tuner_type = 17;
usbvision_device_data[ 45 ].x_offset = 5;
usbvision_device_data[ 45 ].y_offset = 5;
usbvision_device_data[ 46 ].video_norm = 255;
usbvision_device_data[ 46 ].model_string = "Digital Video Creator I";
usbvision_device_data[ 46 ].interface = -1;
usbvision_device_data[ 46 ].codec = 7113;
usbvision_device_data[ 46 ].video_channels = 2;
usbvision_device_data[ 46 ].audio_channels = 0;
usbvision_device_data[ 46 ].radio = 0;
usbvision_device_data[ 46 ].vbi = 1;
usbvision_device_data[ 46 ].tuner = 0;
usbvision_device_data[ 46 ].vin_reg1_override = 0;
usbvision_device_data[ 46 ].vin_reg2_override = 0;
usbvision_device_data[ 46 ].dvi_yuv_override = 1;
usbvision_device_data[ 46 ].vin_reg1 = 0;
usbvision_device_data[ 46 ].vin_reg2 = 0;
usbvision_device_data[ 46 ].dvi_yuv = 7;
usbvision_device_data[ 46 ].tuner_type = 0;
usbvision_device_data[ 46 ].x_offset = 0;
usbvision_device_data[ 46 ].y_offset = 3;
usbvision_device_data[ 47 ].video_norm = 45056;
usbvision_device_data[ 47 ].model_string = "Global Village GV-007 (NTSC)";
usbvision_device_data[ 47 ].interface = -1;
usbvision_device_data[ 47 ].codec = 7111;
usbvision_device_data[ 47 ].video_channels = 2;
usbvision_device_data[ 47 ].audio_channels = 0;
usbvision_device_data[ 47 ].radio = 0;
usbvision_device_data[ 47 ].vbi = 1;
usbvision_device_data[ 47 ].tuner = 0;
usbvision_device_data[ 47 ].vin_reg1_override = 0;
usbvision_device_data[ 47 ].vin_reg2_override = 0;
usbvision_device_data[ 47 ].dvi_yuv_override = 1;
usbvision_device_data[ 47 ].vin_reg1 = 0;
usbvision_device_data[ 47 ].vin_reg2 = 0;
usbvision_device_data[ 47 ].dvi_yuv = 7;
usbvision_device_data[ 47 ].tuner_type = 0;
usbvision_device_data[ 47 ].x_offset = 82;
usbvision_device_data[ 47 ].y_offset = 20;
usbvision_device_data[ 48 ].video_norm = 45056;
usbvision_device_data[ 48 ].model_string = "Dazzle Fusion Model DVC-50 Rev 1 (NTSC)";
usbvision_device_data[ 48 ].interface = 0;
usbvision_device_data[ 48 ].codec = 7113;
usbvision_device_data[ 48 ].video_channels = 2;
usbvision_device_data[ 48 ].audio_channels = 0;
usbvision_device_data[ 48 ].radio = 0;
usbvision_device_data[ 48 ].vbi = 1;
usbvision_device_data[ 48 ].tuner = 0;
usbvision_device_data[ 48 ].vin_reg1_override = 0;
usbvision_device_data[ 48 ].vin_reg2_override = 0;
usbvision_device_data[ 48 ].dvi_yuv_override = 1;
usbvision_device_data[ 48 ].vin_reg1 = 0;
usbvision_device_data[ 48 ].vin_reg2 = 0;
usbvision_device_data[ 48 ].dvi_yuv = 7;
usbvision_device_data[ 48 ].tuner_type = 0;
usbvision_device_data[ 48 ].x_offset = 0;
usbvision_device_data[ 48 ].y_offset = 3;
usbvision_device_data[ 49 ].video_norm = 255;
usbvision_device_data[ 49 ].model_string = "Dazzle Fusion Model DVC-80 Rev 1 (PAL)";
usbvision_device_data[ 49 ].interface = 0;
usbvision_device_data[ 49 ].codec = 7113;
usbvision_device_data[ 49 ].video_channels = 2;
usbvision_device_data[ 49 ].audio_channels = 0;
usbvision_device_data[ 49 ].radio = 0;
usbvision_device_data[ 49 ].vbi = 1;
usbvision_device_data[ 49 ].tuner = 0;
usbvision_device_data[ 49 ].vin_reg1_override = 0;
usbvision_device_data[ 49 ].vin_reg2_override = 0;
usbvision_device_data[ 49 ].dvi_yuv_override = 1;
usbvision_device_data[ 49 ].vin_reg1 = 0;
usbvision_device_data[ 49 ].vin_reg2 = 0;
usbvision_device_data[ 49 ].dvi_yuv = 7;
usbvision_device_data[ 49 ].tuner_type = 0;
usbvision_device_data[ 49 ].x_offset = 0;
usbvision_device_data[ 49 ].y_offset = 3;
usbvision_device_data[ 50 ].video_norm = 16711680;
usbvision_device_data[ 50 ].model_string = "Dazzle Fusion Model DVC-90 Rev 1 (SECAM)";
usbvision_device_data[ 50 ].interface = 0;
usbvision_device_data[ 50 ].codec = 7113;
usbvision_device_data[ 50 ].video_channels = 2;
usbvision_device_data[ 50 ].audio_channels = 0;
usbvision_device_data[ 50 ].radio = 0;
usbvision_device_data[ 50 ].vbi = 1;
usbvision_device_data[ 50 ].tuner = 0;
usbvision_device_data[ 50 ].vin_reg1_override = 0;
usbvision_device_data[ 50 ].vin_reg2_override = 0;
usbvision_device_data[ 50 ].dvi_yuv_override = 1;
usbvision_device_data[ 50 ].vin_reg1 = 0;
usbvision_device_data[ 50 ].vin_reg2 = 0;
usbvision_device_data[ 50 ].dvi_yuv = 7;
usbvision_device_data[ 50 ].tuner_type = 0;
usbvision_device_data[ 50 ].x_offset = 0;
usbvision_device_data[ 50 ].y_offset = 3;
usbvision_device_data[ 51 ].video_norm = 255;
usbvision_device_data[ 51 ].model_string = "Eskape Labs MyTV2Go";
usbvision_device_data[ 51 ].interface = 0;
usbvision_device_data[ 51 ].codec = 7113;
usbvision_device_data[ 51 ].video_channels = 2;
usbvision_device_data[ 51 ].audio_channels = 1;
usbvision_device_data[ 51 ].radio = 1;
usbvision_device_data[ 51 ].vbi = 1;
usbvision_device_data[ 51 ].tuner = 1;
usbvision_device_data[ 51 ].vin_reg1_override = 0;
usbvision_device_data[ 51 ].vin_reg2_override = 0;
usbvision_device_data[ 51 ].dvi_yuv_override = 1;
usbvision_device_data[ 51 ].vin_reg1 = 0;
usbvision_device_data[ 51 ].vin_reg2 = 0;
usbvision_device_data[ 51 ].dvi_yuv = 7;
usbvision_device_data[ 51 ].tuner_type = 38;
usbvision_device_data[ 51 ].x_offset = 0;
usbvision_device_data[ 51 ].y_offset = 3;
usbvision_device_data[ 52 ].video_norm = 255;
usbvision_device_data[ 52 ].model_string = "Pinnacle Studio PCTV USB (PAL)";
usbvision_device_data[ 52 ].interface = -1;
usbvision_device_data[ 52 ].codec = 7111;
usbvision_device_data[ 52 ].video_channels = 3;
usbvision_device_data[ 52 ].audio_channels = 1;
usbvision_device_data[ 52 ].radio = 0;
usbvision_device_data[ 52 ].vbi = 0;
usbvision_device_data[ 52 ].tuner = 1;
usbvision_device_data[ 52 ].vin_reg1_override = 0;
usbvision_device_data[ 52 ].vin_reg2_override = 0;
usbvision_device_data[ 52 ].dvi_yuv_override = 0;
usbvision_device_data[ 52 ].vin_reg1 = 0;
usbvision_device_data[ 52 ].vin_reg2 = 0;
usbvision_device_data[ 52 ].dvi_yuv = 0;
usbvision_device_data[ 52 ].tuner_type = 18;
usbvision_device_data[ 52 ].x_offset = -1;
usbvision_device_data[ 52 ].y_offset = -1;
usbvision_device_data[ 53 ].video_norm = 16711680;
usbvision_device_data[ 53 ].model_string = "Pinnacle Studio PCTV USB (SECAM)";
usbvision_device_data[ 53 ].interface = -1;
usbvision_device_data[ 53 ].codec = 7111;
usbvision_device_data[ 53 ].video_channels = 3;
usbvision_device_data[ 53 ].audio_channels = 1;
usbvision_device_data[ 53 ].radio = 0;
usbvision_device_data[ 53 ].vbi = 1;
usbvision_device_data[ 53 ].tuner = 1;
usbvision_device_data[ 53 ].vin_reg1_override = 0;
usbvision_device_data[ 53 ].vin_reg2_override = 0;
usbvision_device_data[ 53 ].dvi_yuv_override = 0;
usbvision_device_data[ 53 ].vin_reg1 = 0;
usbvision_device_data[ 53 ].vin_reg2 = 0;
usbvision_device_data[ 53 ].dvi_yuv = 0;
usbvision_device_data[ 53 ].tuner_type = 3;
usbvision_device_data[ 53 ].x_offset = -1;
usbvision_device_data[ 53 ].y_offset = -1;
usbvision_device_data[ 54 ].video_norm = 255;
usbvision_device_data[ 54 ].model_string = "Pinnacle Studio PCTV USB (PAL) FM";
usbvision_device_data[ 54 ].interface = -1;
usbvision_device_data[ 54 ].codec = 7111;
usbvision_device_data[ 54 ].video_channels = 3;
usbvision_device_data[ 54 ].audio_channels = 1;
usbvision_device_data[ 54 ].radio = 1;
usbvision_device_data[ 54 ].vbi = 1;
usbvision_device_data[ 54 ].tuner = 1;
usbvision_device_data[ 54 ].vin_reg1_override = 0;
usbvision_device_data[ 54 ].vin_reg2_override = 0;
usbvision_device_data[ 54 ].dvi_yuv_override = 0;
usbvision_device_data[ 54 ].vin_reg1 = 0;
usbvision_device_data[ 54 ].vin_reg2 = 0;
usbvision_device_data[ 54 ].dvi_yuv = 0;
usbvision_device_data[ 54 ].tuner_type = 5;
usbvision_device_data[ 54 ].x_offset = 128;
usbvision_device_data[ 54 ].y_offset = 23;
usbvision_device_data[ 55 ].video_norm = 255;
usbvision_device_data[ 55 ].model_string = "Miro PCTV USB";
usbvision_device_data[ 55 ].interface = -1;
usbvision_device_data[ 55 ].codec = 7111;
usbvision_device_data[ 55 ].video_channels = 3;
usbvision_device_data[ 55 ].audio_channels = 1;
usbvision_device_data[ 55 ].radio = 0;
usbvision_device_data[ 55 ].vbi = 1;
usbvision_device_data[ 55 ].tuner = 1;
usbvision_device_data[ 55 ].vin_reg1_override = 0;
usbvision_device_data[ 55 ].vin_reg2_override = 0;
usbvision_device_data[ 55 ].dvi_yuv_override = 0;
usbvision_device_data[ 55 ].vin_reg1 = 0;
usbvision_device_data[ 55 ].vin_reg2 = 0;
usbvision_device_data[ 55 ].dvi_yuv = 0;
usbvision_device_data[ 55 ].tuner_type = 5;
usbvision_device_data[ 55 ].x_offset = -1;
usbvision_device_data[ 55 ].y_offset = -1;
usbvision_device_data[ 56 ].video_norm = 45056;
usbvision_device_data[ 56 ].model_string = "Pinnacle Studio PCTV USB (NTSC) FM";
usbvision_device_data[ 56 ].interface = -1;
usbvision_device_data[ 56 ].codec = 7111;
usbvision_device_data[ 56 ].video_channels = 3;
usbvision_device_data[ 56 ].audio_channels = 1;
usbvision_device_data[ 56 ].radio = 1;
usbvision_device_data[ 56 ].vbi = 1;
usbvision_device_data[ 56 ].tuner = 1;
usbvision_device_data[ 56 ].vin_reg1_override = 0;
usbvision_device_data[ 56 ].vin_reg2_override = 0;
usbvision_device_data[ 56 ].dvi_yuv_override = 0;
usbvision_device_data[ 56 ].vin_reg1 = 0;
usbvision_device_data[ 56 ].vin_reg2 = 0;
usbvision_device_data[ 56 ].dvi_yuv = 0;
usbvision_device_data[ 56 ].tuner_type = 17;
usbvision_device_data[ 56 ].x_offset = -1;
usbvision_device_data[ 56 ].y_offset = -1;
usbvision_device_data[ 57 ].video_norm = 255;
usbvision_device_data[ 57 ].model_string = "Pinnacle Studio PCTV USB (PAL) FM V2";
usbvision_device_data[ 57 ].interface = -1;
usbvision_device_data[ 57 ].codec = 7113;
usbvision_device_data[ 57 ].video_channels = 3;
usbvision_device_data[ 57 ].audio_channels = 1;
usbvision_device_data[ 57 ].radio = 1;
usbvision_device_data[ 57 ].vbi = 1;
usbvision_device_data[ 57 ].tuner = 1;
usbvision_device_data[ 57 ].vin_reg1_override = 0;
usbvision_device_data[ 57 ].vin_reg2_override = 0;
usbvision_device_data[ 57 ].dvi_yuv_override = 1;
usbvision_device_data[ 57 ].vin_reg1 = 0;
usbvision_device_data[ 57 ].vin_reg2 = 0;
usbvision_device_data[ 57 ].dvi_yuv = 7;
usbvision_device_data[ 57 ].tuner_type = 20;
usbvision_device_data[ 57 ].x_offset = 0;
usbvision_device_data[ 57 ].y_offset = 3;
usbvision_device_data[ 58 ].video_norm = 45056;
usbvision_device_data[ 58 ].model_string = "Pinnacle Studio PCTV USB (NTSC) FM V2";
usbvision_device_data[ 58 ].interface = -1;
usbvision_device_data[ 58 ].codec = 7111;
usbvision_device_data[ 58 ].video_channels = 3;
usbvision_device_data[ 58 ].audio_channels = 1;
usbvision_device_data[ 58 ].radio = 1;
usbvision_device_data[ 58 ].vbi = 1;
usbvision_device_data[ 58 ].tuner = 1;
usbvision_device_data[ 58 ].vin_reg1_override = 0;
usbvision_device_data[ 58 ].vin_reg2_override = 0;
usbvision_device_data[ 58 ].dvi_yuv_override = 1;
usbvision_device_data[ 58 ].vin_reg1 = 0;
usbvision_device_data[ 58 ].vin_reg2 = 0;
usbvision_device_data[ 58 ].dvi_yuv = 7;
usbvision_device_data[ 58 ].tuner_type = 21;
usbvision_device_data[ 58 ].x_offset = 0;
usbvision_device_data[ 58 ].y_offset = 3;
usbvision_device_data[ 59 ].video_norm = 255;
usbvision_device_data[ 59 ].model_string = "Pinnacle Studio PCTV USB (PAL) FM V3";
usbvision_device_data[ 59 ].interface = -1;
usbvision_device_data[ 59 ].codec = 7113;
usbvision_device_data[ 59 ].video_channels = 3;
usbvision_device_data[ 59 ].audio_channels = 1;
usbvision_device_data[ 59 ].radio = 1;
usbvision_device_data[ 59 ].vbi = 1;
usbvision_device_data[ 59 ].tuner = 1;
usbvision_device_data[ 59 ].vin_reg1_override = 0;
usbvision_device_data[ 59 ].vin_reg2_override = 0;
usbvision_device_data[ 59 ].dvi_yuv_override = 1;
usbvision_device_data[ 59 ].vin_reg1 = 0;
usbvision_device_data[ 59 ].vin_reg2 = 0;
usbvision_device_data[ 59 ].dvi_yuv = 7;
usbvision_device_data[ 59 ].tuner_type = 20;
usbvision_device_data[ 59 ].x_offset = 0;
usbvision_device_data[ 59 ].y_offset = 3;
usbvision_device_data[ 60 ].video_norm = 45056;
usbvision_device_data[ 60 ].model_string = "Pinnacle Studio Linx Video input cable (NTSC)";
usbvision_device_data[ 60 ].interface = -1;
usbvision_device_data[ 60 ].codec = 7113;
usbvision_device_data[ 60 ].video_channels = 2;
usbvision_device_data[ 60 ].audio_channels = 1;
usbvision_device_data[ 60 ].radio = 0;
usbvision_device_data[ 60 ].vbi = 1;
usbvision_device_data[ 60 ].tuner = 0;
usbvision_device_data[ 60 ].vin_reg1_override = 0;
usbvision_device_data[ 60 ].vin_reg2_override = 0;
usbvision_device_data[ 60 ].dvi_yuv_override = 1;
usbvision_device_data[ 60 ].vin_reg1 = 0;
usbvision_device_data[ 60 ].vin_reg2 = 0;
usbvision_device_data[ 60 ].dvi_yuv = 7;
usbvision_device_data[ 60 ].tuner_type = 0;
usbvision_device_data[ 60 ].x_offset = 0;
usbvision_device_data[ 60 ].y_offset = 3;
usbvision_device_data[ 61 ].video_norm = 255;
usbvision_device_data[ 61 ].model_string = "Pinnacle Studio Linx Video input cable (PAL)";
usbvision_device_data[ 61 ].interface = -1;
usbvision_device_data[ 61 ].codec = 7113;
usbvision_device_data[ 61 ].video_channels = 2;
usbvision_device_data[ 61 ].audio_channels = 1;
usbvision_device_data[ 61 ].radio = 0;
usbvision_device_data[ 61 ].vbi = 1;
usbvision_device_data[ 61 ].tuner = 0;
usbvision_device_data[ 61 ].vin_reg1_override = 0;
usbvision_device_data[ 61 ].vin_reg2_override = 0;
usbvision_device_data[ 61 ].dvi_yuv_override = 1;
usbvision_device_data[ 61 ].vin_reg1 = 0;
usbvision_device_data[ 61 ].vin_reg2 = 0;
usbvision_device_data[ 61 ].dvi_yuv = 7;
usbvision_device_data[ 61 ].tuner_type = 0;
usbvision_device_data[ 61 ].x_offset = 0;
usbvision_device_data[ 61 ].y_offset = 3;
usbvision_device_data[ 62 ].video_norm = 255;
usbvision_device_data[ 62 ].model_string = "Pinnacle PCTV Bungee USB (PAL) FM";
usbvision_device_data[ 62 ].interface = -1;
usbvision_device_data[ 62 ].codec = 7113;
usbvision_device_data[ 62 ].video_channels = 3;
usbvision_device_data[ 62 ].audio_channels = 1;
usbvision_device_data[ 62 ].radio = 1;
usbvision_device_data[ 62 ].vbi = 1;
usbvision_device_data[ 62 ].tuner = 1;
usbvision_device_data[ 62 ].vin_reg1_override = 0;
usbvision_device_data[ 62 ].vin_reg2_override = 0;
usbvision_device_data[ 62 ].dvi_yuv_override = 1;
usbvision_device_data[ 62 ].vin_reg1 = 0;
usbvision_device_data[ 62 ].vin_reg2 = 0;
usbvision_device_data[ 62 ].dvi_yuv = 7;
usbvision_device_data[ 62 ].tuner_type = 20;
usbvision_device_data[ 62 ].x_offset = 0;
usbvision_device_data[ 62 ].y_offset = 3;
usbvision_device_data[ 63 ].video_norm = 45056;
usbvision_device_data[ 63 ].model_string = "Hauppauge WinTv-USB";
usbvision_device_data[ 63 ].interface = -1;
usbvision_device_data[ 63 ].codec = 7111;
usbvision_device_data[ 63 ].video_channels = 3;
usbvision_device_data[ 63 ].audio_channels = 1;
usbvision_device_data[ 63 ].radio = 0;
usbvision_device_data[ 63 ].vbi = 1;
usbvision_device_data[ 63 ].tuner = 1;
usbvision_device_data[ 63 ].vin_reg1_override = 0;
usbvision_device_data[ 63 ].vin_reg2_override = 0;
usbvision_device_data[ 63 ].dvi_yuv_override = 0;
usbvision_device_data[ 63 ].vin_reg1 = 0;
usbvision_device_data[ 63 ].vin_reg2 = 0;
usbvision_device_data[ 63 ].dvi_yuv = 0;
usbvision_device_data[ 63 ].tuner_type = 17;
usbvision_device_data[ 63 ].x_offset = -1;
usbvision_device_data[ 63 ].y_offset = -1;
usbvision_device_data[ 64 ].video_norm = 45056;
usbvision_device_data[ 64 ].model_string = "Pinnacle Studio PCTV USB (NTSC) FM V3";
usbvision_device_data[ 64 ].interface = -1;
usbvision_device_data[ 64 ].codec = 7111;
usbvision_device_data[ 64 ].video_channels = 3;
usbvision_device_data[ 64 ].audio_channels = 1;
usbvision_device_data[ 64 ].radio = 1;
usbvision_device_data[ 64 ].vbi = 1;
usbvision_device_data[ 64 ].tuner = 1;
usbvision_device_data[ 64 ].vin_reg1_override = 0;
usbvision_device_data[ 64 ].vin_reg2_override = 0;
usbvision_device_data[ 64 ].dvi_yuv_override = 0;
usbvision_device_data[ 64 ].vin_reg1 = 0;
usbvision_device_data[ 64 ].vin_reg2 = 0;
usbvision_device_data[ 64 ].dvi_yuv = 0;
usbvision_device_data[ 64 ].tuner_type = 17;
usbvision_device_data[ 64 ].x_offset = -1;
usbvision_device_data[ 64 ].y_offset = -1;
usbvision_device_data[ 65 ].video_norm = 45056;
usbvision_device_data[ 65 ].model_string = "Nogatech USB MicroCam NTSC (NV3000N)";
usbvision_device_data[ 65 ].interface = -1;
usbvision_device_data[ 65 ].codec = 3000;
usbvision_device_data[ 65 ].video_channels = 1;
usbvision_device_data[ 65 ].audio_channels = 0;
usbvision_device_data[ 65 ].radio = 0;
usbvision_device_data[ 65 ].vbi = 0;
usbvision_device_data[ 65 ].tuner = 0;
usbvision_device_data[ 65 ].vin_reg1_override = 0;
usbvision_device_data[ 65 ].vin_reg2_override = 0;
usbvision_device_data[ 65 ].dvi_yuv_override = 0;
usbvision_device_data[ 65 ].vin_reg1 = 0;
usbvision_device_data[ 65 ].vin_reg2 = 0;
usbvision_device_data[ 65 ].dvi_yuv = 0;
usbvision_device_data[ 65 ].tuner_type = 0;
usbvision_device_data[ 65 ].x_offset = 71;
usbvision_device_data[ 65 ].y_offset = 15;
usbvision_device_data[ 66 ].video_norm = 255;
usbvision_device_data[ 66 ].model_string = "Nogatech USB MicroCam PAL (NV3001P)";
usbvision_device_data[ 66 ].interface = -1;
usbvision_device_data[ 66 ].codec = 3000;
usbvision_device_data[ 66 ].video_channels = 1;
usbvision_device_data[ 66 ].audio_channels = 0;
usbvision_device_data[ 66 ].radio = 0;
usbvision_device_data[ 66 ].vbi = 0;
usbvision_device_data[ 66 ].tuner = 0;
usbvision_device_data[ 66 ].vin_reg1_override = 0;
usbvision_device_data[ 66 ].vin_reg2_override = 0;
usbvision_device_data[ 66 ].dvi_yuv_override = 0;
usbvision_device_data[ 66 ].vin_reg1 = 0;
usbvision_device_data[ 66 ].vin_reg2 = 0;
usbvision_device_data[ 66 ].dvi_yuv = 0;
usbvision_device_data[ 66 ].tuner_type = 0;
usbvision_device_data[ 66 ].x_offset = 71;
usbvision_device_data[ 66 ].y_offset = 18;
usbvision_device_data_size = 67;
usbvision_table[ 0 ].match_flags = 3;
usbvision_table[ 0 ].idVendor = 2671;
usbvision_table[ 0 ].idProduct = 1024;
usbvision_table[ 0 ].bcdDevice_lo = 0;
usbvision_table[ 0 ].bcdDevice_hi = 0;
usbvision_table[ 0 ].bDeviceClass = 0;
usbvision_table[ 0 ].bDeviceSubClass = 0;
usbvision_table[ 0 ].bDeviceProtocol = 0;
usbvision_table[ 0 ].bInterfaceClass = 0;
usbvision_table[ 0 ].bInterfaceSubClass = 0;
usbvision_table[ 0 ].bInterfaceProtocol = 0;
usbvision_table[ 0 ].bInterfaceNumber = 0;
usbvision_table[ 0 ].driver_info = 0;
usbvision_table[ 1 ].match_flags = 3;
usbvision_table[ 1 ].idVendor = 1293;
usbvision_table[ 1 ].idProduct = 262;
usbvision_table[ 1 ].bcdDevice_lo = 0;
usbvision_table[ 1 ].bcdDevice_hi = 0;
usbvision_table[ 1 ].bDeviceClass = 0;
usbvision_table[ 1 ].bDeviceSubClass = 0;
usbvision_table[ 1 ].bDeviceProtocol = 0;
usbvision_table[ 1 ].bInterfaceClass = 0;
usbvision_table[ 1 ].bInterfaceSubClass = 0;
usbvision_table[ 1 ].bInterfaceProtocol = 0;
usbvision_table[ 1 ].bInterfaceNumber = 0;
usbvision_table[ 1 ].driver_info = 1;
usbvision_table[ 2 ].match_flags = 3;
usbvision_table[ 2 ].idVendor = 1293;
usbvision_table[ 2 ].idProduct = 519;
usbvision_table[ 2 ].bcdDevice_lo = 0;
usbvision_table[ 2 ].bcdDevice_hi = 0;
usbvision_table[ 2 ].bDeviceClass = 0;
usbvision_table[ 2 ].bDeviceSubClass = 0;
usbvision_table[ 2 ].bDeviceProtocol = 0;
usbvision_table[ 2 ].bInterfaceClass = 0;
usbvision_table[ 2 ].bInterfaceSubClass = 0;
usbvision_table[ 2 ].bInterfaceProtocol = 0;
usbvision_table[ 2 ].bInterfaceNumber = 0;
usbvision_table[ 2 ].driver_info = 2;
usbvision_table[ 3 ].match_flags = 3;
usbvision_table[ 3 ].idVendor = 1293;
usbvision_table[ 3 ].idProduct = 520;
usbvision_table[ 3 ].bcdDevice_lo = 0;
usbvision_table[ 3 ].bcdDevice_hi = 0;
usbvision_table[ 3 ].bDeviceClass = 0;
usbvision_table[ 3 ].bDeviceSubClass = 0;
usbvision_table[ 3 ].bDeviceProtocol = 0;
usbvision_table[ 3 ].bInterfaceClass = 0;
usbvision_table[ 3 ].bInterfaceSubClass = 0;
usbvision_table[ 3 ].bInterfaceProtocol = 0;
usbvision_table[ 3 ].bInterfaceNumber = 0;
usbvision_table[ 3 ].driver_info = 3;
usbvision_table[ 4 ].match_flags = 3;
usbvision_table[ 4 ].idVendor = 1393;
usbvision_table[ 4 ].idProduct = 2;
usbvision_table[ 4 ].bcdDevice_lo = 0;
usbvision_table[ 4 ].bcdDevice_hi = 0;
usbvision_table[ 4 ].bDeviceClass = 0;
usbvision_table[ 4 ].bDeviceSubClass = 0;
usbvision_table[ 4 ].bDeviceProtocol = 0;
usbvision_table[ 4 ].bInterfaceClass = 0;
usbvision_table[ 4 ].bInterfaceSubClass = 0;
usbvision_table[ 4 ].bInterfaceProtocol = 0;
usbvision_table[ 4 ].bInterfaceNumber = 0;
usbvision_table[ 4 ].driver_info = 4;
usbvision_table[ 5 ].match_flags = 3;
usbvision_table[ 5 ].idVendor = 1395;
usbvision_table[ 5 ].idProduct = 3;
usbvision_table[ 5 ].bcdDevice_lo = 0;
usbvision_table[ 5 ].bcdDevice_hi = 0;
usbvision_table[ 5 ].bDeviceClass = 0;
usbvision_table[ 5 ].bDeviceSubClass = 0;
usbvision_table[ 5 ].bDeviceProtocol = 0;
usbvision_table[ 5 ].bInterfaceClass = 0;
usbvision_table[ 5 ].bInterfaceSubClass = 0;
usbvision_table[ 5 ].bInterfaceProtocol = 0;
usbvision_table[ 5 ].bInterfaceNumber = 0;
usbvision_table[ 5 ].driver_info = 5;
usbvision_table[ 6 ].match_flags = 3;
usbvision_table[ 6 ].idVendor = 1395;
usbvision_table[ 6 ].idProduct = 1024;
usbvision_table[ 6 ].bcdDevice_lo = 0;
usbvision_table[ 6 ].bcdDevice_hi = 0;
usbvision_table[ 6 ].bDeviceClass = 0;
usbvision_table[ 6 ].bDeviceSubClass = 0;
usbvision_table[ 6 ].bDeviceProtocol = 0;
usbvision_table[ 6 ].bInterfaceClass = 0;
usbvision_table[ 6 ].bInterfaceSubClass = 0;
usbvision_table[ 6 ].bInterfaceProtocol = 0;
usbvision_table[ 6 ].bInterfaceNumber = 0;
usbvision_table[ 6 ].driver_info = 6;
usbvision_table[ 7 ].match_flags = 3;
usbvision_table[ 7 ].idVendor = 1395;
usbvision_table[ 7 ].idProduct = 8192;
usbvision_table[ 7 ].bcdDevice_lo = 0;
usbvision_table[ 7 ].bcdDevice_hi = 0;
usbvision_table[ 7 ].bDeviceClass = 0;
usbvision_table[ 7 ].bDeviceSubClass = 0;
usbvision_table[ 7 ].bDeviceProtocol = 0;
usbvision_table[ 7 ].bInterfaceClass = 0;
usbvision_table[ 7 ].bInterfaceSubClass = 0;
usbvision_table[ 7 ].bInterfaceProtocol = 0;
usbvision_table[ 7 ].bInterfaceNumber = 0;
usbvision_table[ 7 ].driver_info = 7;
usbvision_table[ 8 ].match_flags = 3;
usbvision_table[ 8 ].idVendor = 1395;
usbvision_table[ 8 ].idProduct = 11520;
usbvision_table[ 8 ].bcdDevice_lo = 0;
usbvision_table[ 8 ].bcdDevice_hi = 0;
usbvision_table[ 8 ].bDeviceClass = 0;
usbvision_table[ 8 ].bDeviceSubClass = 0;
usbvision_table[ 8 ].bDeviceProtocol = 0;
usbvision_table[ 8 ].bInterfaceClass = 0;
usbvision_table[ 8 ].bInterfaceSubClass = 0;
usbvision_table[ 8 ].bInterfaceProtocol = 0;
usbvision_table[ 8 ].bInterfaceNumber = 0;
usbvision_table[ 8 ].driver_info = 8;
usbvision_table[ 9 ].match_flags = 3;
usbvision_table[ 9 ].idVendor = 1395;
usbvision_table[ 9 ].idProduct = 11521;
usbvision_table[ 9 ].bcdDevice_lo = 0;
usbvision_table[ 9 ].bcdDevice_hi = 0;
usbvision_table[ 9 ].bDeviceClass = 0;
usbvision_table[ 9 ].bDeviceSubClass = 0;
usbvision_table[ 9 ].bDeviceProtocol = 0;
usbvision_table[ 9 ].bInterfaceClass = 0;
usbvision_table[ 9 ].bInterfaceSubClass = 0;
usbvision_table[ 9 ].bInterfaceProtocol = 0;
usbvision_table[ 9 ].bInterfaceNumber = 0;
usbvision_table[ 9 ].driver_info = 9;
usbvision_table[ 10 ].match_flags = 3;
usbvision_table[ 10 ].idVendor = 1395;
usbvision_table[ 10 ].idProduct = 8449;
usbvision_table[ 10 ].bcdDevice_lo = 0;
usbvision_table[ 10 ].bcdDevice_hi = 0;
usbvision_table[ 10 ].bDeviceClass = 0;
usbvision_table[ 10 ].bDeviceSubClass = 0;
usbvision_table[ 10 ].bDeviceProtocol = 0;
usbvision_table[ 10 ].bInterfaceClass = 0;
usbvision_table[ 10 ].bInterfaceSubClass = 0;
usbvision_table[ 10 ].bInterfaceProtocol = 0;
usbvision_table[ 10 ].bInterfaceNumber = 0;
usbvision_table[ 10 ].driver_info = 10;
usbvision_table[ 11 ].match_flags = 3;
usbvision_table[ 11 ].idVendor = 1395;
usbvision_table[ 11 ].idProduct = 12288;
usbvision_table[ 11 ].bcdDevice_lo = 0;
usbvision_table[ 11 ].bcdDevice_hi = 0;
usbvision_table[ 11 ].bDeviceClass = 0;
usbvision_table[ 11 ].bDeviceSubClass = 0;
usbvision_table[ 11 ].bDeviceProtocol = 0;
usbvision_table[ 11 ].bInterfaceClass = 0;
usbvision_table[ 11 ].bInterfaceSubClass = 0;
usbvision_table[ 11 ].bInterfaceProtocol = 0;
usbvision_table[ 11 ].bInterfaceNumber = 0;
usbvision_table[ 11 ].driver_info = 65;
usbvision_table[ 12 ].match_flags = 3;
usbvision_table[ 12 ].idVendor = 1395;
usbvision_table[ 12 ].idProduct = 12289;
usbvision_table[ 12 ].bcdDevice_lo = 0;
usbvision_table[ 12 ].bcdDevice_hi = 0;
usbvision_table[ 12 ].bDeviceClass = 0;
usbvision_table[ 12 ].bDeviceSubClass = 0;
usbvision_table[ 12 ].bDeviceProtocol = 0;
usbvision_table[ 12 ].bInterfaceClass = 0;
usbvision_table[ 12 ].bInterfaceSubClass = 0;
usbvision_table[ 12 ].bInterfaceProtocol = 0;
usbvision_table[ 12 ].bInterfaceNumber = 0;
usbvision_table[ 12 ].driver_info = 66;
usbvision_table[ 13 ].match_flags = 3;
usbvision_table[ 13 ].idVendor = 1395;
usbvision_table[ 13 ].idProduct = 16640;
usbvision_table[ 13 ].bcdDevice_lo = 0;
usbvision_table[ 13 ].bcdDevice_hi = 0;
usbvision_table[ 13 ].bDeviceClass = 0;
usbvision_table[ 13 ].bDeviceSubClass = 0;
usbvision_table[ 13 ].bDeviceProtocol = 0;
usbvision_table[ 13 ].bInterfaceClass = 0;
usbvision_table[ 13 ].bInterfaceSubClass = 0;
usbvision_table[ 13 ].bInterfaceProtocol = 0;
usbvision_table[ 13 ].bInterfaceNumber = 0;
usbvision_table[ 13 ].driver_info = 11;
usbvision_table[ 14 ].match_flags = 3;
usbvision_table[ 14 ].idVendor = 1395;
usbvision_table[ 14 ].idProduct = 16656;
usbvision_table[ 14 ].bcdDevice_lo = 0;
usbvision_table[ 14 ].bcdDevice_hi = 0;
usbvision_table[ 14 ].bDeviceClass = 0;
usbvision_table[ 14 ].bDeviceSubClass = 0;
usbvision_table[ 14 ].bDeviceProtocol = 0;
usbvision_table[ 14 ].bInterfaceClass = 0;
usbvision_table[ 14 ].bInterfaceSubClass = 0;
usbvision_table[ 14 ].bInterfaceProtocol = 0;
usbvision_table[ 14 ].bInterfaceNumber = 0;
usbvision_table[ 14 ].driver_info = 12;
usbvision_table[ 15 ].match_flags = 3;
usbvision_table[ 15 ].idVendor = 1395;
usbvision_table[ 15 ].idProduct = 17488;
usbvision_table[ 15 ].bcdDevice_lo = 0;
usbvision_table[ 15 ].bcdDevice_hi = 0;
usbvision_table[ 15 ].bDeviceClass = 0;
usbvision_table[ 15 ].bDeviceSubClass = 0;
usbvision_table[ 15 ].bDeviceProtocol = 0;
usbvision_table[ 15 ].bInterfaceClass = 0;
usbvision_table[ 15 ].bInterfaceSubClass = 0;
usbvision_table[ 15 ].bInterfaceProtocol = 0;
usbvision_table[ 15 ].bInterfaceNumber = 0;
usbvision_table[ 15 ].driver_info = 13;
usbvision_table[ 16 ].match_flags = 3;
usbvision_table[ 16 ].idVendor = 1395;
usbvision_table[ 16 ].idProduct = 17744;
usbvision_table[ 16 ].bcdDevice_lo = 0;
usbvision_table[ 16 ].bcdDevice_hi = 0;
usbvision_table[ 16 ].bDeviceClass = 0;
usbvision_table[ 16 ].bDeviceSubClass = 0;
usbvision_table[ 16 ].bDeviceProtocol = 0;
usbvision_table[ 16 ].bInterfaceClass = 0;
usbvision_table[ 16 ].bInterfaceSubClass = 0;
usbvision_table[ 16 ].bInterfaceProtocol = 0;
usbvision_table[ 16 ].bInterfaceNumber = 0;
usbvision_table[ 16 ].driver_info = 14;
usbvision_table[ 17 ].match_flags = 3;
usbvision_table[ 17 ].idVendor = 1395;
usbvision_table[ 17 ].idProduct = 19712;
usbvision_table[ 17 ].bcdDevice_lo = 0;
usbvision_table[ 17 ].bcdDevice_hi = 0;
usbvision_table[ 17 ].bDeviceClass = 0;
usbvision_table[ 17 ].bDeviceSubClass = 0;
usbvision_table[ 17 ].bDeviceProtocol = 0;
usbvision_table[ 17 ].bInterfaceClass = 0;
usbvision_table[ 17 ].bInterfaceSubClass = 0;
usbvision_table[ 17 ].bInterfaceProtocol = 0;
usbvision_table[ 17 ].bInterfaceNumber = 0;
usbvision_table[ 17 ].driver_info = 15;
usbvision_table[ 18 ].match_flags = 3;
usbvision_table[ 18 ].idVendor = 1395;
usbvision_table[ 18 ].idProduct = 19713;
usbvision_table[ 18 ].bcdDevice_lo = 0;
usbvision_table[ 18 ].bcdDevice_hi = 0;
usbvision_table[ 18 ].bDeviceClass = 0;
usbvision_table[ 18 ].bDeviceSubClass = 0;
usbvision_table[ 18 ].bDeviceProtocol = 0;
usbvision_table[ 18 ].bInterfaceClass = 0;
usbvision_table[ 18 ].bInterfaceSubClass = 0;
usbvision_table[ 18 ].bInterfaceProtocol = 0;
usbvision_table[ 18 ].bInterfaceNumber = 0;
usbvision_table[ 18 ].driver_info = 16;
usbvision_table[ 19 ].match_flags = 3;
usbvision_table[ 19 ].idVendor = 1395;
usbvision_table[ 19 ].idProduct = 19714;
usbvision_table[ 19 ].bcdDevice_lo = 0;
usbvision_table[ 19 ].bcdDevice_hi = 0;
usbvision_table[ 19 ].bDeviceClass = 0;
usbvision_table[ 19 ].bDeviceSubClass = 0;
usbvision_table[ 19 ].bDeviceProtocol = 0;
usbvision_table[ 19 ].bInterfaceClass = 0;
usbvision_table[ 19 ].bInterfaceSubClass = 0;
usbvision_table[ 19 ].bInterfaceProtocol = 0;
usbvision_table[ 19 ].bInterfaceNumber = 0;
usbvision_table[ 19 ].driver_info = 17;
usbvision_table[ 20 ].match_flags = 3;
usbvision_table[ 20 ].idVendor = 1395;
usbvision_table[ 20 ].idProduct = 19715;
usbvision_table[ 20 ].bcdDevice_lo = 0;
usbvision_table[ 20 ].bcdDevice_hi = 0;
usbvision_table[ 20 ].bDeviceClass = 0;
usbvision_table[ 20 ].bDeviceSubClass = 0;
usbvision_table[ 20 ].bDeviceProtocol = 0;
usbvision_table[ 20 ].bInterfaceClass = 0;
usbvision_table[ 20 ].bInterfaceSubClass = 0;
usbvision_table[ 20 ].bInterfaceProtocol = 0;
usbvision_table[ 20 ].bInterfaceNumber = 0;
usbvision_table[ 20 ].driver_info = 18;
usbvision_table[ 21 ].match_flags = 3;
usbvision_table[ 21 ].idVendor = 1395;
usbvision_table[ 21 ].idProduct = 19716;
usbvision_table[ 21 ].bcdDevice_lo = 0;
usbvision_table[ 21 ].bcdDevice_hi = 0;
usbvision_table[ 21 ].bDeviceClass = 0;
usbvision_table[ 21 ].bDeviceSubClass = 0;
usbvision_table[ 21 ].bDeviceProtocol = 0;
usbvision_table[ 21 ].bInterfaceClass = 0;
usbvision_table[ 21 ].bInterfaceSubClass = 0;
usbvision_table[ 21 ].bInterfaceProtocol = 0;
usbvision_table[ 21 ].bInterfaceNumber = 0;
usbvision_table[ 21 ].driver_info = 19;
usbvision_table[ 22 ].match_flags = 3;
usbvision_table[ 22 ].idVendor = 1395;
usbvision_table[ 22 ].idProduct = 19728;
usbvision_table[ 22 ].bcdDevice_lo = 0;
usbvision_table[ 22 ].bcdDevice_hi = 0;
usbvision_table[ 22 ].bDeviceClass = 0;
usbvision_table[ 22 ].bDeviceSubClass = 0;
usbvision_table[ 22 ].bDeviceProtocol = 0;
usbvision_table[ 22 ].bInterfaceClass = 0;
usbvision_table[ 22 ].bInterfaceSubClass = 0;
usbvision_table[ 22 ].bInterfaceProtocol = 0;
usbvision_table[ 22 ].bInterfaceNumber = 0;
usbvision_table[ 22 ].driver_info = 20;
usbvision_table[ 23 ].match_flags = 3;
usbvision_table[ 23 ].idVendor = 1395;
usbvision_table[ 23 ].idProduct = 19729;
usbvision_table[ 23 ].bcdDevice_lo = 0;
usbvision_table[ 23 ].bcdDevice_hi = 0;
usbvision_table[ 23 ].bDeviceClass = 0;
usbvision_table[ 23 ].bDeviceSubClass = 0;
usbvision_table[ 23 ].bDeviceProtocol = 0;
usbvision_table[ 23 ].bInterfaceClass = 0;
usbvision_table[ 23 ].bInterfaceSubClass = 0;
usbvision_table[ 23 ].bInterfaceProtocol = 0;
usbvision_table[ 23 ].bInterfaceNumber = 0;
usbvision_table[ 23 ].driver_info = 21;
usbvision_table[ 24 ].match_flags = 3;
usbvision_table[ 24 ].idVendor = 1395;
usbvision_table[ 24 ].idProduct = 19730;
usbvision_table[ 24 ].bcdDevice_lo = 0;
usbvision_table[ 24 ].bcdDevice_hi = 0;
usbvision_table[ 24 ].bDeviceClass = 0;
usbvision_table[ 24 ].bDeviceSubClass = 0;
usbvision_table[ 24 ].bDeviceProtocol = 0;
usbvision_table[ 24 ].bInterfaceClass = 0;
usbvision_table[ 24 ].bInterfaceSubClass = 0;
usbvision_table[ 24 ].bInterfaceProtocol = 0;
usbvision_table[ 24 ].bInterfaceNumber = 0;
usbvision_table[ 24 ].driver_info = 22;
usbvision_table[ 25 ].match_flags = 3;
usbvision_table[ 25 ].idVendor = 1395;
usbvision_table[ 25 ].idProduct = 19732;
usbvision_table[ 25 ].bcdDevice_lo = 0;
usbvision_table[ 25 ].bcdDevice_hi = 0;
usbvision_table[ 25 ].bDeviceClass = 0;
usbvision_table[ 25 ].bDeviceSubClass = 0;
usbvision_table[ 25 ].bDeviceProtocol = 0;
usbvision_table[ 25 ].bInterfaceClass = 0;
usbvision_table[ 25 ].bInterfaceSubClass = 0;
usbvision_table[ 25 ].bInterfaceProtocol = 0;
usbvision_table[ 25 ].bInterfaceNumber = 0;
usbvision_table[ 25 ].driver_info = 23;
usbvision_table[ 26 ].match_flags = 3;
usbvision_table[ 26 ].idVendor = 1395;
usbvision_table[ 26 ].idProduct = 19754;
usbvision_table[ 26 ].bcdDevice_lo = 0;
usbvision_table[ 26 ].bcdDevice_hi = 0;
usbvision_table[ 26 ].bDeviceClass = 0;
usbvision_table[ 26 ].bDeviceSubClass = 0;
usbvision_table[ 26 ].bDeviceProtocol = 0;
usbvision_table[ 26 ].bInterfaceClass = 0;
usbvision_table[ 26 ].bInterfaceSubClass = 0;
usbvision_table[ 26 ].bInterfaceProtocol = 0;
usbvision_table[ 26 ].bInterfaceNumber = 0;
usbvision_table[ 26 ].driver_info = 24;
usbvision_table[ 27 ].match_flags = 3;
usbvision_table[ 27 ].idVendor = 1395;
usbvision_table[ 27 ].idProduct = 19755;
usbvision_table[ 27 ].bcdDevice_lo = 0;
usbvision_table[ 27 ].bcdDevice_hi = 0;
usbvision_table[ 27 ].bDeviceClass = 0;
usbvision_table[ 27 ].bDeviceSubClass = 0;
usbvision_table[ 27 ].bDeviceProtocol = 0;
usbvision_table[ 27 ].bInterfaceClass = 0;
usbvision_table[ 27 ].bInterfaceSubClass = 0;
usbvision_table[ 27 ].bInterfaceProtocol = 0;
usbvision_table[ 27 ].bInterfaceNumber = 0;
usbvision_table[ 27 ].driver_info = 25;
usbvision_table[ 28 ].match_flags = 3;
usbvision_table[ 28 ].idVendor = 1395;
usbvision_table[ 28 ].idProduct = 19756;
usbvision_table[ 28 ].bcdDevice_lo = 0;
usbvision_table[ 28 ].bcdDevice_hi = 0;
usbvision_table[ 28 ].bDeviceClass = 0;
usbvision_table[ 28 ].bDeviceSubClass = 0;
usbvision_table[ 28 ].bDeviceProtocol = 0;
usbvision_table[ 28 ].bInterfaceClass = 0;
usbvision_table[ 28 ].bInterfaceSubClass = 0;
usbvision_table[ 28 ].bInterfaceProtocol = 0;
usbvision_table[ 28 ].bInterfaceNumber = 0;
usbvision_table[ 28 ].driver_info = 26;
usbvision_table[ 29 ].match_flags = 3;
usbvision_table[ 29 ].idVendor = 1395;
usbvision_table[ 29 ].idProduct = 19744;
usbvision_table[ 29 ].bcdDevice_lo = 0;
usbvision_table[ 29 ].bcdDevice_hi = 0;
usbvision_table[ 29 ].bDeviceClass = 0;
usbvision_table[ 29 ].bDeviceSubClass = 0;
usbvision_table[ 29 ].bDeviceProtocol = 0;
usbvision_table[ 29 ].bInterfaceClass = 0;
usbvision_table[ 29 ].bInterfaceSubClass = 0;
usbvision_table[ 29 ].bInterfaceProtocol = 0;
usbvision_table[ 29 ].bInterfaceNumber = 0;
usbvision_table[ 29 ].driver_info = 27;
usbvision_table[ 30 ].match_flags = 3;
usbvision_table[ 30 ].idVendor = 1395;
usbvision_table[ 30 ].idProduct = 19745;
usbvision_table[ 30 ].bcdDevice_lo = 0;
usbvision_table[ 30 ].bcdDevice_hi = 0;
usbvision_table[ 30 ].bDeviceClass = 0;
usbvision_table[ 30 ].bDeviceSubClass = 0;
usbvision_table[ 30 ].bDeviceProtocol = 0;
usbvision_table[ 30 ].bInterfaceClass = 0;
usbvision_table[ 30 ].bInterfaceSubClass = 0;
usbvision_table[ 30 ].bInterfaceProtocol = 0;
usbvision_table[ 30 ].bInterfaceNumber = 0;
usbvision_table[ 30 ].driver_info = 28;
usbvision_table[ 31 ].match_flags = 3;
usbvision_table[ 31 ].idVendor = 1395;
usbvision_table[ 31 ].idProduct = 19746;
usbvision_table[ 31 ].bcdDevice_lo = 0;
usbvision_table[ 31 ].bcdDevice_hi = 0;
usbvision_table[ 31 ].bDeviceClass = 0;
usbvision_table[ 31 ].bDeviceSubClass = 0;
usbvision_table[ 31 ].bDeviceProtocol = 0;
usbvision_table[ 31 ].bInterfaceClass = 0;
usbvision_table[ 31 ].bInterfaceSubClass = 0;
usbvision_table[ 31 ].bInterfaceProtocol = 0;
usbvision_table[ 31 ].bInterfaceNumber = 0;
usbvision_table[ 31 ].driver_info = 29;
usbvision_table[ 32 ].match_flags = 3;
usbvision_table[ 32 ].idVendor = 1395;
usbvision_table[ 32 ].idProduct = 19747;
usbvision_table[ 32 ].bcdDevice_lo = 0;
usbvision_table[ 32 ].bcdDevice_hi = 0;
usbvision_table[ 32 ].bDeviceClass = 0;
usbvision_table[ 32 ].bDeviceSubClass = 0;
usbvision_table[ 32 ].bDeviceProtocol = 0;
usbvision_table[ 32 ].bInterfaceClass = 0;
usbvision_table[ 32 ].bInterfaceSubClass = 0;
usbvision_table[ 32 ].bInterfaceProtocol = 0;
usbvision_table[ 32 ].bInterfaceNumber = 0;
usbvision_table[ 32 ].driver_info = 30;
usbvision_table[ 33 ].match_flags = 3;
usbvision_table[ 33 ].idVendor = 1395;
usbvision_table[ 33 ].idProduct = 19748;
usbvision_table[ 33 ].bcdDevice_lo = 0;
usbvision_table[ 33 ].bcdDevice_hi = 0;
usbvision_table[ 33 ].bDeviceClass = 0;
usbvision_table[ 33 ].bDeviceSubClass = 0;
usbvision_table[ 33 ].bDeviceProtocol = 0;
usbvision_table[ 33 ].bInterfaceClass = 0;
usbvision_table[ 33 ].bInterfaceSubClass = 0;
usbvision_table[ 33 ].bInterfaceProtocol = 0;
usbvision_table[ 33 ].bInterfaceNumber = 0;
usbvision_table[ 33 ].driver_info = 31;
usbvision_table[ 34 ].match_flags = 3;
usbvision_table[ 34 ].idVendor = 1395;
usbvision_table[ 34 ].idProduct = 19749;
usbvision_table[ 34 ].bcdDevice_lo = 0;
usbvision_table[ 34 ].bcdDevice_hi = 0;
usbvision_table[ 34 ].bDeviceClass = 0;
usbvision_table[ 34 ].bDeviceSubClass = 0;
usbvision_table[ 34 ].bDeviceProtocol = 0;
usbvision_table[ 34 ].bInterfaceClass = 0;
usbvision_table[ 34 ].bInterfaceSubClass = 0;
usbvision_table[ 34 ].bInterfaceProtocol = 0;
usbvision_table[ 34 ].bInterfaceNumber = 0;
usbvision_table[ 34 ].driver_info = 32;
usbvision_table[ 35 ].match_flags = 3;
usbvision_table[ 35 ].idVendor = 1395;
usbvision_table[ 35 ].idProduct = 19750;
usbvision_table[ 35 ].bcdDevice_lo = 0;
usbvision_table[ 35 ].bcdDevice_hi = 0;
usbvision_table[ 35 ].bDeviceClass = 0;
usbvision_table[ 35 ].bDeviceSubClass = 0;
usbvision_table[ 35 ].bDeviceProtocol = 0;
usbvision_table[ 35 ].bInterfaceClass = 0;
usbvision_table[ 35 ].bInterfaceSubClass = 0;
usbvision_table[ 35 ].bInterfaceProtocol = 0;
usbvision_table[ 35 ].bInterfaceNumber = 0;
usbvision_table[ 35 ].driver_info = 33;
usbvision_table[ 36 ].match_flags = 3;
usbvision_table[ 36 ].idVendor = 1395;
usbvision_table[ 36 ].idProduct = 19751;
usbvision_table[ 36 ].bcdDevice_lo = 0;
usbvision_table[ 36 ].bcdDevice_hi = 0;
usbvision_table[ 36 ].bDeviceClass = 0;
usbvision_table[ 36 ].bDeviceSubClass = 0;
usbvision_table[ 36 ].bDeviceProtocol = 0;
usbvision_table[ 36 ].bInterfaceClass = 0;
usbvision_table[ 36 ].bInterfaceSubClass = 0;
usbvision_table[ 36 ].bInterfaceProtocol = 0;
usbvision_table[ 36 ].bInterfaceNumber = 0;
usbvision_table[ 36 ].driver_info = 34;
usbvision_table[ 37 ].match_flags = 3;
usbvision_table[ 37 ].idVendor = 1395;
usbvision_table[ 37 ].idProduct = 19752;
usbvision_table[ 37 ].bcdDevice_lo = 0;
usbvision_table[ 37 ].bcdDevice_hi = 0;
usbvision_table[ 37 ].bDeviceClass = 0;
usbvision_table[ 37 ].bDeviceSubClass = 0;
usbvision_table[ 37 ].bDeviceProtocol = 0;
usbvision_table[ 37 ].bInterfaceClass = 0;
usbvision_table[ 37 ].bInterfaceSubClass = 0;
usbvision_table[ 37 ].bInterfaceProtocol = 0;
usbvision_table[ 37 ].bInterfaceNumber = 0;
usbvision_table[ 37 ].driver_info = 35;
usbvision_table[ 38 ].match_flags = 3;
usbvision_table[ 38 ].idVendor = 1395;
usbvision_table[ 38 ].idProduct = 19753;
usbvision_table[ 38 ].bcdDevice_lo = 0;
usbvision_table[ 38 ].bcdDevice_hi = 0;
usbvision_table[ 38 ].bDeviceClass = 0;
usbvision_table[ 38 ].bDeviceSubClass = 0;
usbvision_table[ 38 ].bDeviceProtocol = 0;
usbvision_table[ 38 ].bInterfaceClass = 0;
usbvision_table[ 38 ].bInterfaceSubClass = 0;
usbvision_table[ 38 ].bInterfaceProtocol = 0;
usbvision_table[ 38 ].bInterfaceNumber = 0;
usbvision_table[ 38 ].driver_info = 36;
usbvision_table[ 39 ].match_flags = 3;
usbvision_table[ 39 ].idVendor = 1395;
usbvision_table[ 39 ].idProduct = 19760;
usbvision_table[ 39 ].bcdDevice_lo = 0;
usbvision_table[ 39 ].bcdDevice_hi = 0;
usbvision_table[ 39 ].bDeviceClass = 0;
usbvision_table[ 39 ].bDeviceSubClass = 0;
usbvision_table[ 39 ].bDeviceProtocol = 0;
usbvision_table[ 39 ].bInterfaceClass = 0;
usbvision_table[ 39 ].bInterfaceSubClass = 0;
usbvision_table[ 39 ].bInterfaceProtocol = 0;
usbvision_table[ 39 ].bInterfaceNumber = 0;
usbvision_table[ 39 ].driver_info = 37;
usbvision_table[ 40 ].match_flags = 3;
usbvision_table[ 40 ].idVendor = 1395;
usbvision_table[ 40 ].idProduct = 19761;
usbvision_table[ 40 ].bcdDevice_lo = 0;
usbvision_table[ 40 ].bcdDevice_hi = 0;
usbvision_table[ 40 ].bDeviceClass = 0;
usbvision_table[ 40 ].bDeviceSubClass = 0;
usbvision_table[ 40 ].bDeviceProtocol = 0;
usbvision_table[ 40 ].bInterfaceClass = 0;
usbvision_table[ 40 ].bInterfaceSubClass = 0;
usbvision_table[ 40 ].bInterfaceProtocol = 0;
usbvision_table[ 40 ].bInterfaceNumber = 0;
usbvision_table[ 40 ].driver_info = 38;
usbvision_table[ 41 ].match_flags = 3;
usbvision_table[ 41 ].idVendor = 1395;
usbvision_table[ 41 ].idProduct = 19762;
usbvision_table[ 41 ].bcdDevice_lo = 0;
usbvision_table[ 41 ].bcdDevice_hi = 0;
usbvision_table[ 41 ].bDeviceClass = 0;
usbvision_table[ 41 ].bDeviceSubClass = 0;
usbvision_table[ 41 ].bDeviceProtocol = 0;
usbvision_table[ 41 ].bInterfaceClass = 0;
usbvision_table[ 41 ].bInterfaceSubClass = 0;
usbvision_table[ 41 ].bInterfaceProtocol = 0;
usbvision_table[ 41 ].bInterfaceNumber = 0;
usbvision_table[ 41 ].driver_info = 39;
usbvision_table[ 42 ].match_flags = 3;
usbvision_table[ 42 ].idVendor = 1395;
usbvision_table[ 42 ].idProduct = 19764;
usbvision_table[ 42 ].bcdDevice_lo = 0;
usbvision_table[ 42 ].bcdDevice_hi = 0;
usbvision_table[ 42 ].bDeviceClass = 0;
usbvision_table[ 42 ].bDeviceSubClass = 0;
usbvision_table[ 42 ].bDeviceProtocol = 0;
usbvision_table[ 42 ].bInterfaceClass = 0;
usbvision_table[ 42 ].bInterfaceSubClass = 0;
usbvision_table[ 42 ].bInterfaceProtocol = 0;
usbvision_table[ 42 ].bInterfaceNumber = 0;
usbvision_table[ 42 ].driver_info = 40;
usbvision_table[ 43 ].match_flags = 3;
usbvision_table[ 43 ].idVendor = 1395;
usbvision_table[ 43 ].idProduct = 19765;
usbvision_table[ 43 ].bcdDevice_lo = 0;
usbvision_table[ 43 ].bcdDevice_hi = 0;
usbvision_table[ 43 ].bDeviceClass = 0;
usbvision_table[ 43 ].bDeviceSubClass = 0;
usbvision_table[ 43 ].bDeviceProtocol = 0;
usbvision_table[ 43 ].bInterfaceClass = 0;
usbvision_table[ 43 ].bInterfaceSubClass = 0;
usbvision_table[ 43 ].bInterfaceProtocol = 0;
usbvision_table[ 43 ].bInterfaceNumber = 0;
usbvision_table[ 43 ].driver_info = 41;
usbvision_table[ 44 ].match_flags = 3;
usbvision_table[ 44 ].idVendor = 1395;
usbvision_table[ 44 ].idProduct = 19766;
usbvision_table[ 44 ].bcdDevice_lo = 0;
usbvision_table[ 44 ].bcdDevice_hi = 0;
usbvision_table[ 44 ].bDeviceClass = 0;
usbvision_table[ 44 ].bDeviceSubClass = 0;
usbvision_table[ 44 ].bDeviceProtocol = 0;
usbvision_table[ 44 ].bInterfaceClass = 0;
usbvision_table[ 44 ].bInterfaceSubClass = 0;
usbvision_table[ 44 ].bInterfaceProtocol = 0;
usbvision_table[ 44 ].bInterfaceNumber = 0;
usbvision_table[ 44 ].driver_info = 42;
usbvision_table[ 45 ].match_flags = 3;
usbvision_table[ 45 ].idVendor = 1395;
usbvision_table[ 45 ].idProduct = 19767;
usbvision_table[ 45 ].bcdDevice_lo = 0;
usbvision_table[ 45 ].bcdDevice_hi = 0;
usbvision_table[ 45 ].bDeviceClass = 0;
usbvision_table[ 45 ].bDeviceSubClass = 0;
usbvision_table[ 45 ].bDeviceProtocol = 0;
usbvision_table[ 45 ].bInterfaceClass = 0;
usbvision_table[ 45 ].bInterfaceSubClass = 0;
usbvision_table[ 45 ].bInterfaceProtocol = 0;
usbvision_table[ 45 ].bInterfaceNumber = 0;
usbvision_table[ 45 ].driver_info = 43;
usbvision_table[ 46 ].match_flags = 3;
usbvision_table[ 46 ].idVendor = 1395;
usbvision_table[ 46 ].idProduct = 19768;
usbvision_table[ 46 ].bcdDevice_lo = 0;
usbvision_table[ 46 ].bcdDevice_hi = 0;
usbvision_table[ 46 ].bDeviceClass = 0;
usbvision_table[ 46 ].bDeviceSubClass = 0;
usbvision_table[ 46 ].bDeviceProtocol = 0;
usbvision_table[ 46 ].bInterfaceClass = 0;
usbvision_table[ 46 ].bInterfaceSubClass = 0;
usbvision_table[ 46 ].bInterfaceProtocol = 0;
usbvision_table[ 46 ].bInterfaceNumber = 0;
usbvision_table[ 46 ].driver_info = 44;
usbvision_table[ 47 ].match_flags = 3;
usbvision_table[ 47 ].idVendor = 1896;
usbvision_table[ 47 ].idProduct = 6;
usbvision_table[ 47 ].bcdDevice_lo = 0;
usbvision_table[ 47 ].bcdDevice_hi = 0;
usbvision_table[ 47 ].bDeviceClass = 0;
usbvision_table[ 47 ].bDeviceSubClass = 0;
usbvision_table[ 47 ].bDeviceProtocol = 0;
usbvision_table[ 47 ].bInterfaceClass = 0;
usbvision_table[ 47 ].bInterfaceSubClass = 0;
usbvision_table[ 47 ].bInterfaceProtocol = 0;
usbvision_table[ 47 ].bInterfaceNumber = 0;
usbvision_table[ 47 ].driver_info = 45;
usbvision_table[ 48 ].match_flags = 3;
usbvision_table[ 48 ].idVendor = 2000;
usbvision_table[ 48 ].idProduct = 1;
usbvision_table[ 48 ].bcdDevice_lo = 0;
usbvision_table[ 48 ].bcdDevice_hi = 0;
usbvision_table[ 48 ].bDeviceClass = 0;
usbvision_table[ 48 ].bDeviceSubClass = 0;
usbvision_table[ 48 ].bDeviceProtocol = 0;
usbvision_table[ 48 ].bInterfaceClass = 0;
usbvision_table[ 48 ].bInterfaceSubClass = 0;
usbvision_table[ 48 ].bInterfaceProtocol = 0;
usbvision_table[ 48 ].bInterfaceNumber = 0;
usbvision_table[ 48 ].driver_info = 46;
usbvision_table[ 49 ].match_flags = 3;
usbvision_table[ 49 ].idVendor = 2000;
usbvision_table[ 49 ].idProduct = 2;
usbvision_table[ 49 ].bcdDevice_lo = 0;
usbvision_table[ 49 ].bcdDevice_hi = 0;
usbvision_table[ 49 ].bDeviceClass = 0;
usbvision_table[ 49 ].bDeviceSubClass = 0;
usbvision_table[ 49 ].bDeviceProtocol = 0;
usbvision_table[ 49 ].bInterfaceClass = 0;
usbvision_table[ 49 ].bInterfaceSubClass = 0;
usbvision_table[ 49 ].bInterfaceProtocol = 0;
usbvision_table[ 49 ].bInterfaceNumber = 0;
usbvision_table[ 49 ].driver_info = 47;
usbvision_table[ 50 ].match_flags = 3;
usbvision_table[ 50 ].idVendor = 2000;
usbvision_table[ 50 ].idProduct = 3;
usbvision_table[ 50 ].bcdDevice_lo = 0;
usbvision_table[ 50 ].bcdDevice_hi = 0;
usbvision_table[ 50 ].bDeviceClass = 0;
usbvision_table[ 50 ].bDeviceSubClass = 0;
usbvision_table[ 50 ].bDeviceProtocol = 0;
usbvision_table[ 50 ].bInterfaceClass = 0;
usbvision_table[ 50 ].bInterfaceSubClass = 0;
usbvision_table[ 50 ].bInterfaceProtocol = 0;
usbvision_table[ 50 ].bInterfaceNumber = 0;
usbvision_table[ 50 ].driver_info = 48;
usbvision_table[ 51 ].match_flags = 3;
usbvision_table[ 51 ].idVendor = 2000;
usbvision_table[ 51 ].idProduct = 4;
usbvision_table[ 51 ].bcdDevice_lo = 0;
usbvision_table[ 51 ].bcdDevice_hi = 0;
usbvision_table[ 51 ].bDeviceClass = 0;
usbvision_table[ 51 ].bDeviceSubClass = 0;
usbvision_table[ 51 ].bDeviceProtocol = 0;
usbvision_table[ 51 ].bInterfaceClass = 0;
usbvision_table[ 51 ].bInterfaceSubClass = 0;
usbvision_table[ 51 ].bInterfaceProtocol = 0;
usbvision_table[ 51 ].bInterfaceNumber = 0;
usbvision_table[ 51 ].driver_info = 49;
usbvision_table[ 52 ].match_flags = 3;
usbvision_table[ 52 ].idVendor = 2000;
usbvision_table[ 52 ].idProduct = 5;
usbvision_table[ 52 ].bcdDevice_lo = 0;
usbvision_table[ 52 ].bcdDevice_hi = 0;
usbvision_table[ 52 ].bDeviceClass = 0;
usbvision_table[ 52 ].bDeviceSubClass = 0;
usbvision_table[ 52 ].bDeviceProtocol = 0;
usbvision_table[ 52 ].bInterfaceClass = 0;
usbvision_table[ 52 ].bInterfaceSubClass = 0;
usbvision_table[ 52 ].bInterfaceProtocol = 0;
usbvision_table[ 52 ].bInterfaceNumber = 0;
usbvision_table[ 52 ].driver_info = 50;
usbvision_table[ 53 ].match_flags = 3;
usbvision_table[ 53 ].idVendor = 2040;
usbvision_table[ 53 ].idProduct = 37124;
usbvision_table[ 53 ].bcdDevice_lo = 0;
usbvision_table[ 53 ].bcdDevice_hi = 0;
usbvision_table[ 53 ].bDeviceClass = 0;
usbvision_table[ 53 ].bDeviceSubClass = 0;
usbvision_table[ 53 ].bDeviceProtocol = 0;
usbvision_table[ 53 ].bInterfaceClass = 0;
usbvision_table[ 53 ].bInterfaceSubClass = 0;
usbvision_table[ 53 ].bInterfaceProtocol = 0;
usbvision_table[ 53 ].bInterfaceNumber = 0;
usbvision_table[ 53 ].driver_info = 51;
usbvision_table[ 54 ].match_flags = 3;
usbvision_table[ 54 ].idVendor = 8964;
usbvision_table[ 54 ].idProduct = 269;
usbvision_table[ 54 ].bcdDevice_lo = 0;
usbvision_table[ 54 ].bcdDevice_hi = 0;
usbvision_table[ 54 ].bDeviceClass = 0;
usbvision_table[ 54 ].bDeviceSubClass = 0;
usbvision_table[ 54 ].bDeviceProtocol = 0;
usbvision_table[ 54 ].bInterfaceClass = 0;
usbvision_table[ 54 ].bInterfaceSubClass = 0;
usbvision_table[ 54 ].bInterfaceProtocol = 0;
usbvision_table[ 54 ].bInterfaceNumber = 0;
usbvision_table[ 54 ].driver_info = 52;
usbvision_table[ 55 ].match_flags = 3;
usbvision_table[ 55 ].idVendor = 8964;
usbvision_table[ 55 ].idProduct = 265;
usbvision_table[ 55 ].bcdDevice_lo = 0;
usbvision_table[ 55 ].bcdDevice_hi = 0;
usbvision_table[ 55 ].bDeviceClass = 0;
usbvision_table[ 55 ].bDeviceSubClass = 0;
usbvision_table[ 55 ].bDeviceProtocol = 0;
usbvision_table[ 55 ].bInterfaceClass = 0;
usbvision_table[ 55 ].bInterfaceSubClass = 0;
usbvision_table[ 55 ].bInterfaceProtocol = 0;
usbvision_table[ 55 ].bInterfaceNumber = 0;
usbvision_table[ 55 ].driver_info = 53;
usbvision_table[ 56 ].match_flags = 3;
usbvision_table[ 56 ].idVendor = 8964;
usbvision_table[ 56 ].idProduct = 272;
usbvision_table[ 56 ].bcdDevice_lo = 0;
usbvision_table[ 56 ].bcdDevice_hi = 0;
usbvision_table[ 56 ].bDeviceClass = 0;
usbvision_table[ 56 ].bDeviceSubClass = 0;
usbvision_table[ 56 ].bDeviceProtocol = 0;
usbvision_table[ 56 ].bInterfaceClass = 0;
usbvision_table[ 56 ].bInterfaceSubClass = 0;
usbvision_table[ 56 ].bInterfaceProtocol = 0;
usbvision_table[ 56 ].bInterfaceNumber = 0;
usbvision_table[ 56 ].driver_info = 54;
usbvision_table[ 57 ].match_flags = 3;
usbvision_table[ 57 ].idVendor = 8964;
usbvision_table[ 57 ].idProduct = 273;
usbvision_table[ 57 ].bcdDevice_lo = 0;
usbvision_table[ 57 ].bcdDevice_hi = 0;
usbvision_table[ 57 ].bDeviceClass = 0;
usbvision_table[ 57 ].bDeviceSubClass = 0;
usbvision_table[ 57 ].bDeviceProtocol = 0;
usbvision_table[ 57 ].bInterfaceClass = 0;
usbvision_table[ 57 ].bInterfaceSubClass = 0;
usbvision_table[ 57 ].bInterfaceProtocol = 0;
usbvision_table[ 57 ].bInterfaceNumber = 0;
usbvision_table[ 57 ].driver_info = 55;
usbvision_table[ 58 ].match_flags = 3;
usbvision_table[ 58 ].idVendor = 8964;
usbvision_table[ 58 ].idProduct = 274;
usbvision_table[ 58 ].bcdDevice_lo = 0;
usbvision_table[ 58 ].bcdDevice_hi = 0;
usbvision_table[ 58 ].bDeviceClass = 0;
usbvision_table[ 58 ].bDeviceSubClass = 0;
usbvision_table[ 58 ].bDeviceProtocol = 0;
usbvision_table[ 58 ].bInterfaceClass = 0;
usbvision_table[ 58 ].bInterfaceSubClass = 0;
usbvision_table[ 58 ].bInterfaceProtocol = 0;
usbvision_table[ 58 ].bInterfaceNumber = 0;
usbvision_table[ 58 ].driver_info = 56;
usbvision_table[ 59 ].match_flags = 3;
usbvision_table[ 59 ].idVendor = 8964;
usbvision_table[ 59 ].idProduct = 275;
usbvision_table[ 59 ].bcdDevice_lo = 0;
usbvision_table[ 59 ].bcdDevice_hi = 0;
usbvision_table[ 59 ].bDeviceClass = 0;
usbvision_table[ 59 ].bDeviceSubClass = 0;
usbvision_table[ 59 ].bDeviceProtocol = 0;
usbvision_table[ 59 ].bInterfaceClass = 0;
usbvision_table[ 59 ].bInterfaceSubClass = 0;
usbvision_table[ 59 ].bInterfaceProtocol = 0;
usbvision_table[ 59 ].bInterfaceNumber = 0;
usbvision_table[ 59 ].driver_info = 64;
usbvision_table[ 60 ].match_flags = 3;
usbvision_table[ 60 ].idVendor = 8964;
usbvision_table[ 60 ].idProduct = 528;
usbvision_table[ 60 ].bcdDevice_lo = 0;
usbvision_table[ 60 ].bcdDevice_hi = 0;
usbvision_table[ 60 ].bDeviceClass = 0;
usbvision_table[ 60 ].bDeviceSubClass = 0;
usbvision_table[ 60 ].bDeviceProtocol = 0;
usbvision_table[ 60 ].bInterfaceClass = 0;
usbvision_table[ 60 ].bInterfaceSubClass = 0;
usbvision_table[ 60 ].bInterfaceProtocol = 0;
usbvision_table[ 60 ].bInterfaceNumber = 0;
usbvision_table[ 60 ].driver_info = 57;
usbvision_table[ 61 ].match_flags = 3;
usbvision_table[ 61 ].idVendor = 8964;
usbvision_table[ 61 ].idProduct = 530;
usbvision_table[ 61 ].bcdDevice_lo = 0;
usbvision_table[ 61 ].bcdDevice_hi = 0;
usbvision_table[ 61 ].bDeviceClass = 0;
usbvision_table[ 61 ].bDeviceSubClass = 0;
usbvision_table[ 61 ].bDeviceProtocol = 0;
usbvision_table[ 61 ].bInterfaceClass = 0;
usbvision_table[ 61 ].bInterfaceSubClass = 0;
usbvision_table[ 61 ].bInterfaceProtocol = 0;
usbvision_table[ 61 ].bInterfaceNumber = 0;
usbvision_table[ 61 ].driver_info = 58;
usbvision_table[ 62 ].match_flags = 3;
usbvision_table[ 62 ].idVendor = 8964;
usbvision_table[ 62 ].idProduct = 532;
usbvision_table[ 62 ].bcdDevice_lo = 0;
usbvision_table[ 62 ].bcdDevice_hi = 0;
usbvision_table[ 62 ].bDeviceClass = 0;
usbvision_table[ 62 ].bDeviceSubClass = 0;
usbvision_table[ 62 ].bDeviceProtocol = 0;
usbvision_table[ 62 ].bInterfaceClass = 0;
usbvision_table[ 62 ].bInterfaceSubClass = 0;
usbvision_table[ 62 ].bInterfaceProtocol = 0;
usbvision_table[ 62 ].bInterfaceNumber = 0;
usbvision_table[ 62 ].driver_info = 59;
usbvision_table[ 63 ].match_flags = 3;
usbvision_table[ 63 ].idVendor = 8964;
usbvision_table[ 63 ].idProduct = 768;
usbvision_table[ 63 ].bcdDevice_lo = 0;
usbvision_table[ 63 ].bcdDevice_hi = 0;
usbvision_table[ 63 ].bDeviceClass = 0;
usbvision_table[ 63 ].bDeviceSubClass = 0;
usbvision_table[ 63 ].bDeviceProtocol = 0;
usbvision_table[ 63 ].bInterfaceClass = 0;
usbvision_table[ 63 ].bInterfaceSubClass = 0;
usbvision_table[ 63 ].bInterfaceProtocol = 0;
usbvision_table[ 63 ].bInterfaceNumber = 0;
usbvision_table[ 63 ].driver_info = 60;
usbvision_table[ 64 ].match_flags = 3;
usbvision_table[ 64 ].idVendor = 8964;
usbvision_table[ 64 ].idProduct = 769;
usbvision_table[ 64 ].bcdDevice_lo = 0;
usbvision_table[ 64 ].bcdDevice_hi = 0;
usbvision_table[ 64 ].bDeviceClass = 0;
usbvision_table[ 64 ].bDeviceSubClass = 0;
usbvision_table[ 64 ].bDeviceProtocol = 0;
usbvision_table[ 64 ].bInterfaceClass = 0;
usbvision_table[ 64 ].bInterfaceSubClass = 0;
usbvision_table[ 64 ].bInterfaceProtocol = 0;
usbvision_table[ 64 ].bInterfaceNumber = 0;
usbvision_table[ 64 ].driver_info = 61;
usbvision_table[ 65 ].match_flags = 3;
usbvision_table[ 65 ].idVendor = 8964;
usbvision_table[ 65 ].idProduct = 1049;
usbvision_table[ 65 ].bcdDevice_lo = 0;
usbvision_table[ 65 ].bcdDevice_hi = 0;
usbvision_table[ 65 ].bDeviceClass = 0;
usbvision_table[ 65 ].bDeviceSubClass = 0;
usbvision_table[ 65 ].bDeviceProtocol = 0;
usbvision_table[ 65 ].bInterfaceClass = 0;
usbvision_table[ 65 ].bInterfaceSubClass = 0;
usbvision_table[ 65 ].bInterfaceProtocol = 0;
usbvision_table[ 65 ].bInterfaceNumber = 0;
usbvision_table[ 65 ].driver_info = 62;
usbvision_table[ 66 ].match_flags = 3;
usbvision_table[ 66 ].idVendor = 9216;
usbvision_table[ 66 ].idProduct = 16896;
usbvision_table[ 66 ].bcdDevice_lo = 0;
usbvision_table[ 66 ].bcdDevice_hi = 0;
usbvision_table[ 66 ].bDeviceClass = 0;
usbvision_table[ 66 ].bDeviceSubClass = 0;
usbvision_table[ 66 ].bDeviceProtocol = 0;
usbvision_table[ 66 ].bInterfaceClass = 0;
usbvision_table[ 66 ].bInterfaceSubClass = 0;
usbvision_table[ 66 ].bInterfaceProtocol = 0;
usbvision_table[ 66 ].bInterfaceNumber = 0;
usbvision_table[ 66 ].driver_info = 63;
usbvision_table[ 67 ].match_flags = 0;
usbvision_table[ 67 ].idVendor = 0;
usbvision_table[ 67 ].idProduct = 0;
usbvision_table[ 67 ].bcdDevice_lo = 0;
usbvision_table[ 67 ].bcdDevice_hi = 0;
usbvision_table[ 67 ].bDeviceClass = 0;
usbvision_table[ 67 ].bDeviceSubClass = 0;
usbvision_table[ 67 ].bDeviceProtocol = 0;
usbvision_table[ 67 ].bInterfaceClass = 0;
usbvision_table[ 67 ].bInterfaceSubClass = 0;
usbvision_table[ 67 ].bInterfaceProtocol = 0;
usbvision_table[ 67 ].bInterfaceNumber = 0;
usbvision_table[ 67 ].driver_info = 0;
return ;
}
-__BLAST_initialize_/work/ldvuser/ref_launch/work/current--X--drivers--X--defaultlinux-4.0-rc1.tar.xz--X--132_1a/linux-4.0-rc1.tar.xz/csd_deg_dscv/8231/dscv_tempdir/dscv/rcv/132_1a/main-ldv_main1_sequence_infinite_withcheck_stateful/preprocess/1-cpp//work/ldvuser/ref_launch/work/current--X--drivers--X--defaultlinux-4.0-rc1.tar.xz--X--132_1a/linux-4.0-rc1.tar.xz/csd_deg_dscv/8231/dscv_tempdir/rule-instrumentor/132_1a/common-model/ldv_common_model.o.i()
{
13 ldv_usb_dev_state = 0;
return ;
}
-entry_point
{
3535 -ldv_s_usbvision_fops_v4l2_file_operations = 0;
ldv_s_usbvision_radio_fops_v4l2_file_operations = 0;
ldv_s_usbvision_driver_usb_driver = 0;
LDV_IN_INTERRUPT = 1;
3497 ldv_initialize() { /* Function call is skipped due to function is undefined */}
3532 ldv_handler_precall() { /* Function call is skipped due to function is undefined */}
3533 -tmp = usbvision_init()
{
1688 assume(video_debug & 4 == 0);
1690 assume(video_debug & 2 == 0);
1691 assume(video_debug & 4 == 0);
1692 assume(video_debug & 8 == 0);
1695 assume(isoc_mode == 96);
1701 err_code = usb_register_driver(&(usbvision_driver), &(__this_module), "usbvision") { /* Function call is skipped due to function is undefined */}
1703 assume(err_code == 0);
1704 printk("\014USBVision USB Video Device Driver for Linux : 0.9.11\n") { /* Function call is skipped due to function is undefined */}
1705 assume(video_debug & 4 == 0);
1707 return err_code;
}
3533 assume(tmp == 0);
3547 tmp___1 = nondet_int() { /* Function call is skipped due to function is undefined */}
3547 assume(tmp___1 != 0);
3553 tmp___0 = nondet_int() { /* Function call is skipped due to function is undefined */}
3555 assume(tmp___0 != 0);
3606 assume(tmp___0 != 1);
3654 assume(tmp___0 != 2);
3702 assume(tmp___0 != 3);
3750 assume(tmp___0 != 4);
3798 assume(tmp___0 != 5);
3846 assume(tmp___0 != 6);
3894 assume(tmp___0 != 7);
3942 assume(tmp___0 != 8);
3990 assume(tmp___0 != 9);
4038 assume(tmp___0 != 10);
4086 assume(tmp___0 != 11);
4134 assume(tmp___0 != 12);
4182 assume(tmp___0 != 13);
4230 assume(tmp___0 != 14);
4278 assume(tmp___0 != 15);
4326 assume(tmp___0 != 16);
4374 assume(tmp___0 != 17);
4422 assume(tmp___0 != 18);
4470 assume(tmp___0 != 19);
4518 assume(tmp___0 != 20);
4566 assume(tmp___0 != 21);
4614 assume(tmp___0 != 22);
4662 assume(tmp___0 != 23);
4710 assume(tmp___0 != 24);
4758 assume(tmp___0 != 25);
4806 assume(tmp___0 != 26);
4854 assume(tmp___0 != 27);
4902 assume(tmp___0 != 28);
4950 assume(tmp___0 != 29);
4998 assume(tmp___0 != 30);
5046 assume(tmp___0 != 31);
5097 assume(tmp___0 != 32);
5145 assume(tmp___0 != 33);
5193 assume(tmp___0 != 34);
5241 assume(tmp___0 != 35);
5289 assume(tmp___0 != 36);
5337 assume(tmp___0 != 37);
5385 assume(tmp___0 != 38);
5433 assume(tmp___0 != 39);
5481 assume(tmp___0 != 40);
5529 assume(tmp___0 != 41);
5577 assume(tmp___0 != 42);
5625 assume(tmp___0 != 43);
5673 assume(tmp___0 != 44);
5721 assume(tmp___0 != 45);
5769 assume(tmp___0 == 46);
5772 assume(ldv_s_usbvision_driver_usb_driver == 0);
5806 -res_usbvision_probe_53 = usbvision_probe(var_group3 /* intf */, var_usbvision_probe_53_p1 /* devid */)
{
1523 -tmp = interface_to_usbdev(intf /* intf */)
{
592 __mptr = *(intf).dev.parent;
592 __retres3 = __mptr + -144;
590 return __retres3;
}
1523 -tmp___0 = ldv_usb_get_dev_9(tmp /* ldv_func_arg1 */)
{
43 tmp = usb_get_dev(ldv_func_arg1) { /* Function call is skipped due to function is undefined */}
43 ldv_func_res = tmp;
45 -ldv_usb_get_dev()
{
19 ldv_usb_dev_state = ldv_usb_dev_state + 1;
16 return ;
}
47 return ldv_func_res;
}
1523 -dev = tmp___0;
ifnum = *(*(intf).altsetting).desc.bInterfaceNumber;
usbvision = 0;
1531 assume(video_debug & 4 == 0);
1535 model = *(devid).driver_info;
1536 assume(model < 0);
1537 assume(video_debug & 4 == 0);
1538 __retres29 = -19;
1520 return __retres29;
}
5807 ldv_check_return_value(res_usbvision_probe_53) { /* Function call is skipped due to function is undefined */}
5808 -ldv_check_return_value_probe(res_usbvision_probe_53 /* retval */)
{
35 assume(retval != 0);
37 assume(ldv_usb_dev_state > 0);
37 -ldv_error()
{
}
}
}
Source code
1 2 /* 3 * USB USBVISION Video device driver 0.9.10 4 * 5 * 6 * 7 * Copyright (c) 1999-2005 Joerg Heckenbach <joerg@heckenbach-aw.de> 8 * 9 * This module is part of usbvision driver project. 10 * 11 * This program is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License as published by 13 * the Free Software Foundation; either version 2 of the License, or 14 * (at your option) any later version. 15 * 16 * This program is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * You should have received a copy of the GNU General Public License 22 * along with this program; if not, write to the Free Software 23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24 * 25 * Let's call the version 0.... until compression decoding is completely 26 * implemented. 27 * 28 * This driver is written by Jose Ignacio Gijon and Joerg Heckenbach. 29 * It was based on USB CPiA driver written by Peter Pregler, 30 * Scott J. Bertin and Johannes Erdfelt 31 * Ideas are taken from bttv driver by Ralph Metzler, Marcus Metzler & 32 * Gerd Knorr and zoran 36120/36125 driver by Pauline Middelink 33 * Updates to driver completed by Dwaine P. Garden 34 * 35 * 36 * TODO: 37 * - use submit_urb for all setup packets 38 * - Fix memory settings for nt1004. It is 4 times as big as the 39 * nt1003 memory. 40 * - Add audio on endpoint 3 for nt1004 chip. 41 * Seems impossible, needs a codec interface. Which one? 42 * - Clean up the driver. 43 * - optimization for performance. 44 * - Add Videotext capability (VBI). Working on it..... 45 * - Check audio for other devices 46 * 47 */ 48 49 #include <linux/kernel.h> 50 #include <linux/list.h> 51 #include <linux/timer.h> 52 #include <linux/slab.h> 53 #include <linux/mm.h> 54 #include <linux/highmem.h> 55 #include <linux/vmalloc.h> 56 #include <linux/module.h> 57 #include <linux/init.h> 58 #include <linux/spinlock.h> 59 #include <linux/io.h> 60 #include <linux/videodev2.h> 61 #include <linux/i2c.h> 62 63 #include <media/saa7115.h> 64 #include <media/v4l2-common.h> 65 #include <media/v4l2-ioctl.h> 66 #include <media/tuner.h> 67 68 #include <linux/workqueue.h> 69 70 #include "usbvision.h" 71 #include "usbvision-cards.h" 72 73 #define DRIVER_AUTHOR \ 74 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 75 "Dwaine Garden <DwaineGarden@rogers.com>" 76 #define DRIVER_NAME "usbvision" 77 #define DRIVER_ALIAS "USBVision" 78 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 79 #define DRIVER_LICENSE "GPL" 80 #define USBVISION_VERSION_STRING "0.9.11" 81 82 #define ENABLE_HEXDUMP 0 /* Enable if you need it */ 83 84 85 #ifdef USBVISION_DEBUG 86 #define PDEBUG(level, fmt, args...) { \ 87 if (video_debug & (level)) \ 88 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 89 __func__, __LINE__ , ## args); \ 90 } 91 #else 92 #define PDEBUG(level, fmt, args...) do {} while (0) 93 #endif 94 95 #define DBG_IO (1 << 1) 96 #define DBG_PROBE (1 << 2) 97 #define DBG_MMAP (1 << 3) 98 99 /* String operations */ 100 #define rmspace(str) while (*str == ' ') str++; 101 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 102 103 104 /* sequential number of usbvision device */ 105 static int usbvision_nr; 106 107 static struct usbvision_v4l2_format_st usbvision_v4l2_format[] = { 108 { 1, 1, 8, V4L2_PIX_FMT_GREY , "GREY" }, 109 { 1, 2, 16, V4L2_PIX_FMT_RGB565 , "RGB565" }, 110 { 1, 3, 24, V4L2_PIX_FMT_RGB24 , "RGB24" }, 111 { 1, 4, 32, V4L2_PIX_FMT_RGB32 , "RGB32" }, 112 { 1, 2, 16, V4L2_PIX_FMT_RGB555 , "RGB555" }, 113 { 1, 2, 16, V4L2_PIX_FMT_YUYV , "YUV422" }, 114 { 1, 2, 12, V4L2_PIX_FMT_YVU420 , "YUV420P" }, /* 1.5 ! */ 115 { 1, 2, 16, V4L2_PIX_FMT_YUV422P , "YUV422P" } 116 }; 117 118 /* Function prototypes */ 119 static void usbvision_release(struct usb_usbvision *usbvision); 120 121 /* Default initialization of device driver parameters */ 122 /* Set the default format for ISOC endpoint */ 123 static int isoc_mode = ISOC_MODE_COMPRESS; 124 /* Set the default Debug Mode of the device driver */ 125 static int video_debug; 126 /* Set the default device to power on at startup */ 127 static int power_on_at_open = 1; 128 /* Sequential Number of Video Device */ 129 static int video_nr = -1; 130 /* Sequential Number of Radio Device */ 131 static int radio_nr = -1; 132 133 /* Grab parameters for the device driver */ 134 135 /* Showing parameters under SYSFS */ 136 module_param(isoc_mode, int, 0444); 137 module_param(video_debug, int, 0444); 138 module_param(power_on_at_open, int, 0444); 139 module_param(video_nr, int, 0444); 140 module_param(radio_nr, int, 0444); 141 142 MODULE_PARM_DESC(isoc_mode, " Set the default format for ISOC endpoint. Default: 0x60 (Compression On)"); 143 MODULE_PARM_DESC(video_debug, " Set the default Debug Mode of the device driver. Default: 0 (Off)"); 144 MODULE_PARM_DESC(power_on_at_open, " Set the default device to power on when device is opened. Default: 1 (On)"); 145 MODULE_PARM_DESC(video_nr, "Set video device number (/dev/videoX). Default: -1 (autodetect)"); 146 MODULE_PARM_DESC(radio_nr, "Set radio device number (/dev/radioX). Default: -1 (autodetect)"); 147 148 149 /* Misc stuff */ 150 MODULE_AUTHOR(DRIVER_AUTHOR); 151 MODULE_DESCRIPTION(DRIVER_DESC); 152 MODULE_LICENSE(DRIVER_LICENSE); 153 MODULE_VERSION(USBVISION_VERSION_STRING); 154 MODULE_ALIAS(DRIVER_ALIAS); 155 156 157 /*****************************************************************************/ 158 /* SYSFS Code - Copied from the stv680.c usb module. */ 159 /* Device information is located at /sys/class/video4linux/video0 */ 160 /* Device parameters information is located at /sys/module/usbvision */ 161 /* Device USB Information is located at */ 162 /* /sys/bus/usb/drivers/USBVision Video Grabber */ 163 /*****************************************************************************/ 164 165 #define YES_NO(x) ((x) ? "Yes" : "No") 166 167 static inline struct usb_usbvision *cd_to_usbvision(struct device *cd) 168 { 169 struct video_device *vdev = 170 container_of(cd, struct video_device, dev); 171 return video_get_drvdata(vdev); 172 } 173 174 static ssize_t show_version(struct device *cd, 175 struct device_attribute *attr, char *buf) 176 { 177 return sprintf(buf, "%s\n", USBVISION_VERSION_STRING); 178 } 179 static DEVICE_ATTR(version, S_IRUGO, show_version, NULL); 180 181 static ssize_t show_model(struct device *cd, 182 struct device_attribute *attr, char *buf) 183 { 184 struct video_device *vdev = 185 container_of(cd, struct video_device, dev); 186 struct usb_usbvision *usbvision = video_get_drvdata(vdev); 187 return sprintf(buf, "%s\n", 188 usbvision_device_data[usbvision->dev_model].model_string); 189 } 190 static DEVICE_ATTR(model, S_IRUGO, show_model, NULL); 191 192 static ssize_t show_hue(struct device *cd, 193 struct device_attribute *attr, char *buf) 194 { 195 struct video_device *vdev = 196 container_of(cd, struct video_device, dev); 197 struct usb_usbvision *usbvision = video_get_drvdata(vdev); 198 struct v4l2_control ctrl; 199 ctrl.id = V4L2_CID_HUE; 200 ctrl.value = 0; 201 if (usbvision->user) 202 call_all(usbvision, core, g_ctrl, &ctrl); 203 return sprintf(buf, "%d\n", ctrl.value); 204 } 205 static DEVICE_ATTR(hue, S_IRUGO, show_hue, NULL); 206 207 static ssize_t show_contrast(struct device *cd, 208 struct device_attribute *attr, char *buf) 209 { 210 struct video_device *vdev = 211 container_of(cd, struct video_device, dev); 212 struct usb_usbvision *usbvision = video_get_drvdata(vdev); 213 struct v4l2_control ctrl; 214 ctrl.id = V4L2_CID_CONTRAST; 215 ctrl.value = 0; 216 if (usbvision->user) 217 call_all(usbvision, core, g_ctrl, &ctrl); 218 return sprintf(buf, "%d\n", ctrl.value); 219 } 220 static DEVICE_ATTR(contrast, S_IRUGO, show_contrast, NULL); 221 222 static ssize_t show_brightness(struct device *cd, 223 struct device_attribute *attr, char *buf) 224 { 225 struct video_device *vdev = 226 container_of(cd, struct video_device, dev); 227 struct usb_usbvision *usbvision = video_get_drvdata(vdev); 228 struct v4l2_control ctrl; 229 ctrl.id = V4L2_CID_BRIGHTNESS; 230 ctrl.value = 0; 231 if (usbvision->user) 232 call_all(usbvision, core, g_ctrl, &ctrl); 233 return sprintf(buf, "%d\n", ctrl.value); 234 } 235 static DEVICE_ATTR(brightness, S_IRUGO, show_brightness, NULL); 236 237 static ssize_t show_saturation(struct device *cd, 238 struct device_attribute *attr, char *buf) 239 { 240 struct video_device *vdev = 241 container_of(cd, struct video_device, dev); 242 struct usb_usbvision *usbvision = video_get_drvdata(vdev); 243 struct v4l2_control ctrl; 244 ctrl.id = V4L2_CID_SATURATION; 245 ctrl.value = 0; 246 if (usbvision->user) 247 call_all(usbvision, core, g_ctrl, &ctrl); 248 return sprintf(buf, "%d\n", ctrl.value); 249 } 250 static DEVICE_ATTR(saturation, S_IRUGO, show_saturation, NULL); 251 252 static ssize_t show_streaming(struct device *cd, 253 struct device_attribute *attr, char *buf) 254 { 255 struct video_device *vdev = 256 container_of(cd, struct video_device, dev); 257 struct usb_usbvision *usbvision = video_get_drvdata(vdev); 258 return sprintf(buf, "%s\n", 259 YES_NO(usbvision->streaming == stream_on ? 1 : 0)); 260 } 261 static DEVICE_ATTR(streaming, S_IRUGO, show_streaming, NULL); 262 263 static ssize_t show_compression(struct device *cd, 264 struct device_attribute *attr, char *buf) 265 { 266 struct video_device *vdev = 267 container_of(cd, struct video_device, dev); 268 struct usb_usbvision *usbvision = video_get_drvdata(vdev); 269 return sprintf(buf, "%s\n", 270 YES_NO(usbvision->isoc_mode == ISOC_MODE_COMPRESS)); 271 } 272 static DEVICE_ATTR(compression, S_IRUGO, show_compression, NULL); 273 274 static ssize_t show_device_bridge(struct device *cd, 275 struct device_attribute *attr, char *buf) 276 { 277 struct video_device *vdev = 278 container_of(cd, struct video_device, dev); 279 struct usb_usbvision *usbvision = video_get_drvdata(vdev); 280 return sprintf(buf, "%d\n", usbvision->bridge_type); 281 } 282 static DEVICE_ATTR(bridge, S_IRUGO, show_device_bridge, NULL); 283 284 static void usbvision_create_sysfs(struct video_device *vdev) 285 { 286 int res; 287 288 if (!vdev) 289 return; 290 do { 291 res = device_create_file(&vdev->dev, &dev_attr_version); 292 if (res < 0) 293 break; 294 res = device_create_file(&vdev->dev, &dev_attr_model); 295 if (res < 0) 296 break; 297 res = device_create_file(&vdev->dev, &dev_attr_hue); 298 if (res < 0) 299 break; 300 res = device_create_file(&vdev->dev, &dev_attr_contrast); 301 if (res < 0) 302 break; 303 res = device_create_file(&vdev->dev, &dev_attr_brightness); 304 if (res < 0) 305 break; 306 res = device_create_file(&vdev->dev, &dev_attr_saturation); 307 if (res < 0) 308 break; 309 res = device_create_file(&vdev->dev, &dev_attr_streaming); 310 if (res < 0) 311 break; 312 res = device_create_file(&vdev->dev, &dev_attr_compression); 313 if (res < 0) 314 break; 315 res = device_create_file(&vdev->dev, &dev_attr_bridge); 316 if (res >= 0) 317 return; 318 } while (0); 319 320 dev_err(&vdev->dev, "%s error: %d\n", __func__, res); 321 } 322 323 static void usbvision_remove_sysfs(struct video_device *vdev) 324 { 325 if (vdev) { 326 device_remove_file(&vdev->dev, &dev_attr_version); 327 device_remove_file(&vdev->dev, &dev_attr_model); 328 device_remove_file(&vdev->dev, &dev_attr_hue); 329 device_remove_file(&vdev->dev, &dev_attr_contrast); 330 device_remove_file(&vdev->dev, &dev_attr_brightness); 331 device_remove_file(&vdev->dev, &dev_attr_saturation); 332 device_remove_file(&vdev->dev, &dev_attr_streaming); 333 device_remove_file(&vdev->dev, &dev_attr_compression); 334 device_remove_file(&vdev->dev, &dev_attr_bridge); 335 } 336 } 337 338 /* 339 * usbvision_open() 340 * 341 * This is part of Video 4 Linux API. The driver can be opened by one 342 * client only (checks internal counter 'usbvision->user'). The procedure 343 * then allocates buffers needed for video processing. 344 * 345 */ 346 static int usbvision_v4l2_open(struct file *file) 347 { 348 struct usb_usbvision *usbvision = video_drvdata(file); 349 int err_code = 0; 350 351 PDEBUG(DBG_IO, "open"); 352 353 if (mutex_lock_interruptible(&usbvision->v4l2_lock)) 354 return -ERESTARTSYS; 355 usbvision_reset_power_off_timer(usbvision); 356 357 if (usbvision->user) 358 err_code = -EBUSY; 359 else { 360 /* Allocate memory for the scratch ring buffer */ 361 err_code = usbvision_scratch_alloc(usbvision); 362 if (isoc_mode == ISOC_MODE_COMPRESS) { 363 /* Allocate intermediate decompression buffers 364 only if needed */ 365 err_code = usbvision_decompress_alloc(usbvision); 366 } 367 if (err_code) { 368 /* Deallocate all buffers if trouble */ 369 usbvision_scratch_free(usbvision); 370 usbvision_decompress_free(usbvision); 371 } 372 } 373 374 /* If so far no errors then we shall start the camera */ 375 if (!err_code) { 376 if (usbvision->power == 0) { 377 usbvision_power_on(usbvision); 378 usbvision_i2c_register(usbvision); 379 } 380 381 /* Send init sequence only once, it's large! */ 382 if (!usbvision->initialized) { 383 int setup_ok = 0; 384 setup_ok = usbvision_setup(usbvision, isoc_mode); 385 if (setup_ok) 386 usbvision->initialized = 1; 387 else 388 err_code = -EBUSY; 389 } 390 391 if (!err_code) { 392 usbvision_begin_streaming(usbvision); 393 err_code = usbvision_init_isoc(usbvision); 394 /* device must be initialized before isoc transfer */ 395 usbvision_muxsel(usbvision, 0); 396 usbvision->user++; 397 } else { 398 if (power_on_at_open) { 399 usbvision_i2c_unregister(usbvision); 400 usbvision_power_off(usbvision); 401 usbvision->initialized = 0; 402 } 403 } 404 } 405 406 /* prepare queues */ 407 usbvision_empty_framequeues(usbvision); 408 mutex_unlock(&usbvision->v4l2_lock); 409 410 PDEBUG(DBG_IO, "success"); 411 return err_code; 412 } 413 414 /* 415 * usbvision_v4l2_close() 416 * 417 * This is part of Video 4 Linux API. The procedure 418 * stops streaming and deallocates all buffers that were earlier 419 * allocated in usbvision_v4l2_open(). 420 * 421 */ 422 static int usbvision_v4l2_close(struct file *file) 423 { 424 struct usb_usbvision *usbvision = video_drvdata(file); 425 426 PDEBUG(DBG_IO, "close"); 427 428 mutex_lock(&usbvision->v4l2_lock); 429 usbvision_audio_off(usbvision); 430 usbvision_restart_isoc(usbvision); 431 usbvision_stop_isoc(usbvision); 432 433 usbvision_decompress_free(usbvision); 434 usbvision_frames_free(usbvision); 435 usbvision_empty_framequeues(usbvision); 436 usbvision_scratch_free(usbvision); 437 438 usbvision->user--; 439 440 if (power_on_at_open) { 441 /* power off in a little while 442 to avoid off/on every close/open short sequences */ 443 usbvision_set_power_off_timer(usbvision); 444 usbvision->initialized = 0; 445 } 446 447 if (usbvision->remove_pending) { 448 printk(KERN_INFO "%s: Final disconnect\n", __func__); 449 usbvision_release(usbvision); 450 return 0; 451 } 452 mutex_unlock(&usbvision->v4l2_lock); 453 454 PDEBUG(DBG_IO, "success"); 455 return 0; 456 } 457 458 459 /* 460 * usbvision_ioctl() 461 * 462 * This is part of Video 4 Linux API. The procedure handles ioctl() calls. 463 * 464 */ 465 #ifdef CONFIG_VIDEO_ADV_DEBUG 466 static int vidioc_g_register(struct file *file, void *priv, 467 struct v4l2_dbg_register *reg) 468 { 469 struct usb_usbvision *usbvision = video_drvdata(file); 470 int err_code; 471 472 /* NT100x has a 8-bit register space */ 473 err_code = usbvision_read_reg(usbvision, reg->reg&0xff); 474 if (err_code < 0) { 475 dev_err(&usbvision->vdev->dev, 476 "%s: VIDIOC_DBG_G_REGISTER failed: error %d\n", 477 __func__, err_code); 478 return err_code; 479 } 480 reg->val = err_code; 481 reg->size = 1; 482 return 0; 483 } 484 485 static int vidioc_s_register(struct file *file, void *priv, 486 const struct v4l2_dbg_register *reg) 487 { 488 struct usb_usbvision *usbvision = video_drvdata(file); 489 int err_code; 490 491 /* NT100x has a 8-bit register space */ 492 err_code = usbvision_write_reg(usbvision, reg->reg & 0xff, reg->val); 493 if (err_code < 0) { 494 dev_err(&usbvision->vdev->dev, 495 "%s: VIDIOC_DBG_S_REGISTER failed: error %d\n", 496 __func__, err_code); 497 return err_code; 498 } 499 return 0; 500 } 501 #endif 502 503 static int vidioc_querycap(struct file *file, void *priv, 504 struct v4l2_capability *vc) 505 { 506 struct usb_usbvision *usbvision = video_drvdata(file); 507 508 strlcpy(vc->driver, "USBVision", sizeof(vc->driver)); 509 strlcpy(vc->card, 510 usbvision_device_data[usbvision->dev_model].model_string, 511 sizeof(vc->card)); 512 usb_make_path(usbvision->dev, vc->bus_info, sizeof(vc->bus_info)); 513 vc->device_caps = V4L2_CAP_VIDEO_CAPTURE | 514 V4L2_CAP_AUDIO | 515 V4L2_CAP_READWRITE | 516 V4L2_CAP_STREAMING | 517 (usbvision->have_tuner ? V4L2_CAP_TUNER : 0); 518 vc->capabilities = vc->device_caps | V4L2_CAP_DEVICE_CAPS; 519 return 0; 520 } 521 522 static int vidioc_enum_input(struct file *file, void *priv, 523 struct v4l2_input *vi) 524 { 525 struct usb_usbvision *usbvision = video_drvdata(file); 526 int chan; 527 528 if (vi->index >= usbvision->video_inputs) 529 return -EINVAL; 530 if (usbvision->have_tuner) 531 chan = vi->index; 532 else 533 chan = vi->index + 1; /* skip Television string*/ 534 535 /* Determine the requested input characteristics 536 specific for each usbvision card model */ 537 switch (chan) { 538 case 0: 539 if (usbvision_device_data[usbvision->dev_model].video_channels == 4) { 540 strcpy(vi->name, "White Video Input"); 541 } else { 542 strcpy(vi->name, "Television"); 543 vi->type = V4L2_INPUT_TYPE_TUNER; 544 vi->audioset = 1; 545 vi->tuner = chan; 546 vi->std = USBVISION_NORMS; 547 } 548 break; 549 case 1: 550 vi->type = V4L2_INPUT_TYPE_CAMERA; 551 if (usbvision_device_data[usbvision->dev_model].video_channels == 4) 552 strcpy(vi->name, "Green Video Input"); 553 else 554 strcpy(vi->name, "Composite Video Input"); 555 vi->std = V4L2_STD_PAL; 556 break; 557 case 2: 558 vi->type = V4L2_INPUT_TYPE_CAMERA; 559 if (usbvision_device_data[usbvision->dev_model].video_channels == 4) 560 strcpy(vi->name, "Yellow Video Input"); 561 else 562 strcpy(vi->name, "S-Video Input"); 563 vi->std = V4L2_STD_PAL; 564 break; 565 case 3: 566 vi->type = V4L2_INPUT_TYPE_CAMERA; 567 strcpy(vi->name, "Red Video Input"); 568 vi->std = V4L2_STD_PAL; 569 break; 570 } 571 return 0; 572 } 573 574 static int vidioc_g_input(struct file *file, void *priv, unsigned int *input) 575 { 576 struct usb_usbvision *usbvision = video_drvdata(file); 577 578 *input = usbvision->ctl_input; 579 return 0; 580 } 581 582 static int vidioc_s_input(struct file *file, void *priv, unsigned int input) 583 { 584 struct usb_usbvision *usbvision = video_drvdata(file); 585 586 if (input >= usbvision->video_inputs) 587 return -EINVAL; 588 589 usbvision_muxsel(usbvision, input); 590 usbvision_set_input(usbvision); 591 usbvision_set_output(usbvision, 592 usbvision->curwidth, 593 usbvision->curheight); 594 return 0; 595 } 596 597 static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id) 598 { 599 struct usb_usbvision *usbvision = video_drvdata(file); 600 601 usbvision->tvnorm_id = id; 602 603 call_all(usbvision, video, s_std, usbvision->tvnorm_id); 604 /* propagate the change to the decoder */ 605 usbvision_muxsel(usbvision, usbvision->ctl_input); 606 607 return 0; 608 } 609 610 static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *id) 611 { 612 struct usb_usbvision *usbvision = video_drvdata(file); 613 614 *id = usbvision->tvnorm_id; 615 return 0; 616 } 617 618 static int vidioc_g_tuner(struct file *file, void *priv, 619 struct v4l2_tuner *vt) 620 { 621 struct usb_usbvision *usbvision = video_drvdata(file); 622 623 if (!usbvision->have_tuner || vt->index) /* Only tuner 0 */ 624 return -EINVAL; 625 if (usbvision->radio) { 626 strcpy(vt->name, "Radio"); 627 vt->type = V4L2_TUNER_RADIO; 628 } else { 629 strcpy(vt->name, "Television"); 630 } 631 /* Let clients fill in the remainder of this struct */ 632 call_all(usbvision, tuner, g_tuner, vt); 633 634 return 0; 635 } 636 637 static int vidioc_s_tuner(struct file *file, void *priv, 638 const struct v4l2_tuner *vt) 639 { 640 struct usb_usbvision *usbvision = video_drvdata(file); 641 642 /* Only no or one tuner for now */ 643 if (!usbvision->have_tuner || vt->index) 644 return -EINVAL; 645 /* let clients handle this */ 646 call_all(usbvision, tuner, s_tuner, vt); 647 648 return 0; 649 } 650 651 static int vidioc_g_frequency(struct file *file, void *priv, 652 struct v4l2_frequency *freq) 653 { 654 struct usb_usbvision *usbvision = video_drvdata(file); 655 656 freq->tuner = 0; /* Only one tuner */ 657 if (usbvision->radio) 658 freq->type = V4L2_TUNER_RADIO; 659 else 660 freq->type = V4L2_TUNER_ANALOG_TV; 661 freq->frequency = usbvision->freq; 662 663 return 0; 664 } 665 666 static int vidioc_s_frequency(struct file *file, void *priv, 667 const struct v4l2_frequency *freq) 668 { 669 struct usb_usbvision *usbvision = video_drvdata(file); 670 671 /* Only no or one tuner for now */ 672 if (!usbvision->have_tuner || freq->tuner) 673 return -EINVAL; 674 675 usbvision->freq = freq->frequency; 676 call_all(usbvision, tuner, s_frequency, freq); 677 678 return 0; 679 } 680 681 static int vidioc_g_audio(struct file *file, void *priv, struct v4l2_audio *a) 682 { 683 struct usb_usbvision *usbvision = video_drvdata(file); 684 685 if (usbvision->radio) 686 strcpy(a->name, "Radio"); 687 else 688 strcpy(a->name, "TV"); 689 690 return 0; 691 } 692 693 static int vidioc_s_audio(struct file *file, void *fh, 694 const struct v4l2_audio *a) 695 { 696 if (a->index) 697 return -EINVAL; 698 return 0; 699 } 700 701 static int vidioc_queryctrl(struct file *file, void *priv, 702 struct v4l2_queryctrl *ctrl) 703 { 704 struct usb_usbvision *usbvision = video_drvdata(file); 705 706 call_all(usbvision, core, queryctrl, ctrl); 707 708 if (!ctrl->type) 709 return -EINVAL; 710 711 return 0; 712 } 713 714 static int vidioc_g_ctrl(struct file *file, void *priv, 715 struct v4l2_control *ctrl) 716 { 717 struct usb_usbvision *usbvision = video_drvdata(file); 718 719 call_all(usbvision, core, g_ctrl, ctrl); 720 return 0; 721 } 722 723 static int vidioc_s_ctrl(struct file *file, void *priv, 724 struct v4l2_control *ctrl) 725 { 726 struct usb_usbvision *usbvision = video_drvdata(file); 727 728 call_all(usbvision, core, s_ctrl, ctrl); 729 return 0; 730 } 731 732 static int vidioc_reqbufs(struct file *file, 733 void *priv, struct v4l2_requestbuffers *vr) 734 { 735 struct usb_usbvision *usbvision = video_drvdata(file); 736 int ret; 737 738 RESTRICT_TO_RANGE(vr->count, 1, USBVISION_NUMFRAMES); 739 740 /* Check input validity: 741 the user must do a VIDEO CAPTURE and MMAP method. */ 742 if (vr->memory != V4L2_MEMORY_MMAP) 743 return -EINVAL; 744 745 if (usbvision->streaming == stream_on) { 746 ret = usbvision_stream_interrupt(usbvision); 747 if (ret) 748 return ret; 749 } 750 751 usbvision_frames_free(usbvision); 752 usbvision_empty_framequeues(usbvision); 753 vr->count = usbvision_frames_alloc(usbvision, vr->count); 754 755 usbvision->cur_frame = NULL; 756 757 return 0; 758 } 759 760 static int vidioc_querybuf(struct file *file, 761 void *priv, struct v4l2_buffer *vb) 762 { 763 struct usb_usbvision *usbvision = video_drvdata(file); 764 struct usbvision_frame *frame; 765 766 /* FIXME : must control 767 that buffers are mapped (VIDIOC_REQBUFS has been called) */ 768 if (vb->index >= usbvision->num_frames) 769 return -EINVAL; 770 /* Updating the corresponding frame state */ 771 vb->flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 772 frame = &usbvision->frame[vb->index]; 773 if (frame->grabstate >= frame_state_ready) 774 vb->flags |= V4L2_BUF_FLAG_QUEUED; 775 if (frame->grabstate >= frame_state_done) 776 vb->flags |= V4L2_BUF_FLAG_DONE; 777 if (frame->grabstate == frame_state_unused) 778 vb->flags |= V4L2_BUF_FLAG_MAPPED; 779 vb->memory = V4L2_MEMORY_MMAP; 780 781 vb->m.offset = vb->index * PAGE_ALIGN(usbvision->max_frame_size); 782 783 vb->memory = V4L2_MEMORY_MMAP; 784 vb->field = V4L2_FIELD_NONE; 785 vb->length = usbvision->curwidth * 786 usbvision->curheight * 787 usbvision->palette.bytes_per_pixel; 788 vb->timestamp = usbvision->frame[vb->index].timestamp; 789 vb->sequence = usbvision->frame[vb->index].sequence; 790 return 0; 791 } 792 793 static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *vb) 794 { 795 struct usb_usbvision *usbvision = video_drvdata(file); 796 struct usbvision_frame *frame; 797 unsigned long lock_flags; 798 799 /* FIXME : works only on VIDEO_CAPTURE MODE, MMAP. */ 800 if (vb->index >= usbvision->num_frames) 801 return -EINVAL; 802 803 frame = &usbvision->frame[vb->index]; 804 805 if (frame->grabstate != frame_state_unused) 806 return -EAGAIN; 807 808 /* Mark it as ready and enqueue frame */ 809 frame->grabstate = frame_state_ready; 810 frame->scanstate = scan_state_scanning; 811 frame->scanlength = 0; /* Accumulated in usbvision_parse_data() */ 812 813 vb->flags &= ~V4L2_BUF_FLAG_DONE; 814 815 /* set v4l2_format index */ 816 frame->v4l2_format = usbvision->palette; 817 818 spin_lock_irqsave(&usbvision->queue_lock, lock_flags); 819 list_add_tail(&usbvision->frame[vb->index].frame, &usbvision->inqueue); 820 spin_unlock_irqrestore(&usbvision->queue_lock, lock_flags); 821 822 return 0; 823 } 824 825 static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *vb) 826 { 827 struct usb_usbvision *usbvision = video_drvdata(file); 828 int ret; 829 struct usbvision_frame *f; 830 unsigned long lock_flags; 831 832 if (list_empty(&(usbvision->outqueue))) { 833 if (usbvision->streaming == stream_idle) 834 return -EINVAL; 835 ret = wait_event_interruptible 836 (usbvision->wait_frame, 837 !list_empty(&(usbvision->outqueue))); 838 if (ret) 839 return ret; 840 } 841 842 spin_lock_irqsave(&usbvision->queue_lock, lock_flags); 843 f = list_entry(usbvision->outqueue.next, 844 struct usbvision_frame, frame); 845 list_del(usbvision->outqueue.next); 846 spin_unlock_irqrestore(&usbvision->queue_lock, lock_flags); 847 848 f->grabstate = frame_state_unused; 849 850 vb->memory = V4L2_MEMORY_MMAP; 851 vb->flags = V4L2_BUF_FLAG_MAPPED | 852 V4L2_BUF_FLAG_QUEUED | 853 V4L2_BUF_FLAG_DONE | 854 V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 855 vb->index = f->index; 856 vb->sequence = f->sequence; 857 vb->timestamp = f->timestamp; 858 vb->field = V4L2_FIELD_NONE; 859 vb->bytesused = f->scanlength; 860 861 return 0; 862 } 863 864 static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i) 865 { 866 struct usb_usbvision *usbvision = video_drvdata(file); 867 868 usbvision->streaming = stream_on; 869 call_all(usbvision, video, s_stream, 1); 870 871 return 0; 872 } 873 874 static int vidioc_streamoff(struct file *file, 875 void *priv, enum v4l2_buf_type type) 876 { 877 struct usb_usbvision *usbvision = video_drvdata(file); 878 879 if (type != V4L2_BUF_TYPE_VIDEO_CAPTURE) 880 return -EINVAL; 881 882 if (usbvision->streaming == stream_on) { 883 usbvision_stream_interrupt(usbvision); 884 /* Stop all video streamings */ 885 call_all(usbvision, video, s_stream, 0); 886 } 887 usbvision_empty_framequeues(usbvision); 888 889 return 0; 890 } 891 892 static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, 893 struct v4l2_fmtdesc *vfd) 894 { 895 if (vfd->index >= USBVISION_SUPPORTED_PALETTES - 1) 896 return -EINVAL; 897 strcpy(vfd->description, usbvision_v4l2_format[vfd->index].desc); 898 vfd->pixelformat = usbvision_v4l2_format[vfd->index].format; 899 return 0; 900 } 901 902 static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, 903 struct v4l2_format *vf) 904 { 905 struct usb_usbvision *usbvision = video_drvdata(file); 906 vf->fmt.pix.width = usbvision->curwidth; 907 vf->fmt.pix.height = usbvision->curheight; 908 vf->fmt.pix.pixelformat = usbvision->palette.format; 909 vf->fmt.pix.bytesperline = 910 usbvision->curwidth * usbvision->palette.bytes_per_pixel; 911 vf->fmt.pix.sizeimage = vf->fmt.pix.bytesperline * usbvision->curheight; 912 vf->fmt.pix.colorspace = V4L2_COLORSPACE_SMPTE170M; 913 vf->fmt.pix.field = V4L2_FIELD_NONE; /* Always progressive image */ 914 915 return 0; 916 } 917 918 static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, 919 struct v4l2_format *vf) 920 { 921 struct usb_usbvision *usbvision = video_drvdata(file); 922 int format_idx; 923 924 /* Find requested format in available ones */ 925 for (format_idx = 0; format_idx < USBVISION_SUPPORTED_PALETTES; format_idx++) { 926 if (vf->fmt.pix.pixelformat == 927 usbvision_v4l2_format[format_idx].format) { 928 usbvision->palette = usbvision_v4l2_format[format_idx]; 929 break; 930 } 931 } 932 /* robustness */ 933 if (format_idx == USBVISION_SUPPORTED_PALETTES) 934 return -EINVAL; 935 RESTRICT_TO_RANGE(vf->fmt.pix.width, MIN_FRAME_WIDTH, MAX_FRAME_WIDTH); 936 RESTRICT_TO_RANGE(vf->fmt.pix.height, MIN_FRAME_HEIGHT, MAX_FRAME_HEIGHT); 937 938 vf->fmt.pix.bytesperline = vf->fmt.pix.width* 939 usbvision->palette.bytes_per_pixel; 940 vf->fmt.pix.sizeimage = vf->fmt.pix.bytesperline*vf->fmt.pix.height; 941 942 return 0; 943 } 944 945 static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, 946 struct v4l2_format *vf) 947 { 948 struct usb_usbvision *usbvision = video_drvdata(file); 949 int ret; 950 951 ret = vidioc_try_fmt_vid_cap(file, priv, vf); 952 if (ret) 953 return ret; 954 955 /* stop io in case it is already in progress */ 956 if (usbvision->streaming == stream_on) { 957 ret = usbvision_stream_interrupt(usbvision); 958 if (ret) 959 return ret; 960 } 961 usbvision_frames_free(usbvision); 962 usbvision_empty_framequeues(usbvision); 963 964 usbvision->cur_frame = NULL; 965 966 /* by now we are committed to the new data... */ 967 usbvision_set_output(usbvision, vf->fmt.pix.width, vf->fmt.pix.height); 968 969 return 0; 970 } 971 972 static ssize_t usbvision_read(struct file *file, char __user *buf, 973 size_t count, loff_t *ppos) 974 { 975 struct usb_usbvision *usbvision = video_drvdata(file); 976 int noblock = file->f_flags & O_NONBLOCK; 977 unsigned long lock_flags; 978 int ret, i; 979 struct usbvision_frame *frame; 980 981 PDEBUG(DBG_IO, "%s: %ld bytes, noblock=%d", __func__, 982 (unsigned long)count, noblock); 983 984 if (!USBVISION_IS_OPERATIONAL(usbvision) || (buf == NULL)) 985 return -EFAULT; 986 987 /* This entry point is compatible with the mmap routines 988 so that a user can do either VIDIOC_QBUF/VIDIOC_DQBUF 989 to get frames or call read on the device. */ 990 if (!usbvision->num_frames) { 991 /* First, allocate some frames to work with 992 if this has not been done with VIDIOC_REQBUF */ 993 usbvision_frames_free(usbvision); 994 usbvision_empty_framequeues(usbvision); 995 usbvision_frames_alloc(usbvision, USBVISION_NUMFRAMES); 996 } 997 998 if (usbvision->streaming != stream_on) { 999 /* no stream is running, make it running ! */ 1000 usbvision->streaming = stream_on; 1001 call_all(usbvision, video, s_stream, 1); 1002 } 1003 1004 /* Then, enqueue as many frames as possible 1005 (like a user of VIDIOC_QBUF would do) */ 1006 for (i = 0; i < usbvision->num_frames; i++) { 1007 frame = &usbvision->frame[i]; 1008 if (frame->grabstate == frame_state_unused) { 1009 /* Mark it as ready and enqueue frame */ 1010 frame->grabstate = frame_state_ready; 1011 frame->scanstate = scan_state_scanning; 1012 /* Accumulated in usbvision_parse_data() */ 1013 frame->scanlength = 0; 1014 1015 /* set v4l2_format index */ 1016 frame->v4l2_format = usbvision->palette; 1017 1018 spin_lock_irqsave(&usbvision->queue_lock, lock_flags); 1019 list_add_tail(&frame->frame, &usbvision->inqueue); 1020 spin_unlock_irqrestore(&usbvision->queue_lock, 1021 lock_flags); 1022 } 1023 } 1024 1025 /* Then try to steal a frame (like a VIDIOC_DQBUF would do) */ 1026 if (list_empty(&(usbvision->outqueue))) { 1027 if (noblock) 1028 return -EAGAIN; 1029 1030 ret = wait_event_interruptible 1031 (usbvision->wait_frame, 1032 !list_empty(&(usbvision->outqueue))); 1033 if (ret) 1034 return ret; 1035 } 1036 1037 spin_lock_irqsave(&usbvision->queue_lock, lock_flags); 1038 frame = list_entry(usbvision->outqueue.next, 1039 struct usbvision_frame, frame); 1040 list_del(usbvision->outqueue.next); 1041 spin_unlock_irqrestore(&usbvision->queue_lock, lock_flags); 1042 1043 /* An error returns an empty frame */ 1044 if (frame->grabstate == frame_state_error) { 1045 frame->bytes_read = 0; 1046 return 0; 1047 } 1048 1049 PDEBUG(DBG_IO, "%s: frmx=%d, bytes_read=%ld, scanlength=%ld", 1050 __func__, 1051 frame->index, frame->bytes_read, frame->scanlength); 1052 1053 /* copy bytes to user space; we allow for partials reads */ 1054 if ((count + frame->bytes_read) > (unsigned long)frame->scanlength) 1055 count = frame->scanlength - frame->bytes_read; 1056 1057 if (copy_to_user(buf, frame->data + frame->bytes_read, count)) 1058 return -EFAULT; 1059 1060 frame->bytes_read += count; 1061 PDEBUG(DBG_IO, "%s: {copy} count used=%ld, new bytes_read=%ld", 1062 __func__, 1063 (unsigned long)count, frame->bytes_read); 1064 1065 /* For now, forget the frame if it has not been read in one shot. */ 1066 /* if (frame->bytes_read >= frame->scanlength) {*/ /* All data has been read */ 1067 frame->bytes_read = 0; 1068 1069 /* Mark it as available to be used again. */ 1070 frame->grabstate = frame_state_unused; 1071 /* } */ 1072 1073 return count; 1074 } 1075 1076 static ssize_t usbvision_v4l2_read(struct file *file, char __user *buf, 1077 size_t count, loff_t *ppos) 1078 { 1079 struct usb_usbvision *usbvision = video_drvdata(file); 1080 int res; 1081 1082 if (mutex_lock_interruptible(&usbvision->v4l2_lock)) 1083 return -ERESTARTSYS; 1084 res = usbvision_read(file, buf, count, ppos); 1085 mutex_unlock(&usbvision->v4l2_lock); 1086 return res; 1087 } 1088 1089 static int usbvision_mmap(struct file *file, struct vm_area_struct *vma) 1090 { 1091 unsigned long size = vma->vm_end - vma->vm_start, 1092 start = vma->vm_start; 1093 void *pos; 1094 u32 i; 1095 struct usb_usbvision *usbvision = video_drvdata(file); 1096 1097 PDEBUG(DBG_MMAP, "mmap"); 1098 1099 if (!USBVISION_IS_OPERATIONAL(usbvision)) 1100 return -EFAULT; 1101 1102 if (!(vma->vm_flags & VM_WRITE) || 1103 size != PAGE_ALIGN(usbvision->max_frame_size)) { 1104 return -EINVAL; 1105 } 1106 1107 for (i = 0; i < usbvision->num_frames; i++) { 1108 if (((PAGE_ALIGN(usbvision->max_frame_size)*i) >> PAGE_SHIFT) == 1109 vma->vm_pgoff) 1110 break; 1111 } 1112 if (i == usbvision->num_frames) { 1113 PDEBUG(DBG_MMAP, 1114 "mmap: user supplied mapping address is out of range"); 1115 return -EINVAL; 1116 } 1117 1118 /* VM_IO is eventually going to replace PageReserved altogether */ 1119 vma->vm_flags |= VM_IO | VM_DONTEXPAND | VM_DONTDUMP; 1120 1121 pos = usbvision->frame[i].data; 1122 while (size > 0) { 1123 if (vm_insert_page(vma, start, vmalloc_to_page(pos))) { 1124 PDEBUG(DBG_MMAP, "mmap: vm_insert_page failed"); 1125 return -EAGAIN; 1126 } 1127 start += PAGE_SIZE; 1128 pos += PAGE_SIZE; 1129 size -= PAGE_SIZE; 1130 } 1131 1132 return 0; 1133 } 1134 1135 static int usbvision_v4l2_mmap(struct file *file, struct vm_area_struct *vma) 1136 { 1137 struct usb_usbvision *usbvision = video_drvdata(file); 1138 int res; 1139 1140 if (mutex_lock_interruptible(&usbvision->v4l2_lock)) 1141 return -ERESTARTSYS; 1142 res = usbvision_mmap(file, vma); 1143 mutex_unlock(&usbvision->v4l2_lock); 1144 return res; 1145 } 1146 1147 /* 1148 * Here comes the stuff for radio on usbvision based devices 1149 * 1150 */ 1151 static int usbvision_radio_open(struct file *file) 1152 { 1153 struct usb_usbvision *usbvision = video_drvdata(file); 1154 int err_code = 0; 1155 1156 PDEBUG(DBG_IO, "%s:", __func__); 1157 1158 if (mutex_lock_interruptible(&usbvision->v4l2_lock)) 1159 return -ERESTARTSYS; 1160 if (usbvision->user) { 1161 dev_err(&usbvision->rdev->dev, 1162 "%s: Someone tried to open an already opened USBVision Radio!\n", 1163 __func__); 1164 err_code = -EBUSY; 1165 } else { 1166 if (power_on_at_open) { 1167 usbvision_reset_power_off_timer(usbvision); 1168 if (usbvision->power == 0) { 1169 usbvision_power_on(usbvision); 1170 usbvision_i2c_register(usbvision); 1171 } 1172 } 1173 1174 /* Alternate interface 1 is is the biggest frame size */ 1175 err_code = usbvision_set_alternate(usbvision); 1176 if (err_code < 0) { 1177 usbvision->last_error = err_code; 1178 err_code = -EBUSY; 1179 goto out; 1180 } 1181 1182 /* If so far no errors then we shall start the radio */ 1183 usbvision->radio = 1; 1184 call_all(usbvision, tuner, s_radio); 1185 usbvision_set_audio(usbvision, USBVISION_AUDIO_RADIO); 1186 usbvision->user++; 1187 } 1188 1189 if (err_code) { 1190 if (power_on_at_open) { 1191 usbvision_i2c_unregister(usbvision); 1192 usbvision_power_off(usbvision); 1193 usbvision->initialized = 0; 1194 } 1195 } 1196 out: 1197 mutex_unlock(&usbvision->v4l2_lock); 1198 return err_code; 1199 } 1200 1201 1202 static int usbvision_radio_close(struct file *file) 1203 { 1204 struct usb_usbvision *usbvision = video_drvdata(file); 1205 int err_code = 0; 1206 1207 PDEBUG(DBG_IO, ""); 1208 1209 mutex_lock(&usbvision->v4l2_lock); 1210 /* Set packet size to 0 */ 1211 usbvision->iface_alt = 0; 1212 err_code = usb_set_interface(usbvision->dev, usbvision->iface, 1213 usbvision->iface_alt); 1214 1215 usbvision_audio_off(usbvision); 1216 usbvision->radio = 0; 1217 usbvision->user--; 1218 1219 if (power_on_at_open) { 1220 usbvision_set_power_off_timer(usbvision); 1221 usbvision->initialized = 0; 1222 } 1223 1224 if (usbvision->remove_pending) { 1225 printk(KERN_INFO "%s: Final disconnect\n", __func__); 1226 usbvision_release(usbvision); 1227 return err_code; 1228 } 1229 1230 mutex_unlock(&usbvision->v4l2_lock); 1231 PDEBUG(DBG_IO, "success"); 1232 return err_code; 1233 } 1234 1235 /* Video registration stuff */ 1236 1237 /* Video template */ 1238 static const struct v4l2_file_operations usbvision_fops = { 1239 .owner = THIS_MODULE, 1240 .open = usbvision_v4l2_open, 1241 .release = usbvision_v4l2_close, 1242 .read = usbvision_v4l2_read, 1243 .mmap = usbvision_v4l2_mmap, 1244 .unlocked_ioctl = video_ioctl2, 1245 /* .poll = video_poll, */ 1246 }; 1247 1248 static const struct v4l2_ioctl_ops usbvision_ioctl_ops = { 1249 .vidioc_querycap = vidioc_querycap, 1250 .vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap, 1251 .vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap, 1252 .vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap, 1253 .vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap, 1254 .vidioc_reqbufs = vidioc_reqbufs, 1255 .vidioc_querybuf = vidioc_querybuf, 1256 .vidioc_qbuf = vidioc_qbuf, 1257 .vidioc_dqbuf = vidioc_dqbuf, 1258 .vidioc_s_std = vidioc_s_std, 1259 .vidioc_g_std = vidioc_g_std, 1260 .vidioc_enum_input = vidioc_enum_input, 1261 .vidioc_g_input = vidioc_g_input, 1262 .vidioc_s_input = vidioc_s_input, 1263 .vidioc_queryctrl = vidioc_queryctrl, 1264 .vidioc_g_audio = vidioc_g_audio, 1265 .vidioc_s_audio = vidioc_s_audio, 1266 .vidioc_g_ctrl = vidioc_g_ctrl, 1267 .vidioc_s_ctrl = vidioc_s_ctrl, 1268 .vidioc_streamon = vidioc_streamon, 1269 .vidioc_streamoff = vidioc_streamoff, 1270 .vidioc_g_tuner = vidioc_g_tuner, 1271 .vidioc_s_tuner = vidioc_s_tuner, 1272 .vidioc_g_frequency = vidioc_g_frequency, 1273 .vidioc_s_frequency = vidioc_s_frequency, 1274 #ifdef CONFIG_VIDEO_ADV_DEBUG 1275 .vidioc_g_register = vidioc_g_register, 1276 .vidioc_s_register = vidioc_s_register, 1277 #endif 1278 }; 1279 1280 static struct video_device usbvision_video_template = { 1281 .fops = &usbvision_fops, 1282 .ioctl_ops = &usbvision_ioctl_ops, 1283 .name = "usbvision-video", 1284 .release = video_device_release, 1285 .tvnorms = USBVISION_NORMS, 1286 }; 1287 1288 1289 /* Radio template */ 1290 static const struct v4l2_file_operations usbvision_radio_fops = { 1291 .owner = THIS_MODULE, 1292 .open = usbvision_radio_open, 1293 .release = usbvision_radio_close, 1294 .unlocked_ioctl = video_ioctl2, 1295 }; 1296 1297 static const struct v4l2_ioctl_ops usbvision_radio_ioctl_ops = { 1298 .vidioc_querycap = vidioc_querycap, 1299 .vidioc_enum_input = vidioc_enum_input, 1300 .vidioc_g_input = vidioc_g_input, 1301 .vidioc_s_input = vidioc_s_input, 1302 .vidioc_queryctrl = vidioc_queryctrl, 1303 .vidioc_g_audio = vidioc_g_audio, 1304 .vidioc_s_audio = vidioc_s_audio, 1305 .vidioc_g_ctrl = vidioc_g_ctrl, 1306 .vidioc_s_ctrl = vidioc_s_ctrl, 1307 .vidioc_g_tuner = vidioc_g_tuner, 1308 .vidioc_s_tuner = vidioc_s_tuner, 1309 .vidioc_g_frequency = vidioc_g_frequency, 1310 .vidioc_s_frequency = vidioc_s_frequency, 1311 }; 1312 1313 static struct video_device usbvision_radio_template = { 1314 .fops = &usbvision_radio_fops, 1315 .name = "usbvision-radio", 1316 .release = video_device_release, 1317 .ioctl_ops = &usbvision_radio_ioctl_ops, 1318 }; 1319 1320 1321 static struct video_device *usbvision_vdev_init(struct usb_usbvision *usbvision, 1322 struct video_device *vdev_template, 1323 char *name) 1324 { 1325 struct usb_device *usb_dev = usbvision->dev; 1326 struct video_device *vdev; 1327 1328 if (usb_dev == NULL) { 1329 dev_err(&usbvision->dev->dev, 1330 "%s: usbvision->dev is not set\n", __func__); 1331 return NULL; 1332 } 1333 1334 vdev = video_device_alloc(); 1335 if (NULL == vdev) 1336 return NULL; 1337 *vdev = *vdev_template; 1338 vdev->lock = &usbvision->v4l2_lock; 1339 vdev->v4l2_dev = &usbvision->v4l2_dev; 1340 snprintf(vdev->name, sizeof(vdev->name), "%s", name); 1341 video_set_drvdata(vdev, usbvision); 1342 return vdev; 1343 } 1344 1345 /* unregister video4linux devices */ 1346 static void usbvision_unregister_video(struct usb_usbvision *usbvision) 1347 { 1348 /* Radio Device: */ 1349 if (usbvision->rdev) { 1350 PDEBUG(DBG_PROBE, "unregister %s [v4l2]", 1351 video_device_node_name(usbvision->rdev)); 1352 if (video_is_registered(usbvision->rdev)) 1353 video_unregister_device(usbvision->rdev); 1354 else 1355 video_device_release(usbvision->rdev); 1356 usbvision->rdev = NULL; 1357 } 1358 1359 /* Video Device: */ 1360 if (usbvision->vdev) { 1361 PDEBUG(DBG_PROBE, "unregister %s [v4l2]", 1362 video_device_node_name(usbvision->vdev)); 1363 if (video_is_registered(usbvision->vdev)) 1364 video_unregister_device(usbvision->vdev); 1365 else 1366 video_device_release(usbvision->vdev); 1367 usbvision->vdev = NULL; 1368 } 1369 } 1370 1371 /* register video4linux devices */ 1372 static int usbvision_register_video(struct usb_usbvision *usbvision) 1373 { 1374 /* Video Device: */ 1375 usbvision->vdev = usbvision_vdev_init(usbvision, 1376 &usbvision_video_template, 1377 "USBVision Video"); 1378 if (usbvision->vdev == NULL) 1379 goto err_exit; 1380 if (video_register_device(usbvision->vdev, VFL_TYPE_GRABBER, video_nr) < 0) 1381 goto err_exit; 1382 printk(KERN_INFO "USBVision[%d]: registered USBVision Video device %s [v4l2]\n", 1383 usbvision->nr, video_device_node_name(usbvision->vdev)); 1384 1385 /* Radio Device: */ 1386 if (usbvision_device_data[usbvision->dev_model].radio) { 1387 /* usbvision has radio */ 1388 usbvision->rdev = usbvision_vdev_init(usbvision, 1389 &usbvision_radio_template, 1390 "USBVision Radio"); 1391 if (usbvision->rdev == NULL) 1392 goto err_exit; 1393 if (video_register_device(usbvision->rdev, VFL_TYPE_RADIO, radio_nr) < 0) 1394 goto err_exit; 1395 printk(KERN_INFO "USBVision[%d]: registered USBVision Radio device %s [v4l2]\n", 1396 usbvision->nr, video_device_node_name(usbvision->rdev)); 1397 } 1398 /* all done */ 1399 return 0; 1400 1401 err_exit: 1402 dev_err(&usbvision->dev->dev, 1403 "USBVision[%d]: video_register_device() failed\n", 1404 usbvision->nr); 1405 usbvision_unregister_video(usbvision); 1406 return -1; 1407 } 1408 1409 /* 1410 * usbvision_alloc() 1411 * 1412 * This code allocates the struct usb_usbvision. 1413 * It is filled with default values. 1414 * 1415 * Returns NULL on error, a pointer to usb_usbvision else. 1416 * 1417 */ 1418 static struct usb_usbvision *usbvision_alloc(struct usb_device *dev, 1419 struct usb_interface *intf) 1420 { 1421 struct usb_usbvision *usbvision; 1422 1423 usbvision = kzalloc(sizeof(struct usb_usbvision), GFP_KERNEL); 1424 if (usbvision == NULL) 1425 return NULL; 1426 1427 usbvision->dev = dev; 1428 if (v4l2_device_register(&intf->dev, &usbvision->v4l2_dev)) 1429 goto err_free; 1430 1431 mutex_init(&usbvision->v4l2_lock); 1432 1433 /* prepare control urb for control messages during interrupts */ 1434 usbvision->ctrl_urb = usb_alloc_urb(USBVISION_URB_FRAMES, GFP_KERNEL); 1435 if (usbvision->ctrl_urb == NULL) 1436 goto err_unreg; 1437 init_waitqueue_head(&usbvision->ctrl_urb_wq); 1438 1439 usbvision_init_power_off_timer(usbvision); 1440 1441 return usbvision; 1442 1443 err_unreg: 1444 v4l2_device_unregister(&usbvision->v4l2_dev); 1445 err_free: 1446 kfree(usbvision); 1447 return NULL; 1448 } 1449 1450 /* 1451 * usbvision_release() 1452 * 1453 * This code does final release of struct usb_usbvision. This happens 1454 * after the device is disconnected -and- all clients closed their files. 1455 * 1456 */ 1457 static void usbvision_release(struct usb_usbvision *usbvision) 1458 { 1459 PDEBUG(DBG_PROBE, ""); 1460 1461 usbvision_reset_power_off_timer(usbvision); 1462 1463 usbvision->initialized = 0; 1464 1465 usbvision_remove_sysfs(usbvision->vdev); 1466 usbvision_unregister_video(usbvision); 1467 kfree(usbvision->alt_max_pkt_size); 1468 1469 usb_free_urb(usbvision->ctrl_urb); 1470 1471 v4l2_device_unregister(&usbvision->v4l2_dev); 1472 kfree(usbvision); 1473 1474 PDEBUG(DBG_PROBE, "success"); 1475 } 1476 1477 1478 /*********************** usb interface **********************************/ 1479 1480 static void usbvision_configure_video(struct usb_usbvision *usbvision) 1481 { 1482 int model; 1483 1484 if (usbvision == NULL) 1485 return; 1486 1487 model = usbvision->dev_model; 1488 usbvision->palette = usbvision_v4l2_format[2]; /* V4L2_PIX_FMT_RGB24; */ 1489 1490 if (usbvision_device_data[usbvision->dev_model].vin_reg2_override) { 1491 usbvision->vin_reg2_preset = 1492 usbvision_device_data[usbvision->dev_model].vin_reg2; 1493 } else { 1494 usbvision->vin_reg2_preset = 0; 1495 } 1496 1497 usbvision->tvnorm_id = usbvision_device_data[model].video_norm; 1498 1499 usbvision->video_inputs = usbvision_device_data[model].video_channels; 1500 usbvision->ctl_input = 0; 1501 1502 /* This should be here to make i2c clients to be able to register */ 1503 /* first switch off audio */ 1504 if (usbvision_device_data[model].audio_channels > 0) 1505 usbvision_audio_off(usbvision); 1506 if (!power_on_at_open) { 1507 /* and then power up the noisy tuner */ 1508 usbvision_power_on(usbvision); 1509 usbvision_i2c_register(usbvision); 1510 } 1511 } 1512 1513 /* 1514 * usbvision_probe() 1515 * 1516 * This procedure queries device descriptor and accepts the interface 1517 * if it looks like USBVISION video device 1518 * 1519 */ 1520 static int usbvision_probe(struct usb_interface *intf, 1521 const struct usb_device_id *devid) 1522 { 1523 struct usb_device *dev = usb_get_dev(interface_to_usbdev(intf)); 1524 struct usb_interface *uif; 1525 __u8 ifnum = intf->altsetting->desc.bInterfaceNumber; 1526 const struct usb_host_interface *interface; 1527 struct usb_usbvision *usbvision = NULL; 1528 const struct usb_endpoint_descriptor *endpoint; 1529 int model, i; 1530 1531 PDEBUG(DBG_PROBE, "VID=%#04x, PID=%#04x, ifnum=%u", 1532 dev->descriptor.idVendor, 1533 dev->descriptor.idProduct, ifnum); 1534 1535 model = devid->driver_info; 1536 if (model < 0 || model >= usbvision_device_data_size) { 1537 PDEBUG(DBG_PROBE, "model out of bounds %d", model); 1538 return -ENODEV; 1539 } 1540 printk(KERN_INFO "%s: %s found\n", __func__, 1541 usbvision_device_data[model].model_string); 1542 1543 if (usbvision_device_data[model].interface >= 0) 1544 interface = &dev->actconfig->interface[usbvision_device_data[model].interface]->altsetting[0]; 1545 else 1546 interface = &dev->actconfig->interface[ifnum]->altsetting[0]; 1547 endpoint = &interface->endpoint[1].desc; 1548 if (!usb_endpoint_xfer_isoc(endpoint)) { 1549 dev_err(&intf->dev, "%s: interface %d. has non-ISO endpoint!\n", 1550 __func__, ifnum); 1551 dev_err(&intf->dev, "%s: Endpoint attributes %d", 1552 __func__, endpoint->bmAttributes); 1553 return -ENODEV; 1554 } 1555 if (usb_endpoint_dir_out(endpoint)) { 1556 dev_err(&intf->dev, "%s: interface %d. has ISO OUT endpoint!\n", 1557 __func__, ifnum); 1558 return -ENODEV; 1559 } 1560 1561 usbvision = usbvision_alloc(dev, intf); 1562 if (usbvision == NULL) { 1563 dev_err(&intf->dev, "%s: couldn't allocate USBVision struct\n", __func__); 1564 return -ENOMEM; 1565 } 1566 1567 if (dev->descriptor.bNumConfigurations > 1) 1568 usbvision->bridge_type = BRIDGE_NT1004; 1569 else if (model == DAZZLE_DVC_90_REV_1_SECAM) 1570 usbvision->bridge_type = BRIDGE_NT1005; 1571 else 1572 usbvision->bridge_type = BRIDGE_NT1003; 1573 PDEBUG(DBG_PROBE, "bridge_type %d", usbvision->bridge_type); 1574 1575 /* compute alternate max packet sizes */ 1576 uif = dev->actconfig->interface[0]; 1577 1578 usbvision->num_alt = uif->num_altsetting; 1579 PDEBUG(DBG_PROBE, "Alternate settings: %i", usbvision->num_alt); 1580 usbvision->alt_max_pkt_size = kmalloc(32 * usbvision->num_alt, GFP_KERNEL); 1581 if (usbvision->alt_max_pkt_size == NULL) { 1582 dev_err(&intf->dev, "usbvision: out of memory!\n"); 1583 usbvision_release(usbvision); 1584 return -ENOMEM; 1585 } 1586 1587 for (i = 0; i < usbvision->num_alt; i++) { 1588 u16 tmp = le16_to_cpu(uif->altsetting[i].endpoint[1].desc. 1589 wMaxPacketSize); 1590 usbvision->alt_max_pkt_size[i] = 1591 (tmp & 0x07ff) * (((tmp & 0x1800) >> 11) + 1); 1592 PDEBUG(DBG_PROBE, "Alternate setting %i, max size= %i", i, 1593 usbvision->alt_max_pkt_size[i]); 1594 } 1595 1596 1597 usbvision->nr = usbvision_nr++; 1598 1599 usbvision->have_tuner = usbvision_device_data[model].tuner; 1600 if (usbvision->have_tuner) 1601 usbvision->tuner_type = usbvision_device_data[model].tuner_type; 1602 1603 usbvision->dev_model = model; 1604 usbvision->remove_pending = 0; 1605 usbvision->iface = ifnum; 1606 usbvision->iface_alt = 0; 1607 usbvision->video_endp = endpoint->bEndpointAddress; 1608 usbvision->isoc_packet_size = 0; 1609 usbvision->usb_bandwidth = 0; 1610 usbvision->user = 0; 1611 usbvision->streaming = stream_off; 1612 usbvision_configure_video(usbvision); 1613 usbvision_register_video(usbvision); 1614 1615 usbvision_create_sysfs(usbvision->vdev); 1616 1617 PDEBUG(DBG_PROBE, "success"); 1618 return 0; 1619 } 1620 1621 1622 /* 1623 * usbvision_disconnect() 1624 * 1625 * This procedure stops all driver activity, deallocates interface-private 1626 * structure (pointed by 'ptr') and after that driver should be removable 1627 * with no ill consequences. 1628 * 1629 */ 1630 static void usbvision_disconnect(struct usb_interface *intf) 1631 { 1632 struct usb_usbvision *usbvision = to_usbvision(usb_get_intfdata(intf)); 1633 1634 PDEBUG(DBG_PROBE, ""); 1635 1636 if (usbvision == NULL) { 1637 pr_err("%s: usb_get_intfdata() failed\n", __func__); 1638 return; 1639 } 1640 1641 mutex_lock(&usbvision->v4l2_lock); 1642 1643 /* At this time we ask to cancel outstanding URBs */ 1644 usbvision_stop_isoc(usbvision); 1645 1646 v4l2_device_disconnect(&usbvision->v4l2_dev); 1647 1648 if (usbvision->power) { 1649 usbvision_i2c_unregister(usbvision); 1650 usbvision_power_off(usbvision); 1651 } 1652 usbvision->remove_pending = 1; /* Now all ISO data will be ignored */ 1653 1654 usb_put_dev(usbvision->dev); 1655 usbvision->dev = NULL; /* USB device is no more */ 1656 1657 mutex_unlock(&usbvision->v4l2_lock); 1658 1659 if (usbvision->user) { 1660 printk(KERN_INFO "%s: In use, disconnect pending\n", 1661 __func__); 1662 wake_up_interruptible(&usbvision->wait_frame); 1663 wake_up_interruptible(&usbvision->wait_stream); 1664 } else { 1665 usbvision_release(usbvision); 1666 } 1667 1668 PDEBUG(DBG_PROBE, "success"); 1669 } 1670 1671 static struct usb_driver usbvision_driver = { 1672 .name = "usbvision", 1673 .id_table = usbvision_table, 1674 .probe = usbvision_probe, 1675 .disconnect = usbvision_disconnect, 1676 }; 1677 1678 /* 1679 * usbvision_init() 1680 * 1681 * This code is run to initialize the driver. 1682 * 1683 */ 1684 static int __init usbvision_init(void) 1685 { 1686 int err_code; 1687 1688 PDEBUG(DBG_PROBE, ""); 1689 1690 PDEBUG(DBG_IO, "IO debugging is enabled [video]"); 1691 PDEBUG(DBG_PROBE, "PROBE debugging is enabled [video]"); 1692 PDEBUG(DBG_MMAP, "MMAP debugging is enabled [video]"); 1693 1694 /* disable planar mode support unless compression enabled */ 1695 if (isoc_mode != ISOC_MODE_COMPRESS) { 1696 /* FIXME : not the right way to set supported flag */ 1697 usbvision_v4l2_format[6].supported = 0; /* V4L2_PIX_FMT_YVU420 */ 1698 usbvision_v4l2_format[7].supported = 0; /* V4L2_PIX_FMT_YUV422P */ 1699 } 1700 1701 err_code = usb_register(&usbvision_driver); 1702 1703 if (err_code == 0) { 1704 printk(KERN_INFO DRIVER_DESC " : " USBVISION_VERSION_STRING "\n"); 1705 PDEBUG(DBG_PROBE, "success"); 1706 } 1707 return err_code; 1708 } 1709 1710 static void __exit usbvision_exit(void) 1711 { 1712 PDEBUG(DBG_PROBE, ""); 1713 1714 usb_deregister(&usbvision_driver); 1715 PDEBUG(DBG_PROBE, "success"); 1716 } 1717 1718 module_init(usbvision_init); 1719 module_exit(usbvision_exit); 1720 1721 1722 1723 1724 1725 /* LDV_COMMENT_BEGIN_MAIN */ 1726 #ifdef LDV_MAIN1_sequence_infinite_withcheck_stateful 1727 1728 /*###########################################################################*/ 1729 1730 /*############## Driver Environment Generator 0.2 output ####################*/ 1731 1732 /*###########################################################################*/ 1733 1734 1735 1736 /* LDV_COMMENT_FUNCTION_DECLARE_LDV Special function for LDV verifier. Test if all kernel resources are correctly released by driver before driver will be unloaded. */ 1737 void ldv_check_final_state(void); 1738 1739 /* LDV_COMMENT_FUNCTION_DECLARE_LDV Special function for LDV verifier. Test correct return result. */ 1740 void ldv_check_return_value(int res); 1741 1742 /* LDV_COMMENT_FUNCTION_DECLARE_LDV Special function for LDV verifier. Test correct return result of probe() function. */ 1743 void ldv_check_return_value_probe(int res); 1744 1745 /* LDV_COMMENT_FUNCTION_DECLARE_LDV Special function for LDV verifier. Initializes the model. */ 1746 void ldv_initialize(void); 1747 1748 /* LDV_COMMENT_FUNCTION_DECLARE_LDV Special function for LDV verifier. Reinitializes the model between distinct model function calls. */ 1749 void ldv_handler_precall(void); 1750 1751 /* LDV_COMMENT_FUNCTION_DECLARE_LDV Special function for LDV verifier. Returns arbitrary interger value. */ 1752 int nondet_int(void); 1753 1754 /* LDV_COMMENT_VAR_DECLARE_LDV Special variable for LDV verifier. */ 1755 int LDV_IN_INTERRUPT; 1756 1757 /* LDV_COMMENT_FUNCTION_MAIN Main function for LDV verifier. */ 1758 void ldv_main1_sequence_infinite_withcheck_stateful(void) { 1759 1760 1761 1762 /* LDV_COMMENT_BEGIN_VARIABLE_DECLARATION_PART */ 1763 /*============================= VARIABLE DECLARATION PART =============================*/ 1764 /** STRUCT: struct type: v4l2_file_operations, struct name: usbvision_fops **/ 1765 /* content: static int usbvision_v4l2_open(struct file *file)*/ 1766 /* LDV_COMMENT_BEGIN_PREP */ 1767 #define DRIVER_AUTHOR \ 1768 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 1769 "Dwaine Garden <DwaineGarden@rogers.com>" 1770 #define DRIVER_NAME "usbvision" 1771 #define DRIVER_ALIAS "USBVision" 1772 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 1773 #define DRIVER_LICENSE "GPL" 1774 #define USBVISION_VERSION_STRING "0.9.11" 1775 #define ENABLE_HEXDUMP 0 1776 #ifdef USBVISION_DEBUG 1777 #define PDEBUG(level, fmt, args...) { \ 1778 if (video_debug & (level)) \ 1779 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 1780 __func__, __LINE__ , ## args); \ 1781 } 1782 #else 1783 #define PDEBUG(level, fmt, args...) do {} while (0) 1784 #endif 1785 #define DBG_IO (1 << 1) 1786 #define DBG_PROBE (1 << 2) 1787 #define DBG_MMAP (1 << 3) 1788 #define rmspace(str) while (*str == ' ') str++; 1789 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 1790 #define YES_NO(x) ((x) ? "Yes" : "No") 1791 /* LDV_COMMENT_END_PREP */ 1792 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "usbvision_v4l2_open" */ 1793 struct file * var_group1; 1794 /* LDV_COMMENT_VAR_DECLARE Variable declaration for test return result from function call "usbvision_v4l2_open" */ 1795 static int res_usbvision_v4l2_open_12; 1796 /* LDV_COMMENT_BEGIN_PREP */ 1797 #ifdef CONFIG_VIDEO_ADV_DEBUG 1798 #endif 1799 #ifdef CONFIG_VIDEO_ADV_DEBUG 1800 #endif 1801 /* LDV_COMMENT_END_PREP */ 1802 /* content: static int usbvision_v4l2_close(struct file *file)*/ 1803 /* LDV_COMMENT_BEGIN_PREP */ 1804 #define DRIVER_AUTHOR \ 1805 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 1806 "Dwaine Garden <DwaineGarden@rogers.com>" 1807 #define DRIVER_NAME "usbvision" 1808 #define DRIVER_ALIAS "USBVision" 1809 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 1810 #define DRIVER_LICENSE "GPL" 1811 #define USBVISION_VERSION_STRING "0.9.11" 1812 #define ENABLE_HEXDUMP 0 1813 #ifdef USBVISION_DEBUG 1814 #define PDEBUG(level, fmt, args...) { \ 1815 if (video_debug & (level)) \ 1816 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 1817 __func__, __LINE__ , ## args); \ 1818 } 1819 #else 1820 #define PDEBUG(level, fmt, args...) do {} while (0) 1821 #endif 1822 #define DBG_IO (1 << 1) 1823 #define DBG_PROBE (1 << 2) 1824 #define DBG_MMAP (1 << 3) 1825 #define rmspace(str) while (*str == ' ') str++; 1826 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 1827 #define YES_NO(x) ((x) ? "Yes" : "No") 1828 /* LDV_COMMENT_END_PREP */ 1829 /* LDV_COMMENT_BEGIN_PREP */ 1830 #ifdef CONFIG_VIDEO_ADV_DEBUG 1831 #endif 1832 #ifdef CONFIG_VIDEO_ADV_DEBUG 1833 #endif 1834 /* LDV_COMMENT_END_PREP */ 1835 /* content: static ssize_t usbvision_v4l2_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)*/ 1836 /* LDV_COMMENT_BEGIN_PREP */ 1837 #define DRIVER_AUTHOR \ 1838 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 1839 "Dwaine Garden <DwaineGarden@rogers.com>" 1840 #define DRIVER_NAME "usbvision" 1841 #define DRIVER_ALIAS "USBVision" 1842 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 1843 #define DRIVER_LICENSE "GPL" 1844 #define USBVISION_VERSION_STRING "0.9.11" 1845 #define ENABLE_HEXDUMP 0 1846 #ifdef USBVISION_DEBUG 1847 #define PDEBUG(level, fmt, args...) { \ 1848 if (video_debug & (level)) \ 1849 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 1850 __func__, __LINE__ , ## args); \ 1851 } 1852 #else 1853 #define PDEBUG(level, fmt, args...) do {} while (0) 1854 #endif 1855 #define DBG_IO (1 << 1) 1856 #define DBG_PROBE (1 << 2) 1857 #define DBG_MMAP (1 << 3) 1858 #define rmspace(str) while (*str == ' ') str++; 1859 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 1860 #define YES_NO(x) ((x) ? "Yes" : "No") 1861 #ifdef CONFIG_VIDEO_ADV_DEBUG 1862 #endif 1863 /* LDV_COMMENT_END_PREP */ 1864 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "usbvision_v4l2_read" */ 1865 char __user * var_usbvision_v4l2_read_42_p1; 1866 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "usbvision_v4l2_read" */ 1867 size_t var_usbvision_v4l2_read_42_p2; 1868 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "usbvision_v4l2_read" */ 1869 loff_t * var_usbvision_v4l2_read_42_p3; 1870 /* LDV_COMMENT_BEGIN_PREP */ 1871 #ifdef CONFIG_VIDEO_ADV_DEBUG 1872 #endif 1873 /* LDV_COMMENT_END_PREP */ 1874 /* content: static int usbvision_v4l2_mmap(struct file *file, struct vm_area_struct *vma)*/ 1875 /* LDV_COMMENT_BEGIN_PREP */ 1876 #define DRIVER_AUTHOR \ 1877 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 1878 "Dwaine Garden <DwaineGarden@rogers.com>" 1879 #define DRIVER_NAME "usbvision" 1880 #define DRIVER_ALIAS "USBVision" 1881 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 1882 #define DRIVER_LICENSE "GPL" 1883 #define USBVISION_VERSION_STRING "0.9.11" 1884 #define ENABLE_HEXDUMP 0 1885 #ifdef USBVISION_DEBUG 1886 #define PDEBUG(level, fmt, args...) { \ 1887 if (video_debug & (level)) \ 1888 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 1889 __func__, __LINE__ , ## args); \ 1890 } 1891 #else 1892 #define PDEBUG(level, fmt, args...) do {} while (0) 1893 #endif 1894 #define DBG_IO (1 << 1) 1895 #define DBG_PROBE (1 << 2) 1896 #define DBG_MMAP (1 << 3) 1897 #define rmspace(str) while (*str == ' ') str++; 1898 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 1899 #define YES_NO(x) ((x) ? "Yes" : "No") 1900 #ifdef CONFIG_VIDEO_ADV_DEBUG 1901 #endif 1902 /* LDV_COMMENT_END_PREP */ 1903 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "usbvision_v4l2_mmap" */ 1904 struct vm_area_struct * var_group2; 1905 /* LDV_COMMENT_BEGIN_PREP */ 1906 #ifdef CONFIG_VIDEO_ADV_DEBUG 1907 #endif 1908 /* LDV_COMMENT_END_PREP */ 1909 1910 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 1911 /* content: static int vidioc_querycap(struct file *file, void *priv, struct v4l2_capability *vc)*/ 1912 /* LDV_COMMENT_BEGIN_PREP */ 1913 #define DRIVER_AUTHOR \ 1914 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 1915 "Dwaine Garden <DwaineGarden@rogers.com>" 1916 #define DRIVER_NAME "usbvision" 1917 #define DRIVER_ALIAS "USBVision" 1918 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 1919 #define DRIVER_LICENSE "GPL" 1920 #define USBVISION_VERSION_STRING "0.9.11" 1921 #define ENABLE_HEXDUMP 0 1922 #ifdef USBVISION_DEBUG 1923 #define PDEBUG(level, fmt, args...) { \ 1924 if (video_debug & (level)) \ 1925 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 1926 __func__, __LINE__ , ## args); \ 1927 } 1928 #else 1929 #define PDEBUG(level, fmt, args...) do {} while (0) 1930 #endif 1931 #define DBG_IO (1 << 1) 1932 #define DBG_PROBE (1 << 2) 1933 #define DBG_MMAP (1 << 3) 1934 #define rmspace(str) while (*str == ' ') str++; 1935 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 1936 #define YES_NO(x) ((x) ? "Yes" : "No") 1937 #ifdef CONFIG_VIDEO_ADV_DEBUG 1938 #endif 1939 /* LDV_COMMENT_END_PREP */ 1940 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_querycap" */ 1941 void * var_vidioc_querycap_16_p1; 1942 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_querycap" */ 1943 struct v4l2_capability * var_vidioc_querycap_16_p2; 1944 /* LDV_COMMENT_BEGIN_PREP */ 1945 #ifdef CONFIG_VIDEO_ADV_DEBUG 1946 #endif 1947 /* LDV_COMMENT_END_PREP */ 1948 /* content: static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, struct v4l2_fmtdesc *vfd)*/ 1949 /* LDV_COMMENT_BEGIN_PREP */ 1950 #define DRIVER_AUTHOR \ 1951 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 1952 "Dwaine Garden <DwaineGarden@rogers.com>" 1953 #define DRIVER_NAME "usbvision" 1954 #define DRIVER_ALIAS "USBVision" 1955 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 1956 #define DRIVER_LICENSE "GPL" 1957 #define USBVISION_VERSION_STRING "0.9.11" 1958 #define ENABLE_HEXDUMP 0 1959 #ifdef USBVISION_DEBUG 1960 #define PDEBUG(level, fmt, args...) { \ 1961 if (video_debug & (level)) \ 1962 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 1963 __func__, __LINE__ , ## args); \ 1964 } 1965 #else 1966 #define PDEBUG(level, fmt, args...) do {} while (0) 1967 #endif 1968 #define DBG_IO (1 << 1) 1969 #define DBG_PROBE (1 << 2) 1970 #define DBG_MMAP (1 << 3) 1971 #define rmspace(str) while (*str == ' ') str++; 1972 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 1973 #define YES_NO(x) ((x) ? "Yes" : "No") 1974 #ifdef CONFIG_VIDEO_ADV_DEBUG 1975 #endif 1976 /* LDV_COMMENT_END_PREP */ 1977 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_enum_fmt_vid_cap" */ 1978 void * var_vidioc_enum_fmt_vid_cap_37_p1; 1979 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_enum_fmt_vid_cap" */ 1980 struct v4l2_fmtdesc * var_vidioc_enum_fmt_vid_cap_37_p2; 1981 /* LDV_COMMENT_BEGIN_PREP */ 1982 #ifdef CONFIG_VIDEO_ADV_DEBUG 1983 #endif 1984 /* LDV_COMMENT_END_PREP */ 1985 /* content: static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *vf)*/ 1986 /* LDV_COMMENT_BEGIN_PREP */ 1987 #define DRIVER_AUTHOR \ 1988 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 1989 "Dwaine Garden <DwaineGarden@rogers.com>" 1990 #define DRIVER_NAME "usbvision" 1991 #define DRIVER_ALIAS "USBVision" 1992 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 1993 #define DRIVER_LICENSE "GPL" 1994 #define USBVISION_VERSION_STRING "0.9.11" 1995 #define ENABLE_HEXDUMP 0 1996 #ifdef USBVISION_DEBUG 1997 #define PDEBUG(level, fmt, args...) { \ 1998 if (video_debug & (level)) \ 1999 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2000 __func__, __LINE__ , ## args); \ 2001 } 2002 #else 2003 #define PDEBUG(level, fmt, args...) do {} while (0) 2004 #endif 2005 #define DBG_IO (1 << 1) 2006 #define DBG_PROBE (1 << 2) 2007 #define DBG_MMAP (1 << 3) 2008 #define rmspace(str) while (*str == ' ') str++; 2009 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2010 #define YES_NO(x) ((x) ? "Yes" : "No") 2011 #ifdef CONFIG_VIDEO_ADV_DEBUG 2012 #endif 2013 /* LDV_COMMENT_END_PREP */ 2014 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_fmt_vid_cap" */ 2015 void * var_vidioc_g_fmt_vid_cap_38_p1; 2016 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_fmt_vid_cap" */ 2017 struct v4l2_format * var_vidioc_g_fmt_vid_cap_38_p2; 2018 /* LDV_COMMENT_BEGIN_PREP */ 2019 #ifdef CONFIG_VIDEO_ADV_DEBUG 2020 #endif 2021 /* LDV_COMMENT_END_PREP */ 2022 /* content: static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *vf)*/ 2023 /* LDV_COMMENT_BEGIN_PREP */ 2024 #define DRIVER_AUTHOR \ 2025 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2026 "Dwaine Garden <DwaineGarden@rogers.com>" 2027 #define DRIVER_NAME "usbvision" 2028 #define DRIVER_ALIAS "USBVision" 2029 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2030 #define DRIVER_LICENSE "GPL" 2031 #define USBVISION_VERSION_STRING "0.9.11" 2032 #define ENABLE_HEXDUMP 0 2033 #ifdef USBVISION_DEBUG 2034 #define PDEBUG(level, fmt, args...) { \ 2035 if (video_debug & (level)) \ 2036 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2037 __func__, __LINE__ , ## args); \ 2038 } 2039 #else 2040 #define PDEBUG(level, fmt, args...) do {} while (0) 2041 #endif 2042 #define DBG_IO (1 << 1) 2043 #define DBG_PROBE (1 << 2) 2044 #define DBG_MMAP (1 << 3) 2045 #define rmspace(str) while (*str == ' ') str++; 2046 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2047 #define YES_NO(x) ((x) ? "Yes" : "No") 2048 #ifdef CONFIG_VIDEO_ADV_DEBUG 2049 #endif 2050 /* LDV_COMMENT_END_PREP */ 2051 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_try_fmt_vid_cap" */ 2052 void * var_vidioc_try_fmt_vid_cap_39_p1; 2053 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_try_fmt_vid_cap" */ 2054 struct v4l2_format * var_vidioc_try_fmt_vid_cap_39_p2; 2055 /* LDV_COMMENT_BEGIN_PREP */ 2056 #ifdef CONFIG_VIDEO_ADV_DEBUG 2057 #endif 2058 /* LDV_COMMENT_END_PREP */ 2059 /* content: static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *vf)*/ 2060 /* LDV_COMMENT_BEGIN_PREP */ 2061 #define DRIVER_AUTHOR \ 2062 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2063 "Dwaine Garden <DwaineGarden@rogers.com>" 2064 #define DRIVER_NAME "usbvision" 2065 #define DRIVER_ALIAS "USBVision" 2066 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2067 #define DRIVER_LICENSE "GPL" 2068 #define USBVISION_VERSION_STRING "0.9.11" 2069 #define ENABLE_HEXDUMP 0 2070 #ifdef USBVISION_DEBUG 2071 #define PDEBUG(level, fmt, args...) { \ 2072 if (video_debug & (level)) \ 2073 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2074 __func__, __LINE__ , ## args); \ 2075 } 2076 #else 2077 #define PDEBUG(level, fmt, args...) do {} while (0) 2078 #endif 2079 #define DBG_IO (1 << 1) 2080 #define DBG_PROBE (1 << 2) 2081 #define DBG_MMAP (1 << 3) 2082 #define rmspace(str) while (*str == ' ') str++; 2083 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2084 #define YES_NO(x) ((x) ? "Yes" : "No") 2085 #ifdef CONFIG_VIDEO_ADV_DEBUG 2086 #endif 2087 /* LDV_COMMENT_END_PREP */ 2088 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_fmt_vid_cap" */ 2089 void * var_vidioc_s_fmt_vid_cap_40_p1; 2090 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_fmt_vid_cap" */ 2091 struct v4l2_format * var_vidioc_s_fmt_vid_cap_40_p2; 2092 /* LDV_COMMENT_BEGIN_PREP */ 2093 #ifdef CONFIG_VIDEO_ADV_DEBUG 2094 #endif 2095 /* LDV_COMMENT_END_PREP */ 2096 /* content: static int vidioc_reqbufs(struct file *file, void *priv, struct v4l2_requestbuffers *vr)*/ 2097 /* LDV_COMMENT_BEGIN_PREP */ 2098 #define DRIVER_AUTHOR \ 2099 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2100 "Dwaine Garden <DwaineGarden@rogers.com>" 2101 #define DRIVER_NAME "usbvision" 2102 #define DRIVER_ALIAS "USBVision" 2103 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2104 #define DRIVER_LICENSE "GPL" 2105 #define USBVISION_VERSION_STRING "0.9.11" 2106 #define ENABLE_HEXDUMP 0 2107 #ifdef USBVISION_DEBUG 2108 #define PDEBUG(level, fmt, args...) { \ 2109 if (video_debug & (level)) \ 2110 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2111 __func__, __LINE__ , ## args); \ 2112 } 2113 #else 2114 #define PDEBUG(level, fmt, args...) do {} while (0) 2115 #endif 2116 #define DBG_IO (1 << 1) 2117 #define DBG_PROBE (1 << 2) 2118 #define DBG_MMAP (1 << 3) 2119 #define rmspace(str) while (*str == ' ') str++; 2120 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2121 #define YES_NO(x) ((x) ? "Yes" : "No") 2122 #ifdef CONFIG_VIDEO_ADV_DEBUG 2123 #endif 2124 /* LDV_COMMENT_END_PREP */ 2125 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_reqbufs" */ 2126 void * var_vidioc_reqbufs_31_p1; 2127 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_reqbufs" */ 2128 struct v4l2_requestbuffers * var_vidioc_reqbufs_31_p2; 2129 /* LDV_COMMENT_BEGIN_PREP */ 2130 #ifdef CONFIG_VIDEO_ADV_DEBUG 2131 #endif 2132 /* LDV_COMMENT_END_PREP */ 2133 /* content: static int vidioc_querybuf(struct file *file, void *priv, struct v4l2_buffer *vb)*/ 2134 /* LDV_COMMENT_BEGIN_PREP */ 2135 #define DRIVER_AUTHOR \ 2136 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2137 "Dwaine Garden <DwaineGarden@rogers.com>" 2138 #define DRIVER_NAME "usbvision" 2139 #define DRIVER_ALIAS "USBVision" 2140 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2141 #define DRIVER_LICENSE "GPL" 2142 #define USBVISION_VERSION_STRING "0.9.11" 2143 #define ENABLE_HEXDUMP 0 2144 #ifdef USBVISION_DEBUG 2145 #define PDEBUG(level, fmt, args...) { \ 2146 if (video_debug & (level)) \ 2147 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2148 __func__, __LINE__ , ## args); \ 2149 } 2150 #else 2151 #define PDEBUG(level, fmt, args...) do {} while (0) 2152 #endif 2153 #define DBG_IO (1 << 1) 2154 #define DBG_PROBE (1 << 2) 2155 #define DBG_MMAP (1 << 3) 2156 #define rmspace(str) while (*str == ' ') str++; 2157 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2158 #define YES_NO(x) ((x) ? "Yes" : "No") 2159 #ifdef CONFIG_VIDEO_ADV_DEBUG 2160 #endif 2161 /* LDV_COMMENT_END_PREP */ 2162 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_querybuf" */ 2163 void * var_vidioc_querybuf_32_p1; 2164 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_querybuf" */ 2165 struct v4l2_buffer * var_vidioc_querybuf_32_p2; 2166 /* LDV_COMMENT_BEGIN_PREP */ 2167 #ifdef CONFIG_VIDEO_ADV_DEBUG 2168 #endif 2169 /* LDV_COMMENT_END_PREP */ 2170 /* content: static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *vb)*/ 2171 /* LDV_COMMENT_BEGIN_PREP */ 2172 #define DRIVER_AUTHOR \ 2173 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2174 "Dwaine Garden <DwaineGarden@rogers.com>" 2175 #define DRIVER_NAME "usbvision" 2176 #define DRIVER_ALIAS "USBVision" 2177 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2178 #define DRIVER_LICENSE "GPL" 2179 #define USBVISION_VERSION_STRING "0.9.11" 2180 #define ENABLE_HEXDUMP 0 2181 #ifdef USBVISION_DEBUG 2182 #define PDEBUG(level, fmt, args...) { \ 2183 if (video_debug & (level)) \ 2184 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2185 __func__, __LINE__ , ## args); \ 2186 } 2187 #else 2188 #define PDEBUG(level, fmt, args...) do {} while (0) 2189 #endif 2190 #define DBG_IO (1 << 1) 2191 #define DBG_PROBE (1 << 2) 2192 #define DBG_MMAP (1 << 3) 2193 #define rmspace(str) while (*str == ' ') str++; 2194 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2195 #define YES_NO(x) ((x) ? "Yes" : "No") 2196 #ifdef CONFIG_VIDEO_ADV_DEBUG 2197 #endif 2198 /* LDV_COMMENT_END_PREP */ 2199 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_qbuf" */ 2200 void * var_vidioc_qbuf_33_p1; 2201 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_qbuf" */ 2202 struct v4l2_buffer * var_vidioc_qbuf_33_p2; 2203 /* LDV_COMMENT_BEGIN_PREP */ 2204 #ifdef CONFIG_VIDEO_ADV_DEBUG 2205 #endif 2206 /* LDV_COMMENT_END_PREP */ 2207 /* content: static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *vb)*/ 2208 /* LDV_COMMENT_BEGIN_PREP */ 2209 #define DRIVER_AUTHOR \ 2210 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2211 "Dwaine Garden <DwaineGarden@rogers.com>" 2212 #define DRIVER_NAME "usbvision" 2213 #define DRIVER_ALIAS "USBVision" 2214 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2215 #define DRIVER_LICENSE "GPL" 2216 #define USBVISION_VERSION_STRING "0.9.11" 2217 #define ENABLE_HEXDUMP 0 2218 #ifdef USBVISION_DEBUG 2219 #define PDEBUG(level, fmt, args...) { \ 2220 if (video_debug & (level)) \ 2221 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2222 __func__, __LINE__ , ## args); \ 2223 } 2224 #else 2225 #define PDEBUG(level, fmt, args...) do {} while (0) 2226 #endif 2227 #define DBG_IO (1 << 1) 2228 #define DBG_PROBE (1 << 2) 2229 #define DBG_MMAP (1 << 3) 2230 #define rmspace(str) while (*str == ' ') str++; 2231 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2232 #define YES_NO(x) ((x) ? "Yes" : "No") 2233 #ifdef CONFIG_VIDEO_ADV_DEBUG 2234 #endif 2235 /* LDV_COMMENT_END_PREP */ 2236 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_dqbuf" */ 2237 void * var_vidioc_dqbuf_34_p1; 2238 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_dqbuf" */ 2239 struct v4l2_buffer * var_vidioc_dqbuf_34_p2; 2240 /* LDV_COMMENT_BEGIN_PREP */ 2241 #ifdef CONFIG_VIDEO_ADV_DEBUG 2242 #endif 2243 /* LDV_COMMENT_END_PREP */ 2244 /* content: static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id)*/ 2245 /* LDV_COMMENT_BEGIN_PREP */ 2246 #define DRIVER_AUTHOR \ 2247 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2248 "Dwaine Garden <DwaineGarden@rogers.com>" 2249 #define DRIVER_NAME "usbvision" 2250 #define DRIVER_ALIAS "USBVision" 2251 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2252 #define DRIVER_LICENSE "GPL" 2253 #define USBVISION_VERSION_STRING "0.9.11" 2254 #define ENABLE_HEXDUMP 0 2255 #ifdef USBVISION_DEBUG 2256 #define PDEBUG(level, fmt, args...) { \ 2257 if (video_debug & (level)) \ 2258 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2259 __func__, __LINE__ , ## args); \ 2260 } 2261 #else 2262 #define PDEBUG(level, fmt, args...) do {} while (0) 2263 #endif 2264 #define DBG_IO (1 << 1) 2265 #define DBG_PROBE (1 << 2) 2266 #define DBG_MMAP (1 << 3) 2267 #define rmspace(str) while (*str == ' ') str++; 2268 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2269 #define YES_NO(x) ((x) ? "Yes" : "No") 2270 #ifdef CONFIG_VIDEO_ADV_DEBUG 2271 #endif 2272 /* LDV_COMMENT_END_PREP */ 2273 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_std" */ 2274 void * var_vidioc_s_std_20_p1; 2275 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_std" */ 2276 v4l2_std_id var_vidioc_s_std_20_p2; 2277 /* LDV_COMMENT_BEGIN_PREP */ 2278 #ifdef CONFIG_VIDEO_ADV_DEBUG 2279 #endif 2280 /* LDV_COMMENT_END_PREP */ 2281 /* content: static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *id)*/ 2282 /* LDV_COMMENT_BEGIN_PREP */ 2283 #define DRIVER_AUTHOR \ 2284 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2285 "Dwaine Garden <DwaineGarden@rogers.com>" 2286 #define DRIVER_NAME "usbvision" 2287 #define DRIVER_ALIAS "USBVision" 2288 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2289 #define DRIVER_LICENSE "GPL" 2290 #define USBVISION_VERSION_STRING "0.9.11" 2291 #define ENABLE_HEXDUMP 0 2292 #ifdef USBVISION_DEBUG 2293 #define PDEBUG(level, fmt, args...) { \ 2294 if (video_debug & (level)) \ 2295 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2296 __func__, __LINE__ , ## args); \ 2297 } 2298 #else 2299 #define PDEBUG(level, fmt, args...) do {} while (0) 2300 #endif 2301 #define DBG_IO (1 << 1) 2302 #define DBG_PROBE (1 << 2) 2303 #define DBG_MMAP (1 << 3) 2304 #define rmspace(str) while (*str == ' ') str++; 2305 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2306 #define YES_NO(x) ((x) ? "Yes" : "No") 2307 #ifdef CONFIG_VIDEO_ADV_DEBUG 2308 #endif 2309 /* LDV_COMMENT_END_PREP */ 2310 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_std" */ 2311 void * var_vidioc_g_std_21_p1; 2312 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_std" */ 2313 v4l2_std_id * var_vidioc_g_std_21_p2; 2314 /* LDV_COMMENT_BEGIN_PREP */ 2315 #ifdef CONFIG_VIDEO_ADV_DEBUG 2316 #endif 2317 /* LDV_COMMENT_END_PREP */ 2318 /* content: static int vidioc_enum_input(struct file *file, void *priv, struct v4l2_input *vi)*/ 2319 /* LDV_COMMENT_BEGIN_PREP */ 2320 #define DRIVER_AUTHOR \ 2321 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2322 "Dwaine Garden <DwaineGarden@rogers.com>" 2323 #define DRIVER_NAME "usbvision" 2324 #define DRIVER_ALIAS "USBVision" 2325 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2326 #define DRIVER_LICENSE "GPL" 2327 #define USBVISION_VERSION_STRING "0.9.11" 2328 #define ENABLE_HEXDUMP 0 2329 #ifdef USBVISION_DEBUG 2330 #define PDEBUG(level, fmt, args...) { \ 2331 if (video_debug & (level)) \ 2332 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2333 __func__, __LINE__ , ## args); \ 2334 } 2335 #else 2336 #define PDEBUG(level, fmt, args...) do {} while (0) 2337 #endif 2338 #define DBG_IO (1 << 1) 2339 #define DBG_PROBE (1 << 2) 2340 #define DBG_MMAP (1 << 3) 2341 #define rmspace(str) while (*str == ' ') str++; 2342 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2343 #define YES_NO(x) ((x) ? "Yes" : "No") 2344 #ifdef CONFIG_VIDEO_ADV_DEBUG 2345 #endif 2346 /* LDV_COMMENT_END_PREP */ 2347 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_enum_input" */ 2348 void * var_vidioc_enum_input_17_p1; 2349 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_enum_input" */ 2350 struct v4l2_input * var_vidioc_enum_input_17_p2; 2351 /* LDV_COMMENT_BEGIN_PREP */ 2352 #ifdef CONFIG_VIDEO_ADV_DEBUG 2353 #endif 2354 /* LDV_COMMENT_END_PREP */ 2355 /* content: static int vidioc_g_input(struct file *file, void *priv, unsigned int *input)*/ 2356 /* LDV_COMMENT_BEGIN_PREP */ 2357 #define DRIVER_AUTHOR \ 2358 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2359 "Dwaine Garden <DwaineGarden@rogers.com>" 2360 #define DRIVER_NAME "usbvision" 2361 #define DRIVER_ALIAS "USBVision" 2362 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2363 #define DRIVER_LICENSE "GPL" 2364 #define USBVISION_VERSION_STRING "0.9.11" 2365 #define ENABLE_HEXDUMP 0 2366 #ifdef USBVISION_DEBUG 2367 #define PDEBUG(level, fmt, args...) { \ 2368 if (video_debug & (level)) \ 2369 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2370 __func__, __LINE__ , ## args); \ 2371 } 2372 #else 2373 #define PDEBUG(level, fmt, args...) do {} while (0) 2374 #endif 2375 #define DBG_IO (1 << 1) 2376 #define DBG_PROBE (1 << 2) 2377 #define DBG_MMAP (1 << 3) 2378 #define rmspace(str) while (*str == ' ') str++; 2379 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2380 #define YES_NO(x) ((x) ? "Yes" : "No") 2381 #ifdef CONFIG_VIDEO_ADV_DEBUG 2382 #endif 2383 /* LDV_COMMENT_END_PREP */ 2384 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_input" */ 2385 void * var_vidioc_g_input_18_p1; 2386 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_input" */ 2387 unsigned int * var_vidioc_g_input_18_p2; 2388 /* LDV_COMMENT_BEGIN_PREP */ 2389 #ifdef CONFIG_VIDEO_ADV_DEBUG 2390 #endif 2391 /* LDV_COMMENT_END_PREP */ 2392 /* content: static int vidioc_s_input(struct file *file, void *priv, unsigned int input)*/ 2393 /* LDV_COMMENT_BEGIN_PREP */ 2394 #define DRIVER_AUTHOR \ 2395 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2396 "Dwaine Garden <DwaineGarden@rogers.com>" 2397 #define DRIVER_NAME "usbvision" 2398 #define DRIVER_ALIAS "USBVision" 2399 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2400 #define DRIVER_LICENSE "GPL" 2401 #define USBVISION_VERSION_STRING "0.9.11" 2402 #define ENABLE_HEXDUMP 0 2403 #ifdef USBVISION_DEBUG 2404 #define PDEBUG(level, fmt, args...) { \ 2405 if (video_debug & (level)) \ 2406 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2407 __func__, __LINE__ , ## args); \ 2408 } 2409 #else 2410 #define PDEBUG(level, fmt, args...) do {} while (0) 2411 #endif 2412 #define DBG_IO (1 << 1) 2413 #define DBG_PROBE (1 << 2) 2414 #define DBG_MMAP (1 << 3) 2415 #define rmspace(str) while (*str == ' ') str++; 2416 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2417 #define YES_NO(x) ((x) ? "Yes" : "No") 2418 #ifdef CONFIG_VIDEO_ADV_DEBUG 2419 #endif 2420 /* LDV_COMMENT_END_PREP */ 2421 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_input" */ 2422 void * var_vidioc_s_input_19_p1; 2423 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_input" */ 2424 unsigned int var_vidioc_s_input_19_p2; 2425 /* LDV_COMMENT_BEGIN_PREP */ 2426 #ifdef CONFIG_VIDEO_ADV_DEBUG 2427 #endif 2428 /* LDV_COMMENT_END_PREP */ 2429 /* content: static int vidioc_queryctrl(struct file *file, void *priv, struct v4l2_queryctrl *ctrl)*/ 2430 /* LDV_COMMENT_BEGIN_PREP */ 2431 #define DRIVER_AUTHOR \ 2432 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2433 "Dwaine Garden <DwaineGarden@rogers.com>" 2434 #define DRIVER_NAME "usbvision" 2435 #define DRIVER_ALIAS "USBVision" 2436 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2437 #define DRIVER_LICENSE "GPL" 2438 #define USBVISION_VERSION_STRING "0.9.11" 2439 #define ENABLE_HEXDUMP 0 2440 #ifdef USBVISION_DEBUG 2441 #define PDEBUG(level, fmt, args...) { \ 2442 if (video_debug & (level)) \ 2443 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2444 __func__, __LINE__ , ## args); \ 2445 } 2446 #else 2447 #define PDEBUG(level, fmt, args...) do {} while (0) 2448 #endif 2449 #define DBG_IO (1 << 1) 2450 #define DBG_PROBE (1 << 2) 2451 #define DBG_MMAP (1 << 3) 2452 #define rmspace(str) while (*str == ' ') str++; 2453 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2454 #define YES_NO(x) ((x) ? "Yes" : "No") 2455 #ifdef CONFIG_VIDEO_ADV_DEBUG 2456 #endif 2457 /* LDV_COMMENT_END_PREP */ 2458 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_queryctrl" */ 2459 void * var_vidioc_queryctrl_28_p1; 2460 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_queryctrl" */ 2461 struct v4l2_queryctrl * var_vidioc_queryctrl_28_p2; 2462 /* LDV_COMMENT_BEGIN_PREP */ 2463 #ifdef CONFIG_VIDEO_ADV_DEBUG 2464 #endif 2465 /* LDV_COMMENT_END_PREP */ 2466 /* content: static int vidioc_g_audio(struct file *file, void *priv, struct v4l2_audio *a)*/ 2467 /* LDV_COMMENT_BEGIN_PREP */ 2468 #define DRIVER_AUTHOR \ 2469 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2470 "Dwaine Garden <DwaineGarden@rogers.com>" 2471 #define DRIVER_NAME "usbvision" 2472 #define DRIVER_ALIAS "USBVision" 2473 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2474 #define DRIVER_LICENSE "GPL" 2475 #define USBVISION_VERSION_STRING "0.9.11" 2476 #define ENABLE_HEXDUMP 0 2477 #ifdef USBVISION_DEBUG 2478 #define PDEBUG(level, fmt, args...) { \ 2479 if (video_debug & (level)) \ 2480 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2481 __func__, __LINE__ , ## args); \ 2482 } 2483 #else 2484 #define PDEBUG(level, fmt, args...) do {} while (0) 2485 #endif 2486 #define DBG_IO (1 << 1) 2487 #define DBG_PROBE (1 << 2) 2488 #define DBG_MMAP (1 << 3) 2489 #define rmspace(str) while (*str == ' ') str++; 2490 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2491 #define YES_NO(x) ((x) ? "Yes" : "No") 2492 #ifdef CONFIG_VIDEO_ADV_DEBUG 2493 #endif 2494 /* LDV_COMMENT_END_PREP */ 2495 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_audio" */ 2496 void * var_vidioc_g_audio_26_p1; 2497 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_audio" */ 2498 struct v4l2_audio * var_vidioc_g_audio_26_p2; 2499 /* LDV_COMMENT_BEGIN_PREP */ 2500 #ifdef CONFIG_VIDEO_ADV_DEBUG 2501 #endif 2502 /* LDV_COMMENT_END_PREP */ 2503 /* content: static int vidioc_s_audio(struct file *file, void *fh, const struct v4l2_audio *a)*/ 2504 /* LDV_COMMENT_BEGIN_PREP */ 2505 #define DRIVER_AUTHOR \ 2506 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2507 "Dwaine Garden <DwaineGarden@rogers.com>" 2508 #define DRIVER_NAME "usbvision" 2509 #define DRIVER_ALIAS "USBVision" 2510 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2511 #define DRIVER_LICENSE "GPL" 2512 #define USBVISION_VERSION_STRING "0.9.11" 2513 #define ENABLE_HEXDUMP 0 2514 #ifdef USBVISION_DEBUG 2515 #define PDEBUG(level, fmt, args...) { \ 2516 if (video_debug & (level)) \ 2517 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2518 __func__, __LINE__ , ## args); \ 2519 } 2520 #else 2521 #define PDEBUG(level, fmt, args...) do {} while (0) 2522 #endif 2523 #define DBG_IO (1 << 1) 2524 #define DBG_PROBE (1 << 2) 2525 #define DBG_MMAP (1 << 3) 2526 #define rmspace(str) while (*str == ' ') str++; 2527 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2528 #define YES_NO(x) ((x) ? "Yes" : "No") 2529 #ifdef CONFIG_VIDEO_ADV_DEBUG 2530 #endif 2531 /* LDV_COMMENT_END_PREP */ 2532 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_audio" */ 2533 void * var_vidioc_s_audio_27_p1; 2534 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_audio" */ 2535 const struct v4l2_audio * var_vidioc_s_audio_27_p2; 2536 /* LDV_COMMENT_BEGIN_PREP */ 2537 #ifdef CONFIG_VIDEO_ADV_DEBUG 2538 #endif 2539 /* LDV_COMMENT_END_PREP */ 2540 /* content: static int vidioc_g_ctrl(struct file *file, void *priv, struct v4l2_control *ctrl)*/ 2541 /* LDV_COMMENT_BEGIN_PREP */ 2542 #define DRIVER_AUTHOR \ 2543 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2544 "Dwaine Garden <DwaineGarden@rogers.com>" 2545 #define DRIVER_NAME "usbvision" 2546 #define DRIVER_ALIAS "USBVision" 2547 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2548 #define DRIVER_LICENSE "GPL" 2549 #define USBVISION_VERSION_STRING "0.9.11" 2550 #define ENABLE_HEXDUMP 0 2551 #ifdef USBVISION_DEBUG 2552 #define PDEBUG(level, fmt, args...) { \ 2553 if (video_debug & (level)) \ 2554 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2555 __func__, __LINE__ , ## args); \ 2556 } 2557 #else 2558 #define PDEBUG(level, fmt, args...) do {} while (0) 2559 #endif 2560 #define DBG_IO (1 << 1) 2561 #define DBG_PROBE (1 << 2) 2562 #define DBG_MMAP (1 << 3) 2563 #define rmspace(str) while (*str == ' ') str++; 2564 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2565 #define YES_NO(x) ((x) ? "Yes" : "No") 2566 #ifdef CONFIG_VIDEO_ADV_DEBUG 2567 #endif 2568 /* LDV_COMMENT_END_PREP */ 2569 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_ctrl" */ 2570 void * var_vidioc_g_ctrl_29_p1; 2571 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_ctrl" */ 2572 struct v4l2_control * var_vidioc_g_ctrl_29_p2; 2573 /* LDV_COMMENT_BEGIN_PREP */ 2574 #ifdef CONFIG_VIDEO_ADV_DEBUG 2575 #endif 2576 /* LDV_COMMENT_END_PREP */ 2577 /* content: static int vidioc_s_ctrl(struct file *file, void *priv, struct v4l2_control *ctrl)*/ 2578 /* LDV_COMMENT_BEGIN_PREP */ 2579 #define DRIVER_AUTHOR \ 2580 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2581 "Dwaine Garden <DwaineGarden@rogers.com>" 2582 #define DRIVER_NAME "usbvision" 2583 #define DRIVER_ALIAS "USBVision" 2584 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2585 #define DRIVER_LICENSE "GPL" 2586 #define USBVISION_VERSION_STRING "0.9.11" 2587 #define ENABLE_HEXDUMP 0 2588 #ifdef USBVISION_DEBUG 2589 #define PDEBUG(level, fmt, args...) { \ 2590 if (video_debug & (level)) \ 2591 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2592 __func__, __LINE__ , ## args); \ 2593 } 2594 #else 2595 #define PDEBUG(level, fmt, args...) do {} while (0) 2596 #endif 2597 #define DBG_IO (1 << 1) 2598 #define DBG_PROBE (1 << 2) 2599 #define DBG_MMAP (1 << 3) 2600 #define rmspace(str) while (*str == ' ') str++; 2601 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2602 #define YES_NO(x) ((x) ? "Yes" : "No") 2603 #ifdef CONFIG_VIDEO_ADV_DEBUG 2604 #endif 2605 /* LDV_COMMENT_END_PREP */ 2606 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_ctrl" */ 2607 void * var_vidioc_s_ctrl_30_p1; 2608 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_ctrl" */ 2609 struct v4l2_control * var_vidioc_s_ctrl_30_p2; 2610 /* LDV_COMMENT_BEGIN_PREP */ 2611 #ifdef CONFIG_VIDEO_ADV_DEBUG 2612 #endif 2613 /* LDV_COMMENT_END_PREP */ 2614 /* content: static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)*/ 2615 /* LDV_COMMENT_BEGIN_PREP */ 2616 #define DRIVER_AUTHOR \ 2617 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2618 "Dwaine Garden <DwaineGarden@rogers.com>" 2619 #define DRIVER_NAME "usbvision" 2620 #define DRIVER_ALIAS "USBVision" 2621 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2622 #define DRIVER_LICENSE "GPL" 2623 #define USBVISION_VERSION_STRING "0.9.11" 2624 #define ENABLE_HEXDUMP 0 2625 #ifdef USBVISION_DEBUG 2626 #define PDEBUG(level, fmt, args...) { \ 2627 if (video_debug & (level)) \ 2628 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2629 __func__, __LINE__ , ## args); \ 2630 } 2631 #else 2632 #define PDEBUG(level, fmt, args...) do {} while (0) 2633 #endif 2634 #define DBG_IO (1 << 1) 2635 #define DBG_PROBE (1 << 2) 2636 #define DBG_MMAP (1 << 3) 2637 #define rmspace(str) while (*str == ' ') str++; 2638 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2639 #define YES_NO(x) ((x) ? "Yes" : "No") 2640 #ifdef CONFIG_VIDEO_ADV_DEBUG 2641 #endif 2642 /* LDV_COMMENT_END_PREP */ 2643 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_streamon" */ 2644 void * var_vidioc_streamon_35_p1; 2645 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_streamon" */ 2646 enum v4l2_buf_type var_vidioc_streamon_35_p2; 2647 /* LDV_COMMENT_BEGIN_PREP */ 2648 #ifdef CONFIG_VIDEO_ADV_DEBUG 2649 #endif 2650 /* LDV_COMMENT_END_PREP */ 2651 /* content: static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type type)*/ 2652 /* LDV_COMMENT_BEGIN_PREP */ 2653 #define DRIVER_AUTHOR \ 2654 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2655 "Dwaine Garden <DwaineGarden@rogers.com>" 2656 #define DRIVER_NAME "usbvision" 2657 #define DRIVER_ALIAS "USBVision" 2658 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2659 #define DRIVER_LICENSE "GPL" 2660 #define USBVISION_VERSION_STRING "0.9.11" 2661 #define ENABLE_HEXDUMP 0 2662 #ifdef USBVISION_DEBUG 2663 #define PDEBUG(level, fmt, args...) { \ 2664 if (video_debug & (level)) \ 2665 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2666 __func__, __LINE__ , ## args); \ 2667 } 2668 #else 2669 #define PDEBUG(level, fmt, args...) do {} while (0) 2670 #endif 2671 #define DBG_IO (1 << 1) 2672 #define DBG_PROBE (1 << 2) 2673 #define DBG_MMAP (1 << 3) 2674 #define rmspace(str) while (*str == ' ') str++; 2675 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2676 #define YES_NO(x) ((x) ? "Yes" : "No") 2677 #ifdef CONFIG_VIDEO_ADV_DEBUG 2678 #endif 2679 /* LDV_COMMENT_END_PREP */ 2680 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_streamoff" */ 2681 void * var_vidioc_streamoff_36_p1; 2682 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_streamoff" */ 2683 enum v4l2_buf_type var_vidioc_streamoff_36_p2; 2684 /* LDV_COMMENT_BEGIN_PREP */ 2685 #ifdef CONFIG_VIDEO_ADV_DEBUG 2686 #endif 2687 /* LDV_COMMENT_END_PREP */ 2688 /* content: static int vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner *vt)*/ 2689 /* LDV_COMMENT_BEGIN_PREP */ 2690 #define DRIVER_AUTHOR \ 2691 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2692 "Dwaine Garden <DwaineGarden@rogers.com>" 2693 #define DRIVER_NAME "usbvision" 2694 #define DRIVER_ALIAS "USBVision" 2695 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2696 #define DRIVER_LICENSE "GPL" 2697 #define USBVISION_VERSION_STRING "0.9.11" 2698 #define ENABLE_HEXDUMP 0 2699 #ifdef USBVISION_DEBUG 2700 #define PDEBUG(level, fmt, args...) { \ 2701 if (video_debug & (level)) \ 2702 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2703 __func__, __LINE__ , ## args); \ 2704 } 2705 #else 2706 #define PDEBUG(level, fmt, args...) do {} while (0) 2707 #endif 2708 #define DBG_IO (1 << 1) 2709 #define DBG_PROBE (1 << 2) 2710 #define DBG_MMAP (1 << 3) 2711 #define rmspace(str) while (*str == ' ') str++; 2712 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2713 #define YES_NO(x) ((x) ? "Yes" : "No") 2714 #ifdef CONFIG_VIDEO_ADV_DEBUG 2715 #endif 2716 /* LDV_COMMENT_END_PREP */ 2717 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_tuner" */ 2718 void * var_vidioc_g_tuner_22_p1; 2719 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_tuner" */ 2720 struct v4l2_tuner * var_vidioc_g_tuner_22_p2; 2721 /* LDV_COMMENT_BEGIN_PREP */ 2722 #ifdef CONFIG_VIDEO_ADV_DEBUG 2723 #endif 2724 /* LDV_COMMENT_END_PREP */ 2725 /* content: static int vidioc_s_tuner(struct file *file, void *priv, const struct v4l2_tuner *vt)*/ 2726 /* LDV_COMMENT_BEGIN_PREP */ 2727 #define DRIVER_AUTHOR \ 2728 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2729 "Dwaine Garden <DwaineGarden@rogers.com>" 2730 #define DRIVER_NAME "usbvision" 2731 #define DRIVER_ALIAS "USBVision" 2732 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2733 #define DRIVER_LICENSE "GPL" 2734 #define USBVISION_VERSION_STRING "0.9.11" 2735 #define ENABLE_HEXDUMP 0 2736 #ifdef USBVISION_DEBUG 2737 #define PDEBUG(level, fmt, args...) { \ 2738 if (video_debug & (level)) \ 2739 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2740 __func__, __LINE__ , ## args); \ 2741 } 2742 #else 2743 #define PDEBUG(level, fmt, args...) do {} while (0) 2744 #endif 2745 #define DBG_IO (1 << 1) 2746 #define DBG_PROBE (1 << 2) 2747 #define DBG_MMAP (1 << 3) 2748 #define rmspace(str) while (*str == ' ') str++; 2749 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2750 #define YES_NO(x) ((x) ? "Yes" : "No") 2751 #ifdef CONFIG_VIDEO_ADV_DEBUG 2752 #endif 2753 /* LDV_COMMENT_END_PREP */ 2754 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_tuner" */ 2755 void * var_vidioc_s_tuner_23_p1; 2756 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_tuner" */ 2757 const struct v4l2_tuner * var_vidioc_s_tuner_23_p2; 2758 /* LDV_COMMENT_BEGIN_PREP */ 2759 #ifdef CONFIG_VIDEO_ADV_DEBUG 2760 #endif 2761 /* LDV_COMMENT_END_PREP */ 2762 /* content: static int vidioc_g_frequency(struct file *file, void *priv, struct v4l2_frequency *freq)*/ 2763 /* LDV_COMMENT_BEGIN_PREP */ 2764 #define DRIVER_AUTHOR \ 2765 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2766 "Dwaine Garden <DwaineGarden@rogers.com>" 2767 #define DRIVER_NAME "usbvision" 2768 #define DRIVER_ALIAS "USBVision" 2769 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2770 #define DRIVER_LICENSE "GPL" 2771 #define USBVISION_VERSION_STRING "0.9.11" 2772 #define ENABLE_HEXDUMP 0 2773 #ifdef USBVISION_DEBUG 2774 #define PDEBUG(level, fmt, args...) { \ 2775 if (video_debug & (level)) \ 2776 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2777 __func__, __LINE__ , ## args); \ 2778 } 2779 #else 2780 #define PDEBUG(level, fmt, args...) do {} while (0) 2781 #endif 2782 #define DBG_IO (1 << 1) 2783 #define DBG_PROBE (1 << 2) 2784 #define DBG_MMAP (1 << 3) 2785 #define rmspace(str) while (*str == ' ') str++; 2786 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2787 #define YES_NO(x) ((x) ? "Yes" : "No") 2788 #ifdef CONFIG_VIDEO_ADV_DEBUG 2789 #endif 2790 /* LDV_COMMENT_END_PREP */ 2791 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_frequency" */ 2792 void * var_vidioc_g_frequency_24_p1; 2793 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_frequency" */ 2794 struct v4l2_frequency * var_vidioc_g_frequency_24_p2; 2795 /* LDV_COMMENT_BEGIN_PREP */ 2796 #ifdef CONFIG_VIDEO_ADV_DEBUG 2797 #endif 2798 /* LDV_COMMENT_END_PREP */ 2799 /* content: static int vidioc_s_frequency(struct file *file, void *priv, const struct v4l2_frequency *freq)*/ 2800 /* LDV_COMMENT_BEGIN_PREP */ 2801 #define DRIVER_AUTHOR \ 2802 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2803 "Dwaine Garden <DwaineGarden@rogers.com>" 2804 #define DRIVER_NAME "usbvision" 2805 #define DRIVER_ALIAS "USBVision" 2806 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2807 #define DRIVER_LICENSE "GPL" 2808 #define USBVISION_VERSION_STRING "0.9.11" 2809 #define ENABLE_HEXDUMP 0 2810 #ifdef USBVISION_DEBUG 2811 #define PDEBUG(level, fmt, args...) { \ 2812 if (video_debug & (level)) \ 2813 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2814 __func__, __LINE__ , ## args); \ 2815 } 2816 #else 2817 #define PDEBUG(level, fmt, args...) do {} while (0) 2818 #endif 2819 #define DBG_IO (1 << 1) 2820 #define DBG_PROBE (1 << 2) 2821 #define DBG_MMAP (1 << 3) 2822 #define rmspace(str) while (*str == ' ') str++; 2823 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2824 #define YES_NO(x) ((x) ? "Yes" : "No") 2825 #ifdef CONFIG_VIDEO_ADV_DEBUG 2826 #endif 2827 /* LDV_COMMENT_END_PREP */ 2828 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_frequency" */ 2829 void * var_vidioc_s_frequency_25_p1; 2830 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_frequency" */ 2831 const struct v4l2_frequency * var_vidioc_s_frequency_25_p2; 2832 /* LDV_COMMENT_BEGIN_PREP */ 2833 #ifdef CONFIG_VIDEO_ADV_DEBUG 2834 #endif 2835 /* LDV_COMMENT_END_PREP */ 2836 /* content: static int vidioc_g_register(struct file *file, void *priv, struct v4l2_dbg_register *reg)*/ 2837 /* LDV_COMMENT_BEGIN_PREP */ 2838 #define DRIVER_AUTHOR \ 2839 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2840 "Dwaine Garden <DwaineGarden@rogers.com>" 2841 #define DRIVER_NAME "usbvision" 2842 #define DRIVER_ALIAS "USBVision" 2843 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2844 #define DRIVER_LICENSE "GPL" 2845 #define USBVISION_VERSION_STRING "0.9.11" 2846 #define ENABLE_HEXDUMP 0 2847 #ifdef USBVISION_DEBUG 2848 #define PDEBUG(level, fmt, args...) { \ 2849 if (video_debug & (level)) \ 2850 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2851 __func__, __LINE__ , ## args); \ 2852 } 2853 #else 2854 #define PDEBUG(level, fmt, args...) do {} while (0) 2855 #endif 2856 #define DBG_IO (1 << 1) 2857 #define DBG_PROBE (1 << 2) 2858 #define DBG_MMAP (1 << 3) 2859 #define rmspace(str) while (*str == ' ') str++; 2860 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2861 #define YES_NO(x) ((x) ? "Yes" : "No") 2862 #ifdef CONFIG_VIDEO_ADV_DEBUG 2863 /* LDV_COMMENT_END_PREP */ 2864 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_register" */ 2865 void * var_vidioc_g_register_14_p1; 2866 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_g_register" */ 2867 struct v4l2_dbg_register * var_vidioc_g_register_14_p2; 2868 /* LDV_COMMENT_BEGIN_PREP */ 2869 #endif 2870 #ifdef CONFIG_VIDEO_ADV_DEBUG 2871 #endif 2872 /* LDV_COMMENT_END_PREP */ 2873 /* content: static int vidioc_s_register(struct file *file, void *priv, const struct v4l2_dbg_register *reg)*/ 2874 /* LDV_COMMENT_BEGIN_PREP */ 2875 #define DRIVER_AUTHOR \ 2876 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2877 "Dwaine Garden <DwaineGarden@rogers.com>" 2878 #define DRIVER_NAME "usbvision" 2879 #define DRIVER_ALIAS "USBVision" 2880 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2881 #define DRIVER_LICENSE "GPL" 2882 #define USBVISION_VERSION_STRING "0.9.11" 2883 #define ENABLE_HEXDUMP 0 2884 #ifdef USBVISION_DEBUG 2885 #define PDEBUG(level, fmt, args...) { \ 2886 if (video_debug & (level)) \ 2887 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2888 __func__, __LINE__ , ## args); \ 2889 } 2890 #else 2891 #define PDEBUG(level, fmt, args...) do {} while (0) 2892 #endif 2893 #define DBG_IO (1 << 1) 2894 #define DBG_PROBE (1 << 2) 2895 #define DBG_MMAP (1 << 3) 2896 #define rmspace(str) while (*str == ' ') str++; 2897 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2898 #define YES_NO(x) ((x) ? "Yes" : "No") 2899 #ifdef CONFIG_VIDEO_ADV_DEBUG 2900 /* LDV_COMMENT_END_PREP */ 2901 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_register" */ 2902 void * var_vidioc_s_register_15_p1; 2903 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "vidioc_s_register" */ 2904 const struct v4l2_dbg_register * var_vidioc_s_register_15_p2; 2905 /* LDV_COMMENT_BEGIN_PREP */ 2906 #endif 2907 #ifdef CONFIG_VIDEO_ADV_DEBUG 2908 #endif 2909 /* LDV_COMMENT_END_PREP */ 2910 2911 /** STRUCT: struct type: v4l2_file_operations, struct name: usbvision_radio_fops **/ 2912 /* content: static int usbvision_radio_open(struct file *file)*/ 2913 /* LDV_COMMENT_BEGIN_PREP */ 2914 #define DRIVER_AUTHOR \ 2915 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2916 "Dwaine Garden <DwaineGarden@rogers.com>" 2917 #define DRIVER_NAME "usbvision" 2918 #define DRIVER_ALIAS "USBVision" 2919 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2920 #define DRIVER_LICENSE "GPL" 2921 #define USBVISION_VERSION_STRING "0.9.11" 2922 #define ENABLE_HEXDUMP 0 2923 #ifdef USBVISION_DEBUG 2924 #define PDEBUG(level, fmt, args...) { \ 2925 if (video_debug & (level)) \ 2926 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2927 __func__, __LINE__ , ## args); \ 2928 } 2929 #else 2930 #define PDEBUG(level, fmt, args...) do {} while (0) 2931 #endif 2932 #define DBG_IO (1 << 1) 2933 #define DBG_PROBE (1 << 2) 2934 #define DBG_MMAP (1 << 3) 2935 #define rmspace(str) while (*str == ' ') str++; 2936 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2937 #define YES_NO(x) ((x) ? "Yes" : "No") 2938 #ifdef CONFIG_VIDEO_ADV_DEBUG 2939 #endif 2940 /* LDV_COMMENT_END_PREP */ 2941 /* LDV_COMMENT_VAR_DECLARE Variable declaration for test return result from function call "usbvision_radio_open" */ 2942 static int res_usbvision_radio_open_45; 2943 /* LDV_COMMENT_BEGIN_PREP */ 2944 #ifdef CONFIG_VIDEO_ADV_DEBUG 2945 #endif 2946 /* LDV_COMMENT_END_PREP */ 2947 /* content: static int usbvision_radio_close(struct file *file)*/ 2948 /* LDV_COMMENT_BEGIN_PREP */ 2949 #define DRIVER_AUTHOR \ 2950 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2951 "Dwaine Garden <DwaineGarden@rogers.com>" 2952 #define DRIVER_NAME "usbvision" 2953 #define DRIVER_ALIAS "USBVision" 2954 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2955 #define DRIVER_LICENSE "GPL" 2956 #define USBVISION_VERSION_STRING "0.9.11" 2957 #define ENABLE_HEXDUMP 0 2958 #ifdef USBVISION_DEBUG 2959 #define PDEBUG(level, fmt, args...) { \ 2960 if (video_debug & (level)) \ 2961 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2962 __func__, __LINE__ , ## args); \ 2963 } 2964 #else 2965 #define PDEBUG(level, fmt, args...) do {} while (0) 2966 #endif 2967 #define DBG_IO (1 << 1) 2968 #define DBG_PROBE (1 << 2) 2969 #define DBG_MMAP (1 << 3) 2970 #define rmspace(str) while (*str == ' ') str++; 2971 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 2972 #define YES_NO(x) ((x) ? "Yes" : "No") 2973 #ifdef CONFIG_VIDEO_ADV_DEBUG 2974 #endif 2975 /* LDV_COMMENT_END_PREP */ 2976 /* LDV_COMMENT_BEGIN_PREP */ 2977 #ifdef CONFIG_VIDEO_ADV_DEBUG 2978 #endif 2979 /* LDV_COMMENT_END_PREP */ 2980 2981 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_radio_ioctl_ops **/ 2982 /* content: static int vidioc_querycap(struct file *file, void *priv, struct v4l2_capability *vc)*/ 2983 /* LDV_COMMENT_BEGIN_PREP */ 2984 #define DRIVER_AUTHOR \ 2985 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 2986 "Dwaine Garden <DwaineGarden@rogers.com>" 2987 #define DRIVER_NAME "usbvision" 2988 #define DRIVER_ALIAS "USBVision" 2989 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 2990 #define DRIVER_LICENSE "GPL" 2991 #define USBVISION_VERSION_STRING "0.9.11" 2992 #define ENABLE_HEXDUMP 0 2993 #ifdef USBVISION_DEBUG 2994 #define PDEBUG(level, fmt, args...) { \ 2995 if (video_debug & (level)) \ 2996 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 2997 __func__, __LINE__ , ## args); \ 2998 } 2999 #else 3000 #define PDEBUG(level, fmt, args...) do {} while (0) 3001 #endif 3002 #define DBG_IO (1 << 1) 3003 #define DBG_PROBE (1 << 2) 3004 #define DBG_MMAP (1 << 3) 3005 #define rmspace(str) while (*str == ' ') str++; 3006 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3007 #define YES_NO(x) ((x) ? "Yes" : "No") 3008 #ifdef CONFIG_VIDEO_ADV_DEBUG 3009 #endif 3010 /* LDV_COMMENT_END_PREP */ 3011 /* LDV_COMMENT_BEGIN_PREP */ 3012 #ifdef CONFIG_VIDEO_ADV_DEBUG 3013 #endif 3014 /* LDV_COMMENT_END_PREP */ 3015 /* content: static int vidioc_enum_input(struct file *file, void *priv, struct v4l2_input *vi)*/ 3016 /* LDV_COMMENT_BEGIN_PREP */ 3017 #define DRIVER_AUTHOR \ 3018 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3019 "Dwaine Garden <DwaineGarden@rogers.com>" 3020 #define DRIVER_NAME "usbvision" 3021 #define DRIVER_ALIAS "USBVision" 3022 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3023 #define DRIVER_LICENSE "GPL" 3024 #define USBVISION_VERSION_STRING "0.9.11" 3025 #define ENABLE_HEXDUMP 0 3026 #ifdef USBVISION_DEBUG 3027 #define PDEBUG(level, fmt, args...) { \ 3028 if (video_debug & (level)) \ 3029 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3030 __func__, __LINE__ , ## args); \ 3031 } 3032 #else 3033 #define PDEBUG(level, fmt, args...) do {} while (0) 3034 #endif 3035 #define DBG_IO (1 << 1) 3036 #define DBG_PROBE (1 << 2) 3037 #define DBG_MMAP (1 << 3) 3038 #define rmspace(str) while (*str == ' ') str++; 3039 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3040 #define YES_NO(x) ((x) ? "Yes" : "No") 3041 #ifdef CONFIG_VIDEO_ADV_DEBUG 3042 #endif 3043 /* LDV_COMMENT_END_PREP */ 3044 /* LDV_COMMENT_BEGIN_PREP */ 3045 #ifdef CONFIG_VIDEO_ADV_DEBUG 3046 #endif 3047 /* LDV_COMMENT_END_PREP */ 3048 /* content: static int vidioc_g_input(struct file *file, void *priv, unsigned int *input)*/ 3049 /* LDV_COMMENT_BEGIN_PREP */ 3050 #define DRIVER_AUTHOR \ 3051 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3052 "Dwaine Garden <DwaineGarden@rogers.com>" 3053 #define DRIVER_NAME "usbvision" 3054 #define DRIVER_ALIAS "USBVision" 3055 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3056 #define DRIVER_LICENSE "GPL" 3057 #define USBVISION_VERSION_STRING "0.9.11" 3058 #define ENABLE_HEXDUMP 0 3059 #ifdef USBVISION_DEBUG 3060 #define PDEBUG(level, fmt, args...) { \ 3061 if (video_debug & (level)) \ 3062 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3063 __func__, __LINE__ , ## args); \ 3064 } 3065 #else 3066 #define PDEBUG(level, fmt, args...) do {} while (0) 3067 #endif 3068 #define DBG_IO (1 << 1) 3069 #define DBG_PROBE (1 << 2) 3070 #define DBG_MMAP (1 << 3) 3071 #define rmspace(str) while (*str == ' ') str++; 3072 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3073 #define YES_NO(x) ((x) ? "Yes" : "No") 3074 #ifdef CONFIG_VIDEO_ADV_DEBUG 3075 #endif 3076 /* LDV_COMMENT_END_PREP */ 3077 /* LDV_COMMENT_BEGIN_PREP */ 3078 #ifdef CONFIG_VIDEO_ADV_DEBUG 3079 #endif 3080 /* LDV_COMMENT_END_PREP */ 3081 /* content: static int vidioc_s_input(struct file *file, void *priv, unsigned int input)*/ 3082 /* LDV_COMMENT_BEGIN_PREP */ 3083 #define DRIVER_AUTHOR \ 3084 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3085 "Dwaine Garden <DwaineGarden@rogers.com>" 3086 #define DRIVER_NAME "usbvision" 3087 #define DRIVER_ALIAS "USBVision" 3088 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3089 #define DRIVER_LICENSE "GPL" 3090 #define USBVISION_VERSION_STRING "0.9.11" 3091 #define ENABLE_HEXDUMP 0 3092 #ifdef USBVISION_DEBUG 3093 #define PDEBUG(level, fmt, args...) { \ 3094 if (video_debug & (level)) \ 3095 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3096 __func__, __LINE__ , ## args); \ 3097 } 3098 #else 3099 #define PDEBUG(level, fmt, args...) do {} while (0) 3100 #endif 3101 #define DBG_IO (1 << 1) 3102 #define DBG_PROBE (1 << 2) 3103 #define DBG_MMAP (1 << 3) 3104 #define rmspace(str) while (*str == ' ') str++; 3105 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3106 #define YES_NO(x) ((x) ? "Yes" : "No") 3107 #ifdef CONFIG_VIDEO_ADV_DEBUG 3108 #endif 3109 /* LDV_COMMENT_END_PREP */ 3110 /* LDV_COMMENT_BEGIN_PREP */ 3111 #ifdef CONFIG_VIDEO_ADV_DEBUG 3112 #endif 3113 /* LDV_COMMENT_END_PREP */ 3114 /* content: static int vidioc_queryctrl(struct file *file, void *priv, struct v4l2_queryctrl *ctrl)*/ 3115 /* LDV_COMMENT_BEGIN_PREP */ 3116 #define DRIVER_AUTHOR \ 3117 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3118 "Dwaine Garden <DwaineGarden@rogers.com>" 3119 #define DRIVER_NAME "usbvision" 3120 #define DRIVER_ALIAS "USBVision" 3121 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3122 #define DRIVER_LICENSE "GPL" 3123 #define USBVISION_VERSION_STRING "0.9.11" 3124 #define ENABLE_HEXDUMP 0 3125 #ifdef USBVISION_DEBUG 3126 #define PDEBUG(level, fmt, args...) { \ 3127 if (video_debug & (level)) \ 3128 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3129 __func__, __LINE__ , ## args); \ 3130 } 3131 #else 3132 #define PDEBUG(level, fmt, args...) do {} while (0) 3133 #endif 3134 #define DBG_IO (1 << 1) 3135 #define DBG_PROBE (1 << 2) 3136 #define DBG_MMAP (1 << 3) 3137 #define rmspace(str) while (*str == ' ') str++; 3138 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3139 #define YES_NO(x) ((x) ? "Yes" : "No") 3140 #ifdef CONFIG_VIDEO_ADV_DEBUG 3141 #endif 3142 /* LDV_COMMENT_END_PREP */ 3143 /* LDV_COMMENT_BEGIN_PREP */ 3144 #ifdef CONFIG_VIDEO_ADV_DEBUG 3145 #endif 3146 /* LDV_COMMENT_END_PREP */ 3147 /* content: static int vidioc_g_audio(struct file *file, void *priv, struct v4l2_audio *a)*/ 3148 /* LDV_COMMENT_BEGIN_PREP */ 3149 #define DRIVER_AUTHOR \ 3150 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3151 "Dwaine Garden <DwaineGarden@rogers.com>" 3152 #define DRIVER_NAME "usbvision" 3153 #define DRIVER_ALIAS "USBVision" 3154 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3155 #define DRIVER_LICENSE "GPL" 3156 #define USBVISION_VERSION_STRING "0.9.11" 3157 #define ENABLE_HEXDUMP 0 3158 #ifdef USBVISION_DEBUG 3159 #define PDEBUG(level, fmt, args...) { \ 3160 if (video_debug & (level)) \ 3161 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3162 __func__, __LINE__ , ## args); \ 3163 } 3164 #else 3165 #define PDEBUG(level, fmt, args...) do {} while (0) 3166 #endif 3167 #define DBG_IO (1 << 1) 3168 #define DBG_PROBE (1 << 2) 3169 #define DBG_MMAP (1 << 3) 3170 #define rmspace(str) while (*str == ' ') str++; 3171 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3172 #define YES_NO(x) ((x) ? "Yes" : "No") 3173 #ifdef CONFIG_VIDEO_ADV_DEBUG 3174 #endif 3175 /* LDV_COMMENT_END_PREP */ 3176 /* LDV_COMMENT_BEGIN_PREP */ 3177 #ifdef CONFIG_VIDEO_ADV_DEBUG 3178 #endif 3179 /* LDV_COMMENT_END_PREP */ 3180 /* content: static int vidioc_s_audio(struct file *file, void *fh, const struct v4l2_audio *a)*/ 3181 /* LDV_COMMENT_BEGIN_PREP */ 3182 #define DRIVER_AUTHOR \ 3183 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3184 "Dwaine Garden <DwaineGarden@rogers.com>" 3185 #define DRIVER_NAME "usbvision" 3186 #define DRIVER_ALIAS "USBVision" 3187 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3188 #define DRIVER_LICENSE "GPL" 3189 #define USBVISION_VERSION_STRING "0.9.11" 3190 #define ENABLE_HEXDUMP 0 3191 #ifdef USBVISION_DEBUG 3192 #define PDEBUG(level, fmt, args...) { \ 3193 if (video_debug & (level)) \ 3194 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3195 __func__, __LINE__ , ## args); \ 3196 } 3197 #else 3198 #define PDEBUG(level, fmt, args...) do {} while (0) 3199 #endif 3200 #define DBG_IO (1 << 1) 3201 #define DBG_PROBE (1 << 2) 3202 #define DBG_MMAP (1 << 3) 3203 #define rmspace(str) while (*str == ' ') str++; 3204 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3205 #define YES_NO(x) ((x) ? "Yes" : "No") 3206 #ifdef CONFIG_VIDEO_ADV_DEBUG 3207 #endif 3208 /* LDV_COMMENT_END_PREP */ 3209 /* LDV_COMMENT_BEGIN_PREP */ 3210 #ifdef CONFIG_VIDEO_ADV_DEBUG 3211 #endif 3212 /* LDV_COMMENT_END_PREP */ 3213 /* content: static int vidioc_g_ctrl(struct file *file, void *priv, struct v4l2_control *ctrl)*/ 3214 /* LDV_COMMENT_BEGIN_PREP */ 3215 #define DRIVER_AUTHOR \ 3216 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3217 "Dwaine Garden <DwaineGarden@rogers.com>" 3218 #define DRIVER_NAME "usbvision" 3219 #define DRIVER_ALIAS "USBVision" 3220 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3221 #define DRIVER_LICENSE "GPL" 3222 #define USBVISION_VERSION_STRING "0.9.11" 3223 #define ENABLE_HEXDUMP 0 3224 #ifdef USBVISION_DEBUG 3225 #define PDEBUG(level, fmt, args...) { \ 3226 if (video_debug & (level)) \ 3227 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3228 __func__, __LINE__ , ## args); \ 3229 } 3230 #else 3231 #define PDEBUG(level, fmt, args...) do {} while (0) 3232 #endif 3233 #define DBG_IO (1 << 1) 3234 #define DBG_PROBE (1 << 2) 3235 #define DBG_MMAP (1 << 3) 3236 #define rmspace(str) while (*str == ' ') str++; 3237 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3238 #define YES_NO(x) ((x) ? "Yes" : "No") 3239 #ifdef CONFIG_VIDEO_ADV_DEBUG 3240 #endif 3241 /* LDV_COMMENT_END_PREP */ 3242 /* LDV_COMMENT_BEGIN_PREP */ 3243 #ifdef CONFIG_VIDEO_ADV_DEBUG 3244 #endif 3245 /* LDV_COMMENT_END_PREP */ 3246 /* content: static int vidioc_s_ctrl(struct file *file, void *priv, struct v4l2_control *ctrl)*/ 3247 /* LDV_COMMENT_BEGIN_PREP */ 3248 #define DRIVER_AUTHOR \ 3249 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3250 "Dwaine Garden <DwaineGarden@rogers.com>" 3251 #define DRIVER_NAME "usbvision" 3252 #define DRIVER_ALIAS "USBVision" 3253 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3254 #define DRIVER_LICENSE "GPL" 3255 #define USBVISION_VERSION_STRING "0.9.11" 3256 #define ENABLE_HEXDUMP 0 3257 #ifdef USBVISION_DEBUG 3258 #define PDEBUG(level, fmt, args...) { \ 3259 if (video_debug & (level)) \ 3260 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3261 __func__, __LINE__ , ## args); \ 3262 } 3263 #else 3264 #define PDEBUG(level, fmt, args...) do {} while (0) 3265 #endif 3266 #define DBG_IO (1 << 1) 3267 #define DBG_PROBE (1 << 2) 3268 #define DBG_MMAP (1 << 3) 3269 #define rmspace(str) while (*str == ' ') str++; 3270 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3271 #define YES_NO(x) ((x) ? "Yes" : "No") 3272 #ifdef CONFIG_VIDEO_ADV_DEBUG 3273 #endif 3274 /* LDV_COMMENT_END_PREP */ 3275 /* LDV_COMMENT_BEGIN_PREP */ 3276 #ifdef CONFIG_VIDEO_ADV_DEBUG 3277 #endif 3278 /* LDV_COMMENT_END_PREP */ 3279 /* content: static int vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner *vt)*/ 3280 /* LDV_COMMENT_BEGIN_PREP */ 3281 #define DRIVER_AUTHOR \ 3282 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3283 "Dwaine Garden <DwaineGarden@rogers.com>" 3284 #define DRIVER_NAME "usbvision" 3285 #define DRIVER_ALIAS "USBVision" 3286 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3287 #define DRIVER_LICENSE "GPL" 3288 #define USBVISION_VERSION_STRING "0.9.11" 3289 #define ENABLE_HEXDUMP 0 3290 #ifdef USBVISION_DEBUG 3291 #define PDEBUG(level, fmt, args...) { \ 3292 if (video_debug & (level)) \ 3293 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3294 __func__, __LINE__ , ## args); \ 3295 } 3296 #else 3297 #define PDEBUG(level, fmt, args...) do {} while (0) 3298 #endif 3299 #define DBG_IO (1 << 1) 3300 #define DBG_PROBE (1 << 2) 3301 #define DBG_MMAP (1 << 3) 3302 #define rmspace(str) while (*str == ' ') str++; 3303 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3304 #define YES_NO(x) ((x) ? "Yes" : "No") 3305 #ifdef CONFIG_VIDEO_ADV_DEBUG 3306 #endif 3307 /* LDV_COMMENT_END_PREP */ 3308 /* LDV_COMMENT_BEGIN_PREP */ 3309 #ifdef CONFIG_VIDEO_ADV_DEBUG 3310 #endif 3311 /* LDV_COMMENT_END_PREP */ 3312 /* content: static int vidioc_s_tuner(struct file *file, void *priv, const struct v4l2_tuner *vt)*/ 3313 /* LDV_COMMENT_BEGIN_PREP */ 3314 #define DRIVER_AUTHOR \ 3315 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3316 "Dwaine Garden <DwaineGarden@rogers.com>" 3317 #define DRIVER_NAME "usbvision" 3318 #define DRIVER_ALIAS "USBVision" 3319 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3320 #define DRIVER_LICENSE "GPL" 3321 #define USBVISION_VERSION_STRING "0.9.11" 3322 #define ENABLE_HEXDUMP 0 3323 #ifdef USBVISION_DEBUG 3324 #define PDEBUG(level, fmt, args...) { \ 3325 if (video_debug & (level)) \ 3326 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3327 __func__, __LINE__ , ## args); \ 3328 } 3329 #else 3330 #define PDEBUG(level, fmt, args...) do {} while (0) 3331 #endif 3332 #define DBG_IO (1 << 1) 3333 #define DBG_PROBE (1 << 2) 3334 #define DBG_MMAP (1 << 3) 3335 #define rmspace(str) while (*str == ' ') str++; 3336 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3337 #define YES_NO(x) ((x) ? "Yes" : "No") 3338 #ifdef CONFIG_VIDEO_ADV_DEBUG 3339 #endif 3340 /* LDV_COMMENT_END_PREP */ 3341 /* LDV_COMMENT_BEGIN_PREP */ 3342 #ifdef CONFIG_VIDEO_ADV_DEBUG 3343 #endif 3344 /* LDV_COMMENT_END_PREP */ 3345 /* content: static int vidioc_g_frequency(struct file *file, void *priv, struct v4l2_frequency *freq)*/ 3346 /* LDV_COMMENT_BEGIN_PREP */ 3347 #define DRIVER_AUTHOR \ 3348 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3349 "Dwaine Garden <DwaineGarden@rogers.com>" 3350 #define DRIVER_NAME "usbvision" 3351 #define DRIVER_ALIAS "USBVision" 3352 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3353 #define DRIVER_LICENSE "GPL" 3354 #define USBVISION_VERSION_STRING "0.9.11" 3355 #define ENABLE_HEXDUMP 0 3356 #ifdef USBVISION_DEBUG 3357 #define PDEBUG(level, fmt, args...) { \ 3358 if (video_debug & (level)) \ 3359 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3360 __func__, __LINE__ , ## args); \ 3361 } 3362 #else 3363 #define PDEBUG(level, fmt, args...) do {} while (0) 3364 #endif 3365 #define DBG_IO (1 << 1) 3366 #define DBG_PROBE (1 << 2) 3367 #define DBG_MMAP (1 << 3) 3368 #define rmspace(str) while (*str == ' ') str++; 3369 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3370 #define YES_NO(x) ((x) ? "Yes" : "No") 3371 #ifdef CONFIG_VIDEO_ADV_DEBUG 3372 #endif 3373 /* LDV_COMMENT_END_PREP */ 3374 /* LDV_COMMENT_BEGIN_PREP */ 3375 #ifdef CONFIG_VIDEO_ADV_DEBUG 3376 #endif 3377 /* LDV_COMMENT_END_PREP */ 3378 /* content: static int vidioc_s_frequency(struct file *file, void *priv, const struct v4l2_frequency *freq)*/ 3379 /* LDV_COMMENT_BEGIN_PREP */ 3380 #define DRIVER_AUTHOR \ 3381 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3382 "Dwaine Garden <DwaineGarden@rogers.com>" 3383 #define DRIVER_NAME "usbvision" 3384 #define DRIVER_ALIAS "USBVision" 3385 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3386 #define DRIVER_LICENSE "GPL" 3387 #define USBVISION_VERSION_STRING "0.9.11" 3388 #define ENABLE_HEXDUMP 0 3389 #ifdef USBVISION_DEBUG 3390 #define PDEBUG(level, fmt, args...) { \ 3391 if (video_debug & (level)) \ 3392 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3393 __func__, __LINE__ , ## args); \ 3394 } 3395 #else 3396 #define PDEBUG(level, fmt, args...) do {} while (0) 3397 #endif 3398 #define DBG_IO (1 << 1) 3399 #define DBG_PROBE (1 << 2) 3400 #define DBG_MMAP (1 << 3) 3401 #define rmspace(str) while (*str == ' ') str++; 3402 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3403 #define YES_NO(x) ((x) ? "Yes" : "No") 3404 #ifdef CONFIG_VIDEO_ADV_DEBUG 3405 #endif 3406 /* LDV_COMMENT_END_PREP */ 3407 /* LDV_COMMENT_BEGIN_PREP */ 3408 #ifdef CONFIG_VIDEO_ADV_DEBUG 3409 #endif 3410 /* LDV_COMMENT_END_PREP */ 3411 3412 /** STRUCT: struct type: usb_driver, struct name: usbvision_driver **/ 3413 /* content: static int usbvision_probe(struct usb_interface *intf, const struct usb_device_id *devid)*/ 3414 /* LDV_COMMENT_BEGIN_PREP */ 3415 #define DRIVER_AUTHOR \ 3416 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3417 "Dwaine Garden <DwaineGarden@rogers.com>" 3418 #define DRIVER_NAME "usbvision" 3419 #define DRIVER_ALIAS "USBVision" 3420 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3421 #define DRIVER_LICENSE "GPL" 3422 #define USBVISION_VERSION_STRING "0.9.11" 3423 #define ENABLE_HEXDUMP 0 3424 #ifdef USBVISION_DEBUG 3425 #define PDEBUG(level, fmt, args...) { \ 3426 if (video_debug & (level)) \ 3427 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3428 __func__, __LINE__ , ## args); \ 3429 } 3430 #else 3431 #define PDEBUG(level, fmt, args...) do {} while (0) 3432 #endif 3433 #define DBG_IO (1 << 1) 3434 #define DBG_PROBE (1 << 2) 3435 #define DBG_MMAP (1 << 3) 3436 #define rmspace(str) while (*str == ' ') str++; 3437 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3438 #define YES_NO(x) ((x) ? "Yes" : "No") 3439 #ifdef CONFIG_VIDEO_ADV_DEBUG 3440 #endif 3441 #ifdef CONFIG_VIDEO_ADV_DEBUG 3442 #endif 3443 /* LDV_COMMENT_END_PREP */ 3444 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "usbvision_probe" */ 3445 struct usb_interface * var_group3; 3446 /* LDV_COMMENT_VAR_DECLARE Variable declaration for function "usbvision_probe" */ 3447 const struct usb_device_id * var_usbvision_probe_53_p1; 3448 /* LDV_COMMENT_VAR_DECLARE Variable declaration for test return result from function call "usbvision_probe" */ 3449 static int res_usbvision_probe_53; 3450 /* content: static void usbvision_disconnect(struct usb_interface *intf)*/ 3451 /* LDV_COMMENT_BEGIN_PREP */ 3452 #define DRIVER_AUTHOR \ 3453 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3454 "Dwaine Garden <DwaineGarden@rogers.com>" 3455 #define DRIVER_NAME "usbvision" 3456 #define DRIVER_ALIAS "USBVision" 3457 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3458 #define DRIVER_LICENSE "GPL" 3459 #define USBVISION_VERSION_STRING "0.9.11" 3460 #define ENABLE_HEXDUMP 0 3461 #ifdef USBVISION_DEBUG 3462 #define PDEBUG(level, fmt, args...) { \ 3463 if (video_debug & (level)) \ 3464 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3465 __func__, __LINE__ , ## args); \ 3466 } 3467 #else 3468 #define PDEBUG(level, fmt, args...) do {} while (0) 3469 #endif 3470 #define DBG_IO (1 << 1) 3471 #define DBG_PROBE (1 << 2) 3472 #define DBG_MMAP (1 << 3) 3473 #define rmspace(str) while (*str == ' ') str++; 3474 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3475 #define YES_NO(x) ((x) ? "Yes" : "No") 3476 #ifdef CONFIG_VIDEO_ADV_DEBUG 3477 #endif 3478 #ifdef CONFIG_VIDEO_ADV_DEBUG 3479 #endif 3480 /* LDV_COMMENT_END_PREP */ 3481 3482 3483 3484 3485 /* LDV_COMMENT_END_VARIABLE_DECLARATION_PART */ 3486 /* LDV_COMMENT_BEGIN_VARIABLE_INITIALIZING_PART */ 3487 /*============================= VARIABLE INITIALIZING PART =============================*/ 3488 LDV_IN_INTERRUPT=1; 3489 3490 3491 3492 3493 /* LDV_COMMENT_END_VARIABLE_INITIALIZING_PART */ 3494 /* LDV_COMMENT_BEGIN_FUNCTION_CALL_SECTION */ 3495 /*============================= FUNCTION CALL SECTION =============================*/ 3496 /* LDV_COMMENT_FUNCTION_CALL Initialize LDV model. */ 3497 ldv_initialize(); 3498 3499 /** INIT: init_type: ST_MODULE_INIT **/ 3500 /* content: static int __init usbvision_init(void)*/ 3501 /* LDV_COMMENT_BEGIN_PREP */ 3502 #define DRIVER_AUTHOR \ 3503 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3504 "Dwaine Garden <DwaineGarden@rogers.com>" 3505 #define DRIVER_NAME "usbvision" 3506 #define DRIVER_ALIAS "USBVision" 3507 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3508 #define DRIVER_LICENSE "GPL" 3509 #define USBVISION_VERSION_STRING "0.9.11" 3510 #define ENABLE_HEXDUMP 0 3511 #ifdef USBVISION_DEBUG 3512 #define PDEBUG(level, fmt, args...) { \ 3513 if (video_debug & (level)) \ 3514 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3515 __func__, __LINE__ , ## args); \ 3516 } 3517 #else 3518 #define PDEBUG(level, fmt, args...) do {} while (0) 3519 #endif 3520 #define DBG_IO (1 << 1) 3521 #define DBG_PROBE (1 << 2) 3522 #define DBG_MMAP (1 << 3) 3523 #define rmspace(str) while (*str == ' ') str++; 3524 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3525 #define YES_NO(x) ((x) ? "Yes" : "No") 3526 #ifdef CONFIG_VIDEO_ADV_DEBUG 3527 #endif 3528 #ifdef CONFIG_VIDEO_ADV_DEBUG 3529 #endif 3530 /* LDV_COMMENT_END_PREP */ 3531 /* LDV_COMMENT_FUNCTION_CALL Kernel calls driver init function after driver loading to kernel. This function declared as "MODULE_INIT(function name)". */ 3532 ldv_handler_precall(); 3533 if(usbvision_init()) 3534 goto ldv_final; 3535 int ldv_s_usbvision_fops_v4l2_file_operations = 0; 3536 3537 3538 3539 3540 int ldv_s_usbvision_radio_fops_v4l2_file_operations = 0; 3541 3542 3543 3544 int ldv_s_usbvision_driver_usb_driver = 0; 3545 3546 3547 while( nondet_int() 3548 || !(ldv_s_usbvision_fops_v4l2_file_operations == 0) 3549 || !(ldv_s_usbvision_radio_fops_v4l2_file_operations == 0) 3550 || !(ldv_s_usbvision_driver_usb_driver == 0) 3551 ) { 3552 3553 switch(nondet_int()) { 3554 3555 case 0: { 3556 3557 /** STRUCT: struct type: v4l2_file_operations, struct name: usbvision_fops **/ 3558 if(ldv_s_usbvision_fops_v4l2_file_operations==0) { 3559 3560 /* content: static int usbvision_v4l2_open(struct file *file)*/ 3561 /* LDV_COMMENT_BEGIN_PREP */ 3562 #define DRIVER_AUTHOR \ 3563 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3564 "Dwaine Garden <DwaineGarden@rogers.com>" 3565 #define DRIVER_NAME "usbvision" 3566 #define DRIVER_ALIAS "USBVision" 3567 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3568 #define DRIVER_LICENSE "GPL" 3569 #define USBVISION_VERSION_STRING "0.9.11" 3570 #define ENABLE_HEXDUMP 0 3571 #ifdef USBVISION_DEBUG 3572 #define PDEBUG(level, fmt, args...) { \ 3573 if (video_debug & (level)) \ 3574 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3575 __func__, __LINE__ , ## args); \ 3576 } 3577 #else 3578 #define PDEBUG(level, fmt, args...) do {} while (0) 3579 #endif 3580 #define DBG_IO (1 << 1) 3581 #define DBG_PROBE (1 << 2) 3582 #define DBG_MMAP (1 << 3) 3583 #define rmspace(str) while (*str == ' ') str++; 3584 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3585 #define YES_NO(x) ((x) ? "Yes" : "No") 3586 /* LDV_COMMENT_END_PREP */ 3587 /* LDV_COMMENT_FUNCTION_CALL Function from field "open" from driver structure with callbacks "usbvision_fops". Standart function test for correct return result. */ 3588 ldv_handler_precall(); 3589 res_usbvision_v4l2_open_12 = usbvision_v4l2_open( var_group1); 3590 ldv_check_return_value(res_usbvision_v4l2_open_12); 3591 if(res_usbvision_v4l2_open_12) 3592 goto ldv_module_exit; 3593 /* LDV_COMMENT_BEGIN_PREP */ 3594 #ifdef CONFIG_VIDEO_ADV_DEBUG 3595 #endif 3596 #ifdef CONFIG_VIDEO_ADV_DEBUG 3597 #endif 3598 /* LDV_COMMENT_END_PREP */ 3599 ldv_s_usbvision_fops_v4l2_file_operations++; 3600 3601 } 3602 3603 } 3604 3605 break; 3606 case 1: { 3607 3608 /** STRUCT: struct type: v4l2_file_operations, struct name: usbvision_fops **/ 3609 if(ldv_s_usbvision_fops_v4l2_file_operations==1) { 3610 3611 /* content: static int usbvision_v4l2_close(struct file *file)*/ 3612 /* LDV_COMMENT_BEGIN_PREP */ 3613 #define DRIVER_AUTHOR \ 3614 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3615 "Dwaine Garden <DwaineGarden@rogers.com>" 3616 #define DRIVER_NAME "usbvision" 3617 #define DRIVER_ALIAS "USBVision" 3618 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3619 #define DRIVER_LICENSE "GPL" 3620 #define USBVISION_VERSION_STRING "0.9.11" 3621 #define ENABLE_HEXDUMP 0 3622 #ifdef USBVISION_DEBUG 3623 #define PDEBUG(level, fmt, args...) { \ 3624 if (video_debug & (level)) \ 3625 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3626 __func__, __LINE__ , ## args); \ 3627 } 3628 #else 3629 #define PDEBUG(level, fmt, args...) do {} while (0) 3630 #endif 3631 #define DBG_IO (1 << 1) 3632 #define DBG_PROBE (1 << 2) 3633 #define DBG_MMAP (1 << 3) 3634 #define rmspace(str) while (*str == ' ') str++; 3635 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3636 #define YES_NO(x) ((x) ? "Yes" : "No") 3637 /* LDV_COMMENT_END_PREP */ 3638 /* LDV_COMMENT_FUNCTION_CALL Function from field "release" from driver structure with callbacks "usbvision_fops" */ 3639 ldv_handler_precall(); 3640 usbvision_v4l2_close( var_group1); 3641 /* LDV_COMMENT_BEGIN_PREP */ 3642 #ifdef CONFIG_VIDEO_ADV_DEBUG 3643 #endif 3644 #ifdef CONFIG_VIDEO_ADV_DEBUG 3645 #endif 3646 /* LDV_COMMENT_END_PREP */ 3647 ldv_s_usbvision_fops_v4l2_file_operations=0; 3648 3649 } 3650 3651 } 3652 3653 break; 3654 case 2: { 3655 3656 /** STRUCT: struct type: v4l2_file_operations, struct name: usbvision_fops **/ 3657 3658 3659 /* content: static ssize_t usbvision_v4l2_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)*/ 3660 /* LDV_COMMENT_BEGIN_PREP */ 3661 #define DRIVER_AUTHOR \ 3662 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3663 "Dwaine Garden <DwaineGarden@rogers.com>" 3664 #define DRIVER_NAME "usbvision" 3665 #define DRIVER_ALIAS "USBVision" 3666 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3667 #define DRIVER_LICENSE "GPL" 3668 #define USBVISION_VERSION_STRING "0.9.11" 3669 #define ENABLE_HEXDUMP 0 3670 #ifdef USBVISION_DEBUG 3671 #define PDEBUG(level, fmt, args...) { \ 3672 if (video_debug & (level)) \ 3673 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3674 __func__, __LINE__ , ## args); \ 3675 } 3676 #else 3677 #define PDEBUG(level, fmt, args...) do {} while (0) 3678 #endif 3679 #define DBG_IO (1 << 1) 3680 #define DBG_PROBE (1 << 2) 3681 #define DBG_MMAP (1 << 3) 3682 #define rmspace(str) while (*str == ' ') str++; 3683 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3684 #define YES_NO(x) ((x) ? "Yes" : "No") 3685 #ifdef CONFIG_VIDEO_ADV_DEBUG 3686 #endif 3687 /* LDV_COMMENT_END_PREP */ 3688 /* LDV_COMMENT_FUNCTION_CALL Function from field "read" from driver structure with callbacks "usbvision_fops" */ 3689 ldv_handler_precall(); 3690 usbvision_v4l2_read( var_group1, var_usbvision_v4l2_read_42_p1, var_usbvision_v4l2_read_42_p2, var_usbvision_v4l2_read_42_p3); 3691 /* LDV_COMMENT_BEGIN_PREP */ 3692 #ifdef CONFIG_VIDEO_ADV_DEBUG 3693 #endif 3694 /* LDV_COMMENT_END_PREP */ 3695 3696 3697 3698 3699 } 3700 3701 break; 3702 case 3: { 3703 3704 /** STRUCT: struct type: v4l2_file_operations, struct name: usbvision_fops **/ 3705 3706 3707 /* content: static int usbvision_v4l2_mmap(struct file *file, struct vm_area_struct *vma)*/ 3708 /* LDV_COMMENT_BEGIN_PREP */ 3709 #define DRIVER_AUTHOR \ 3710 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3711 "Dwaine Garden <DwaineGarden@rogers.com>" 3712 #define DRIVER_NAME "usbvision" 3713 #define DRIVER_ALIAS "USBVision" 3714 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3715 #define DRIVER_LICENSE "GPL" 3716 #define USBVISION_VERSION_STRING "0.9.11" 3717 #define ENABLE_HEXDUMP 0 3718 #ifdef USBVISION_DEBUG 3719 #define PDEBUG(level, fmt, args...) { \ 3720 if (video_debug & (level)) \ 3721 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3722 __func__, __LINE__ , ## args); \ 3723 } 3724 #else 3725 #define PDEBUG(level, fmt, args...) do {} while (0) 3726 #endif 3727 #define DBG_IO (1 << 1) 3728 #define DBG_PROBE (1 << 2) 3729 #define DBG_MMAP (1 << 3) 3730 #define rmspace(str) while (*str == ' ') str++; 3731 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3732 #define YES_NO(x) ((x) ? "Yes" : "No") 3733 #ifdef CONFIG_VIDEO_ADV_DEBUG 3734 #endif 3735 /* LDV_COMMENT_END_PREP */ 3736 /* LDV_COMMENT_FUNCTION_CALL Function from field "mmap" from driver structure with callbacks "usbvision_fops" */ 3737 ldv_handler_precall(); 3738 usbvision_v4l2_mmap( var_group1, var_group2); 3739 /* LDV_COMMENT_BEGIN_PREP */ 3740 #ifdef CONFIG_VIDEO_ADV_DEBUG 3741 #endif 3742 /* LDV_COMMENT_END_PREP */ 3743 3744 3745 3746 3747 } 3748 3749 break; 3750 case 4: { 3751 3752 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 3753 3754 3755 /* content: static int vidioc_querycap(struct file *file, void *priv, struct v4l2_capability *vc)*/ 3756 /* LDV_COMMENT_BEGIN_PREP */ 3757 #define DRIVER_AUTHOR \ 3758 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3759 "Dwaine Garden <DwaineGarden@rogers.com>" 3760 #define DRIVER_NAME "usbvision" 3761 #define DRIVER_ALIAS "USBVision" 3762 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3763 #define DRIVER_LICENSE "GPL" 3764 #define USBVISION_VERSION_STRING "0.9.11" 3765 #define ENABLE_HEXDUMP 0 3766 #ifdef USBVISION_DEBUG 3767 #define PDEBUG(level, fmt, args...) { \ 3768 if (video_debug & (level)) \ 3769 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3770 __func__, __LINE__ , ## args); \ 3771 } 3772 #else 3773 #define PDEBUG(level, fmt, args...) do {} while (0) 3774 #endif 3775 #define DBG_IO (1 << 1) 3776 #define DBG_PROBE (1 << 2) 3777 #define DBG_MMAP (1 << 3) 3778 #define rmspace(str) while (*str == ' ') str++; 3779 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3780 #define YES_NO(x) ((x) ? "Yes" : "No") 3781 #ifdef CONFIG_VIDEO_ADV_DEBUG 3782 #endif 3783 /* LDV_COMMENT_END_PREP */ 3784 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_querycap" from driver structure with callbacks "usbvision_ioctl_ops" */ 3785 ldv_handler_precall(); 3786 vidioc_querycap( var_group1, var_vidioc_querycap_16_p1, var_vidioc_querycap_16_p2); 3787 /* LDV_COMMENT_BEGIN_PREP */ 3788 #ifdef CONFIG_VIDEO_ADV_DEBUG 3789 #endif 3790 /* LDV_COMMENT_END_PREP */ 3791 3792 3793 3794 3795 } 3796 3797 break; 3798 case 5: { 3799 3800 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 3801 3802 3803 /* content: static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, struct v4l2_fmtdesc *vfd)*/ 3804 /* LDV_COMMENT_BEGIN_PREP */ 3805 #define DRIVER_AUTHOR \ 3806 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3807 "Dwaine Garden <DwaineGarden@rogers.com>" 3808 #define DRIVER_NAME "usbvision" 3809 #define DRIVER_ALIAS "USBVision" 3810 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3811 #define DRIVER_LICENSE "GPL" 3812 #define USBVISION_VERSION_STRING "0.9.11" 3813 #define ENABLE_HEXDUMP 0 3814 #ifdef USBVISION_DEBUG 3815 #define PDEBUG(level, fmt, args...) { \ 3816 if (video_debug & (level)) \ 3817 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3818 __func__, __LINE__ , ## args); \ 3819 } 3820 #else 3821 #define PDEBUG(level, fmt, args...) do {} while (0) 3822 #endif 3823 #define DBG_IO (1 << 1) 3824 #define DBG_PROBE (1 << 2) 3825 #define DBG_MMAP (1 << 3) 3826 #define rmspace(str) while (*str == ' ') str++; 3827 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3828 #define YES_NO(x) ((x) ? "Yes" : "No") 3829 #ifdef CONFIG_VIDEO_ADV_DEBUG 3830 #endif 3831 /* LDV_COMMENT_END_PREP */ 3832 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_enum_fmt_vid_cap" from driver structure with callbacks "usbvision_ioctl_ops" */ 3833 ldv_handler_precall(); 3834 vidioc_enum_fmt_vid_cap( var_group1, var_vidioc_enum_fmt_vid_cap_37_p1, var_vidioc_enum_fmt_vid_cap_37_p2); 3835 /* LDV_COMMENT_BEGIN_PREP */ 3836 #ifdef CONFIG_VIDEO_ADV_DEBUG 3837 #endif 3838 /* LDV_COMMENT_END_PREP */ 3839 3840 3841 3842 3843 } 3844 3845 break; 3846 case 6: { 3847 3848 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 3849 3850 3851 /* content: static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *vf)*/ 3852 /* LDV_COMMENT_BEGIN_PREP */ 3853 #define DRIVER_AUTHOR \ 3854 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3855 "Dwaine Garden <DwaineGarden@rogers.com>" 3856 #define DRIVER_NAME "usbvision" 3857 #define DRIVER_ALIAS "USBVision" 3858 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3859 #define DRIVER_LICENSE "GPL" 3860 #define USBVISION_VERSION_STRING "0.9.11" 3861 #define ENABLE_HEXDUMP 0 3862 #ifdef USBVISION_DEBUG 3863 #define PDEBUG(level, fmt, args...) { \ 3864 if (video_debug & (level)) \ 3865 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3866 __func__, __LINE__ , ## args); \ 3867 } 3868 #else 3869 #define PDEBUG(level, fmt, args...) do {} while (0) 3870 #endif 3871 #define DBG_IO (1 << 1) 3872 #define DBG_PROBE (1 << 2) 3873 #define DBG_MMAP (1 << 3) 3874 #define rmspace(str) while (*str == ' ') str++; 3875 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3876 #define YES_NO(x) ((x) ? "Yes" : "No") 3877 #ifdef CONFIG_VIDEO_ADV_DEBUG 3878 #endif 3879 /* LDV_COMMENT_END_PREP */ 3880 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_g_fmt_vid_cap" from driver structure with callbacks "usbvision_ioctl_ops" */ 3881 ldv_handler_precall(); 3882 vidioc_g_fmt_vid_cap( var_group1, var_vidioc_g_fmt_vid_cap_38_p1, var_vidioc_g_fmt_vid_cap_38_p2); 3883 /* LDV_COMMENT_BEGIN_PREP */ 3884 #ifdef CONFIG_VIDEO_ADV_DEBUG 3885 #endif 3886 /* LDV_COMMENT_END_PREP */ 3887 3888 3889 3890 3891 } 3892 3893 break; 3894 case 7: { 3895 3896 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 3897 3898 3899 /* content: static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *vf)*/ 3900 /* LDV_COMMENT_BEGIN_PREP */ 3901 #define DRIVER_AUTHOR \ 3902 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3903 "Dwaine Garden <DwaineGarden@rogers.com>" 3904 #define DRIVER_NAME "usbvision" 3905 #define DRIVER_ALIAS "USBVision" 3906 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3907 #define DRIVER_LICENSE "GPL" 3908 #define USBVISION_VERSION_STRING "0.9.11" 3909 #define ENABLE_HEXDUMP 0 3910 #ifdef USBVISION_DEBUG 3911 #define PDEBUG(level, fmt, args...) { \ 3912 if (video_debug & (level)) \ 3913 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3914 __func__, __LINE__ , ## args); \ 3915 } 3916 #else 3917 #define PDEBUG(level, fmt, args...) do {} while (0) 3918 #endif 3919 #define DBG_IO (1 << 1) 3920 #define DBG_PROBE (1 << 2) 3921 #define DBG_MMAP (1 << 3) 3922 #define rmspace(str) while (*str == ' ') str++; 3923 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3924 #define YES_NO(x) ((x) ? "Yes" : "No") 3925 #ifdef CONFIG_VIDEO_ADV_DEBUG 3926 #endif 3927 /* LDV_COMMENT_END_PREP */ 3928 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_try_fmt_vid_cap" from driver structure with callbacks "usbvision_ioctl_ops" */ 3929 ldv_handler_precall(); 3930 vidioc_try_fmt_vid_cap( var_group1, var_vidioc_try_fmt_vid_cap_39_p1, var_vidioc_try_fmt_vid_cap_39_p2); 3931 /* LDV_COMMENT_BEGIN_PREP */ 3932 #ifdef CONFIG_VIDEO_ADV_DEBUG 3933 #endif 3934 /* LDV_COMMENT_END_PREP */ 3935 3936 3937 3938 3939 } 3940 3941 break; 3942 case 8: { 3943 3944 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 3945 3946 3947 /* content: static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *vf)*/ 3948 /* LDV_COMMENT_BEGIN_PREP */ 3949 #define DRIVER_AUTHOR \ 3950 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3951 "Dwaine Garden <DwaineGarden@rogers.com>" 3952 #define DRIVER_NAME "usbvision" 3953 #define DRIVER_ALIAS "USBVision" 3954 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 3955 #define DRIVER_LICENSE "GPL" 3956 #define USBVISION_VERSION_STRING "0.9.11" 3957 #define ENABLE_HEXDUMP 0 3958 #ifdef USBVISION_DEBUG 3959 #define PDEBUG(level, fmt, args...) { \ 3960 if (video_debug & (level)) \ 3961 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 3962 __func__, __LINE__ , ## args); \ 3963 } 3964 #else 3965 #define PDEBUG(level, fmt, args...) do {} while (0) 3966 #endif 3967 #define DBG_IO (1 << 1) 3968 #define DBG_PROBE (1 << 2) 3969 #define DBG_MMAP (1 << 3) 3970 #define rmspace(str) while (*str == ' ') str++; 3971 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 3972 #define YES_NO(x) ((x) ? "Yes" : "No") 3973 #ifdef CONFIG_VIDEO_ADV_DEBUG 3974 #endif 3975 /* LDV_COMMENT_END_PREP */ 3976 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_s_fmt_vid_cap" from driver structure with callbacks "usbvision_ioctl_ops" */ 3977 ldv_handler_precall(); 3978 vidioc_s_fmt_vid_cap( var_group1, var_vidioc_s_fmt_vid_cap_40_p1, var_vidioc_s_fmt_vid_cap_40_p2); 3979 /* LDV_COMMENT_BEGIN_PREP */ 3980 #ifdef CONFIG_VIDEO_ADV_DEBUG 3981 #endif 3982 /* LDV_COMMENT_END_PREP */ 3983 3984 3985 3986 3987 } 3988 3989 break; 3990 case 9: { 3991 3992 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 3993 3994 3995 /* content: static int vidioc_reqbufs(struct file *file, void *priv, struct v4l2_requestbuffers *vr)*/ 3996 /* LDV_COMMENT_BEGIN_PREP */ 3997 #define DRIVER_AUTHOR \ 3998 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 3999 "Dwaine Garden <DwaineGarden@rogers.com>" 4000 #define DRIVER_NAME "usbvision" 4001 #define DRIVER_ALIAS "USBVision" 4002 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4003 #define DRIVER_LICENSE "GPL" 4004 #define USBVISION_VERSION_STRING "0.9.11" 4005 #define ENABLE_HEXDUMP 0 4006 #ifdef USBVISION_DEBUG 4007 #define PDEBUG(level, fmt, args...) { \ 4008 if (video_debug & (level)) \ 4009 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4010 __func__, __LINE__ , ## args); \ 4011 } 4012 #else 4013 #define PDEBUG(level, fmt, args...) do {} while (0) 4014 #endif 4015 #define DBG_IO (1 << 1) 4016 #define DBG_PROBE (1 << 2) 4017 #define DBG_MMAP (1 << 3) 4018 #define rmspace(str) while (*str == ' ') str++; 4019 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4020 #define YES_NO(x) ((x) ? "Yes" : "No") 4021 #ifdef CONFIG_VIDEO_ADV_DEBUG 4022 #endif 4023 /* LDV_COMMENT_END_PREP */ 4024 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_reqbufs" from driver structure with callbacks "usbvision_ioctl_ops" */ 4025 ldv_handler_precall(); 4026 vidioc_reqbufs( var_group1, var_vidioc_reqbufs_31_p1, var_vidioc_reqbufs_31_p2); 4027 /* LDV_COMMENT_BEGIN_PREP */ 4028 #ifdef CONFIG_VIDEO_ADV_DEBUG 4029 #endif 4030 /* LDV_COMMENT_END_PREP */ 4031 4032 4033 4034 4035 } 4036 4037 break; 4038 case 10: { 4039 4040 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4041 4042 4043 /* content: static int vidioc_querybuf(struct file *file, void *priv, struct v4l2_buffer *vb)*/ 4044 /* LDV_COMMENT_BEGIN_PREP */ 4045 #define DRIVER_AUTHOR \ 4046 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4047 "Dwaine Garden <DwaineGarden@rogers.com>" 4048 #define DRIVER_NAME "usbvision" 4049 #define DRIVER_ALIAS "USBVision" 4050 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4051 #define DRIVER_LICENSE "GPL" 4052 #define USBVISION_VERSION_STRING "0.9.11" 4053 #define ENABLE_HEXDUMP 0 4054 #ifdef USBVISION_DEBUG 4055 #define PDEBUG(level, fmt, args...) { \ 4056 if (video_debug & (level)) \ 4057 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4058 __func__, __LINE__ , ## args); \ 4059 } 4060 #else 4061 #define PDEBUG(level, fmt, args...) do {} while (0) 4062 #endif 4063 #define DBG_IO (1 << 1) 4064 #define DBG_PROBE (1 << 2) 4065 #define DBG_MMAP (1 << 3) 4066 #define rmspace(str) while (*str == ' ') str++; 4067 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4068 #define YES_NO(x) ((x) ? "Yes" : "No") 4069 #ifdef CONFIG_VIDEO_ADV_DEBUG 4070 #endif 4071 /* LDV_COMMENT_END_PREP */ 4072 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_querybuf" from driver structure with callbacks "usbvision_ioctl_ops" */ 4073 ldv_handler_precall(); 4074 vidioc_querybuf( var_group1, var_vidioc_querybuf_32_p1, var_vidioc_querybuf_32_p2); 4075 /* LDV_COMMENT_BEGIN_PREP */ 4076 #ifdef CONFIG_VIDEO_ADV_DEBUG 4077 #endif 4078 /* LDV_COMMENT_END_PREP */ 4079 4080 4081 4082 4083 } 4084 4085 break; 4086 case 11: { 4087 4088 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4089 4090 4091 /* content: static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *vb)*/ 4092 /* LDV_COMMENT_BEGIN_PREP */ 4093 #define DRIVER_AUTHOR \ 4094 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4095 "Dwaine Garden <DwaineGarden@rogers.com>" 4096 #define DRIVER_NAME "usbvision" 4097 #define DRIVER_ALIAS "USBVision" 4098 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4099 #define DRIVER_LICENSE "GPL" 4100 #define USBVISION_VERSION_STRING "0.9.11" 4101 #define ENABLE_HEXDUMP 0 4102 #ifdef USBVISION_DEBUG 4103 #define PDEBUG(level, fmt, args...) { \ 4104 if (video_debug & (level)) \ 4105 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4106 __func__, __LINE__ , ## args); \ 4107 } 4108 #else 4109 #define PDEBUG(level, fmt, args...) do {} while (0) 4110 #endif 4111 #define DBG_IO (1 << 1) 4112 #define DBG_PROBE (1 << 2) 4113 #define DBG_MMAP (1 << 3) 4114 #define rmspace(str) while (*str == ' ') str++; 4115 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4116 #define YES_NO(x) ((x) ? "Yes" : "No") 4117 #ifdef CONFIG_VIDEO_ADV_DEBUG 4118 #endif 4119 /* LDV_COMMENT_END_PREP */ 4120 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_qbuf" from driver structure with callbacks "usbvision_ioctl_ops" */ 4121 ldv_handler_precall(); 4122 vidioc_qbuf( var_group1, var_vidioc_qbuf_33_p1, var_vidioc_qbuf_33_p2); 4123 /* LDV_COMMENT_BEGIN_PREP */ 4124 #ifdef CONFIG_VIDEO_ADV_DEBUG 4125 #endif 4126 /* LDV_COMMENT_END_PREP */ 4127 4128 4129 4130 4131 } 4132 4133 break; 4134 case 12: { 4135 4136 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4137 4138 4139 /* content: static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *vb)*/ 4140 /* LDV_COMMENT_BEGIN_PREP */ 4141 #define DRIVER_AUTHOR \ 4142 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4143 "Dwaine Garden <DwaineGarden@rogers.com>" 4144 #define DRIVER_NAME "usbvision" 4145 #define DRIVER_ALIAS "USBVision" 4146 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4147 #define DRIVER_LICENSE "GPL" 4148 #define USBVISION_VERSION_STRING "0.9.11" 4149 #define ENABLE_HEXDUMP 0 4150 #ifdef USBVISION_DEBUG 4151 #define PDEBUG(level, fmt, args...) { \ 4152 if (video_debug & (level)) \ 4153 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4154 __func__, __LINE__ , ## args); \ 4155 } 4156 #else 4157 #define PDEBUG(level, fmt, args...) do {} while (0) 4158 #endif 4159 #define DBG_IO (1 << 1) 4160 #define DBG_PROBE (1 << 2) 4161 #define DBG_MMAP (1 << 3) 4162 #define rmspace(str) while (*str == ' ') str++; 4163 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4164 #define YES_NO(x) ((x) ? "Yes" : "No") 4165 #ifdef CONFIG_VIDEO_ADV_DEBUG 4166 #endif 4167 /* LDV_COMMENT_END_PREP */ 4168 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_dqbuf" from driver structure with callbacks "usbvision_ioctl_ops" */ 4169 ldv_handler_precall(); 4170 vidioc_dqbuf( var_group1, var_vidioc_dqbuf_34_p1, var_vidioc_dqbuf_34_p2); 4171 /* LDV_COMMENT_BEGIN_PREP */ 4172 #ifdef CONFIG_VIDEO_ADV_DEBUG 4173 #endif 4174 /* LDV_COMMENT_END_PREP */ 4175 4176 4177 4178 4179 } 4180 4181 break; 4182 case 13: { 4183 4184 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4185 4186 4187 /* content: static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id)*/ 4188 /* LDV_COMMENT_BEGIN_PREP */ 4189 #define DRIVER_AUTHOR \ 4190 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4191 "Dwaine Garden <DwaineGarden@rogers.com>" 4192 #define DRIVER_NAME "usbvision" 4193 #define DRIVER_ALIAS "USBVision" 4194 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4195 #define DRIVER_LICENSE "GPL" 4196 #define USBVISION_VERSION_STRING "0.9.11" 4197 #define ENABLE_HEXDUMP 0 4198 #ifdef USBVISION_DEBUG 4199 #define PDEBUG(level, fmt, args...) { \ 4200 if (video_debug & (level)) \ 4201 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4202 __func__, __LINE__ , ## args); \ 4203 } 4204 #else 4205 #define PDEBUG(level, fmt, args...) do {} while (0) 4206 #endif 4207 #define DBG_IO (1 << 1) 4208 #define DBG_PROBE (1 << 2) 4209 #define DBG_MMAP (1 << 3) 4210 #define rmspace(str) while (*str == ' ') str++; 4211 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4212 #define YES_NO(x) ((x) ? "Yes" : "No") 4213 #ifdef CONFIG_VIDEO_ADV_DEBUG 4214 #endif 4215 /* LDV_COMMENT_END_PREP */ 4216 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_s_std" from driver structure with callbacks "usbvision_ioctl_ops" */ 4217 ldv_handler_precall(); 4218 vidioc_s_std( var_group1, var_vidioc_s_std_20_p1, var_vidioc_s_std_20_p2); 4219 /* LDV_COMMENT_BEGIN_PREP */ 4220 #ifdef CONFIG_VIDEO_ADV_DEBUG 4221 #endif 4222 /* LDV_COMMENT_END_PREP */ 4223 4224 4225 4226 4227 } 4228 4229 break; 4230 case 14: { 4231 4232 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4233 4234 4235 /* content: static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *id)*/ 4236 /* LDV_COMMENT_BEGIN_PREP */ 4237 #define DRIVER_AUTHOR \ 4238 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4239 "Dwaine Garden <DwaineGarden@rogers.com>" 4240 #define DRIVER_NAME "usbvision" 4241 #define DRIVER_ALIAS "USBVision" 4242 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4243 #define DRIVER_LICENSE "GPL" 4244 #define USBVISION_VERSION_STRING "0.9.11" 4245 #define ENABLE_HEXDUMP 0 4246 #ifdef USBVISION_DEBUG 4247 #define PDEBUG(level, fmt, args...) { \ 4248 if (video_debug & (level)) \ 4249 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4250 __func__, __LINE__ , ## args); \ 4251 } 4252 #else 4253 #define PDEBUG(level, fmt, args...) do {} while (0) 4254 #endif 4255 #define DBG_IO (1 << 1) 4256 #define DBG_PROBE (1 << 2) 4257 #define DBG_MMAP (1 << 3) 4258 #define rmspace(str) while (*str == ' ') str++; 4259 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4260 #define YES_NO(x) ((x) ? "Yes" : "No") 4261 #ifdef CONFIG_VIDEO_ADV_DEBUG 4262 #endif 4263 /* LDV_COMMENT_END_PREP */ 4264 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_g_std" from driver structure with callbacks "usbvision_ioctl_ops" */ 4265 ldv_handler_precall(); 4266 vidioc_g_std( var_group1, var_vidioc_g_std_21_p1, var_vidioc_g_std_21_p2); 4267 /* LDV_COMMENT_BEGIN_PREP */ 4268 #ifdef CONFIG_VIDEO_ADV_DEBUG 4269 #endif 4270 /* LDV_COMMENT_END_PREP */ 4271 4272 4273 4274 4275 } 4276 4277 break; 4278 case 15: { 4279 4280 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4281 4282 4283 /* content: static int vidioc_enum_input(struct file *file, void *priv, struct v4l2_input *vi)*/ 4284 /* LDV_COMMENT_BEGIN_PREP */ 4285 #define DRIVER_AUTHOR \ 4286 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4287 "Dwaine Garden <DwaineGarden@rogers.com>" 4288 #define DRIVER_NAME "usbvision" 4289 #define DRIVER_ALIAS "USBVision" 4290 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4291 #define DRIVER_LICENSE "GPL" 4292 #define USBVISION_VERSION_STRING "0.9.11" 4293 #define ENABLE_HEXDUMP 0 4294 #ifdef USBVISION_DEBUG 4295 #define PDEBUG(level, fmt, args...) { \ 4296 if (video_debug & (level)) \ 4297 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4298 __func__, __LINE__ , ## args); \ 4299 } 4300 #else 4301 #define PDEBUG(level, fmt, args...) do {} while (0) 4302 #endif 4303 #define DBG_IO (1 << 1) 4304 #define DBG_PROBE (1 << 2) 4305 #define DBG_MMAP (1 << 3) 4306 #define rmspace(str) while (*str == ' ') str++; 4307 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4308 #define YES_NO(x) ((x) ? "Yes" : "No") 4309 #ifdef CONFIG_VIDEO_ADV_DEBUG 4310 #endif 4311 /* LDV_COMMENT_END_PREP */ 4312 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_enum_input" from driver structure with callbacks "usbvision_ioctl_ops" */ 4313 ldv_handler_precall(); 4314 vidioc_enum_input( var_group1, var_vidioc_enum_input_17_p1, var_vidioc_enum_input_17_p2); 4315 /* LDV_COMMENT_BEGIN_PREP */ 4316 #ifdef CONFIG_VIDEO_ADV_DEBUG 4317 #endif 4318 /* LDV_COMMENT_END_PREP */ 4319 4320 4321 4322 4323 } 4324 4325 break; 4326 case 16: { 4327 4328 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4329 4330 4331 /* content: static int vidioc_g_input(struct file *file, void *priv, unsigned int *input)*/ 4332 /* LDV_COMMENT_BEGIN_PREP */ 4333 #define DRIVER_AUTHOR \ 4334 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4335 "Dwaine Garden <DwaineGarden@rogers.com>" 4336 #define DRIVER_NAME "usbvision" 4337 #define DRIVER_ALIAS "USBVision" 4338 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4339 #define DRIVER_LICENSE "GPL" 4340 #define USBVISION_VERSION_STRING "0.9.11" 4341 #define ENABLE_HEXDUMP 0 4342 #ifdef USBVISION_DEBUG 4343 #define PDEBUG(level, fmt, args...) { \ 4344 if (video_debug & (level)) \ 4345 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4346 __func__, __LINE__ , ## args); \ 4347 } 4348 #else 4349 #define PDEBUG(level, fmt, args...) do {} while (0) 4350 #endif 4351 #define DBG_IO (1 << 1) 4352 #define DBG_PROBE (1 << 2) 4353 #define DBG_MMAP (1 << 3) 4354 #define rmspace(str) while (*str == ' ') str++; 4355 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4356 #define YES_NO(x) ((x) ? "Yes" : "No") 4357 #ifdef CONFIG_VIDEO_ADV_DEBUG 4358 #endif 4359 /* LDV_COMMENT_END_PREP */ 4360 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_g_input" from driver structure with callbacks "usbvision_ioctl_ops" */ 4361 ldv_handler_precall(); 4362 vidioc_g_input( var_group1, var_vidioc_g_input_18_p1, var_vidioc_g_input_18_p2); 4363 /* LDV_COMMENT_BEGIN_PREP */ 4364 #ifdef CONFIG_VIDEO_ADV_DEBUG 4365 #endif 4366 /* LDV_COMMENT_END_PREP */ 4367 4368 4369 4370 4371 } 4372 4373 break; 4374 case 17: { 4375 4376 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4377 4378 4379 /* content: static int vidioc_s_input(struct file *file, void *priv, unsigned int input)*/ 4380 /* LDV_COMMENT_BEGIN_PREP */ 4381 #define DRIVER_AUTHOR \ 4382 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4383 "Dwaine Garden <DwaineGarden@rogers.com>" 4384 #define DRIVER_NAME "usbvision" 4385 #define DRIVER_ALIAS "USBVision" 4386 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4387 #define DRIVER_LICENSE "GPL" 4388 #define USBVISION_VERSION_STRING "0.9.11" 4389 #define ENABLE_HEXDUMP 0 4390 #ifdef USBVISION_DEBUG 4391 #define PDEBUG(level, fmt, args...) { \ 4392 if (video_debug & (level)) \ 4393 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4394 __func__, __LINE__ , ## args); \ 4395 } 4396 #else 4397 #define PDEBUG(level, fmt, args...) do {} while (0) 4398 #endif 4399 #define DBG_IO (1 << 1) 4400 #define DBG_PROBE (1 << 2) 4401 #define DBG_MMAP (1 << 3) 4402 #define rmspace(str) while (*str == ' ') str++; 4403 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4404 #define YES_NO(x) ((x) ? "Yes" : "No") 4405 #ifdef CONFIG_VIDEO_ADV_DEBUG 4406 #endif 4407 /* LDV_COMMENT_END_PREP */ 4408 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_s_input" from driver structure with callbacks "usbvision_ioctl_ops" */ 4409 ldv_handler_precall(); 4410 vidioc_s_input( var_group1, var_vidioc_s_input_19_p1, var_vidioc_s_input_19_p2); 4411 /* LDV_COMMENT_BEGIN_PREP */ 4412 #ifdef CONFIG_VIDEO_ADV_DEBUG 4413 #endif 4414 /* LDV_COMMENT_END_PREP */ 4415 4416 4417 4418 4419 } 4420 4421 break; 4422 case 18: { 4423 4424 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4425 4426 4427 /* content: static int vidioc_queryctrl(struct file *file, void *priv, struct v4l2_queryctrl *ctrl)*/ 4428 /* LDV_COMMENT_BEGIN_PREP */ 4429 #define DRIVER_AUTHOR \ 4430 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4431 "Dwaine Garden <DwaineGarden@rogers.com>" 4432 #define DRIVER_NAME "usbvision" 4433 #define DRIVER_ALIAS "USBVision" 4434 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4435 #define DRIVER_LICENSE "GPL" 4436 #define USBVISION_VERSION_STRING "0.9.11" 4437 #define ENABLE_HEXDUMP 0 4438 #ifdef USBVISION_DEBUG 4439 #define PDEBUG(level, fmt, args...) { \ 4440 if (video_debug & (level)) \ 4441 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4442 __func__, __LINE__ , ## args); \ 4443 } 4444 #else 4445 #define PDEBUG(level, fmt, args...) do {} while (0) 4446 #endif 4447 #define DBG_IO (1 << 1) 4448 #define DBG_PROBE (1 << 2) 4449 #define DBG_MMAP (1 << 3) 4450 #define rmspace(str) while (*str == ' ') str++; 4451 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4452 #define YES_NO(x) ((x) ? "Yes" : "No") 4453 #ifdef CONFIG_VIDEO_ADV_DEBUG 4454 #endif 4455 /* LDV_COMMENT_END_PREP */ 4456 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_queryctrl" from driver structure with callbacks "usbvision_ioctl_ops" */ 4457 ldv_handler_precall(); 4458 vidioc_queryctrl( var_group1, var_vidioc_queryctrl_28_p1, var_vidioc_queryctrl_28_p2); 4459 /* LDV_COMMENT_BEGIN_PREP */ 4460 #ifdef CONFIG_VIDEO_ADV_DEBUG 4461 #endif 4462 /* LDV_COMMENT_END_PREP */ 4463 4464 4465 4466 4467 } 4468 4469 break; 4470 case 19: { 4471 4472 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4473 4474 4475 /* content: static int vidioc_g_audio(struct file *file, void *priv, struct v4l2_audio *a)*/ 4476 /* LDV_COMMENT_BEGIN_PREP */ 4477 #define DRIVER_AUTHOR \ 4478 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4479 "Dwaine Garden <DwaineGarden@rogers.com>" 4480 #define DRIVER_NAME "usbvision" 4481 #define DRIVER_ALIAS "USBVision" 4482 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4483 #define DRIVER_LICENSE "GPL" 4484 #define USBVISION_VERSION_STRING "0.9.11" 4485 #define ENABLE_HEXDUMP 0 4486 #ifdef USBVISION_DEBUG 4487 #define PDEBUG(level, fmt, args...) { \ 4488 if (video_debug & (level)) \ 4489 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4490 __func__, __LINE__ , ## args); \ 4491 } 4492 #else 4493 #define PDEBUG(level, fmt, args...) do {} while (0) 4494 #endif 4495 #define DBG_IO (1 << 1) 4496 #define DBG_PROBE (1 << 2) 4497 #define DBG_MMAP (1 << 3) 4498 #define rmspace(str) while (*str == ' ') str++; 4499 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4500 #define YES_NO(x) ((x) ? "Yes" : "No") 4501 #ifdef CONFIG_VIDEO_ADV_DEBUG 4502 #endif 4503 /* LDV_COMMENT_END_PREP */ 4504 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_g_audio" from driver structure with callbacks "usbvision_ioctl_ops" */ 4505 ldv_handler_precall(); 4506 vidioc_g_audio( var_group1, var_vidioc_g_audio_26_p1, var_vidioc_g_audio_26_p2); 4507 /* LDV_COMMENT_BEGIN_PREP */ 4508 #ifdef CONFIG_VIDEO_ADV_DEBUG 4509 #endif 4510 /* LDV_COMMENT_END_PREP */ 4511 4512 4513 4514 4515 } 4516 4517 break; 4518 case 20: { 4519 4520 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4521 4522 4523 /* content: static int vidioc_s_audio(struct file *file, void *fh, const struct v4l2_audio *a)*/ 4524 /* LDV_COMMENT_BEGIN_PREP */ 4525 #define DRIVER_AUTHOR \ 4526 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4527 "Dwaine Garden <DwaineGarden@rogers.com>" 4528 #define DRIVER_NAME "usbvision" 4529 #define DRIVER_ALIAS "USBVision" 4530 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4531 #define DRIVER_LICENSE "GPL" 4532 #define USBVISION_VERSION_STRING "0.9.11" 4533 #define ENABLE_HEXDUMP 0 4534 #ifdef USBVISION_DEBUG 4535 #define PDEBUG(level, fmt, args...) { \ 4536 if (video_debug & (level)) \ 4537 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4538 __func__, __LINE__ , ## args); \ 4539 } 4540 #else 4541 #define PDEBUG(level, fmt, args...) do {} while (0) 4542 #endif 4543 #define DBG_IO (1 << 1) 4544 #define DBG_PROBE (1 << 2) 4545 #define DBG_MMAP (1 << 3) 4546 #define rmspace(str) while (*str == ' ') str++; 4547 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4548 #define YES_NO(x) ((x) ? "Yes" : "No") 4549 #ifdef CONFIG_VIDEO_ADV_DEBUG 4550 #endif 4551 /* LDV_COMMENT_END_PREP */ 4552 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_s_audio" from driver structure with callbacks "usbvision_ioctl_ops" */ 4553 ldv_handler_precall(); 4554 vidioc_s_audio( var_group1, var_vidioc_s_audio_27_p1, var_vidioc_s_audio_27_p2); 4555 /* LDV_COMMENT_BEGIN_PREP */ 4556 #ifdef CONFIG_VIDEO_ADV_DEBUG 4557 #endif 4558 /* LDV_COMMENT_END_PREP */ 4559 4560 4561 4562 4563 } 4564 4565 break; 4566 case 21: { 4567 4568 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4569 4570 4571 /* content: static int vidioc_g_ctrl(struct file *file, void *priv, struct v4l2_control *ctrl)*/ 4572 /* LDV_COMMENT_BEGIN_PREP */ 4573 #define DRIVER_AUTHOR \ 4574 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4575 "Dwaine Garden <DwaineGarden@rogers.com>" 4576 #define DRIVER_NAME "usbvision" 4577 #define DRIVER_ALIAS "USBVision" 4578 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4579 #define DRIVER_LICENSE "GPL" 4580 #define USBVISION_VERSION_STRING "0.9.11" 4581 #define ENABLE_HEXDUMP 0 4582 #ifdef USBVISION_DEBUG 4583 #define PDEBUG(level, fmt, args...) { \ 4584 if (video_debug & (level)) \ 4585 printk(KERN_INFO KBUILD_MODNAME ":[%s:%d] " fmt, \ 4586 __func__, __LINE__ , ## args); \ 4587 } 4588 #else 4589 #define PDEBUG(level, fmt, args...) do {} while (0) 4590 #endif 4591 #define DBG_IO (1 << 1) 4592 #define DBG_PROBE (1 << 2) 4593 #define DBG_MMAP (1 << 3) 4594 #define rmspace(str) while (*str == ' ') str++; 4595 #define goto2next(str) while (*str != ' ') str++; while (*str == ' ') str++; 4596 #define YES_NO(x) ((x) ? "Yes" : "No") 4597 #ifdef CONFIG_VIDEO_ADV_DEBUG 4598 #endif 4599 /* LDV_COMMENT_END_PREP */ 4600 /* LDV_COMMENT_FUNCTION_CALL Function from field "vidioc_g_ctrl" from driver structure with callbacks "usbvision_ioctl_ops" */ 4601 ldv_handler_precall(); 4602 vidioc_g_ctrl( var_group1, var_vidioc_g_ctrl_29_p1, var_vidioc_g_ctrl_29_p2); 4603 /* LDV_COMMENT_BEGIN_PREP */ 4604 #ifdef CONFIG_VIDEO_ADV_DEBUG 4605 #endif 4606 /* LDV_COMMENT_END_PREP */ 4607 4608 4609 4610 4611 } 4612 4613 break; 4614 case 22: { 4615 4616 /** STRUCT: struct type: v4l2_ioctl_ops, struct name: usbvision_ioctl_ops **/ 4617 4618 4619 /* content: static int vidioc_s_ctrl(struct file *file, void *priv, struct v4l2_control *ctrl)*/ 4620 /* LDV_COMMENT_BEGIN_PREP */ 4621 #define DRIVER_AUTHOR \ 4622 "Joerg Heckenbach <joerg@heckenbach-aw.de>, " \ 4623 "Dwaine Garden <DwaineGarden@rogers.com>" 4624 #define DRIVER_NAME "usbvision" 4625 #define DRIVER_ALIAS "USBVision" 4626 #define DRIVER_DESC "USBVision USB Video Device Driver for Linux" 4627 #define DRIVER_LICENSE "GPL" 4628 #define USBVISION_VERSION_STRING "0.9.11" 4629 #define ENABLE_HEXDUMP 0 4630