Re: tm6010 status
matthieu castet wrote: Hi, what's the status of tm6010 support ? http://www.mail-archive.com/linux-media@vger.kernel.org/msg04048.html announced some patches, but nothing seems to have happened ? Matthieu -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Mauro has it on his TODO list: http://www.mail-archive.com/linux-media@vger.kernel.org/msg08770.html I'm not spending any time on this at the moment, and probably won't in the future. I spent some time reading the code for the existing driver and submitted a few trivial patches, and quite a bit of time with a USB sniffer to try and determine where the Linux and Windows XP driver behaved differently. But I have subsequently purchased an Asus My-Cinema U3100 Mini (DVB-T only) that is cheap and worked out of the box on Ubuntu. So I no longer have much motivation to work on this. I was surprised to find that data sheets are difficult to obtain for the tm6010, and for a lot of other chips used in TV devices as well. Why? I thought these companies made money by selling chips in significant volume rather than by selling development kits. So surely they would sell more chips by making documentation available to anyone who wants to support their products. If there are trade secrets they are trying to protect surely these are in the hardware and firmware rather than the driver and the protocols used to communicate with the hardware. Perhaps someone on this list can explain how this makes business sense. So it seems it is common practice to use reverse engineering to get drivers working. This is a lot of work and makes me really appreciate the work that has been put in by v4l developers. Kevin Wells -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Fwd: driver trident tm5600
Daniel Santibáñez wrote: Hello.!! i tried to install a driver for this usb device, long time i try to finish but, when i probe the driver error by erro appear,and this don't work aparently.. when i run modprobe this say: tm6000-alsa: Unknow symbol tm6000_get_reg tm6000-alsa: Unknow symbol tm6000_set_reg what i have to do.? could you help me.?? exist a how to? actualy? thanks. I currently use: Kernel: Linux 2.6.28-12-generic (i686) Compiled: #43-Ubuntu SMP Fri May 1 19:27:06 UTC 2009 C Library: GNU C Library version 2.9 (stable) Distribution: Ubuntu 9.04 Desktop Environment: GNOME 2.26 Hi Daniel, I suggest you post to the linux-media mailing list in future. That way the mailing lists acts as a knowledge base for other people with the same problem. See http://www.linuxtv.org/lists.php for details. I used BCC in case you don't want your e-mail address on a public site. Did you pull from the http://linuxtv.org/hg/~mchehab/tm6010 repository with last change dated 28 Nov 2008? That code compiles on Ubuntu 8.10 but not on Ubuntu 9.04. You could try the following (untested) patch to resolve this. I only have experience trying to get the Hauppauge HVR-900H working with this driver. It does not currently work for me with New Zealand television. Kevin diff -r ca10a33f275b linux/drivers/media/dvb/dvb-core/dvbdev.c --- a/linux/drivers/media/dvb/dvb-core/dvbdev.c Sun Apr 05 10:57:01 2009 +1200 +++ b/linux/drivers/media/dvb/dvb-core/dvbdev.c Wed Jun 03 20:45:03 2009 +1200 @@ -261,7 +261,7 @@ #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 27) clsdev = device_create(dvb_class, adap->device, - MKDEV(DVB_MAJOR, nums2minor(adap->num, type, id)), + MKDEV(DVB_MAJOR, minor), NULL, "dvb%d.%s%d", adap->num, dnames[type], id); #elif LINUX_VERSION_CODE == KERNEL_VERSION(2, 6, 27) clsdev = device_create_drvdata(dvb_class, adap->device, diff -r ca10a33f275b linux/drivers/media/video/tm6000/tm6000-alsa.c --- a/linux/drivers/media/video/tm6000/tm6000-alsa.c Sun Apr 05 10:57:01 2009 +1200 +++ b/linux/drivers/media/video/tm6000/tm6000-alsa.c Wed Jun 03 20:45:03 2009 +1200 @@ -17,7 +17,7 @@ #include #include -#include +/*#include */ #include #include #include diff -r ca10a33f275b linux/drivers/media/video/tm6000/tm6000-i2c.c --- a/linux/drivers/media/video/tm6000/tm6000-i2c.c Sun Apr 05 10:57:01 2009 +1200 +++ b/linux/drivers/media/video/tm6000/tm6000-i2c.c Wed Jun 03 20:45:03 2009 +1200 @@ -258,7 +258,7 @@ /* Tuner callback to provide the proper gpio changes needed for xc2028 */ -static int tm6000_tuner_callback(void *ptr, int command, int arg) +static int tm6000_tuner_callback(void *ptr, int component, int command, int arg) { int rc=0; struct tm6000_core *dev = ptr; -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: tm6010 development repository
Mauro Carvalho Chehab wrote: On Sun, 05 Apr 2009 12:45:56 +1200 Kevin Wells wrote: Steven Toth wrote: Kevin Wells wrote: I've started trying to understand the code in the following repository: http://www.linuxtv.org/hg/~mchehab/tm6010/ I have a few patches I would like to apply. How should I do this? Submit the patches to the list and I'll try to get some time to create and maintain a ~stoth/tm6010 tree. I think I can get the nova-s-usb2 running with just a little effort. Patches to follow. Nothing exciting. Just trying to make the code more robust. Patches are very granular. Let me know if that doesn't work for you. I'll merge those with some patches I have here. hvr-900h analog part is working with a some troubles on the experimental tree I have here. A good thing to do, after I merge yours and my patches, is to convert it to the new v4l2 dev/subdev interface. I suspect that this will solve several bugs we currently have with the i2c interface of this driver. I intend to do this later this week, after the end of the merge window. For now, I still have lots of patches to review, in order to submit for 2.6.30. Thanks Mauro. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/4] tm6000: Remove reference to em28xx from error message.
# HG changeset patch # User Kevin Wells # Date 1238839620 -46800 # Node ID a293d5babca03bb5a7f21ecb659d55e447194e49 # Parent 3d58b6531a818aafdacde895c34e4517a4dc4104 Remove reference to em28xx from error message. From: Kevin Wells Priority: normal Signed-off-by: Kevin Wells diff -r 3d58b6531a81 -r a293d5babca0 linux/drivers/media/video/tm6000/tm6000-cards.c --- a/linux/drivers/media/video/tm6000/tm6000-cards.cFri Nov 28 08:39:00 2008 -0200 +++ b/linux/drivers/media/video/tm6000/tm6000-cards.cSat Apr 04 23:07:00 2009 +1300 @@ -378,7 +378,7 @@ /* Check to see next free device and mark as used */ nr=find_first_zero_bit(&tm6000_devused,TM6000_MAXBOARDS); if (nr >= TM6000_MAXBOARDS) { -printk ("tm6000: Supports only %i em28xx boards.\n",TM6000_MAXBOARDS); +printk("tm6000: Only supports %i boards.\n", TM6000_MAXBOARDS); usb_put_dev(usbdev); return -ENOMEM; } -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/4] tm6000: Remove reference to em28xx from error message.
# HG changeset patch # User Kevin Wells # Date 1238839620 -46800 # Node ID a293d5babca03bb5a7f21ecb659d55e447194e49 # Parent 3d58b6531a818aafdacde895c34e4517a4dc4104 Remove reference to em28xx from error message. From: Kevin Wells Priority: normal Signed-off-by: Kevin Wells diff -r 3d58b6531a81 -r a293d5babca0 linux/drivers/media/video/tm6000/tm6000-cards.c --- a/linux/drivers/media/video/tm6000/tm6000-cards.cFri Nov 28 08:39:00 2008 -0200 +++ b/linux/drivers/media/video/tm6000/tm6000-cards.cSat Apr 04 23:07:00 2009 +1300 @@ -378,7 +378,7 @@ /* Check to see next free device and mark as used */ nr=find_first_zero_bit(&tm6000_devused,TM6000_MAXBOARDS); if (nr >= TM6000_MAXBOARDS) { -printk ("tm6000: Supports only %i em28xx boards.\n",TM6000_MAXBOARDS); +printk("tm6000: Only supports %i boards.\n", TM6000_MAXBOARDS); usb_put_dev(usbdev); return -ENOMEM; } -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 3/4] tm6000: Use mask when getting XFERTYPE from bmAttributes
# HG changeset patch # User Kevin Wells # Date 1238885144 -43200 # Node ID 02d3a231b99e1eef922679f1381eecd0b9990d23 # Parent 3140e621a17b536eb1487f8f9ad5b7b6a8ff8341 Use mask when getting XFERTYPE from bmAttributes From: Kevin Wells Priority: normal Signed-off-by: Kevin Wells diff -r 3140e621a17b -r 02d3a231b99e linux/drivers/media/video/tm6000/tm6000-cards.c --- a/linux/drivers/media/video/tm6000/tm6000-cards.cSat Apr 04 23:39:18 2009 +1300 +++ b/linux/drivers/media/video/tm6000/tm6000-cards.cSun Apr 05 10:45:44 2009 +1200 @@ -446,7 +446,7 @@ interface->altsetting[i].desc.bInterfaceNumber, interface->altsetting[i].desc.bInterfaceClass); -switch (e->desc.bmAttributes) { +switch (e->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) { case USB_ENDPOINT_XFER_BULK: if (!dir_out) { get_max_endpoint (usbdev, "Bulk IN", e, -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 4/4] tm6000: Clear bit in tm6000_devused when board is disconnected.
# HG changeset patch # User Kevin Wells # Date 1238885821 -43200 # Node ID ca10a33f275b6fefa15ef651df9b657834a28bb0 # Parent 02d3a231b99e1eef922679f1381eecd0b9990d23 Clear bit in tm6000_devused when board is disconnected. From: Kevin Wells Priority: normal Signed-off-by: Kevin Wells diff -r 02d3a231b99e -r ca10a33f275b linux/drivers/media/video/tm6000/tm6000-cards.c --- a/linux/drivers/media/video/tm6000/tm6000-cards.cSun Apr 05 10:45:44 2009 +1200 +++ b/linux/drivers/media/video/tm6000/tm6000-cards.cSun Apr 05 10:57:01 2009 +1200 @@ -559,6 +559,8 @@ dev->state |= DEV_DISCONNECTED; +tm6000_devused &= ~(1 << dev->devno); + usb_put_dev(dev->udev); mutex_unlock(&dev->lock); -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 0/4 ] tm6000
Hi all, Patches to fix minor issues found when reviewing tm6000-cards.c from: http://linuxtv.org/hg/~mchehab/tm6010/ based on changeset 3d58b6531a81. Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/4] tm6000: More robust error handling in tm6000_usb_probe()
# HG changeset patch # User Kevin Wells # Date 1238841558 -46800 # Node ID 3140e621a17b536eb1487f8f9ad5b7b6a8ff8341 # Parent a293d5babca03bb5a7f21ecb659d55e447194e49 More robust error handling in tm6000_usb_probe() From: Kevin Wells Priority: normal Signed-off-by: Kevin Wells diff -r a293d5babca0 -r 3140e621a17b linux/drivers/media/video/tm6000/tm6000-cards.c --- a/linux/drivers/media/video/tm6000/tm6000-cards.cSat Apr 04 23:07:00 2009 +1300 +++ b/linux/drivers/media/video/tm6000/tm6000-cards.cSat Apr 04 23:39:18 2009 +1300 @@ -373,22 +373,22 @@ /* Selects the proper interface */ rc=usb_set_interface(usbdev,0,1); if (rc<0) -goto err; +goto err1; /* Check to see next free device and mark as used */ nr=find_first_zero_bit(&tm6000_devused,TM6000_MAXBOARDS); if (nr >= TM6000_MAXBOARDS) { printk("tm6000: Only supports %i boards.\n", TM6000_MAXBOARDS); -usb_put_dev(usbdev); -return -ENOMEM; +rc = -ENOMEM; +goto err1; } /* Create and initialize dev struct */ dev = kzalloc(sizeof(*dev), GFP_KERNEL); if (dev == NULL) { printk ("tm6000" ": out of memory!\n"); -usb_put_dev(usbdev); -return -ENOMEM; +rc = -ENOMEM; +goto err1; } spin_lock_init(&dev->slock); @@ -495,8 +495,7 @@ if (!dev->isoc_in) { printk("tm6000: probing error: no IN ISOC endpoint!\n"); rc= -ENODEV; - -goto err; +goto err2; } /* save our data pointer in this interface device */ @@ -514,15 +513,17 @@ rc=tm6000_init_dev(dev); if (rc<0) -goto err; +goto err3; return 0; -err: +err3: +usb_set_intfdata(interface, NULL); +err2: tm6000_devused&=~(1<http://vger.kernel.org/majordomo-info.html
Re: tm6010 development repository
Steven Toth wrote: Kevin Wells wrote: I've started trying to understand the code in the following repository: http://www.linuxtv.org/hg/~mchehab/tm6010/ I have a few patches I would like to apply. How should I do this? Submit the patches to the list and I'll try to get some time to create and maintain a ~stoth/tm6010 tree. I think I can get the nova-s-usb2 running with just a little effort. Thanks Steve. Sorry for the slow reply. I'm doing this in my limited spare time. Patches to follow. Nothing exciting. Just trying to make the code more robust. Patches are very granular. Let me know if that doesn't work for you. Knowing the driver works on the nova-s-usb2 would be encouraging. I'm trying to get it to work on an hvr-900h. Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Hauppauge WinTV-HVR-4000 / Nova-HD-S2
Jonas Kvinge wrote: > Whats the command to extract the firmware from the new driver release at > http://www.wintvcd.co.uk/drivers/88x_2_123_27056_WHQL.zip > > The driver at http://www.wintvcd.co.uk/drivers/88x_2_122_26109_WHQL.zip > is no longer available, so the link on > http://linuxtv.org/wiki/index.php/Hauppauge_WinTV-HVR-4000 is broken. > Hi Jonas, I can't remember the exact command off the top of my head. But I can tell you how to work it out. The problem is how to determine the offset to use. Look at this hex dump from the start of each firmware file: dvb-fe-cx24116-1.20.79.0.fw: 02 11 f9 ec 33 50 03 12 dvb-fe-cx24116-1.22.82.0.fw: 02 11 fb ec 33 50 03 12 dvb-fe-cx24116-1.23.86.1.fw: 02 12 02 ec 33 50 03 12 Note the magic `33 50 03 12` bytes that appear at offset 4 in each firmware file. You can use that to determine the offset of the firmware in the `hcw88bda.sys` file (at least for the existing firmware files). I used `hd hcw88bda.sys | more` and typed `/33 50 03 12` in `more` to find the offset. Make sure to subtract 4 from the offset of the `33 50 03 12` bytes. Convert the offset from hex to decimal and use that as the `skip` amount for the `dd` command. Verify the extracted firmware using `md5sum`. Perhaps when you get it to work you could update the wiki page you mentioned. Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
tm6010 development repository
Hi Mauro, I've started trying to understand the code in the following repository: http://www.linuxtv.org/hg/~mchehab/tm6010/ I have a few patches I would like to apply. How should I do this? * Should I e-mail patches to you? * Should I find somewhere to host my repository and get you to pull them? If I need to host my repository do you have any suggestions as to where? Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html