|
@@ -47,8 +47,22 @@
|
|
|
struct usb_ep;
|
|
|
struct usb_request;
|
|
|
|
|
|
-/* Requests allocated via alloc_ep_req() must be freed by free_ep_req(). */
|
|
|
+/**
|
|
|
+ * alloc_ep_req - returns a usb_request allocated by the gadget driver and
|
|
|
+ * allocates the request's buffer.
|
|
|
+ *
|
|
|
+ * @ep: the endpoint to allocate a usb_request
|
|
|
+ * @len: usb_requests's buffer suggested size
|
|
|
+ * @default_len: used if @len is not provided, ie, is 0
|
|
|
+ *
|
|
|
+ * In case @ep direction is OUT, the @len will be aligned to ep's
|
|
|
+ * wMaxPacketSize. In order to avoid memory leaks or drops, *always* use
|
|
|
+ * usb_requests's length (req->length) to refer to the allocated buffer size.
|
|
|
+ * Requests allocated via alloc_ep_req() *must* be freed by free_ep_req().
|
|
|
+ */
|
|
|
struct usb_request *alloc_ep_req(struct usb_ep *ep, size_t len, int default_len);
|
|
|
+
|
|
|
+/* Frees a usb_request previously allocated by alloc_ep_req() */
|
|
|
static inline void free_ep_req(struct usb_ep *ep, struct usb_request *req)
|
|
|
{
|
|
|
kfree(req->buf);
|