bt878.c (818b930bc15077fc00ff16bb22c5df1857f05afa) | bt878.c (4c62e9764ab403d42f9b8871b1241fe7812f19d4) |
---|---|
1/* 2 * bt878.c: part of the driver for the Pinnacle PCTV Sat DVB PCI card 3 * 4 * Copyright (C) 2002 Peter Hettkamp <peter.hettkamp@htp-tel.de> 5 * 6 * large parts based on the bttv driver 7 * Copyright (C) 1996,97,98 Ralph Metzler (rjkm@metzlerbros.de) 8 * & Marcus Metzler (mocm@metzlerbros.de) --- 377 unchanged lines hidden (view full) --- 386#define BROOKTREE_878_DEVICE(vend, dev, name) \ 387 { \ 388 .vendor = PCI_VENDOR_ID_BROOKTREE, \ 389 .device = PCI_DEVICE_ID_BROOKTREE_878, \ 390 .subvendor = (vend), .subdevice = (dev), \ 391 .driver_data = (unsigned long) name \ 392 } 393 | 1/* 2 * bt878.c: part of the driver for the Pinnacle PCTV Sat DVB PCI card 3 * 4 * Copyright (C) 2002 Peter Hettkamp <peter.hettkamp@htp-tel.de> 5 * 6 * large parts based on the bttv driver 7 * Copyright (C) 1996,97,98 Ralph Metzler (rjkm@metzlerbros.de) 8 * & Marcus Metzler (mocm@metzlerbros.de) --- 377 unchanged lines hidden (view full) --- 386#define BROOKTREE_878_DEVICE(vend, dev, name) \ 387 { \ 388 .vendor = PCI_VENDOR_ID_BROOKTREE, \ 389 .device = PCI_DEVICE_ID_BROOKTREE_878, \ 390 .subvendor = (vend), .subdevice = (dev), \ 391 .driver_data = (unsigned long) name \ 392 } 393 |
394static struct pci_device_id bt878_pci_tbl[] __devinitdata = { | 394static struct pci_device_id bt878_pci_tbl[] = { |
395 BROOKTREE_878_DEVICE(0x0071, 0x0101, "Nebula Electronics DigiTV"), 396 BROOKTREE_878_DEVICE(0x1461, 0x0761, "AverMedia AverTV DVB-T 761"), 397 BROOKTREE_878_DEVICE(0x11bd, 0x001c, "Pinnacle PCTV Sat"), 398 BROOKTREE_878_DEVICE(0x11bd, 0x0026, "Pinnacle PCTV SAT CI"), 399 BROOKTREE_878_DEVICE(0x1822, 0x0001, "Twinhan VisionPlus DVB"), 400 BROOKTREE_878_DEVICE(0x270f, 0xfc00, 401 "ChainTech digitop DST-1000 DVB-S"), 402 BROOKTREE_878_DEVICE(0x1461, 0x0771, "AVermedia AverTV DVB-T 771"), 403 BROOKTREE_878_DEVICE(0x18ac, 0xdb10, "DViCO FusionHDTV DVB-T Lite"), 404 BROOKTREE_878_DEVICE(0x18ac, 0xdb11, "Ultraview DVB-T Lite"), 405 BROOKTREE_878_DEVICE(0x18ac, 0xd500, "DViCO FusionHDTV 5 Lite"), 406 BROOKTREE_878_DEVICE(0x7063, 0x2000, "pcHDTV HD-2000 TV"), 407 BROOKTREE_878_DEVICE(0x1822, 0x0026, "DNTV Live! Mini"), 408 { } 409}; 410 411MODULE_DEVICE_TABLE(pci, bt878_pci_tbl); 412 | 395 BROOKTREE_878_DEVICE(0x0071, 0x0101, "Nebula Electronics DigiTV"), 396 BROOKTREE_878_DEVICE(0x1461, 0x0761, "AverMedia AverTV DVB-T 761"), 397 BROOKTREE_878_DEVICE(0x11bd, 0x001c, "Pinnacle PCTV Sat"), 398 BROOKTREE_878_DEVICE(0x11bd, 0x0026, "Pinnacle PCTV SAT CI"), 399 BROOKTREE_878_DEVICE(0x1822, 0x0001, "Twinhan VisionPlus DVB"), 400 BROOKTREE_878_DEVICE(0x270f, 0xfc00, 401 "ChainTech digitop DST-1000 DVB-S"), 402 BROOKTREE_878_DEVICE(0x1461, 0x0771, "AVermedia AverTV DVB-T 771"), 403 BROOKTREE_878_DEVICE(0x18ac, 0xdb10, "DViCO FusionHDTV DVB-T Lite"), 404 BROOKTREE_878_DEVICE(0x18ac, 0xdb11, "Ultraview DVB-T Lite"), 405 BROOKTREE_878_DEVICE(0x18ac, 0xd500, "DViCO FusionHDTV 5 Lite"), 406 BROOKTREE_878_DEVICE(0x7063, 0x2000, "pcHDTV HD-2000 TV"), 407 BROOKTREE_878_DEVICE(0x1822, 0x0026, "DNTV Live! Mini"), 408 { } 409}; 410 411MODULE_DEVICE_TABLE(pci, bt878_pci_tbl); 412 |
413static const char * __devinit card_name(const struct pci_device_id *id) | 413static const char * card_name(const struct pci_device_id *id) |
414{ 415 return id->driver_data ? (const char *)id->driver_data : "Unknown"; 416} 417 418/***********************/ 419/* PCI device handling */ 420/***********************/ 421 | 414{ 415 return id->driver_data ? (const char *)id->driver_data : "Unknown"; 416} 417 418/***********************/ 419/* PCI device handling */ 420/***********************/ 421 |
422static int __devinit bt878_probe(struct pci_dev *dev, 423 const struct pci_device_id *pci_id) | 422static int bt878_probe(struct pci_dev *dev, const struct pci_device_id *pci_id) |
424{ 425 int result = 0; 426 unsigned char lat; 427 struct bt878 *bt; 428#if defined(__powerpc__) 429 unsigned int cmd; 430#endif 431 unsigned int cardid; --- 92 unchanged lines hidden (view full) --- 524 fail1: 525 release_mem_region(pci_resource_start(bt->dev, 0), 526 pci_resource_len(bt->dev, 0)); 527 fail0: 528 pci_disable_device(dev); 529 return result; 530} 531 | 423{ 424 int result = 0; 425 unsigned char lat; 426 struct bt878 *bt; 427#if defined(__powerpc__) 428 unsigned int cmd; 429#endif 430 unsigned int cardid; --- 92 unchanged lines hidden (view full) --- 523 fail1: 524 release_mem_region(pci_resource_start(bt->dev, 0), 525 pci_resource_len(bt->dev, 0)); 526 fail0: 527 pci_disable_device(dev); 528 return result; 529} 530 |
532static void __devexit bt878_remove(struct pci_dev *pci_dev) | 531static void bt878_remove(struct pci_dev *pci_dev) |
533{ 534 u8 command; 535 struct bt878 *bt = pci_get_drvdata(pci_dev); 536 537 if (bt878_verbose) 538 printk(KERN_INFO "bt878(%d): unloading\n", bt->nr); 539 540 /* turn off all capturing, DMA and IRQs */ --- 27 unchanged lines hidden (view full) --- 568 pci_disable_device(pci_dev); 569 return; 570} 571 572static struct pci_driver bt878_pci_driver = { 573 .name = "bt878", 574 .id_table = bt878_pci_tbl, 575 .probe = bt878_probe, | 532{ 533 u8 command; 534 struct bt878 *bt = pci_get_drvdata(pci_dev); 535 536 if (bt878_verbose) 537 printk(KERN_INFO "bt878(%d): unloading\n", bt->nr); 538 539 /* turn off all capturing, DMA and IRQs */ --- 27 unchanged lines hidden (view full) --- 567 pci_disable_device(pci_dev); 568 return; 569} 570 571static struct pci_driver bt878_pci_driver = { 572 .name = "bt878", 573 .id_table = bt878_pci_tbl, 574 .probe = bt878_probe, |
576 .remove = __devexit_p(bt878_remove), | 575 .remove = bt878_remove, |
577}; 578 579/*******************************/ 580/* Module management functions */ 581/*******************************/ 582 583static int __init bt878_init_module(void) 584{ --- 25 unchanged lines hidden --- | 576}; 577 578/*******************************/ 579/* Module management functions */ 580/*******************************/ 581 582static int __init bt878_init_module(void) 583{ --- 25 unchanged lines hidden --- |