Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 May 2004 12:17:43 +0200
From:      Bernd Walter <ticso@cicely12.cicely.de>
To:        John Birrell <jb@cimlogic.com.au>
Cc:        current@freebsd.org
Subject:   Re: USB isochronous transfers
Message-ID:  <20040504101742.GO38488@cicely12.cicely.de>
In-Reply-To: <20040504001029.GG58608@freebsd3.cimlogic.com.au>
References:  <20040504001029.GG58608@freebsd3.cimlogic.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, May 04, 2004 at 10:10:29AM +1000, John Birrell wrote:
> Are there any USB experts here?
> 
> The ugen driver in current has code that treats an isochronous endpoint
> which has a wMaxPacketSize of zero as invalid and won't open it.

Understandable - isochronous transfers are all sized with
wMaxPacketSize, but with beeing zero it's just regular transfering
nothing.

1 is the (useable) minimun - depending on the bit 12 and 11 in the
field.
See Page 273 Table 9-14.

> I have a board here that reports it's isochronous endpoint like that.
> 
> On page 47 of the USB Specification 2.0, I see this:
> 
> "All device default interface settings must not include any isochronous
> endpoints with non-zero data payload sizes (specified via wMaxPacketSize
> in the endpoint descriptor). Alternate interface settings may specify
> non-zero data payload sizes for isochronous operation."

That's correct - you are not intendend to use it.

> My board is supposed to be a reference implementation from Philips
> for their 1581 USB chip and their MPEG2 chips. It only has the default
> interface.

The 1581 is high speed - I think you are using full speed as we don't
support high speed isochronous transfers yet.
How does it report at high speed?
Maybe you are not seeing alternative settings because of this.

> The board seems to behave like the specification says it should. FreeBSD's
> ugen implementation seems to be the odd one out.
> 
> Does anyone know what to expect from a device with wMaxPacketSize = 0?

Don't use it - it's idle setting to not allocate bandwidth for idle
devices.
It's up to the driver to select a useable alternative setting.

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd@bwct.de                                  info@bwct.de



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040504101742.GO38488>