Subject: ohci and isochronous transfers
To: None <netbsd-users@netbsd.org>
From: Thomas Runge <coto@core.de>
List: netbsd-users
Date: 11/28/2004 15:55:31
I've got a machine with some USB sockets:

hauke# usbdevs
addr 1: OHCI root hub, vendor 0x10de
addr 1: OHCI root hub, vendor 0x10de
addr 1: EHCI root hub, vendor 0x10de

While developing my toy project, a webcam software (pkgsrc/graphics/cambevao),
I noticed something strange, when I connect multiple USB cams to this
system. When I connect them to slots connected to different root hubs,
everything works fine and as expected:

hauke# usbdevs
addr 1: OHCI root hub, vendor 0x10de
  addr 2: product 0xa511, vendor 0x05a9
addr 1: OHCI root hub, vendor 0x10de
  addr 2: product 0xa511, vendor 0x05a9
addr 1: EHCI root hub, vendor 0x10de

But whenever I connect two cameras to the same root hub:

hauke# usbdevs
addr 1: OHCI root hub, vendor 0x10de
addr 1: OHCI root hub, vendor 0x10de
  addr 2: product 0xa511, vendor 0x05a9
  addr 3: product 0xa511, vendor 0x05a9
addr 1: EHCI root hub, vendor 0x10de

I get lots of errors while trying to capture data:

ohci1: 249 scheduling overruns


Now I got curious and tried that on XP using amcap.exe. It worked
either way, but the second stream was way slower when both cameras
where using the same hub. Both where okay and fast when connected
to different hubs.
So, it can't be a hardware limit/problem.

Is this a known issue on NetBSD? Do we have to live with it or
is it work in progress?

-- 
Tom