1 /* include/linux/msm_adsp.h 2 * 3 * Copyright (C) 2007 Google, Inc. 4 * Author: Iliyan Malchev <[email protected]> 5 * 6 * This software is licensed under the terms of the GNU General Public 7 * License version 2, as published by the Free Software Foundation, and 8 * may be copied, distributed, and modified under those terms. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 */ 16 #ifndef __LINUX_MSM_ADSP_H 17 #define __LINUX_MSM_ADSP_H 18 19 #include <linux/types.h> 20 #include <linux/ioctl.h> 21 22 #define ADSP_IOCTL_MAGIC 'q' 23 24 /* ADSP_IOCTL_WRITE_COMMAND */ 25 struct adsp_command_t { 26 uint16_t queue; 27 uint32_t len; /* bytes */ 28 uint8_t *data; 29 }; 30 31 /* ADSP_IOCTL_GET_EVENT */ 32 struct adsp_event_t { 33 uint16_t type; /* 1 == event (RPC), 0 == message (adsp) */ 34 uint32_t timeout_ms; /* -1 for infinite, 0 for immediate return */ 35 uint16_t msg_id; 36 uint16_t flags; /* 1 == 16--bit event, 0 == 32-bit event */ 37 uint32_t len; /* size in, number of bytes out */ 38 uint8_t *data; 39 }; 40 41 #define ADSP_IOCTL_ENABLE \ 42 _IOR(ADSP_IOCTL_MAGIC, 1, unsigned) 43 44 #define ADSP_IOCTL_DISABLE \ 45 _IOR(ADSP_IOCTL_MAGIC, 2, unsigned) 46 47 #define ADSP_IOCTL_DISABLE_ACK \ 48 _IOR(ADSP_IOCTL_MAGIC, 3, unsigned) 49 50 #define ADSP_IOCTL_WRITE_COMMAND \ 51 _IOR(ADSP_IOCTL_MAGIC, 4, struct adsp_command_t *) 52 53 #define ADSP_IOCTL_GET_EVENT \ 54 _IOWR(ADSP_IOCTL_MAGIC, 5, struct adsp_event_data_t *) 55 56 #define ADSP_IOCTL_SET_CLKRATE \ 57 _IOR(ADSP_IOCTL_MAGIC, 6, unsigned) 58 59 #define ADSP_IOCTL_DISABLE_EVENT_RSP \ 60 _IOR(ADSP_IOCTL_MAGIC, 10, unsigned) 61 62 #define ADSP_IOCTL_REGISTER_PMEM \ 63 _IOW(ADSP_IOCTL_MAGIC, 13, unsigned) 64 65 #define ADSP_IOCTL_UNREGISTER_PMEM \ 66 _IOW(ADSP_IOCTL_MAGIC, 14, unsigned) 67 68 /* Cause any further GET_EVENT ioctls to fail (-ENODEV) 69 * until the device is closed and reopened. Useful for 70 * terminating event dispatch threads 71 */ 72 #define ADSP_IOCTL_ABORT_EVENT_READ \ 73 _IOW(ADSP_IOCTL_MAGIC, 15, unsigned) 74 75 #define ADSP_IOCTL_LINK_TASK \ 76 _IOW(ADSP_IOCTL_MAGIC, 16, unsigned) 77 78 #endif 79