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