15d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
25d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
35d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin *
45d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * This program is free software; you can redistribute it and/or modify
55d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * it under the terms of the GNU General Public License version 2 and
65d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * only version 2 as published by the Free Software Foundation.
75d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
85d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * This program is distributed in the hope that it will be useful,
95d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * but WITHOUT ANY WARRANTY; without even the implied warranty of
105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * GNU General Public License for more details.
125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#ifndef _DEV_DEP_H
155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define _DEV_DEP_H
165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct dolby_param_data {
185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t version;
195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t device_id;
205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t be_id;
215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t param_id;
225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t length;
23d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin	int32_t __user *data;
245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct dolby_param_license {
275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t dmid;
285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t license_key;
295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SNDRV_DEVDEP_DAP_IOCTL_SET_PARAM\
325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin		_IOWR('U', 0x10, struct dolby_param_data)
335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SNDRV_DEVDEP_DAP_IOCTL_GET_PARAM\
345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin		_IOR('U', 0x11, struct dolby_param_data)
355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SNDRV_DEVDEP_DAP_IOCTL_DAP_COMMAND\
365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin		_IOWR('U', 0x13, struct dolby_param_data)
375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SNDRV_DEVDEP_DAP_IOCTL_DAP_LICENSE\
385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin		_IOWR('U', 0x14, struct dolby_param_license)
395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SNDRV_DEVDEP_DAP_IOCTL_GET_VISUALIZER\
405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin		_IOR('U', 0x15, struct dolby_param_data)
415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_MODULE			0x00005000
435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_MODULE_ENABLE			0x00005001
445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EAGLE_DRIVER_ID				0xF2
455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_IOCTL_GET_CACHE_SIZE		_IOR(EAGLE_DRIVER_ID, 0, int)
465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_IOCTL_SET_CACHE_SIZE		_IOW(EAGLE_DRIVER_ID, 1, int)
475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_IOCTL_GET_PARAM		_IOR(EAGLE_DRIVER_ID, 2, void*)
485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_IOCTL_SET_PARAM		_IOW(EAGLE_DRIVER_ID, 3, void*)
495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_IOCTL_SET_CACHE_BLOCK		_IOW(EAGLE_DRIVER_ID, 4, void*)
505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_IOCTL_SET_ACTIVE_DEVICE	_IOW(EAGLE_DRIVER_ID, 5, void*)
515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_IOCTL_GET_LICENSE		_IOR(EAGLE_DRIVER_ID, 6, void*)
525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_IOCTL_SET_LICENSE		_IOW(EAGLE_DRIVER_ID, 7, void*)
535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_IOCTL_SEND_LICENSE		_IOW(EAGLE_DRIVER_ID, 8, int)
545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_IOCTL_SET_VOLUME_COMMANDS	_IOW(EAGLE_DRIVER_ID, 9, void*)
555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_FLAG_IOCTL_PRE		(1<<30)
565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_FLAG_IOCTL_JUSTSETCACHE	(1<<31)
575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_FLAG_IOCTL_GETFROMCORE       DTS_EAGLE_FLAG_IOCTL_JUSTSETCACHE
585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_FLAG_IOCTL_MASK		(~(DTS_EAGLE_FLAG_IOCTL_PRE | \
595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin					     DTS_EAGLE_FLAG_IOCTL_JUSTSETCACHE))
605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define DTS_EAGLE_FLAG_ALSA_GET			(1<<31)
615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct dts_eagle_param_desc {
635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t id;
645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t size;
655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t offset;
665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t device;
67d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin} __packed;
685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#endif
70