Re: Some restrictions when using usbtest and g_zero

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 20, 2015 at 10:40:17AM -0400, Alan Stern wrote:
> On Thu, 20 Aug 2015, Peter Chen wrote:
> 
> > Hi all,
> > 
> > I have played usbtest and g_zero (f_sourcesink & f_loopback) to do
> > the tests between two boards these days, and have found some restrictions,
> > I list them here, and to see if they are common problems and can
> > be improved or not.
> > 
> > - Test 13 will fail due to there is pending IN request (f_sourcesink
> > will queue a request unconditionally at its completion), and udc driver
> > will run out error if that. udc driver must do that if it wants to
> > pass USB CV2.0 MSC TEST. (othwerwise, "Command Set Test - Device Configured"
> > will fail)
> 
> The USB spec isn't very clear about this.  All it says about the
> Set-Halt request is:
> 
> 	When set by the SetFeature() request, the endpoint exhibits the
> 	same stall behavior as if the field had been set by a hardware
> 	condition.
> 
> But if there's a pending request, many UDC drivers are unable to set 
> the HALT feature -- even due to a hardware condition.
> 
> I suppose the right thing is for the UDC to temporarily disable the
> endpoint, set the HALT feature, and then re-enable the endpoint (along
> with the pending request).  But changing a bunch of UDC drivers for
> such a minor thing doesn't seem worthwhile.

we can move that into udc-core.c:

int usb_ep_set_halt(struct usb_ep *ep)
{
	if (WARN_ON(!ep))
		return -EINVAL;

	if (!usb_ep_queue_is_empty(ep))
		usb_ep_empty_queue(ep, -EPIPE);

	return __usb_ep_set_halt(ep);
}

or something similar.

-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux