GNU Linux-libre 4.19.264-gnu1
[releases.git] / drivers / usb / gadget / u_f.c
1 // SPDX-License-Identifier: GPL-2.0
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  *
8  * Author: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
9  */
10
11 #include "u_f.h"
12 #include <linux/usb/ch9.h>
13
14 struct usb_request *alloc_ep_req(struct usb_ep *ep, size_t len)
15 {
16         struct usb_request      *req;
17
18         req = usb_ep_alloc_request(ep, GFP_ATOMIC);
19         if (req) {
20                 req->length = usb_endpoint_dir_out(ep->desc) ?
21                         usb_ep_align(ep, len) : len;
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 }
30 EXPORT_SYMBOL_GPL(alloc_ep_req);