📄 ivtv-cards.c
字号:
{ IVTV_CARD_INPUT_COMPOSITE1, 1, CX25840_COMPOSITE1 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, CX25840_AUDIO5 }, { IVTV_CARD_INPUT_LINE_IN1, CX25840_AUDIO_SERIAL }, }, .tuners = { { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FQ1216ME }, { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FQ1286 }, }, .pci_list = ivtv_pci_pg600,};/* ------------------------------------------------------------------------- *//* Adaptec VideOh! AVC-2410 card */static const struct ivtv_card_pci_info ivtv_pci_avc2410[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_ADAPTEC, 0x0093 }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_avc2410 = { .type = IVTV_CARD_AVC2410, .name = "Adaptec VideOh! AVC-2410", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7115, .hw_audio = IVTV_HW_MSP34XX, .hw_audio_ctrl = IVTV_HW_MSP34XX, .hw_muxer = IVTV_HW_CS53L32A, .hw_all = IVTV_HW_MSP34XX | IVTV_HW_CS53L32A | IVTV_HW_SAA7115 | IVTV_HW_TUNER, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_COMPOSITE4 }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_COMPOSITE3 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, MSP_TUNER, CS53L32A_IN0 }, { IVTV_CARD_INPUT_LINE_IN1, MSP_SCART1, CS53L32A_IN2 }, }, /* This card has no eeprom and in fact the Windows driver relies on the country/region setting of the user to decide which tuner is available. */ .tuners = { /* This tuner has been verified for the AVC2410 */ { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, /* This is a good guess, but I'm not totally sure this is the correct tuner for NTSC. */ { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, }, .pci_list = ivtv_pci_avc2410,};/* ------------------------------------------------------------------------- *//* Adaptec VideOh! AVC-2010 card */static const struct ivtv_card_pci_info ivtv_pci_avc2010[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_ADAPTEC, 0x0092 }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_avc2010 = { .type = IVTV_CARD_AVC2010, .name = "Adaptec VideOh! AVC-2010", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7115, .hw_audio = IVTV_HW_CS53L32A, .hw_audio_ctrl = IVTV_HW_CS53L32A, .hw_all = IVTV_HW_CS53L32A | IVTV_HW_SAA7115, .video_inputs = { { IVTV_CARD_INPUT_SVIDEO1, 0, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_COMPOSITE1, 0, IVTV_SAA71XX_COMPOSITE3 }, }, .audio_inputs = { { IVTV_CARD_INPUT_LINE_IN1, CS53L32A_IN2 }, }, /* Does not have a tuner */ .pci_list = ivtv_pci_avc2010,};/* ------------------------------------------------------------------------- *//* Nagase Transgear 5000TV card */static const struct ivtv_card_pci_info ivtv_pci_tg5000tv[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_AVERMEDIA, 0xbfff }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_tg5000tv = { .type = IVTV_CARD_TG5000TV, .name = "Nagase Transgear 5000TV", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7114 | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X | IVTV_HW_GPIO, .hw_audio = IVTV_HW_GPIO, .hw_audio_ctrl = IVTV_HW_GPIO, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA7114 | IVTV_HW_TUNER | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO2 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_SVIDEO2 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_GPIO_TUNER }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_GPIO_LINE_IN }, }, .gr_config = UPD64031A_VERTICAL_EXTERNAL, .gpio_init = { .direction = 0xe080, .initial_value = 0x8000 }, .gpio_audio_input = { .mask = 0x8080, .tuner = 0x8000, .linein = 0x0080 }, .gpio_audio_mute = { .mask = 0x6000, .mute = 0x6000 }, .gpio_audio_mode = { .mask = 0x4300, .mono = 0x4000, .stereo = 0x0200, .lang1 = 0x0300, .lang2 = 0x0000, .both = 0x0200 }, .gpio_video_input = { .mask = 0x0030, .tuner = 0x0000, .composite = 0x0010, .svideo = 0x0020 }, .tuners = { { .std = V4L2_STD_525_60, .tuner = TUNER_PHILIPS_FQ1286 }, }, .pci_list = ivtv_pci_tg5000tv,};/* ------------------------------------------------------------------------- *//* AOpen VA2000MAX-SNT6 card */static const struct ivtv_card_pci_info ivtv_pci_va2000[] = { { PCI_DEVICE_ID_IVTV16, 0, 0xff5f }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_va2000 = { .type = IVTV_CARD_VA2000MAX_SNT6, .name = "AOpen VA2000MAX-SNT6", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7115 | IVTV_HW_UPD6408X, .hw_audio = IVTV_HW_MSP34XX, .hw_audio_ctrl = IVTV_HW_MSP34XX, .hw_all = IVTV_HW_MSP34XX | IVTV_HW_SAA7115 | IVTV_HW_UPD6408X | IVTV_HW_TUNER, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_SVIDEO0 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, MSP_TUNER }, }, .tuners = { { .std = V4L2_STD_525_60, .tuner = TUNER_PHILIPS_FQ1286 }, }, .pci_list = ivtv_pci_va2000,};/* ------------------------------------------------------------------------- *//* Yuan MPG600GR/Kuroutoshikou CX23416GYC-STVLP cards */static const struct ivtv_card_pci_info ivtv_pci_cx23416gyc[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_YUAN1, 0x0600 }, { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_YUAN4, 0x0600 }, { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_MELCO, 0x0523 }, { 0, 0, 0 }};static const struct ivtv_card ivtv_card_cx23416gyc = { .type = IVTV_CARD_CX23416GYC, .name = "Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA717X | IVTV_HW_GPIO | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X, .hw_audio = IVTV_HW_SAA717X, .hw_audio_ctrl = IVTV_HW_SAA717X, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA717X | IVTV_HW_TUNER | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_SVIDEO3 | IVTV_SAA717X_TUNER_FLAG }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_SVIDEO3 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_SAA717X_IN2 }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_SAA717X_IN0 }, }, .gr_config = UPD64031A_VERTICAL_EXTERNAL, .gpio_init = { .direction = 0xf880, .initial_value = 0x8800 }, .gpio_video_input = { .mask = 0x0020, .tuner = 0x0000, .composite = 0x0020, .svideo = 0x0020 }, .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, .f44100 = 0x4000, .f48000 = 0x8000 }, .tuners = { { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, }, .pci_list = ivtv_pci_cx23416gyc,};static const struct ivtv_card ivtv_card_cx23416gyc_nogr = { .type = IVTV_CARD_CX23416GYC_NOGR, .name = "Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP (no GR)", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA717X | IVTV_HW_GPIO | IVTV_HW_UPD6408X, .hw_audio = IVTV_HW_SAA717X, .hw_audio_ctrl = IVTV_HW_SAA717X, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA717X | IVTV_HW_TUNER | IVTV_HW_UPD6408X, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_COMPOSITE4 | IVTV_SAA717X_TUNER_FLAG }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_COMPOSITE0 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_SAA717X_IN2 }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_SAA717X_IN0 }, }, .gpio_init = { .direction = 0xf880, .initial_value = 0x8800 }, .gpio_video_input = { .mask = 0x0020, .tuner = 0x0000, .composite = 0x0020, .svideo = 0x0020 }, .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, .f44100 = 0x4000, .f48000 = 0x8000 }, .tuners = { { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, },};static const struct ivtv_card ivtv_card_cx23416gyc_nogrycs = { .type = IVTV_CARD_CX23416GYC_NOGRYCS, .name = "Yuan MPG600GR, Kuroutoshikou CX23416GYC-STVLP (no GR/YCS)", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA717X | IVTV_HW_GPIO, .hw_audio = IVTV_HW_SAA717X, .hw_audio_ctrl = IVTV_HW_SAA717X, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA717X | IVTV_HW_TUNER, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_COMPOSITE4 | IVTV_SAA717X_TUNER_FLAG }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_COMPOSITE0 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_SAA717X_IN2 }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_SAA717X_IN0 }, }, .gpio_init = { .direction = 0xf880, .initial_value = 0x8800 }, .gpio_video_input = { .mask = 0x0020, .tuner = 0x0000, .composite = 0x0020, .svideo = 0x0020 }, .gpio_audio_freq = { .mask = 0xc000, .f32000 = 0x0000, .f44100 = 0x4000, .f48000 = 0x8000 }, .tuners = { { .std = V4L2_STD_625_50, .tuner = TUNER_PHILIPS_FM1216ME_MK3 }, { .std = V4L2_STD_ALL, .tuner = TUNER_PHILIPS_FM1236_MK3 }, },};/* ------------------------------------------------------------------------- *//* I/O Data GV-MVP/RX & GV-MVP/RX2W (dual tuner) cards */static const struct ivtv_card_pci_info ivtv_pci_gv_mvprx[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_IODATA, 0xd01e }, { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_IODATA, 0xd038 }, /* 2W unit #1 */ { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_IODATA, 0xd039 }, /* 2W unit #2 */ { 0, 0, 0 }};static const struct ivtv_card ivtv_card_gv_mvprx = { .type = IVTV_CARD_GV_MVPRX, .name = "I/O Data GV-MVP/RX, GV-MVP/RX2W (dual tuner)", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7115 | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X, .hw_audio = IVTV_HW_GPIO, .hw_audio_ctrl = IVTV_HW_WM8739, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA7115 | IVTV_HW_VP27SMPX | IVTV_HW_TUNER | IVTV_HW_WM8739 | IVTV_HW_UPD64031A | IVTV_HW_UPD6408X, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO1 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_SVIDEO2 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_GPIO_TUNER }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_GPIO_LINE_IN }, }, .gpio_init = { .direction = 0xc301, .initial_value = 0x0200 }, .gpio_audio_input = { .mask = 0xffff, .tuner = 0x0200, .linein = 0x0300 }, .tuners = { /* This card has the Panasonic VP27 tuner */ { .std = V4L2_STD_525_60, .tuner = TUNER_PANASONIC_VP27 }, }, .pci_list = ivtv_pci_gv_mvprx,};/* ------------------------------------------------------------------------- *//* I/O Data GV-MVP/RX2E card */static const struct ivtv_card_pci_info ivtv_pci_gv_mvprx2e[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_IODATA, 0xd025 }, {0, 0, 0}};static const struct ivtv_card ivtv_card_gv_mvprx2e = { .type = IVTV_CARD_GV_MVPRX2E, .name = "I/O Data GV-MVP/RX2E", .v4l2_capabilities = IVTV_CAP_ENCODER, .hw_video = IVTV_HW_SAA7115, .hw_audio = IVTV_HW_GPIO, .hw_audio_ctrl = IVTV_HW_WM8739, .hw_all = IVTV_HW_GPIO | IVTV_HW_SAA7115 | IVTV_HW_TUNER | IVTV_HW_VP27SMPX | IVTV_HW_WM8739, .video_inputs = { { IVTV_CARD_INPUT_VID_TUNER, 0, IVTV_SAA71XX_COMPOSITE4 }, { IVTV_CARD_INPUT_SVIDEO1, 1, IVTV_SAA71XX_SVIDEO0 }, { IVTV_CARD_INPUT_COMPOSITE1, 1, IVTV_SAA71XX_COMPOSITE3 }, }, .audio_inputs = { { IVTV_CARD_INPUT_AUD_TUNER, IVTV_GPIO_TUNER }, { IVTV_CARD_INPUT_LINE_IN1, IVTV_GPIO_LINE_IN }, }, .gpio_init = { .direction = 0xc301, .initial_value = 0x0200 }, .gpio_audio_input = { .mask = 0xffff, .tuner = 0x0200, .linein = 0x0300 }, .tuners = { /* This card has the Panasonic VP27 tuner */ { .std = V4L2_STD_525_60, .tuner = TUNER_PANASONIC_VP27 }, }, .pci_list = ivtv_pci_gv_mvprx2e,};/* ------------------------------------------------------------------------- *//* GotVIEW PCI DVD card */static const struct ivtv_card_pci_info ivtv_pci_gotview_pci_dvd[] = { { PCI_DEVICE_ID_IVTV16, IVTV_PCI_ID_YUAN1, 0x0600 }, { 0, 0, 0 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -