Commit | Line | Data |
---|---|---|
5fd54ace | 1 | // SPDX-License-Identifier: GPL-2.0 |
1efd54ea AP |
2 | /* |
3 | * u_f.c -- USB function utilities for Gadget stack | |
4 | * | |
5 | * Copyright (c) 2013 Samsung Electronics Co., Ltd. | |
6 | * http://www.samsung.com | |
7 | * | |
1b4a3b51 | 8 | * Author: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com> |
1efd54ea AP |
9 | */ |
10 | ||
1efd54ea | 11 | #include "u_f.h" |
e0466156 | 12 | #include <linux/usb/ch9.h> |
1efd54ea | 13 | |
aadbe812 | 14 | struct usb_request *alloc_ep_req(struct usb_ep *ep, size_t len) |
1efd54ea AP |
15 | { |
16 | struct usb_request *req; | |
17 | ||
18 | req = usb_ep_alloc_request(ep, GFP_ATOMIC); | |
19 | if (req) { | |
aadbe812 FT |
20 | req->length = usb_endpoint_dir_out(ep->desc) ? |
21 | usb_ep_align(ep, len) : len; | |
1efd54ea AP |
22 | req->buf = kmalloc(req->length, GFP_ATOMIC); |
23 | if (!req->buf) { | |
24 | usb_ep_free_request(ep, req); | |
25 | req = NULL; | |
26 | } | |
27 | } | |
28 | return req; | |
29 | } | |
0700faaf | 30 | EXPORT_SYMBOL_GPL(alloc_ep_req); |