ronnie
2022-10-14 1504bb53e29d3d46222c0b3ea994fc494b48e153
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
 * u_f.c -- USB function utilities for Gadget stack
 *
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *        http://www.samsung.com
 *
 * Author: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
 
#include "u_f.h"
#include <linux/usb/ch9.h>
 
struct usb_request *alloc_ep_req(struct usb_ep *ep, size_t len)
{
   struct usb_request      *req;
 
   req = usb_ep_alloc_request(ep, GFP_ATOMIC);
   if (req) {
       req->length = usb_endpoint_dir_out(ep->desc) ?
           usb_ep_align(ep, len) : len;
       req->buf = kmalloc(req->length, GFP_ATOMIC);
       if (!req->buf) {
           usb_ep_free_request(ep, req);
           req = NULL;
       }
   }
   return req;
}
EXPORT_SYMBOL_GPL(alloc_ep_req);