aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/m920x.c
diff options
context:
space:
mode:
authorAapo Tahkola <aet@rasterburn.org>2007-03-22 16:37:58 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-05-09 09:12:58 -0400
commitf8e0bd5db4cc636fec35264c2396adb1b633ee05 (patch)
treec287f2a594631766ffe170a068c464e9273ea0a0 /drivers/media/dvb/dvb-usb/m920x.c
parentce9c27503491ea342b18b892f973acf5b3afc0f1 (diff)
V4L/DVB (5607): M920x: Initial support for devices likely manufactured by Dposh
These devices are sold by various companies and chains not involved in hardware manufacturing business. This particular device owned by winisch (from irc) had a sticker with text "TCM 234292" on it. This device was never opened so it is possible that Dposh did not manufacture this stick. However, the bundled software and their product line points into that direction. Also thanks to Michael Krufky for spotting this hw filtering problem and thus avoiding hair loss. Hardware pid filters and the bundled remote controller are not currently supported on this device. Signed-off-by: Aapo Tahkola <aet@rasterburn.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/m920x.c')
-rw-r--r--drivers/media/dvb/dvb-usb/m920x.c49
1 files changed, 49 insertions, 0 deletions
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,