Hi Anthony,

at the end of your email you ask for the saa7111 stuff. 
The nt1003 is just a digital chip. To grap the analog video signal,
you need an AD converter. And that is the saa7111, which is kontrolled
by i2c. The tuner we have in our miro or hauppauge usb TV boxes is used
to receive the HF signal via antenna. But if you have the video base
band
signal from an other source (SAT-receiver, VCR...) you do not need it.
Can you find out what AD converter the Belkin is using?

Cheers
  Joerg

P.S. I'm on holiday from 15.09. to 25.09.

Anthony Towns wrote:
> 
> Hi Joerg, (hopefully I got that spelt right)
> 
> I'm trying to get an NT1003 based device to work under Linux (that's
> not a WinTV) and I'm not quite getting there for some reason.
> 
> It's a Belkin video/USB adaptor that just lets you plug in a video cable
> at one end, and goes into a USB socket at the other.
> 
> I imagine it doesn't have a tuner or radio support, and I'm guessing
> that it may not even bother with an EPROM either.
> 
> I've tried the following patches:
> 
> --- /home/aj/nt1003/src/nt1003.h        Wed May 17 09:32:51 2000
> +++ nt1003.h    Wed Sep 13 19:44:26 2000
> @@ -249,6 +249,7 @@
> 
>  #define        NT1003_MIRO             1       /* MIRO PCTV USB */
>  #define NT1003_HAUPPAUGE       2       /* HAUPPAUGE WINTV-USB */
> +#define NT1003_BELKIN          3       /* BELKIN USB/Video adaptor */
>  #define I2C_CLIENTS_MAX                8
> 
>  struct usb_nt1003 {
> 
> --- /home/aj/nt1003/src/nt1003.c        Wed May 17 09:32:48 2000
> +++ nt1003.c    Wed Sep 13 19:53:49 2000
> @@ -26,8 +26,8 @@
> 
>  #include <linux/video_decoder.h>
>  #include <linux/i2c.h>
> -#include <linux/i2c-algo-usb.h>
> -#include "../char/tuner.h"     // Arhggggggggggggg !!!!!!!!!!!
> +#include "i2c-algo-usb.h"
> +#include "../media/video/tuner.h"      // Arhggggggggggggg !!!!!!!!!!!
> 
>  #include "nt1003.h"
> 
> @@ -150,8 +150,10 @@
>                 if (!pmd_none(*pmd)) {
>                         ptep = pte_offset(pmd, adr);
>                         pte = *ptep;
> -                       if (pte_present(pte))
> -                               ret = page_address(pte_page(pte)) | (adr & 
>(PAGE_SIZE-1));
> +                       if (pte_present(pte)) {
> +                               ret = (unsigned long) page_address(pte_page(pte));
> +                               ret |= (adr & (PAGE_SIZE-1));
> +                       }
>                 }
>         }
>         MDEBUG(printk("uv2kva(%lx-->%lx)", adr, ret));
> @@ -197,7 +199,7 @@
>  static void *rvmalloc(unsigned long size)
>  {
>         void *mem;
> -       unsigned long adr, page;
> +       unsigned long adr;
> 
>         /* Round it off to PAGE_SIZE */
>         size += (PAGE_SIZE - 1);
> @@ -210,8 +212,7 @@
>         memset(mem, 0, size); /* Clear the ram out, no junk to the user */
>         adr = (unsigned long) mem;
>         while (size > 0) {
> -               page = kvirt_to_pa(adr);
> -               mem_map_reserve(MAP_NR(__va(page)));
> +               mem_map_reserve(virt_to_page(adr));
>                 adr += PAGE_SIZE;
>                 if (size > PAGE_SIZE)
>                         size -= PAGE_SIZE;
> @@ -224,7 +225,7 @@
> 
>  static void rvfree(void *mem, unsigned long size)
>  {
> -       unsigned long adr, page;
> +       unsigned long adr;
> 
>         if (!mem)
>                 return;
> @@ -234,8 +235,7 @@
> 
>         adr=(unsigned long) mem;
>         while (size > 0) {
> -               page = kvirt_to_pa(adr);
> -               mem_map_unreserve(MAP_NR(__va(page)));
> +               mem_map_unreserve(virt_to_page(adr));
>                 adr += PAGE_SIZE;
>                 if (size > PAGE_SIZE)
>                         size -= PAGE_SIZE;
> @@ -2644,6 +2644,11 @@
>                 model = NT1003_HAUPPAUGE;
>                 printk(KERN_INFO "nt1003: HAUPPAUGE WINTV-USB found\n");
>         }
> +       else if ((dev->descriptor.idVendor == 0x0573) &&
> +               (dev->descriptor.idProduct == 0x0003)){
> +               model = NT1003_BELKIN;
> +               printk(KERN_INFO "nt1003: Belkin USB Video adaptor found\n");
> +       }
>         else
>                 return NULL;
> 
> @@ -2680,6 +2685,10 @@
>         nt1003 = &vdevs[devnum];
>         nt1003->nr = devnum;
>         if( (model == NT1003_HAUPPAUGE) || (model == NT1003_MIRO) ){
> +               nt1003->have_tuner= 1;
> +               nt1003->tuner_type= tuner;
> +               nt1003->have_videodecoder= 1;
> +       } else if (model == NT1003_BELKIN) {
>                 nt1003->have_tuner= 1;
>                 nt1003->tuner_type= tuner;
>                 nt1003->have_videodecoder= 1;
> 
> Half of which is to get it to compile with -test8-pre6 (and may be completely
> wrong, it's a wild guess based on some miscellaneous grepping), and the other
> half of which is a pretty innocuous attempt to get it to try working with my
> device.
> 
> I'm getting errors like:
>         v4l: oops: got sigalarm
> a fair bit which don't come up with the working CPIA USB camera I have.
> 
> The debugging stuff (debug=4) comes up with lots of things like:
>         nt1003 null packet [0]      (through [127])
> and
>         nt1003 data error: [0] len=786435, status=C0011
> and
>         nt003: scratch bu overflow!"
> and
>         nt1003: received data, but no frame
> 
> There may be some inspiring messages intermixed with that, I'm not sure:
> 
>         Header found! w:64 h:48
>         frame: 1, size: 320x240, format: 4
>         frame: 0, size: 320x240, format: 4
>         framerate 6
>         nt1003: syncing to frame 1
> 
> which was then followed by a bunch of nt1003 null packet [x] messages.
> 
> Hmm. Actually, enabling the DUMP_HEADER define gives me:
> 
>         Header: 55aa 12 0 3 16 3 10 64 48
>         Header found! w:64 h:48
> 
>         Header: 55aa 12 2 5 17 3 10 64 48
>         Header found! w:64 h:48
> 
> The hex dump that precedes the first of those is:
> 
>         55 aa 0c 00 03 10 03 10 40 00 30 00 19 7b 1d 81
>         1d 79 19 80 18 79 17 7d 1d 77 20 82 20 7b 25 7d
>         23 7a 24 7e 2b 7a 2f 7e 2c 7a 2f 7d 31 7b 39 7b
>         31 7a 2c 7e 2d 79 2a 7a 2e 7d 32 79 36 7e 37 7c
> 
> Not sure if that's meaningful to you.
> 
> Disabling the tuner (nt1003->have_tuner= 0; nt1003->tuner_type= NULL;)
> doesn't seem to make any noticable difference.
> 
> Any suggestions on where I could go from here? I'm not really clear on
> how your code interacts with the i2c stuff or what the deal with the
> saa7111 is or what.
> 
> Cheers,
> aj

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to