diff options
Diffstat (limited to 'drivers/media/video/cx18/cx18-cards.c')
-rw-r--r-- | drivers/media/video/cx18/cx18-cards.c | 64 |
1 files changed, 62 insertions, 2 deletions
diff --git a/drivers/media/video/cx18/cx18-cards.c b/drivers/media/video/cx18/cx18-cards.c index fe1090940b01..87177733cf92 100644 --- a/drivers/media/video/cx18/cx18-cards.c +++ b/drivers/media/video/cx18/cx18-cards.c | |||
@@ -39,7 +39,7 @@ static struct cx18_card_tuner_i2c cx18_i2c_std = { | |||
39 | .tv = { 0x61, 0x60, I2C_CLIENT_END }, | 39 | .tv = { 0x61, 0x60, I2C_CLIENT_END }, |
40 | }; | 40 | }; |
41 | 41 | ||
42 | /* Please add new PCI IDs to: http://pci-ids.ucw.cz/ | 42 | /* Please add new PCI IDs to: http://pci-ids.ucw.cz/ |
43 | This keeps the PCI ID database up to date. Note that the entries | 43 | This keeps the PCI ID database up to date. Note that the entries |
44 | must be added under vendor 0x4444 (Conexant) as subsystem IDs. | 44 | must be added under vendor 0x4444 (Conexant) as subsystem IDs. |
45 | New vendor IDs should still be added to the vendor ID list. */ | 45 | New vendor IDs should still be added to the vendor ID list. */ |
@@ -251,6 +251,66 @@ static const struct cx18_card cx18_card_mpc718 = { | |||
251 | 251 | ||
252 | /* ------------------------------------------------------------------------- */ | 252 | /* ------------------------------------------------------------------------- */ |
253 | 253 | ||
254 | /* GoTView PCI */ | ||
255 | |||
256 | static const struct cx18_card_pci_info cx18_pci_gotview_dvd3[] = { | ||
257 | { PCI_DEVICE_ID_CX23418, CX18_PCI_ID_GOTVIEW, 0x3343 }, | ||
258 | { 0, 0, 0 } | ||
259 | }; | ||
260 | |||
261 | static const struct cx18_card cx18_card_gotview_dvd3 = { | ||
262 | .type = CX18_CARD_GOTVIEW_PCI_DVD3, | ||
263 | .name = "GoTView PCI DVD3 Hybrid", | ||
264 | .comment = "Experimenters needed for device to work well.\n" | ||
265 | "\tTo help, mail the ivtv-devel list (www.ivtvdriver.org).\n", | ||
266 | .v4l2_capabilities = CX18_CAP_ENCODER, | ||
267 | .hw_audio_ctrl = CX18_HW_418_AV, | ||
268 | .hw_muxer = CX18_HW_GPIO_MUX, | ||
269 | .hw_all = CX18_HW_TVEEPROM | CX18_HW_418_AV | CX18_HW_TUNER | | ||
270 | CX18_HW_GPIO_MUX | CX18_HW_DVB | CX18_HW_GPIO_RESET_CTRL, | ||
271 | .video_inputs = { | ||
272 | { CX18_CARD_INPUT_VID_TUNER, 0, CX18_AV_COMPOSITE2 }, | ||
273 | { CX18_CARD_INPUT_SVIDEO1, 1, | ||
274 | CX18_AV_SVIDEO_LUMA3 | CX18_AV_SVIDEO_CHROMA4 }, | ||
275 | { CX18_CARD_INPUT_COMPOSITE1, 1, CX18_AV_COMPOSITE1 }, | ||
276 | { CX18_CARD_INPUT_SVIDEO2, 2, | ||
277 | CX18_AV_SVIDEO_LUMA7 | CX18_AV_SVIDEO_CHROMA8 }, | ||
278 | { CX18_CARD_INPUT_COMPOSITE2, 2, CX18_AV_COMPOSITE6 }, | ||
279 | }, | ||
280 | .audio_inputs = { | ||
281 | { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO5, 0 }, | ||
282 | { CX18_CARD_INPUT_LINE_IN1, CX18_AV_AUDIO_SERIAL1, 1 }, | ||
283 | { CX18_CARD_INPUT_LINE_IN2, CX18_AV_AUDIO_SERIAL2, 1 }, | ||
284 | }, | ||
285 | .tuners = { | ||
286 | /* XC3028 tuner */ | ||
287 | { .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 }, | ||
288 | }, | ||
289 | /* FIXME - the FM radio is just a guess and driver doesn't use SIF */ | ||
290 | .radio_input = { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO5, 2 }, | ||
291 | .ddr = { | ||
292 | /* Hynix HY5DU283222B DDR RAM */ | ||
293 | .chip_config = 0x303, | ||
294 | .refresh = 0x3bd, | ||
295 | .timing1 = 0x36320966, | ||
296 | .timing2 = 0x1f, | ||
297 | .tune_lane = 0, | ||
298 | .initial_emrs = 2, | ||
299 | }, | ||
300 | .gpio_init.initial_value = 0x1, | ||
301 | .gpio_init.direction = 0x3, | ||
302 | |||
303 | .gpio_audio_input = { .mask = 0x3, | ||
304 | .tuner = 0x1, | ||
305 | .linein = 0x2, | ||
306 | .radio = 0x1 }, | ||
307 | .xceive_pin = 0, | ||
308 | .pci_list = cx18_pci_gotview_dvd3, | ||
309 | .i2c = &cx18_i2c_std, | ||
310 | }; | ||
311 | |||
312 | /* ------------------------------------------------------------------------- */ | ||
313 | |||
254 | /* Conexant Raptor PAL/SECAM: note that this card is analog only! */ | 314 | /* Conexant Raptor PAL/SECAM: note that this card is analog only! */ |
255 | 315 | ||
256 | static const struct cx18_card_pci_info cx18_pci_cnxt_raptor_pal[] = { | 316 | static const struct cx18_card_pci_info cx18_pci_cnxt_raptor_pal[] = { |
@@ -463,6 +523,7 @@ static const struct cx18_card *cx18_card_list[] = { | |||
463 | &cx18_card_toshiba_qosmio_dvbt, | 523 | &cx18_card_toshiba_qosmio_dvbt, |
464 | &cx18_card_leadtek_pvr2100, | 524 | &cx18_card_leadtek_pvr2100, |
465 | &cx18_card_leadtek_dvr3100h, | 525 | &cx18_card_leadtek_dvr3100h, |
526 | &cx18_card_gotview_dvd3 | ||
466 | }; | 527 | }; |
467 | 528 | ||
468 | const struct cx18_card *cx18_get_card(u16 index) | 529 | const struct cx18_card *cx18_get_card(u16 index) |
@@ -485,7 +546,6 @@ int cx18_get_input(struct cx18 *cx, u16 index, struct v4l2_input *input) | |||
485 | "Component 1" | 546 | "Component 1" |
486 | }; | 547 | }; |
487 | 548 | ||
488 | memset(input, 0, sizeof(*input)); | ||
489 | if (index >= cx->nof_inputs) | 549 | if (index >= cx->nof_inputs) |
490 | return -EINVAL; | 550 | return -EINVAL; |
491 | input->index = index; | 551 | input->index = index; |