Question on HCD endpoint_reset() and MSD/UB driver

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

 



On Tue, Apr 28, 2009 at 11:45:23AM +0100, David Vrabel wrote:
> Sarah Sharp wrote:
> > Allow device drivers to submit URBs to bulk endpoints on devices under an
> > xHCI host controller.  Share code between the control and bulk enqueueing
> > functions when it makes sense.
> > 
> > To get the best performance out of bulk transfers, SuperSpeed devices must
> > have the bMaxBurst size copied from their endpoint companion controller
> > into the xHCI device context.  This allows the host controller to "burst"
> > up to 16 packets before it has to wait for the device to acknowledge the
> > first packet.
> 
> Your usb_hcd may need to provide a endpoint_reset method to reset the
> sequence number.  usb_hcd_reset_endpoint() is called after a
> ClearFeature(Halt) etc.

Can the endpoint_reset method be called in interrupt context?  I need to
issue a command to the xHCI host controller hardware and wait on that
command to complete before a driver can successfully submit new URBs for
that endpoint.

There are a couple different entry points to the HCD endpoint_reset()
function.  One is in message.c, but that has a note that the function
can't be called in interrupt context.  It's obvious after a quick read
that two other entry points (drivers/isdn/hisax/st5481_usb.c's
usb_ctrl_complete() and usbfs' proc_resetep()) aren't called in
interrupt context.

That leaves the last entry points in the MSD driver and the UB driver.
I'm not sure whether these functions can be called in interrupt context
or not:
 - drivers/usb/storage/transport.c usb_stor_clear_halt()
 - drivers/block/ub.c ub_scsi_urb_compl()

David and Pete, can you help me figure this out?

Thanks,

Sarah Sharp
--
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