diff options
author | Patrick Boettcher <pb@linuxtv.org> | 2007-07-30 11:49:04 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-10-09 21:03:44 -0400 |
commit | 01373a5c97ced83d4cb520f7e56c80454a198bfb (patch) | |
tree | 4423207d7f0c50de6fa3672943c07ff49d5da773 /drivers/media/dvb/dvb-usb | |
parent | b6884a17fc70e979ef34e4b5560988b522bb50a0 (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/Kconfig | 1 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/dib0700_devices.c | 295 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-ids.h | 10 |
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 | ||
17 | static int force_lna_activation; | 18 | static int force_lna_activation; |
18 | module_param(force_lna_activation, int, 0644); | 19 | module_param(force_lna_activation, int, 0644); |
19 | MODULE_PARM_DESC(force_lna_activation, "force the activation of Low-Noise-Amplifyer(s) (LNA), " | 20 | MODULE_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 | 23 | struct 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 */ |
24 | static struct mt2060_config bristol_mt2060_config[2] = { | 29 | static 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 */ |
103 | static struct dibx000_agc_config stk7700d_7000p_mt2266_agc_config[2] = { | 108 | static 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 */ | ||
548 | static 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 | |||
589 | static int dib7070_tuner_reset(struct dvb_frontend *fe, int onoff) | ||
590 | { | ||
591 | return dib7000p_set_gpio(fe, 8, 0, !onoff); | ||
592 | } | ||
593 | |||
594 | static int dib7070_tuner_sleep(struct dvb_frontend *fe, int onoff) | ||
595 | { | ||
596 | return dib7000p_set_gpio(fe, 9, 0, onoff); | ||
597 | } | ||
598 | |||
599 | static 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 | |||
615 | static 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 | |||
632 | static 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 | |||
650 | static 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 | |||
660 | static 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 */ | ||
675 | static 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 */ | ||
698 | static 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 | |||
726 | static 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 | |||
748 | static 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 */ | ||
542 | struct usb_device_id dib0700_usb_id_table[] = { | 755 | struct 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 | }; |
561 | MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table); | 778 | MODULE_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 | ||
694 | int dib0700_device_count = ARRAY_SIZE(dib0700_devices); | 969 | int 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 |