Hi, thanks for asnwer, i looked inside gadget.h and found declaration usb_ep_queue --- usb_ep_queue(struct usb_ep *ep, struct usb_request *req, gfp_tgfp_flags) --- but i dint find any call for it in zero.c however, i found it called inside gmidi.c that is close to my project. as i realized, each time HCD sends request to my device, gmidi_setup routine is called. But this routine related only to ep0 control requests. After creation of device, i made myendpoints enabled with err = usb_ep_enable(dev->in_ep, &bulk_in_desc); err = usb_ep_enable(dev->out_ep, &bulk_out_desc); ep = dev->out_ep; req = alloc_ep_req(ep, buflen); then i calling the err = usb_ep_queue(ep, req, GFP_ATOMIC); am i right ? in what handler do i need to call from in/out endpoints to receive/send BULK data? in example midi gadget there is only these functions: static struct usb_gadget_driver gmidi_driver = { .unbind = gmidi_unbind, .setup = gmidi_setup, .disconnect = gmidi_disconnect, .suspend = gmidi_suspend, .resume = gmidi_resume, }; > On Tue, 26 Apr 2011, basep wrote: >> Hi! >> >> Please, advice, how can i handle the request USB_ENDPOINT_XFER_BULK >> inside client's API. >> i'm unsing dummy_hcd.ko module at debian 6 kernel 2.6.32. >> >> I correclty handling ad gadget side the control requests, using >> >> usb_gadget_driver >> .setup function >> >> it handles control request only with setup packets. >> my gadget device uses USB_ENDPOINT_XFER_BULK for ep1 and ep81. >> >> ======================================================================= >> any device's side way to receive and emulate such requests? > Read include/linux/usb/gadget.h. You need to use usb_ep_queue(). > See drivers/usb/gadget/zero.c for an example of how to use bulk > endpoints. > Alan Stern -- 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