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 _AUDIO_EFFECTS_H
155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define _AUDIO_EFFECTS_H
165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/** AUDIO EFFECTS **/
185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* CONFIG GET/SET */
215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CONFIG_CACHE			0
225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CONFIG_SET			1
235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CONFIG_GET			2
245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* CONFIG HEADER */
265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	MODULE_ID,
295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	DEVICE,
305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	NUM_COMMANDS,
315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	COMMAND_ID_1,
325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	CONFIG_CACHE/SET/GET,
335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	OFFSET_1,
345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	LENGTH_1,
355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	VALUES_1,
365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	...,
375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	...,
385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	COMMAND_ID_2,
395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	CONFIG_CACHE/SET/GET,
405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	OFFSET_2,
415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	LENGTH_2,
425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	VALUES_2,
435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	...,
445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	...,
455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	COMMAND_ID_3,
465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	...
475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin*/
485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* CONFIG PARAM IDs */
515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_MODULE		0x00001000
525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_ENABLE		0x00001001
535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_STRENGTH		0x00001002
545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_OUT_TYPE		0x00001003
555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_GAIN_ADJUST		0x00001004
565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_ENABLE_PARAM_LEN		1
575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_STRENGTH_PARAM_LEN		1
585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_OUT_TYPE_PARAM_LEN		1
595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_GAIN_ADJUST_PARAM_LEN	1
605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_MODULE			0x00002000
625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_ENABLE			0x00002001
635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_MODE			0x00002002
645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_PRESET			0x00002003
655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_WET_MIX			0x00002004
665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_GAIN_ADJUST		0x00002005
675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_ROOM_LEVEL		0x00002006
685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_ROOM_HF_LEVEL		0x00002007
695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DECAY_TIME		0x00002008
705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DECAY_HF_RATIO		0x00002009
715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_REFLECTIONS_LEVEL	0x0000200a
725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_REFLECTIONS_DELAY	0x0000200b
735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_LEVEL			0x0000200c
745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DELAY			0x0000200d
755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DIFFUSION		0x0000200e
765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DENSITY			0x0000200f
775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_ENABLE_PARAM_LEN			1
785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_MODE_PARAM_LEN			1
795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_PRESET_PARAM_LEN			1
805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_WET_MIX_PARAM_LEN		1
815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_GAIN_ADJUST_PARAM_LEN		1
825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_ROOM_LEVEL_PARAM_LEN		1
835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_ROOM_HF_LEVEL_PARAM_LEN		1
845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DECAY_TIME_PARAM_LEN		1
855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DECAY_HF_RATIO_PARAM_LEN		1
865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_REFLECTIONS_LEVEL_PARAM_LEN	1
875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_REFLECTIONS_DELAY_PARAM_LEN	1
885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_LEVEL_PARAM_LEN			1
895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DELAY_PARAM_LEN			1
905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DIFFUSION_PARAM_LEN		1
915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DENSITY_PARAM_LEN		1
925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define BASS_BOOST_MODULE		0x00003000
945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define BASS_BOOST_ENABLE		0x00003001
955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define BASS_BOOST_MODE			0x00003002
965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define BASS_BOOST_STRENGTH		0x00003003
975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define BASS_BOOST_ENABLE_PARAM_LEN		1
985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define BASS_BOOST_MODE_PARAM_LEN		1
995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define BASS_BOOST_STRENGTH_PARAM_LEN		1
1005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_MODULE			0x00004000
1025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_ENABLE			0x00004001
1035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_CONFIG			0x00004002
1045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_NUM_BANDS			0x00004003
1055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_LEVELS			0x00004004
1065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_LEVEL_RANGE		0x00004005
1075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_FREQS			0x00004006
1085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_SINGLE_BAND_FREQ_RANGE	0x00004007
1095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_SINGLE_BAND_FREQ		0x00004008
1105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_INDEX			0x00004009
1115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_PRESET_ID			0x0000400a
1125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_NUM_PRESETS			0x0000400b
1135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_PRESET_NAME			0x0000400c
1145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_ENABLE_PARAM_LEN			1
1155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_CONFIG_PARAM_LEN			3
1165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_CONFIG_PER_BAND_PARAM_LEN		5
1175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_NUM_BANDS_PARAM_LEN			1
1185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_LEVELS_PARAM_LEN		13
1195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_LEVEL_RANGE_PARAM_LEN		2
1205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_FREQS_PARAM_LEN			13
1215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN	2
1225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_SINGLE_BAND_FREQ_PARAM_LEN		1
1235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_INDEX_PARAM_LEN			1
1245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_PRESET_ID_PARAM_LEN			1
1255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_NUM_PRESETS_PARAM_LEN		1
1265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_PRESET_NAME_PARAM_LEN		32
1275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_TYPE_NONE	0
1295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BASS_BOOST	1
1305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BASS_CUT	2
1315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_TREBLE_BOOST	3
1325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_TREBLE_CUT	4
1335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_BOOST	5
1345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_CUT	6
1355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME_MODULE		0x00006000
1375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME_ENABLE		0x00006001
1385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME_GAIN_2CH		0x00006002
1395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME_GAIN_MASTER		0x00006003
1405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME_ENABLE_PARAM_LEN		1
1415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME_GAIN_2CH_PARAM_LEN		2
1425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME_GAIN_MASTER_PARAM_LEN	1
1435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME2_MODULE		0x00007000
1455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME2_ENABLE		0x00007001
1465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME2_GAIN_2CH		0x00007002
1475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME2_GAIN_MASTER	0x00007003
1485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME2_ENABLE_PARAM_LEN		SOFT_VOLUME_ENABLE_PARAM_LEN
1495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME2_GAIN_2CH_PARAM_LEN		SOFT_VOLUME_GAIN_2CH_PARAM_LEN
1505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME2_GAIN_MASTER_PARAM_LEN	\
1515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin					SOFT_VOLUME_GAIN_MASTER_PARAM_LEN
1525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define PBE_CONF_MODULE_ID	0x00010C2A
1545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define PBE_CONF_PARAM_ID	0x00010C49
1555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define PBE_MODULE		0x00008000
1575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define PBE_ENABLE		0x00008001
1585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define PBE_CONFIG		0x00008002
1595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define PBE_ENABLE_PARAM_LEN		1
1605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define PBE_CONFIG_PARAM_LEN		28
1615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define COMMAND_PAYLOAD_LEN	3
1635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define COMMAND_PAYLOAD_SZ	(COMMAND_PAYLOAD_LEN * sizeof(uint32_t))
1645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_INBAND_PARAM_SZ	4096
1655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define Q27_UNITY		(1 << 27)
1665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define Q8_UNITY		(1 << 8)
1675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CUSTOM_OPENSL_PRESET	18
1685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_ENABLE_PARAM_SZ	\
1705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(VIRTUALIZER_ENABLE_PARAM_LEN*sizeof(uint32_t))
1715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_STRENGTH_PARAM_SZ	\
1725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(VIRTUALIZER_STRENGTH_PARAM_LEN*sizeof(uint32_t))
1735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_OUT_TYPE_PARAM_SZ	\
1745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(VIRTUALIZER_OUT_TYPE_PARAM_LEN*sizeof(uint32_t))
1755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VIRTUALIZER_GAIN_ADJUST_PARAM_SZ	\
1765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(VIRTUALIZER_GAIN_ADJUST_PARAM_LEN*sizeof(uint32_t))
1775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct virtualizer_params {
1785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t device;
1795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t enable_flag;
1805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t strength;
1815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t out_type;
1825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t gain_adjust;
1835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define NUM_OSL_REVERB_PRESETS_SUPPORTED	6
1865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_ENABLE_PARAM_SZ		\
1875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_ENABLE_PARAM_LEN*sizeof(uint32_t))
1885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_MODE_PARAM_SZ		\
1895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_MODE_PARAM_LEN*sizeof(uint32_t))
1905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_PRESET_PARAM_SZ		\
1915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_PRESET_PARAM_LEN*sizeof(uint32_t))
1925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_WET_MIX_PARAM_SZ		\
1935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_WET_MIX_PARAM_LEN*sizeof(uint32_t))
1945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_GAIN_ADJUST_PARAM_SZ	\
1955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_GAIN_ADJUST_PARAM_LEN*sizeof(uint32_t))
1965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_ROOM_LEVEL_PARAM_SZ	\
1975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_ROOM_LEVEL_PARAM_LEN*sizeof(uint32_t))
1985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_ROOM_HF_LEVEL_PARAM_SZ	\
1995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_ROOM_HF_LEVEL_PARAM_LEN*sizeof(uint32_t))
2005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DECAY_TIME_PARAM_SZ	\
2015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_DECAY_TIME_PARAM_LEN*sizeof(uint32_t))
2025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DECAY_HF_RATIO_PARAM_SZ	\
2035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_DECAY_HF_RATIO_PARAM_LEN*sizeof(uint32_t))
2045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_REFLECTIONS_LEVEL_PARAM_SZ	\
2055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_REFLECTIONS_LEVEL_PARAM_LEN*sizeof(uint32_t))
2065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_REFLECTIONS_DELAY_PARAM_SZ	\
2075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_REFLECTIONS_DELAY_PARAM_LEN*sizeof(uint32_t))
2085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_LEVEL_PARAM_SZ		\
2095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_LEVEL_PARAM_LEN*sizeof(uint32_t))
2105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DELAY_PARAM_SZ		\
2115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_DELAY_PARAM_LEN*sizeof(uint32_t))
2125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DIFFUSION_PARAM_SZ	\
2135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_DIFFUSION_PARAM_LEN*sizeof(uint32_t))
2145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define REVERB_DENSITY_PARAM_SZ		\
2155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(REVERB_DENSITY_PARAM_LEN*sizeof(uint32_t))
2165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct reverb_params {
2175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t device;
2185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t enable_flag;
2195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t mode;
2205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t preset;
2215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t wet_mix;
2225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t  gain_adjust;
2235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t  room_level;
2245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t  room_hf_level;
2255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t decay_time;
2265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t decay_hf_ratio;
2275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t  reflections_level;
2285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t reflections_delay;
2295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t  level;
2305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t delay;
2315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t diffusion;
2325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t density;
2335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
2345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define BASS_BOOST_ENABLE_PARAM_SZ	\
2365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(BASS_BOOST_ENABLE_PARAM_LEN*sizeof(uint32_t))
2375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define BASS_BOOST_MODE_PARAM_SZ	\
2385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(BASS_BOOST_MODE_PARAM_LEN*sizeof(uint32_t))
2395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define BASS_BOOST_STRENGTH_PARAM_SZ	\
2405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(BASS_BOOST_STRENGTH_PARAM_LEN*sizeof(uint32_t))
2415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct bass_boost_params {
2425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t device;
2435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t enable_flag;
2445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t mode;
2455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t strength;
2465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
2475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_EQ_BANDS 12
2505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_OSL_EQ_BANDS 5
2515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_ENABLE_PARAM_SZ			\
2525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_ENABLE_PARAM_LEN*sizeof(uint32_t))
2535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_CONFIG_PARAM_SZ			\
2545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_CONFIG_PARAM_LEN*sizeof(uint32_t))
2555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_CONFIG_PER_BAND_PARAM_SZ		\
2565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_CONFIG_PER_BAND_PARAM_LEN*sizeof(uint32_t))
2575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_CONFIG_PARAM_MAX_LEN			(EQ_CONFIG_PARAM_LEN+\
2585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			MAX_EQ_BANDS*EQ_CONFIG_PER_BAND_PARAM_LEN)
2595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_CONFIG_PARAM_MAX_SZ			\
2605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_CONFIG_PARAM_MAX_LEN*sizeof(uint32_t))
2615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_NUM_BANDS_PARAM_SZ			\
2625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_NUM_BANDS_PARAM_LEN*sizeof(uint32_t))
2635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_LEVELS_PARAM_SZ			\
2645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_BAND_LEVELS_PARAM_LEN*sizeof(uint32_t))
2655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_LEVEL_RANGE_PARAM_SZ		\
2665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_BAND_LEVEL_RANGE_PARAM_LEN*sizeof(uint32_t))
2675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_FREQS_PARAM_SZ			\
2685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_BAND_FREQS_PARAM_LEN*sizeof(uint32_t))
2695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_SZ	\
2705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN*sizeof(uint32_t))
2715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_SINGLE_BAND_FREQ_PARAM_SZ		\
2725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_SINGLE_BAND_FREQ_PARAM_LEN*sizeof(uint32_t))
2735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_BAND_INDEX_PARAM_SZ			\
2745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_BAND_INDEX_PARAM_LEN*sizeof(uint32_t))
2755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_PRESET_ID_PARAM_SZ			\
2765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_PRESET_ID_PARAM_LEN*sizeof(uint32_t))
2775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define EQ_NUM_PRESETS_PARAM_SZ			\
2785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(EQ_NUM_PRESETS_PARAM_LEN*sizeof(uint8_t))
2795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct eq_config_t {
2805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t eq_pregain;
2815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t preset_id;
2825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t num_bands;
2835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
2845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct eq_per_band_config_t {
2855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t band_idx;
2865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t filter_type;
2875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t freq_millihertz;
2885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t  gain_millibels;
2895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t quality_factor;
2905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
2915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct eq_per_band_freq_range_t {
2925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t band_index;
2935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t min_freq_millihertz;
2945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t max_freq_millihertz;
2955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
2965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct eq_params {
2985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t device;
2995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t enable_flag;
3005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct eq_config_t config;
3015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct eq_per_band_config_t per_band_cfg[MAX_EQ_BANDS];
3025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct eq_per_band_freq_range_t per_band_freq_range[MAX_EQ_BANDS];
3035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t band_index;
3045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t freq_millihertz;
3055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
3065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define PBE_ENABLE_PARAM_SZ	\
3085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(PBE_ENABLE_PARAM_LEN*sizeof(uint32_t))
3095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define PBE_CONFIG_PARAM_SZ	\
3105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(PBE_CONFIG_PARAM_LEN*sizeof(uint16_t))
3115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct pbe_config_t {
3125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t  real_bass_mix;
3135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t  bass_color_control;
3145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint16_t main_chain_delay;
3155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint16_t xover_filter_order;
3165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint16_t bandpass_filter_order;
3175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t  drc_delay;
3185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint16_t rms_tav;
3195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t exp_threshold;
3205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint16_t exp_slope;
3215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t comp_threshold;
3225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint16_t comp_slope;
3235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint16_t makeup_gain;
3245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t comp_attack;
3255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t comp_release;
3265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t exp_attack;
3275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t exp_release;
3285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t limiter_bass_threshold;
3295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t limiter_high_threshold;
3305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t limiter_bass_makeup_gain;
3315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t limiter_high_makeup_gain;
3325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t limiter_bass_gc;
3335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t limiter_high_gc;
3345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int16_t  limiter_delay;
3355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint16_t reserved;
3365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	/* place holder for filter coeffs to be followed */
3375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t p1LowPassCoeffs[5*2];
3385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t p1HighPassCoeffs[5*2];
3395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t p1BandPassCoeffs[5*3];
3405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t p1BassShelfCoeffs[5];
3415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t p1TrebleShelfCoeffs[5];
342d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin} __packed;
3435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct pbe_params {
3455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t device;
3465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t enable_flag;
3475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t cfg_len;
3485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct pbe_config_t config;
3495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
3505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME_ENABLE_PARAM_SZ		\
3525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(SOFT_VOLUME_ENABLE_PARAM_LEN*sizeof(uint32_t))
3535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME_GAIN_MASTER_PARAM_SZ	\
3545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(SOFT_VOLUME_GAIN_MASTER_PARAM_LEN*sizeof(uint32_t))
3555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SOFT_VOLUME_GAIN_2CH_PARAM_SZ		\
3565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			(SOFT_VOLUME_GAIN_2CH_PARAM_LEN*sizeof(uint16_t))
3575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct soft_volume_params {
3585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t device;
3595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t enable_flag;
3605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t master_gain;
3615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t left_gain;
3625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t right_gain;
3635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
3645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_nt_eff_all_config {
3665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct bass_boost_params bass_boost;
3675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct pbe_params pbe;
3685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct virtualizer_params virtualizer;
3695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct reverb_params reverb;
3705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct eq_params equalizer;
3715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct soft_volume_params saplus_vol;
3725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct soft_volume_params topo_switch_vol;
3735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
3745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#endif /*_MSM_AUDIO_EFFECTS_H*/
376