Re: [linux-usb-devel] Re: What to do with all of the USB UHCI drivers

David Brownell (david-b@pacbell.net)
Tue, 21 May 2002 21:33:03 -0700


Maksim (Max) Krasnyanskiy wrote:
>
> One-shot interrupt transfers are broken in *-hcd drivers. core/hcd.c
> returns EINVAL if urb->interval==0.

Hmm, eventually that automagic resubmit model needs to go away,
in favor of a straight queued transfer model -- where in effect
there are _only_ "one shot" transfers, which for interrupts are
just going to hang out on endpoint queues that are properly
scheduled. That's needed to make interrupt reads and writes
have the same transfer model ... right now interrupt OUT transfers
don't work very well. (And they'll be the most common type when
we eventually get those device/target side driver APIs sorted.)

Meanwhile, I suppose I can see wanting access to that UHCI-ism.
However your patch would do that wrong, since it should only
apply to interrupt transfers.

> usb-uhci-hcd has to be fixed.
> btw It tries to round interval value even thought it's done by hcd.c

That was one of my quick-review comments too. It doesn't hurt,
it's just one of several URB sanity-check/preprocessing steps
that doesn't need to be in every driver.

> On a side note. Why are URBs still not SLABified ?

Hasn't seemed to be necessary. kmalloc() is slabified already,
so it's not clear that a control/bulk/interrupt URB pool shared
between drivers -- size, maybe a handful -- would be better than
sharing that same memory with other kernel code.

- Dave

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/