[PATCH v3 42/46] usb: gadget: move ep_matches() from epautoconf to udc-core

Robert Jarzmik robert.jarzmik at free.fr
Sat Jul 25 04:04:51 PDT 2015


Petr Cvek <petr.cvek at tul.cz> writes:

> On 23.7.2015 21:46, Alan Stern wrote:
>>> It seems that it allows using a BULK endpoint for requested INT
>>> endpoint. For my PXA27x machine the original code returns BULK EP
>>> even with valid INT endpoint definition (because BULK EPs are defined
>>> earlier than INT EPs).
>> 
>> Yes, it does allow a bulk endpoint to be used when an interrupt 
>> endpoint was requested.  However, it won't return a bulk endpoint if 
>> all the bulk endpoints are already in use.
This cannot work for pxa27x.

The pxa27x IP has a hardware limitation which prevents an endpoint from changing
its type once the UDC is enabled (see the comment at the beginning of
pxa27x_udc.c).

If that patchset implies that for a requested INT endpoint a BULK endpoint can
be returned, that won't work. Felipe and Robert, is that what this patchset
implies ?

> A default PXA27x configuration returns BULK for requested INT. Which is
> unfortunate, because PXA27x supports INT endpoints and has one predefined, but
> this function find BULK first (one BULK is allocated and INT is never used).
See above.

> Because if they do, the ep_matches() function works poorly. It returns a BULK
> for device (gadget) side, but host side (PC) thinks that this endpoint is an INT
> and handles it in this way. But the PXA27x thinks the endpoint is a BULK and
> handles it in its way (according to datasheet, settings for a BULK and an INT
> transfers are not 100% compatible).
>
> I cannot test "INT as BULK" behavior for the gadget functions, because all
> gadgets which works on PXA27x does not use INT endpoints (some allocate the
> endpoint but never use it).
Ah a bit of history here.

At least gadget zero does, and it's my main testing point for pxa27x_udc.
Then there should be g_serial (no acm nor obex), but that's something I have not
tried since 2009 ...

For history also, there was already an attempt a long time ago for epautoconf
revamping, done by Rodolfo Giometti IIRC.

Anyway, I need pxa27x_udc to remain functional, so I'd like to understand if
something will stop working, Robert B.

Cheers.

-- 
Robert



More information about the linux-arm-kernel mailing list