[PATCH] Initial support for various devices likely manufactured by Dposh

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



These devices are sold by various companies and chains not involved in
hardware manufacturing business. This particular device owned by
winisch 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 for spotting this hw filtering
problem and thus avoiding hair loss.

DAniele, do you still have that Hanftek UMT-012 ?


Currently, hardware pid filters and the bundled remote
controller are not supported. Devices based on mt2060 tuner also lack
support.

Signed-off-by: Aapo Tahkola <aet@xxxxxxxxxxxxxx>

-- 
Aapo Tahkola

Attachment: dvb-usb-dposh-01.fw
Description: Binary data

diff -r e37cde12c5d6 linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
--- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h	Tue Mar 20 17:04:33 2007 +0200
+++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h	Thu Mar 22 16:36:02 2007 +0200
@@ -19,6 +19,7 @@
 #define USB_VID_COMPRO_UNK			0x145f
 #define USB_VID_CYPRESS				0x04b4
 #define USB_VID_DIBCOM				0x10b8
+#define USB_VID_DPOSH				0x1498
 #define USB_VID_DVICO				0x0fe9
 #define USB_VID_EMPIA				0xeb1a
 #define USB_VID_GENPIX				0x09c0
@@ -60,6 +61,8 @@
 #define USB_PID_DIBCOM_STK7700P				0x1e14
 #define USB_PID_DIBCOM_STK7700P_PC			0x1e78
 #define USB_PID_DIBCOM_ANCHOR_2135_COLD			0x2131
+#define USB_PID_DPOSH_M9206_COLD			0x9206
+#define USB_PID_DPOSH_M9206_WARM			0xa090
 #define USB_PID_UNIWILL_STK7700P			0x6003
 #define USB_PID_GRANDTEC_DVBT_USB_COLD			0x0fa0
 #define USB_PID_GRANDTEC_DVBT_USB_WARM			0x0fa1
diff -r e37cde12c5d6 linux/drivers/media/dvb/dvb-usb/m920x.c
--- a/linux/drivers/media/dvb/dvb-usb/m920x.c	Tue Mar 20 17:04:33 2007 +0200
+++ b/linux/drivers/media/dvb/dvb-usb/m920x.c	Thu Mar 22 16:38:09 2007 +0200
@@ -577,6 +577,7 @@ static struct dvb_usb_device_properties 
 static struct dvb_usb_device_properties megasky_properties;
 static struct dvb_usb_device_properties digivox_mini_ii_properties;
 static struct dvb_usb_device_properties tvwalkertwin_properties;
+static struct dvb_usb_device_properties dposh_properties;
 static struct m9206_inits megasky_rc_init [];
 static struct m9206_inits tvwalkertwin_rc_init [];
 
@@ -602,6 +603,11 @@ static int m920x_probe(struct usb_interf
 
 	if ((ret = dvb_usb_device_init(intf, &tvwalkertwin_properties, THIS_MODULE, &d)) == 0) {
 		rc_init_seq = tvwalkertwin_rc_init;
+		goto found;
+	}
+
+	if ((ret = dvb_usb_device_init(intf, &dposh_properties, THIS_MODULE, &d)) == 0) {
+		/* Remote controller not supported yet. */
 		goto found;
 	}
 
@@ -631,6 +637,8 @@ static struct usb_device_id m920x_table 
 			     USB_PID_MSI_DIGI_VOX_MINI_II) },
 		{ USB_DEVICE(USB_VID_ANUBIS_ELECTRONIC, USB_PID_LIFEVIEW_TV_WALKER_TWIN_COLD) },
 		{ USB_DEVICE(USB_VID_ANUBIS_ELECTRONIC, USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM) },
+		{ USB_DEVICE(USB_VID_DPOSH, USB_PID_DPOSH_M9206_COLD) },
+		{ USB_DEVICE(USB_VID_DPOSH, USB_PID_DPOSH_M9206_WARM) },
 		{ }		/* Terminating entry */
 };
 MODULE_DEVICE_TABLE (usb, m920x_table);
@@ -801,6 +809,47 @@ static struct dvb_usb_device_properties 
 	}
 };
 
+static struct dvb_usb_device_properties dposh_properties = {
+	.caps = DVB_USB_IS_AN_I2C_ADAPTER,
+
+	.usb_ctrl = DEVICE_SPECIFIC,
+	.firmware = "dvb-usb-dposh-01.fw",
+	.download_firmware = m9206_firmware_download,
+
+	/* Remote controller not supported yet. */
+
+	.size_of_priv     = sizeof(struct m9206_state),
+
+	.identify_state   = m920x_identify_state,
+	.num_adapters = 1,
+	.adapter = {{
+		/* Nardware pid filters don't work with this device/firmware. */
+
+		.frontend_attach  = megasky_mt352_frontend_attach,
+		.tuner_attach     = megasky_qt1010_tuner_attach,
+
+		.stream = {
+			.type = USB_BULK,
+			.count = 8,
+			.endpoint = 0x81,
+			.u = {
+				.bulk = {
+					.buffersize = 512,
+				}
+			}
+		},
+	}},
+	.i2c_algo         = &m9206_i2c_algo,
+
+	.num_device_descs = 1,
+	.devices = {
+		{   .name = "Dposh DVB-T USB2.0",
+		    .cold_ids = { &m920x_table[4], NULL },
+		    .warm_ids = { &m920x_table[5], NULL },
+		},
+	}
+};
+
 static struct m9206_inits megasky_rc_init [] = {
 	{ M9206_RC_INIT2, 0xa8 },
 	{ M9206_RC_INIT1, 0x51 },
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux