aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb
diff options
context:
space:
mode:
authorPatrick Boettcher <pb@linuxtv.org>2007-07-30 11:49:04 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-10-09 21:03:44 -0400
commit01373a5c97ced83d4cb520f7e56c80454a198bfb (patch)
tree4423207d7f0c50de6fa3672943c07ff49d5da773 /drivers/media/dvb/dvb-usb
parentb6884a17fc70e979ef34e4b5560988b522bb50a0 (diff)
V4L/DVB (5955): Add support for DiB7070-based devices
This changeset adds support for DiB7070P-based devices by adding the dib0070-driver and putting the appropriate layouts into dib0700_devices.c It also includes a new firmware for the dib0700 which is necessary to make the DiB7070-boards work and it also should fix the i2c-problems on some boards. Signed-off-by: Jean-Philippe Sibers <jpsibers@dibcom.fr> Signed-off-by: Patrick Boettcher <pboettcher@dibcom.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/dvb-usb')
-rw-r--r--drivers/media/dvb/dvb-usb/Kconfig1
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700_devices.c295
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-ids.h10
3 files changed, 293 insertions, 13 deletions
diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig
index dec03ee32e1a..d73934dd4c57 100644
--- a/drivers/media/dvb/dvb-usb/Kconfig
+++ b/drivers/media/dvb/dvb-usb/Kconfig
@@ -75,6 +75,7 @@ config DVB_USB_DIB0700
75 select DVB_DIB3000MC 75 select DVB_DIB3000MC
76 select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE 76 select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE
77 select DVB_TUNER_MT2266 if !DVB_FE_CUSTOMISE 77 select DVB_TUNER_MT2266 if !DVB_FE_CUSTOMISE
78 select DVB_TUNER_DIB0070
78 help 79 help
79 Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The 80 Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The
80 USB bridge is also present in devices having the DiB7700 DVB-T-USB 81 USB bridge is also present in devices having the DiB7700 DVB-T-USB
diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c
index 04b66f6e659f..558ab3bd6889 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -13,13 +13,18 @@
13#include "dib7000p.h" 13#include "dib7000p.h"
14#include "mt2060.h" 14#include "mt2060.h"
15#include "mt2266.h" 15#include "mt2266.h"
16#include "dib0070.h"
16 17
17static int force_lna_activation; 18static int force_lna_activation;
18module_param(force_lna_activation, int, 0644); 19module_param(force_lna_activation, int, 0644);
19MODULE_PARM_DESC(force_lna_activation, "force the activation of Low-Noise-Amplifyer(s) (LNA), " 20MODULE_PARM_DESC(force_lna_activation, "force the activation of Low-Noise-Amplifyer(s) (LNA), "
20 "if applicable for the device (default: 0=automatic/off)."); 21 "if applicable for the device (default: 0=automatic/off).");
21 22
22/* Hauppauge Nova-T 500 23struct dib0700_adapter_state {
24 int (*set_param_save) (struct dvb_frontend *, struct dvb_frontend_parameters *);
25};
26
27/* Hauppauge Nova-T 500 (aka Bristol)
23 * has a LNA on GPIO0 which is enabled by setting 1 */ 28 * has a LNA on GPIO0 which is enabled by setting 1 */
24static struct mt2060_config bristol_mt2060_config[2] = { 29static struct mt2060_config bristol_mt2060_config[2] = {
25 { 30 {
@@ -97,7 +102,7 @@ static int bristol_tuner_attach(struct dvb_usb_adapter *adap)
97 st->mt2060_if1[adap->id]) == NULL ? -ENODEV : 0; 102 st->mt2060_if1[adap->id]) == NULL ? -ENODEV : 0;
98} 103}
99 104
100/* STK7700D: Pinnacle Dual DVB-T Diversity */ 105/* STK7700D: Pinnacle/Terratec/Hauppauge Dual DVB-T Diversity */
101 106
102/* MT226x */ 107/* MT226x */
103static struct dibx000_agc_config stk7700d_7000p_mt2266_agc_config[2] = { 108static struct dibx000_agc_config stk7700d_7000p_mt2266_agc_config[2] = {
@@ -539,31 +544,243 @@ static int stk7700p_tuner_attach(struct dvb_usb_adapter *adap)
539 st->mt2060_if1[0]) == NULL ? -ENODEV : 0; 544 st->mt2060_if1[0]) == NULL ? -ENODEV : 0;
540} 545}
541 546
547/* DIB7070 generic */
548static struct dibx000_agc_config dib7070_agc_config = {
549 BAND_UHF | BAND_VHF | BAND_LBAND | BAND_SBAND,
550 /* P_agc_use_sd_mod1=0, P_agc_use_sd_mod2=0, P_agc_freq_pwm_div=5, P_agc_inv_pwm1=0, P_agc_inv_pwm2=0,
551 * P_agc_inh_dc_rv_est=0, P_agc_time_est=3, P_agc_freeze=0, P_agc_nb_est=5, P_agc_write=0 */
552 (0 << 15) | (0 << 14) | (5 << 11) | (0 << 10) | (0 << 9) | (0 << 8) | (3 << 5) | (0 << 4) | (5 << 1) | (0 << 0), // setup
553
554 600, // inv_gain
555 10, // time_stabiliz
556
557 0, // alpha_level
558 118, // thlock
559
560 0, // wbd_inv
561 3530, // wbd_ref
562 1, // wbd_sel
563 5, // wbd_alpha
564
565 65535, // agc1_max
566 0, // agc1_min
567
568 65535, // agc2_max
569 0, // agc2_min
570
571 0, // agc1_pt1
572 40, // agc1_pt2
573 183, // agc1_pt3
574 206, // agc1_slope1
575 255, // agc1_slope2
576 72, // agc2_pt1
577 152, // agc2_pt2
578 88, // agc2_slope1
579 90, // agc2_slope2
580
581 17, // alpha_mant
582 27, // alpha_exp
583 23, // beta_mant
584 51, // beta_exp
585
586 0, // perform_agc_softsplit
587};
588
589static int dib7070_tuner_reset(struct dvb_frontend *fe, int onoff)
590{
591 return dib7000p_set_gpio(fe, 8, 0, !onoff);
592}
593
594static int dib7070_tuner_sleep(struct dvb_frontend *fe, int onoff)
595{
596 return dib7000p_set_gpio(fe, 9, 0, onoff);
597}
598
599static struct dib0070_config dib7070p_dib0070_config[2] = {
600 {
601 .i2c_address = DEFAULT_DIB0070_I2C_ADDRESS,
602 .reset = dib7070_tuner_reset,
603 .sleep = dib7070_tuner_sleep,
604 .clock_khz = 12000,
605 .clock_pad_drive = 4
606 }, {
607 .i2c_address = DEFAULT_DIB0070_I2C_ADDRESS,
608 .reset = dib7070_tuner_reset,
609 .sleep = dib7070_tuner_sleep,
610 .clock_khz = 12000,
611
612 }
613};
614
615static int dib7070_set_param_override(struct dvb_frontend *fe, struct dvb_frontend_parameters *fep)
616{
617 struct dvb_usb_adapter *adap = fe->dvb->priv;
618 struct dib0700_adapter_state *state = adap->priv;
619
620 u16 offset;
621 u8 band = BAND_OF_FREQUENCY(fep->frequency/1000);
622 switch (band) {
623 case BAND_VHF: offset = 950; break;
624 case BAND_UHF:
625 default: offset = 550; break;
626 }
627 deb_info("WBD for DiB7000P: %d\n", offset + dib0070_wbd_offset(fe));
628 dib7000p_set_wbd_ref(fe, offset + dib0070_wbd_offset(fe));
629 return state->set_param_save(fe, fep);
630}
631
632static int dib7070p_tuner_attach(struct dvb_usb_adapter *adap)
633{
634 struct dib0700_adapter_state *st = adap->priv;
635 struct i2c_adapter *tun_i2c = dib7000p_get_i2c_master(adap->fe, DIBX000_I2C_INTERFACE_TUNER, 1);
636
637 if (adap->id == 0) {
638 if (dvb_attach(dib0070_attach, adap->fe, tun_i2c, &dib7070p_dib0070_config[0]) == NULL)
639 return -ENODEV;
640 } else {
641 if (dvb_attach(dib0070_attach, adap->fe, tun_i2c, &dib7070p_dib0070_config[1]) == NULL)
642 return -ENODEV;
643 }
644
645 st->set_param_save = adap->fe->ops.tuner_ops.set_params;
646 adap->fe->ops.tuner_ops.set_params = dib7070_set_param_override;
647 return 0;
648}
649
650static struct dibx000_bandwidth_config dib7070_bw_config_12_mhz = {
651 60000, 15000, // internal, sampling
652 1, 20, 3, 1, 0, // pll_cfg: prediv, ratio, range, reset, bypass
653 0, 0, 1, 1, 2, // misc: refdiv, bypclk_div, IO_CLK_en_core, ADClkSrc, modulo
654 (3 << 14) | (1 << 12) | (524 << 0), // sad_cfg: refsel, sel, freq_15k
655 (0 << 25) | 0, // ifreq = 0.000000 MHz
656 20452225, // timf
657 12000000, // xtal_hz
658};
659
660static struct dib7000p_config dib7070p_dib7000p_config = {
661 .output_mpeg2_in_188_bytes = 1,
662
663 .agc_config_count = 1,
664 .agc = &dib7070_agc_config,
665 .bw = &dib7070_bw_config_12_mhz,
666
667 .gpio_dir = DIB7000P_GPIO_DEFAULT_DIRECTIONS,
668 .gpio_val = DIB7000P_GPIO_DEFAULT_VALUES,
669 .gpio_pwm_pos = DIB7000P_GPIO_DEFAULT_PWM_POS,
670
671 .hostbus_diversity = 1,
672};
673
674/* STK7070P */
675static int stk7070p_frontend_attach(struct dvb_usb_adapter *adap)
676{
677 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
678 msleep(10);
679 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
680 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
681 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
682 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
683
684 dib0700_ctrl_clock(adap->dev, 72, 1);
685
686 msleep(10);
687 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
688 msleep(10);
689 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
690
691 dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 18, &dib7070p_dib7000p_config);
692
693 adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80, &dib7070p_dib7000p_config);
694 return adap->fe == NULL ? -ENODEV : 0;
695}
696
697/* STK7070PD */
698static struct dib7000p_config stk7070pd_dib7000p_config[2] = {
699 {
700 .output_mpeg2_in_188_bytes = 1,
701
702 .agc_config_count = 1,
703 .agc = &dib7070_agc_config,
704 .bw = &dib7070_bw_config_12_mhz,
705
706 .gpio_dir = DIB7000P_GPIO_DEFAULT_DIRECTIONS,
707 .gpio_val = DIB7000P_GPIO_DEFAULT_VALUES,
708 .gpio_pwm_pos = DIB7000P_GPIO_DEFAULT_PWM_POS,
709
710 .hostbus_diversity = 1,
711 }, {
712 .output_mpeg2_in_188_bytes = 1,
713
714 .agc_config_count = 1,
715 .agc = &dib7070_agc_config,
716 .bw = &dib7070_bw_config_12_mhz,
717
718 .gpio_dir = DIB7000P_GPIO_DEFAULT_DIRECTIONS,
719 .gpio_val = DIB7000P_GPIO_DEFAULT_VALUES,
720 .gpio_pwm_pos = DIB7000P_GPIO_DEFAULT_PWM_POS,
721
722 .hostbus_diversity = 1,
723 }
724};
725
726static int stk7070pd_frontend_attach0(struct dvb_usb_adapter *adap)
727{
728 dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
729 msleep(10);
730 dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
731 dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
732 dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
733 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
734
735 dib0700_ctrl_clock(adap->dev, 72, 1);
736
737 msleep(10);
738 dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
739 msleep(10);
740 dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
741
742 dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 2, 18, stk7070pd_dib7000p_config);
743
744 adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80, &stk7070pd_dib7000p_config[0]);
745 return adap->fe == NULL ? -ENODEV : 0;
746}
747
748static int stk7070pd_frontend_attach1(struct dvb_usb_adapter *adap)
749{
750 adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x82, &stk7070pd_dib7000p_config[1]);
751 return adap->fe == NULL ? -ENODEV : 0;
752}
753
754/* DVB-USB and USB stuff follows */
542struct usb_device_id dib0700_usb_id_table[] = { 755struct usb_device_id dib0700_usb_id_table[] = {
543 { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7700P) }, 756/* 0 */ { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7700P) },
544 { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7700P_PC) }, 757 { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7700P_PC) },
545 758
546 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_500) }, 759 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_500) },
547 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_500_2) }, 760 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_500_2) },
548 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_STICK) }, 761 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_STICK) },
549 { USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR) }, 762/* 5 */ { USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR) },
550 { USB_DEVICE(USB_VID_COMPRO, USB_PID_COMPRO_VIDEOMATE_U500) }, 763 { USB_DEVICE(USB_VID_COMPRO, USB_PID_COMPRO_VIDEOMATE_U500) },
551 { USB_DEVICE(USB_VID_UNIWILL, USB_PID_UNIWILL_STK7700P) }, 764 { USB_DEVICE(USB_VID_UNIWILL, USB_PID_UNIWILL_STK7700P) },
552 { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_STK7700P) }, 765 { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_STK7700P) },
553 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_STICK_2) }, 766 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_STICK_2) },
554 { USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR_2) }, 767/* 10 */{ USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR_2) },
555 { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV2000E) }, 768 { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV2000E) },
556 { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY) }, 769 { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY) },
557 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_TD_STICK) }, 770 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_TD_STICK) },
558 { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7700D) }, 771 { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7700D) },
559 { } /* Terminating entry */ 772/* 15 */{ USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7070P) },
773 { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV_DVB_T_FLASH) },
774 { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7070PD) },
775 { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T) },
776 { 0 } /* Terminating entry */
560}; 777};
561MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table); 778MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table);
562 779
563#define DIB0700_DEFAULT_DEVICE_PROPERTIES \ 780#define DIB0700_DEFAULT_DEVICE_PROPERTIES \
564 .caps = DVB_USB_IS_AN_I2C_ADAPTER, \ 781 .caps = DVB_USB_IS_AN_I2C_ADAPTER, \
565 .usb_ctrl = DEVICE_SPECIFIC, \ 782 .usb_ctrl = DEVICE_SPECIFIC, \
566 .firmware = "dvb-usb-dib0700-01.fw", \ 783 .firmware = "dvb-usb-dib0700-03-pre1.fw", \
567 .download_firmware = dib0700_download_firmware, \ 784 .download_firmware = dib0700_download_firmware, \
568 .no_reconnect = 1, \ 785 .no_reconnect = 1, \
569 .size_of_priv = sizeof(struct dib0700_state), \ 786 .size_of_priv = sizeof(struct dib0700_state), \
@@ -675,11 +892,11 @@ struct dvb_usb_device_properties dib0700_devices[] = {
675 { &dib0700_usb_id_table[12], NULL }, 892 { &dib0700_usb_id_table[12], NULL },
676 { NULL }, 893 { NULL },
677 }, 894 },
678 { "Haupauge Nova-TD Stick", 895 { "Haupauge Nova-TD Stick/Elgato Eye-TV Diversity",
679 { &dib0700_usb_id_table[13], NULL }, 896 { &dib0700_usb_id_table[13], NULL },
680 { NULL }, 897 { NULL },
681 }, 898 },
682 { "DiBcom STK7700D", 899 { "DiBcom STK7700D reference design",
683 { &dib0700_usb_id_table[14], NULL }, 900 { &dib0700_usb_id_table[14], NULL },
684 { NULL }, 901 { NULL },
685 }, 902 },
@@ -688,7 +905,65 @@ struct dvb_usb_device_properties dib0700_devices[] = {
688 .rc_key_map = stk7700d_rc_keys, 905 .rc_key_map = stk7700d_rc_keys,
689 .rc_key_map_size = KEY_MAP_SIZE, 906 .rc_key_map_size = KEY_MAP_SIZE,
690 .rc_query = stk7700d_rc_query 907 .rc_query = stk7700d_rc_query
691 } 908
909 }, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
910
911 .num_adapters = 1,
912 .adapter = {
913 {
914 .frontend_attach = stk7070p_frontend_attach,
915 .tuner_attach = dib7070p_tuner_attach,
916
917 DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
918
919 .size_of_priv = sizeof(struct dib0700_adapter_state),
920 },
921 },
922
923 .num_device_descs = 2,
924 .devices = {
925 { "DiBcom STK7070P reference design",
926 { &dib0700_usb_id_table[15], NULL },
927 { NULL },
928 },
929 { "Pinnacle PCTV DVB-T Flash Stick",
930 { &dib0700_usb_id_table[16], NULL },
931 { NULL },
932 },
933 }
934 }, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
935
936 .num_adapters = 2,
937 .adapter = {
938 {
939 .frontend_attach = stk7070pd_frontend_attach0,
940 .tuner_attach = dib7070p_tuner_attach,
941
942 DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
943
944 .size_of_priv = sizeof(struct dib0700_adapter_state),
945 }, {
946 .frontend_attach = stk7070pd_frontend_attach1,
947 .tuner_attach = dib7070p_tuner_attach,
948
949 DIB0700_DEFAULT_STREAMING_CONFIG(0x03),
950
951 .size_of_priv = sizeof(struct dib0700_adapter_state),
952 }
953 },
954
955 .num_device_descs = 2,
956 .devices = {
957 { "DiBcom STK7070PD reference design",
958 { &dib0700_usb_id_table[17], NULL },
959 { NULL },
960 },
961 { "Pinnacle PCTV Dual DVB-T Diversity Stick",
962 { &dib0700_usb_id_table[18], NULL },
963 { NULL },
964 },
965 }
966 },
692}; 967};
693 968
694int dib0700_device_count = ARRAY_SIZE(dib0700_devices); 969int dib0700_device_count = ARRAY_SIZE(dib0700_devices);
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
index 5657ad8beaac..dae605bbd0f9 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
@@ -68,6 +68,8 @@
68#define USB_PID_DIBCOM_STK7700P 0x1e14 68#define USB_PID_DIBCOM_STK7700P 0x1e14
69#define USB_PID_DIBCOM_STK7700P_PC 0x1e78 69#define USB_PID_DIBCOM_STK7700P_PC 0x1e78
70#define USB_PID_DIBCOM_STK7700D 0x1ef0 70#define USB_PID_DIBCOM_STK7700D 0x1ef0
71#define USB_PID_DIBCOM_STK7070P 0x1ebc
72#define USB_PID_DIBCOM_STK7070PD 0x1ebe
71#define USB_PID_DIBCOM_ANCHOR_2135_COLD 0x2131 73#define USB_PID_DIBCOM_ANCHOR_2135_COLD 0x2131
72#define USB_PID_DPOSH_M9206_COLD 0x9206 74#define USB_PID_DPOSH_M9206_COLD 0x9206
73#define USB_PID_DPOSH_M9206_WARM 0xa090 75#define USB_PID_DPOSH_M9206_WARM 0xa090
@@ -122,6 +124,11 @@
122#define USB_PID_AVERMEDIA_VOLAR_2 0xb808 124#define USB_PID_AVERMEDIA_VOLAR_2 0xb808
123#define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY 0x005a 125#define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY 0x005a
124#define USB_PID_PINNACLE_PCTV2000E 0x022c 126#define USB_PID_PINNACLE_PCTV2000E 0x022c
127#define USB_PID_PINNACLE_PCTV_DVB_T_FLASH 0x0228
128#define USB_PID_PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T 0x0229
129#define USB_PID_PCTV_200E 0x020e
130#define USB_PID_PCTV_400E 0x020f
131#define USB_PID_PCTV_450E 0x0222
125#define USB_PID_NEBULA_DIGITV 0x0201 132#define USB_PID_NEBULA_DIGITV 0x0201
126#define USB_PID_DVICO_BLUEBIRD_LGDT 0xd820 133#define USB_PID_DVICO_BLUEBIRD_LGDT 0xd820
127#define USB_PID_DVICO_BLUEBIRD_LG064F_COLD 0xd500 134#define USB_PID_DVICO_BLUEBIRD_LG064F_COLD 0xd500
@@ -141,9 +148,6 @@
141#define USB_PID_MSI_MEGASKY580_55801 0x5581 148#define USB_PID_MSI_MEGASKY580_55801 0x5581
142#define USB_PID_KYE_DVB_T_COLD 0x701e 149#define USB_PID_KYE_DVB_T_COLD 0x701e
143#define USB_PID_KYE_DVB_T_WARM 0x701f 150#define USB_PID_KYE_DVB_T_WARM 0x701f
144#define USB_PID_PCTV_200E 0x020e
145#define USB_PID_PCTV_400E 0x020f
146#define USB_PID_PCTV_450E 0x0222
147#define USB_PID_LITEON_DVB_T_COLD 0xf000 151#define USB_PID_LITEON_DVB_T_COLD 0xf000
148#define USB_PID_LITEON_DVB_T_WARM 0xf001 152#define USB_PID_LITEON_DVB_T_WARM 0xf001
149#define USB_PID_DIGIVOX_MINI_SL_COLD 0xe360 153#define USB_PID_DIGIVOX_MINI_SL_COLD 0xe360