13aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry/*
23aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
33aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry *
43aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry * This program is free software; you can redistribute it and/or modify
53aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry * it under the terms of the GNU General Public License version 2 and
63aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry * only version 2 as published by the Free Software Foundation.
73aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry
83aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry * This program is distributed in the hope that it will be useful,
93aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry * but WITHOUT ANY WARRANTY; without even the implied warranty of
103aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
113aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry * GNU General Public License for more details.
123aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry */
133aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry
143aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#ifndef _DEV_DEP_H
153aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define _DEV_DEP_H
163aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry
173aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherrystruct dolby_param_data {
183aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	int32_t version;
193aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	int32_t device_id;
203aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	int32_t be_id;
213aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	int32_t param_id;
223aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	int32_t length;
233aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	int32_t __user *data;
243aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry};
253aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry
263aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherrystruct dolby_param_license {
273aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	int32_t dmid;
283aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	int32_t license_key;
293aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry};
303aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry
313aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define SNDRV_DEVDEP_DAP_IOCTL_SET_PARAM\
323aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry		_IOWR('U', 0x10, struct dolby_param_data)
333aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define SNDRV_DEVDEP_DAP_IOCTL_GET_PARAM\
343aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry		_IOR('U', 0x11, struct dolby_param_data)
353aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define SNDRV_DEVDEP_DAP_IOCTL_DAP_COMMAND\
363aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry		_IOWR('U', 0x13, struct dolby_param_data)
373aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define SNDRV_DEVDEP_DAP_IOCTL_DAP_LICENSE\
383aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry		_IOWR('U', 0x14, struct dolby_param_license)
393aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define SNDRV_DEVDEP_DAP_IOCTL_GET_VISUALIZER\
403aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry		_IOR('U', 0x15, struct dolby_param_data)
413aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry
423aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_MODULE			0x00005000
433aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_MODULE_ENABLE			0x00005001
443aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define EAGLE_DRIVER_ID				0xF2
453aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_IOCTL_GET_CACHE_SIZE		_IOR(EAGLE_DRIVER_ID, 0, int)
463aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_IOCTL_SET_CACHE_SIZE		_IOW(EAGLE_DRIVER_ID, 1, int)
473aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_IOCTL_GET_PARAM		_IOR(EAGLE_DRIVER_ID, 2, void*)
483aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_IOCTL_SET_PARAM		_IOW(EAGLE_DRIVER_ID, 3, void*)
493aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_IOCTL_SET_CACHE_BLOCK		_IOW(EAGLE_DRIVER_ID, 4, void*)
503aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_IOCTL_SET_ACTIVE_DEVICE	_IOW(EAGLE_DRIVER_ID, 5, void*)
513aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_IOCTL_GET_LICENSE		_IOR(EAGLE_DRIVER_ID, 6, void*)
523aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_IOCTL_SET_LICENSE		_IOW(EAGLE_DRIVER_ID, 7, void*)
533aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_IOCTL_SEND_LICENSE		_IOW(EAGLE_DRIVER_ID, 8, int)
543aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_IOCTL_SET_VOLUME_COMMANDS	_IOW(EAGLE_DRIVER_ID, 9, void*)
553aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_FLAG_IOCTL_PRE		(1<<30)
563aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_FLAG_IOCTL_JUSTSETCACHE	(1<<31)
573aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_FLAG_IOCTL_GETFROMCORE       DTS_EAGLE_FLAG_IOCTL_JUSTSETCACHE
583aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_FLAG_IOCTL_MASK		(~(DTS_EAGLE_FLAG_IOCTL_PRE | \
593aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry					     DTS_EAGLE_FLAG_IOCTL_JUSTSETCACHE))
603aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#define DTS_EAGLE_FLAG_ALSA_GET			(1<<31)
613aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry
623aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherrystruct dts_eagle_param_desc {
633aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	uint32_t id;
643aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	uint32_t size;
653aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	int32_t offset;
663aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry	uint32_t device;
673aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry} __packed;
683aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry
693aa3a9df80e8cb9396bb0df45cb797e6b17a7e47Tom Cherry#endif
70