Loading drivers/media/dvb/bt8xx/bt878.c +43 −1 Original line number Diff line number Diff line Loading @@ -381,6 +381,23 @@ bt878_device_control(struct bt878 *bt, unsigned int cmd, union dst_gpio_packet * EXPORT_SYMBOL(bt878_device_control); struct cards card_list[] __devinitdata = { { 0x01010071, BTTV_BOARD_NEBULA_DIGITV, "Nebula Electronics DigiTV" }, { 0x07611461, BTTV_BOARD_AVDVBT_761, "AverMedia AverTV DVB-T 761" }, { 0x001c11bd, BTTV_BOARD_PINNACLESAT, "Pinnacle PCTV Sat" }, { 0x002611bd, BTTV_BOARD_TWINHAN_DST, "Pinnacle PCTV SAT CI" }, { 0x00011822, BTTV_BOARD_TWINHAN_DST, "Twinhan VisionPlus DVB" }, { 0xfc00270f, BTTV_BOARD_TWINHAN_DST, "ChainTech digitop DST-1000 DVB-S" }, { 0x07711461, BTTV_BOARD_AVDVBT_771, "AVermedia AverTV DVB-T 771" }, { 0xdb1018ac, BTTV_BOARD_DVICO_DVBT_LITE, "DViCO FusionHDTV DVB-T Lite" }, { 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE, "DViCO FusionHDTV 5 Lite" }, { 0x20007063, BTTV_BOARD_PC_HDTV, "pcHDTV HD-2000 TV"}, { 0, -1, NULL } }; /***********************/ /* PCI device handling */ /***********************/ Loading @@ -388,18 +405,41 @@ EXPORT_SYMBOL(bt878_device_control); static int __devinit bt878_probe(struct pci_dev *dev, const struct pci_device_id *pci_id) { int result; int result = 0, has_dvb = 0, i; unsigned char lat; struct bt878 *bt; #if defined(__powerpc__) unsigned int cmd; #endif unsigned int cardid; unsigned short id; struct cards *dvb_cards; printk(KERN_INFO "bt878: Bt878 AUDIO function found (%d).\n", bt878_num); if (pci_enable_device(dev)) return -EIO; pci_read_config_word(dev, PCI_SUBSYSTEM_ID, &id); cardid = id << 16; pci_read_config_word(dev, PCI_SUBSYSTEM_VENDOR_ID, &id); cardid |= id; for (i = 0, dvb_cards = card_list; i < ARRAY_SIZE(card_list); i++, dvb_cards++) { if (cardid == dvb_cards->pci_id) { printk("%s: card id=[0x%x],[ %s ] has DVB functions.\n", __func__, cardid, dvb_cards->name); has_dvb = 1; } } if (!has_dvb) { printk("%s: card id=[0x%x], Unknown card.\nExiting..\n", __func__, cardid); result = -EINVAL; goto fail0; } bt = &bt878[bt878_num]; bt->dev = dev; bt->nr = bt878_num; Loading @@ -416,6 +456,8 @@ static int __devinit bt878_probe(struct pci_dev *dev, pci_read_config_byte(dev, PCI_CLASS_REVISION, &bt->revision); pci_read_config_byte(dev, PCI_LATENCY_TIMER, &lat); printk(KERN_INFO "bt878(%d): Bt%x (rev %d) at %02x:%02x.%x, ", bt878_num, bt->id, bt->revision, dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn)); Loading drivers/media/dvb/bt8xx/bt878.h +17 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,23 @@ #define BT878_RISC_SYNC_MASK (1 << 15) #define BTTV_BOARD_UNKNOWN 0x00 #define BTTV_BOARD_PINNACLESAT 0x5e #define BTTV_BOARD_NEBULA_DIGITV 0x68 #define BTTV_BOARD_PC_HDTV 0x70 #define BTTV_BOARD_TWINHAN_DST 0x71 #define BTTV_BOARD_AVDVBT_771 0x7b #define BTTV_BOARD_AVDVBT_761 0x7c #define BTTV_BOARD_DVICO_DVBT_LITE 0x80 #define BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE 0x87 struct cards { __u32 pci_id; __u16 card_id; char *name; }; extern int bt878_num; struct bt878 { Loading drivers/media/dvb/dvb-usb/Kconfig +9 −3 Original line number Diff line number Diff line Loading @@ -83,12 +83,18 @@ config DVB_USB_UMT_010 Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver. config DVB_USB_CXUSB tristate "Medion MD95700 hybrid USB2.0 (Conexant) support" tristate "Conexant USB2.0 hybrid reference design support" depends on DVB_USB select DVB_CX22702 select DVB_LGDT330X select DVB_MT352 help Say Y here to support the Medion MD95700 hybrid USB2.0 device. Currently only the DVB-T part is supported. Say Y here to support the Conexant USB2.0 hybrid reference design. Currently, only DVB and ATSC modes are supported, analog mode shall be added in the future. Devices that require this module: Medion MD95700 hybrid USB2.0 device. DViCO FusionHDTV (Bluebird) USB2.0 devices config DVB_USB_DIGITV tristate "Nebula Electronics uDigiTV DVB-T USB2.0 support" Loading drivers/media/dvb/dvb-usb/cxusb.c +2 −2 Original line number Diff line number Diff line Loading @@ -234,7 +234,7 @@ static struct dvb_usb_rc_key dvico_mce_rc_keys[] = { static int cxusb_dee1601_demod_init(struct dvb_frontend* fe) { static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x38 }; static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x28 }; static u8 reset [] = { RESET, 0x80 }; static u8 adc_ctl_1_cfg [] = { ADC_CTL_1, 0x40 }; static u8 agc_cfg [] = { AGC_TARGET, 0x28, 0x20 }; Loading @@ -255,7 +255,7 @@ static int cxusb_dee1601_demod_init(struct dvb_frontend* fe) static int cxusb_mt352_demod_init(struct dvb_frontend* fe) { /* used in both lgz201 and th7579 */ static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x39 }; static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x29 }; static u8 reset [] = { RESET, 0x80 }; static u8 adc_ctl_1_cfg [] = { ADC_CTL_1, 0x40 }; static u8 agc_cfg [] = { AGC_TARGET, 0x24, 0x20 }; Loading drivers/media/dvb/dvb-usb/digitv.c +8 −5 Original line number Diff line number Diff line Loading @@ -175,12 +175,14 @@ static int digitv_probe(struct usb_interface *intf, if ((ret = dvb_usb_device_init(intf,&digitv_properties,THIS_MODULE,&d)) == 0) { u8 b[4] = { 0 }; if (d != NULL) { /* do that only when the firmware is loaded */ b[0] = 1; digitv_ctrl_msg(d,USB_WRITE_REMOTE_TYPE,0,b,4,NULL,0); b[0] = 0; digitv_ctrl_msg(d,USB_WRITE_REMOTE,0,b,4,NULL,0); } } return ret; } Loading @@ -194,7 +196,7 @@ static struct dvb_usb_properties digitv_properties = { .caps = DVB_USB_IS_AN_I2C_ADAPTER, .usb_ctrl = CYPRESS_FX2, .firmware = "dvb-usb-digitv-01.fw", .firmware = "dvb-usb-digitv-02.fw", .size_of_priv = 0, Loading Loading @@ -229,6 +231,7 @@ static struct dvb_usb_properties digitv_properties = { { &digitv_table[0], NULL }, { NULL }, }, { NULL }, } }; Loading Loading
drivers/media/dvb/bt8xx/bt878.c +43 −1 Original line number Diff line number Diff line Loading @@ -381,6 +381,23 @@ bt878_device_control(struct bt878 *bt, unsigned int cmd, union dst_gpio_packet * EXPORT_SYMBOL(bt878_device_control); struct cards card_list[] __devinitdata = { { 0x01010071, BTTV_BOARD_NEBULA_DIGITV, "Nebula Electronics DigiTV" }, { 0x07611461, BTTV_BOARD_AVDVBT_761, "AverMedia AverTV DVB-T 761" }, { 0x001c11bd, BTTV_BOARD_PINNACLESAT, "Pinnacle PCTV Sat" }, { 0x002611bd, BTTV_BOARD_TWINHAN_DST, "Pinnacle PCTV SAT CI" }, { 0x00011822, BTTV_BOARD_TWINHAN_DST, "Twinhan VisionPlus DVB" }, { 0xfc00270f, BTTV_BOARD_TWINHAN_DST, "ChainTech digitop DST-1000 DVB-S" }, { 0x07711461, BTTV_BOARD_AVDVBT_771, "AVermedia AverTV DVB-T 771" }, { 0xdb1018ac, BTTV_BOARD_DVICO_DVBT_LITE, "DViCO FusionHDTV DVB-T Lite" }, { 0xd50018ac, BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE, "DViCO FusionHDTV 5 Lite" }, { 0x20007063, BTTV_BOARD_PC_HDTV, "pcHDTV HD-2000 TV"}, { 0, -1, NULL } }; /***********************/ /* PCI device handling */ /***********************/ Loading @@ -388,18 +405,41 @@ EXPORT_SYMBOL(bt878_device_control); static int __devinit bt878_probe(struct pci_dev *dev, const struct pci_device_id *pci_id) { int result; int result = 0, has_dvb = 0, i; unsigned char lat; struct bt878 *bt; #if defined(__powerpc__) unsigned int cmd; #endif unsigned int cardid; unsigned short id; struct cards *dvb_cards; printk(KERN_INFO "bt878: Bt878 AUDIO function found (%d).\n", bt878_num); if (pci_enable_device(dev)) return -EIO; pci_read_config_word(dev, PCI_SUBSYSTEM_ID, &id); cardid = id << 16; pci_read_config_word(dev, PCI_SUBSYSTEM_VENDOR_ID, &id); cardid |= id; for (i = 0, dvb_cards = card_list; i < ARRAY_SIZE(card_list); i++, dvb_cards++) { if (cardid == dvb_cards->pci_id) { printk("%s: card id=[0x%x],[ %s ] has DVB functions.\n", __func__, cardid, dvb_cards->name); has_dvb = 1; } } if (!has_dvb) { printk("%s: card id=[0x%x], Unknown card.\nExiting..\n", __func__, cardid); result = -EINVAL; goto fail0; } bt = &bt878[bt878_num]; bt->dev = dev; bt->nr = bt878_num; Loading @@ -416,6 +456,8 @@ static int __devinit bt878_probe(struct pci_dev *dev, pci_read_config_byte(dev, PCI_CLASS_REVISION, &bt->revision); pci_read_config_byte(dev, PCI_LATENCY_TIMER, &lat); printk(KERN_INFO "bt878(%d): Bt%x (rev %d) at %02x:%02x.%x, ", bt878_num, bt->id, bt->revision, dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn)); Loading
drivers/media/dvb/bt8xx/bt878.h +17 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,23 @@ #define BT878_RISC_SYNC_MASK (1 << 15) #define BTTV_BOARD_UNKNOWN 0x00 #define BTTV_BOARD_PINNACLESAT 0x5e #define BTTV_BOARD_NEBULA_DIGITV 0x68 #define BTTV_BOARD_PC_HDTV 0x70 #define BTTV_BOARD_TWINHAN_DST 0x71 #define BTTV_BOARD_AVDVBT_771 0x7b #define BTTV_BOARD_AVDVBT_761 0x7c #define BTTV_BOARD_DVICO_DVBT_LITE 0x80 #define BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE 0x87 struct cards { __u32 pci_id; __u16 card_id; char *name; }; extern int bt878_num; struct bt878 { Loading
drivers/media/dvb/dvb-usb/Kconfig +9 −3 Original line number Diff line number Diff line Loading @@ -83,12 +83,18 @@ config DVB_USB_UMT_010 Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver. config DVB_USB_CXUSB tristate "Medion MD95700 hybrid USB2.0 (Conexant) support" tristate "Conexant USB2.0 hybrid reference design support" depends on DVB_USB select DVB_CX22702 select DVB_LGDT330X select DVB_MT352 help Say Y here to support the Medion MD95700 hybrid USB2.0 device. Currently only the DVB-T part is supported. Say Y here to support the Conexant USB2.0 hybrid reference design. Currently, only DVB and ATSC modes are supported, analog mode shall be added in the future. Devices that require this module: Medion MD95700 hybrid USB2.0 device. DViCO FusionHDTV (Bluebird) USB2.0 devices config DVB_USB_DIGITV tristate "Nebula Electronics uDigiTV DVB-T USB2.0 support" Loading
drivers/media/dvb/dvb-usb/cxusb.c +2 −2 Original line number Diff line number Diff line Loading @@ -234,7 +234,7 @@ static struct dvb_usb_rc_key dvico_mce_rc_keys[] = { static int cxusb_dee1601_demod_init(struct dvb_frontend* fe) { static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x38 }; static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x28 }; static u8 reset [] = { RESET, 0x80 }; static u8 adc_ctl_1_cfg [] = { ADC_CTL_1, 0x40 }; static u8 agc_cfg [] = { AGC_TARGET, 0x28, 0x20 }; Loading @@ -255,7 +255,7 @@ static int cxusb_dee1601_demod_init(struct dvb_frontend* fe) static int cxusb_mt352_demod_init(struct dvb_frontend* fe) { /* used in both lgz201 and th7579 */ static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x39 }; static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x29 }; static u8 reset [] = { RESET, 0x80 }; static u8 adc_ctl_1_cfg [] = { ADC_CTL_1, 0x40 }; static u8 agc_cfg [] = { AGC_TARGET, 0x24, 0x20 }; Loading
drivers/media/dvb/dvb-usb/digitv.c +8 −5 Original line number Diff line number Diff line Loading @@ -175,12 +175,14 @@ static int digitv_probe(struct usb_interface *intf, if ((ret = dvb_usb_device_init(intf,&digitv_properties,THIS_MODULE,&d)) == 0) { u8 b[4] = { 0 }; if (d != NULL) { /* do that only when the firmware is loaded */ b[0] = 1; digitv_ctrl_msg(d,USB_WRITE_REMOTE_TYPE,0,b,4,NULL,0); b[0] = 0; digitv_ctrl_msg(d,USB_WRITE_REMOTE,0,b,4,NULL,0); } } return ret; } Loading @@ -194,7 +196,7 @@ static struct dvb_usb_properties digitv_properties = { .caps = DVB_USB_IS_AN_I2C_ADAPTER, .usb_ctrl = CYPRESS_FX2, .firmware = "dvb-usb-digitv-01.fw", .firmware = "dvb-usb-digitv-02.fw", .size_of_priv = 0, Loading Loading @@ -229,6 +231,7 @@ static struct dvb_usb_properties digitv_properties = { { &digitv_table[0], NULL }, { NULL }, }, { NULL }, } }; Loading