Re: tm6010 status

2009-10-04 Thread Kevin Wells

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

2009-06-03 Thread Kevin Wells

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

2009-04-06 Thread Kevin Wells

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.

2009-04-04 Thread Kevin Wells

# 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.

2009-04-04 Thread Kevin Wells

# 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

2009-04-04 Thread Kevin Wells

# 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.

2009-04-04 Thread Kevin Wells

# 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

2009-04-04 Thread Kevin Wells

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()

2009-04-04 Thread Kevin Wells

# 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

2009-04-04 Thread Kevin Wells

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

2009-04-03 Thread Kevin Wells
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

2009-04-01 Thread Kevin Wells
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