Re: m920x device: Genius TVGo DVB-T02Q

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

 



>It is unlikely you can use other device's firmware.
>See http://www.linuxtv.org/wiki/index.php/M920x_firmware on how to
>retrieve new firmware.

thanks! i'll have to borrow a bit of time from some friend's WXP box, i have
no windows at home (everything running linux) and then it will take a
while... the firmware used in the test was a dummy one,... if there was no
firmware or if an empty file was used, then i got a message telling me that
the firmware wasn't present,...

on the other hand, whatever firmware i put in there (from whatever device) it
is just loaded but nothing else happens...


>Please include output from "lsusb -v" after firmware has been loaded.
>Once you have gotten m920x driver to load properly, you need to get
>some dumps so that we can identify which tuner you have. They are also
>important when adding support for mt2060 tuner to m920x. It might work
>out of the box if you have qt1010.
>
>Please post you changes as diffs. You can get one with command
>"hg diff" or with "diff -uNr original_dir modified_dir" .

thanks for the hint, i guess the modification makes the device recognized and
tries to guess which are the frontends

find attached the output of  "hg diff" (my first silly mistake: i did not keep
a clean copy of the code to compare with the modified one)


... more on firmware soon!!
Cheers,
Pere Blay



diff -r b7bcb8bd0d79 linux/drivers/media/dvb/dvb-usb/m920x.c
--- a/linux/drivers/media/dvb/dvb-usb/m920x.c	Wed May 09 00:33:52 2007 +0300
+++ b/linux/drivers/media/dvb/dvb-usb/m920x.c	Mon Jun 11 09:06:15 2007 +0200
@@ -10,10 +10,11 @@
  */
 
 #include "m920x.h"
-
 #include "mt352.h"
 #include "mt352_priv.h"
+#include "zl10353.h"
 #include "qt1010.h"
+#include "mt2060.h"
 #include "tda1004x.h"
 #include "tda827x.h"
 
@@ -445,6 +446,22 @@ static struct mt352_config m920x_mt352_c
 	.demod_init = m920x_mt352_demod_init,
 };
 
+static struct zl10353_config tvgo_t02q_zl10353_config = {
+       .demod_address = 0x1e,
+       .no_tuner = 1,
+       .parallel_ts = 1,
+};
+
+static struct mt2060_config tvgo_t02q_mt2060_config = {
+       .i2c_address = 0x60,
+};
+
+static int mt2060_tuner_attach(struct dvb_usb_adapter *adap)
+{
+       return dvb_attach(mt2060_attach,adap->fe, &adap->dev->i2c_adap,
+			 &tvgo_t02q_mt2060_config,0) == NULL ? -ENODEV : 0;
+}
+
 static struct tda1004x_config m920x_tda10046_08_config = {
 	.demod_address = 0x08,
 	.invert = 0,
@@ -497,6 +514,16 @@ static int m920x_tda10046_08_frontend_at
 		return -EIO;
 
 	return 0;
+}
+
+static int tvgo_t02q_frontend_attach(struct dvb_usb_adapter *adap)
+{
+       deb("tvgo_t02q_frontend_attach!\n"); 
+
+       if ((adap->fe = dvb_attach(zl10353_attach, &tvgo_t02q_zl10353_config,
+				  &adap->dev->i2c_adap)) != NULL)
+	       return 0;
+       return -EIO;
 }
 
 static int m920x_tda10046_0b_frontend_attach(struct dvb_usb_adapter *adap)
@@ -602,6 +629,7 @@ static struct dvb_usb_device_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 dvb_usb_device_properties tvgo_t02q_properties;
 
 static int m920x_probe(struct usb_interface *intf,
 		       const struct usb_device_id *id)
@@ -614,23 +642,18 @@ static int m920x_probe(struct usb_interf
 	deb("Probing for m920x device at interface %d\n", bInterfaceNumber);
 
 	if (bInterfaceNumber == 0) {
-		/* Single-tuner device, or first interface on
-		 * multi-tuner device
-		 */
-
-		if ((ret = dvb_usb_device_init(intf, &megasky_properties,
-					       THIS_MODULE, &d)) == 0) {
+		
+		if ((ret = dvb_usb_device_init(intf, &megasky_properties, THIS_MODULE, &d)) == 0 ||
+         	    (ret = dvb_usb_device_init(intf, &tvgo_t02q_properties, THIS_MODULE, &d)) == 0) {
 			rc_init_seq = megasky_rc_init;
 			goto found;
 		}
 
 		if ((ret = dvb_usb_device_init(intf, &digivox_mini_ii_properties,
 					       THIS_MODULE, &d)) == 0) {
-			/* No remote control, so no rc_init_seq */
 			goto found;
 		}
 
-		/* This configures both tuners on the TV Walker Twin */
 		if ((ret = dvb_usb_device_init(intf, &tvwalkertwin_properties,
 					       THIS_MODULE, &d)) == 0) {
 			rc_init_seq = tvwalkertwin_rc_init;
@@ -639,18 +662,11 @@ static int m920x_probe(struct usb_interf
 
 		if ((ret = dvb_usb_device_init(intf, &dposh_properties,
 					       THIS_MODULE, &d)) == 0) {
-			/* Remote controller not supported yet. */
 			goto found;
 		}
 
 		return ret;
 	} else {
-		/* Another interface on a multi-tuner device */
-
-		/* The LifeView TV Walker Twin gets here, but struct
-		 * tvwalkertwin_properties already configured both
-		 * tuners, so there is nothing for us to do here
-		 */
 	}
 
  found:
@@ -663,14 +679,13 @@ static int m920x_probe(struct usb_interf
 	return ret;
 }
 
+
 static struct usb_device_id m920x_table [] = {
 		{ USB_DEVICE(USB_VID_MSI, USB_PID_MSI_MEGASKY580) },
-		{ USB_DEVICE(USB_VID_ANUBIS_ELECTRONIC,
-			     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_KYE, USB_PID_GENIUS_TVGO_DVB_T02Q) },
+		{ USB_DEVICE(USB_VID_ANUBIS_ELECTRONIC, 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 */
@@ -726,6 +741,50 @@ static struct dvb_usb_device_properties 
 	}
 };
 
+
+static struct dvb_usb_device_properties tvgo_t02q_properties = {
+       .caps = DVB_USB_IS_AN_I2C_ADAPTER | DVB_USB_ADAP_HAS_PID_FILTER |
+	       DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF,
+
+       .usb_ctrl = DEVICE_SPECIFIC,
+       .firmware = "dvb-usb-t02q-02.fw",
+       .download_firmware = m920x_firmware_download,
+
+       .size_of_priv	 = sizeof(struct m920x_state),
+
+       .identify_state   = m920x_identify_state,
+       .num_adapters = 1,
+       .adapter = {{
+	       .pid_filter_count = 8,
+	       .pid_filter	 = m920x_pid_filter,
+	       .pid_filter_ctrl  = m920x_pid_filter_ctrl,
+
+	       .frontend_attach  = tvgo_t02q_frontend_attach,
+	       .tuner_attach	 = mt2060_tuner_attach,
+
+	       .stream = {
+		       .type = USB_BULK,
+		       .count = 8,
+		       .endpoint = 0x81,
+		       .u = {
+			       .bulk = {
+				       .buffersize = 512,
+			       }
+		       }
+	       },
+       }},
+       .i2c_algo	 = &m920x_i2c_algo,
+
+       .num_device_descs = 1,
+       .devices = {
+	       {   "Genius TVGo DVB-T02Q",
+		       { &m920x_table[1], NULL },
+		       { NULL },
+	       },
+       }
+};
+
+
 static struct dvb_usb_device_properties digivox_mini_ii_properties = {
 	.caps = DVB_USB_IS_AN_I2C_ADAPTER,
 
@@ -764,7 +823,7 @@ static struct dvb_usb_device_properties 
 	.num_device_descs = 1,
 	.devices = {
 		{   "MSI DIGI VOX mini II DVB-T USB2.0",
-			{ &m920x_table[1], NULL },
+			{ &m920x_table[2], NULL },
 			{ NULL },
 		},
 	}
@@ -841,8 +900,8 @@ static struct dvb_usb_device_properties 
 	.num_device_descs = 1,
 	.devices = {
 		{   .name = "LifeView TV Walker Twin DVB-T USB2.0",
-		    .cold_ids = { &m920x_table[2], NULL },
-		    .warm_ids = { &m920x_table[3], NULL },
+		    .cold_ids = { &m920x_table[3], NULL },
+		    .warm_ids = { &m920x_table[4], NULL },
 		},
 	}
 };
@@ -880,8 +939,8 @@ static struct dvb_usb_device_properties 
 	.num_device_descs = 1,
 	.devices = {
 		 {   .name = "Dposh DVB-T USB2.0",
-		     .cold_ids = { &m920x_table[4], NULL },
-		     .warm_ids = { &m920x_table[5], NULL },
+		     .cold_ids = { &m920x_table[5], NULL },
+		     .warm_ids = { &m920x_table[6], NULL },
 		 },
 	 }
 };
_______________________________________________
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