Re: Question on HCD endpoint_reset() and MSD/UB driver

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

 



Alan Stern wrote:
> 
> Another possibility, perhaps simpler, is this: Make the HCD's 
> endpoint_reset method always runnable in interrupt context, and have 
> it mark the endpoint (or QH or whatever) to indicate that it is being 
> reset.  New URB submissions will be accepted but delayed until the 
> reset finishes.

usbcore should mark the endpoint as being inactive and it should handle
queuing things on it (it does this already after all).  The HCD's
endpoint_reset() simply needs to start the reset process,  When it's
done the HCD should call a (new) usbcore function to activate the
endpoint again (usb_hcd_endpoint_activate()), trigging usbcore to start
giving urbs to the HCD again.

It may also be useful to have a usbcore function to force an endpoint to
be inactive (usb_hcd_endpoint_inactivate()) but I can't think of an use
right now.

If no one else does this, I can look into it in a week or so.

David
-- 
David Vrabel, Senior Software Engineer, Drivers
CSR, Churchill House, Cambridge Business Park,  Tel: +44 (0)1223 692562
Cowley Road, Cambridge, CB4 0WZ                 http://www.csr.com/
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

  Powered by Linux