aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-ids.h3
-rw-r--r--drivers/media/dvb/dvb-usb/m920x.c49
2 files changed, 52 insertions, 0 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
index dffce1d4ecd3..403081689de1 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
@@ -19,6 +19,7 @@
19#define USB_VID_COMPRO_UNK 0x145f 19#define USB_VID_COMPRO_UNK 0x145f
20#define USB_VID_CYPRESS 0x04b4 20#define USB_VID_CYPRESS 0x04b4
21#define USB_VID_DIBCOM 0x10b8 21#define USB_VID_DIBCOM 0x10b8
22#define USB_VID_DPOSH 0x1498
22#define USB_VID_DVICO 0x0fe9 23#define USB_VID_DVICO 0x0fe9
23#define USB_VID_EMPIA 0xeb1a 24#define USB_VID_EMPIA 0xeb1a
24#define USB_VID_GENPIX 0x09c0 25#define USB_VID_GENPIX 0x09c0
@@ -61,6 +62,8 @@
61#define USB_PID_DIBCOM_STK7700P 0x1e14 62#define USB_PID_DIBCOM_STK7700P 0x1e14
62#define USB_PID_DIBCOM_STK7700P_PC 0x1e78 63#define USB_PID_DIBCOM_STK7700P_PC 0x1e78
63#define USB_PID_DIBCOM_ANCHOR_2135_COLD 0x2131 64#define USB_PID_DIBCOM_ANCHOR_2135_COLD 0x2131
65#define USB_PID_DPOSH_M9206_COLD 0x9206
66#define USB_PID_DPOSH_M9206_WARM 0xa090
64#define USB_PID_UNIWILL_STK7700P 0x6003 67#define USB_PID_UNIWILL_STK7700P 0x6003
65#define USB_PID_GRANDTEC_DVBT_USB_COLD 0x0fa0 68#define USB_PID_GRANDTEC_DVBT_USB_COLD 0x0fa0
66#define USB_PID_GRANDTEC_DVBT_USB_WARM 0x0fa1 69#define USB_PID_GRANDTEC_DVBT_USB_WARM 0x0fa1
diff --git a/drivers/media/dvb/dvb-usb/m920x.c b/drivers/media/dvb/dvb-usb/m920x.c
index 233e04d346a5..44e0d6e2c76b 100644
--- a/drivers/media/dvb/dvb-usb/m920x.c
+++ b/drivers/media/dvb/dvb-usb/m920x.c
@@ -587,6 +587,7 @@ static struct m9206_inits tvwalkertwin_rc_init [] = {
587static struct dvb_usb_device_properties megasky_properties; 587static struct dvb_usb_device_properties megasky_properties;
588static struct dvb_usb_device_properties digivox_mini_ii_properties; 588static struct dvb_usb_device_properties digivox_mini_ii_properties;
589static struct dvb_usb_device_properties tvwalkertwin_properties; 589static struct dvb_usb_device_properties tvwalkertwin_properties;
590static struct dvb_usb_device_properties dposh_properties;
590static struct m9206_inits megasky_rc_init []; 591static struct m9206_inits megasky_rc_init [];
591static struct m9206_inits tvwalkertwin_rc_init []; 592static struct m9206_inits tvwalkertwin_rc_init [];
592 593
@@ -625,6 +626,11 @@ static int m920x_probe(struct usb_interface *intf,
625 goto found; 626 goto found;
626 } 627 }
627 628
629 if ((ret = dvb_usb_device_init(intf, &dposh_properties, THIS_MODULE, &d)) == 0) {
630 /* Remote controller not supported yet. */
631 goto found;
632 }
633
628 return ret; 634 return ret;
629 } else { 635 } else {
630 /* Another interface on a multi-tuner device */ 636 /* Another interface on a multi-tuner device */
@@ -663,6 +669,8 @@ static struct usb_device_id m920x_table [] = {
663 USB_PID_LIFEVIEW_TV_WALKER_TWIN_COLD) }, 669 USB_PID_LIFEVIEW_TV_WALKER_TWIN_COLD) },
664 { USB_DEVICE(USB_VID_ANUBIS_ELECTRONIC, 670 { USB_DEVICE(USB_VID_ANUBIS_ELECTRONIC,
665 USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM) }, 671 USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM) },
672 { USB_DEVICE(USB_VID_DPOSH, USB_PID_DPOSH_M9206_COLD) },
673 { USB_DEVICE(USB_VID_DPOSH, USB_PID_DPOSH_M9206_WARM) },
666 { } /* Terminating entry */ 674 { } /* Terminating entry */
667}; 675};
668MODULE_DEVICE_TABLE (usb, m920x_table); 676MODULE_DEVICE_TABLE (usb, m920x_table);
@@ -835,6 +843,47 @@ static struct dvb_usb_device_properties tvwalkertwin_properties = {
835 } 843 }
836}; 844};
837 845
846static struct dvb_usb_device_properties dposh_properties = {
847 .caps = DVB_USB_IS_AN_I2C_ADAPTER,
848
849 .usb_ctrl = DEVICE_SPECIFIC,
850 .firmware = "dvb-usb-dposh-01.fw",
851 .download_firmware = m9206_firmware_download,
852
853 /* Remote controller not supported yet. */
854
855 .size_of_priv = sizeof(struct m9206_state),
856
857 .identify_state = m920x_identify_state,
858 .num_adapters = 1,
859 .adapter = {{
860 /* Nardware pid filters don't work with this device/firmware. */
861
862 .frontend_attach = megasky_mt352_frontend_attach,
863 .tuner_attach = megasky_qt1010_tuner_attach,
864
865 .stream = {
866 .type = USB_BULK,
867 .count = 8,
868 .endpoint = 0x81,
869 .u = {
870 .bulk = {
871 .buffersize = 512,
872 }
873 }
874 },
875 }},
876 .i2c_algo = &m9206_i2c_algo,
877
878 .num_device_descs = 1,
879 .devices = {
880 { .name = "Dposh DVB-T USB2.0",
881 .cold_ids = { &m920x_table[4], NULL },
882 .warm_ids = { &m920x_table[5], NULL },
883 },
884 }
885};
886
838static struct usb_driver m920x_driver = { 887static struct usb_driver m920x_driver = {
839 .name = "dvb_usb_m920x", 888 .name = "dvb_usb_m920x",
840 .probe = m920x_probe, 889 .probe = m920x_probe,