diff options
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-ids.h | 3 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/m920x.c | 49 |
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 [] = { | |||
587 | static struct dvb_usb_device_properties megasky_properties; | 587 | static struct dvb_usb_device_properties megasky_properties; |
588 | static struct dvb_usb_device_properties digivox_mini_ii_properties; | 588 | static struct dvb_usb_device_properties digivox_mini_ii_properties; |
589 | static struct dvb_usb_device_properties tvwalkertwin_properties; | 589 | static struct dvb_usb_device_properties tvwalkertwin_properties; |
590 | static struct dvb_usb_device_properties dposh_properties; | ||
590 | static struct m9206_inits megasky_rc_init []; | 591 | static struct m9206_inits megasky_rc_init []; |
591 | static struct m9206_inits tvwalkertwin_rc_init []; | 592 | static 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 | }; |
668 | MODULE_DEVICE_TABLE (usb, m920x_table); | 676 | MODULE_DEVICE_TABLE (usb, m920x_table); |
@@ -835,6 +843,47 @@ static struct dvb_usb_device_properties tvwalkertwin_properties = { | |||
835 | } | 843 | } |
836 | }; | 844 | }; |
837 | 845 | ||
846 | static 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 | |||
838 | static struct usb_driver m920x_driver = { | 887 | static struct usb_driver m920x_driver = { |
839 | .name = "dvb_usb_m920x", | 888 | .name = "dvb_usb_m920x", |
840 | .probe = m920x_probe, | 889 | .probe = m920x_probe, |