xref: /linux/drivers/usb/gadget/function/u_midi.h (revision 762f99f4f3cb41a775b5157dd761217beba65873)
1*2e759738SNishad Kamdar /* SPDX-License-Identifier: GPL-2.0 */
2b85e9de9SAndrzej Pietrasiewicz /*
3b85e9de9SAndrzej Pietrasiewicz  * u_midi.h
4b85e9de9SAndrzej Pietrasiewicz  *
5b85e9de9SAndrzej Pietrasiewicz  * Utility definitions for the midi function
6b85e9de9SAndrzej Pietrasiewicz  *
7b85e9de9SAndrzej Pietrasiewicz  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
8b85e9de9SAndrzej Pietrasiewicz  *		http://www.samsung.com
9b85e9de9SAndrzej Pietrasiewicz  *
101b4a3b51SAndrzej Pietrasiewicz  * Author: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com>
11b85e9de9SAndrzej Pietrasiewicz  */
12b85e9de9SAndrzej Pietrasiewicz 
13b85e9de9SAndrzej Pietrasiewicz #ifndef U_MIDI_H
14b85e9de9SAndrzej Pietrasiewicz #define U_MIDI_H
15b85e9de9SAndrzej Pietrasiewicz 
16b85e9de9SAndrzej Pietrasiewicz #include <linux/usb/composite.h>
17b85e9de9SAndrzej Pietrasiewicz 
18b85e9de9SAndrzej Pietrasiewicz struct f_midi_opts {
19b85e9de9SAndrzej Pietrasiewicz 	struct usb_function_instance	func_inst;
20b85e9de9SAndrzej Pietrasiewicz 	int				index;
21b85e9de9SAndrzej Pietrasiewicz 	char				*id;
226f1de344SAndrzej Pietrasiewicz 	bool				id_allocated;
23b85e9de9SAndrzej Pietrasiewicz 	unsigned int			in_ports;
24b85e9de9SAndrzej Pietrasiewicz 	unsigned int			out_ports;
25b85e9de9SAndrzej Pietrasiewicz 	unsigned int			buflen;
26b85e9de9SAndrzej Pietrasiewicz 	unsigned int			qlen;
276f1de344SAndrzej Pietrasiewicz 
286f1de344SAndrzej Pietrasiewicz 	/*
296f1de344SAndrzej Pietrasiewicz 	 * Protect the data form concurrent access by read/write
306f1de344SAndrzej Pietrasiewicz 	 * and create symlink/remove symlink.
316f1de344SAndrzej Pietrasiewicz 	 */
326f1de344SAndrzej Pietrasiewicz 	struct mutex			lock;
336f1de344SAndrzej Pietrasiewicz 	int				refcnt;
34b85e9de9SAndrzej Pietrasiewicz };
35b85e9de9SAndrzej Pietrasiewicz 
36b85e9de9SAndrzej Pietrasiewicz #endif /* U_MIDI_H */
37b85e9de9SAndrzej Pietrasiewicz 
38