Home | History | Annotate | Download | only in linux
      1 /* include/linux/msm_adsp.h
      2  *
      3  * Copyright (C) 2007 Google, Inc.
      4  * Author: Iliyan Malchev <ibm (at) android.com>
      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