/arch/arm/mach-msm/include/mach/qdsp5/qdsp5audpreproccmdi.h

https://bitbucket.org/sammyz/iscream_thunderc-2.6.35-rebase · C++ Header · 256 lines · 175 code · 26 blank · 55 comment · 0 complexity · ec0278b9d646d38185fd2bed63db6f29 MD5 · raw file

  1. #ifndef QDSP5AUDPREPROCCMDI_H
  2. #define QDSP5AUDPREPROCCMDI_H
  3. /*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
  4. A U D I O P R E P R O C E S S I N G I N T E R N A L C O M M A N D S
  5. GENERAL DESCRIPTION
  6. This file contains defintions of format blocks of commands
  7. that are accepted by AUDPREPROC Task
  8. REFERENCES
  9. None
  10. EXTERNALIZED FUNCTIONS
  11. None
  12. Copyright (c) 1992-2009, Code Aurora Forum. All rights reserved.
  13. This software is licensed under the terms of the GNU General Public
  14. License version 2, as published by the Free Software Foundation, and
  15. may be copied, distributed, and modified under those terms.
  16. This program is distributed in the hope that it will be useful,
  17. but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. GNU General Public License for more details.
  20. *====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/
  21. /*===========================================================================
  22. EDIT HISTORY FOR FILE
  23. This section contains comments describing changes made to this file.
  24. Notice that changes are listed in reverse chronological order.
  25. $Header: //source/qcom/qct/multimedia2/Audio/drivers/QDSP5Driver/QDSP5Interface/main/latest/qdsp5audpreproccmdi.h#2 $
  26. ===========================================================================*/
  27. /*
  28. * AUDIOPREPROC COMMANDS:
  29. * ARM uses uPAudPreProcCmdQueue to communicate with AUDPREPROCTASK
  30. * Location : MEMB
  31. * Buffer size : 51
  32. * Number of buffers in a queue : 3
  33. */
  34. /*
  35. * Command to configure the parameters of AGC
  36. */
  37. #define AUDPREPROC_CMD_CFG_AGC_PARAMS 0x0000
  38. #define AUDPREPROC_CMD_CFG_AGC_PARAMS_LEN \
  39. sizeof(audpreproc_cmd_cfg_agc_params)
  40. #define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_SLOPE 0x0009
  41. #define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_TH 0x000A
  42. #define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_EXP_SLOPE 0x000B
  43. #define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_EXP_TH 0x000C
  44. #define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_AIG_FLAG 0x000D
  45. #define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_STATIC_GAIN 0x000E
  46. #define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_TX_AGC_ENA_FLAG 0x000F
  47. #define AUDPREPROC_CMD_TX_AGC_ENA_FLAG_ENA -1
  48. #define AUDPREPROC_CMD_TX_AGC_ENA_FLAG_DIS 0x0000
  49. #define AUDPREPROC_CMD_ADP_GAIN_FLAG_ENA_ADP_GAIN -1
  50. #define AUDPREPROC_CMD_ADP_GAIN_FLAG_ENA_STATIC_GAIN 0x0000
  51. #define AUDPREPROC_CMD_PARAM_MASK_RMS_TAY 0x0004
  52. #define AUDPREPROC_CMD_PARAM_MASK_RELEASEK 0x0005
  53. #define AUDPREPROC_CMD_PARAM_MASK_DELAY 0x0006
  54. #define AUDPREPROC_CMD_PARAM_MASK_ATTACKK 0x0007
  55. #define AUDPREPROC_CMD_PARAM_MASK_LEAKRATE_SLOW 0x0008
  56. #define AUDPREPROC_CMD_PARAM_MASK_LEAKRATE_FAST 0x0009
  57. #define AUDPREPROC_CMD_PARAM_MASK_AIG_RELEASEK 0x000A
  58. #define AUDPREPROC_CMD_PARAM_MASK_AIG_MIN 0x000B
  59. #define AUDPREPROC_CMD_PARAM_MASK_AIG_MAX 0x000C
  60. #define AUDPREPROC_CMD_PARAM_MASK_LEAK_UP 0x000D
  61. #define AUDPREPROC_CMD_PARAM_MASK_LEAK_DOWN 0x000E
  62. #define AUDPREPROC_CMD_PARAM_MASK_AIG_ATTACKK 0x000F
  63. typedef struct {
  64. unsigned short cmd_id;
  65. unsigned short tx_agc_param_mask;
  66. unsigned short tx_agc_enable_flag;
  67. unsigned short static_gain;
  68. signed short adaptive_gain_flag;
  69. unsigned short expander_th;
  70. unsigned short expander_slope;
  71. unsigned short compressor_th;
  72. unsigned short compressor_slope;
  73. unsigned short param_mask;
  74. unsigned short aig_attackk;
  75. unsigned short aig_leak_down;
  76. unsigned short aig_leak_up;
  77. unsigned short aig_max;
  78. unsigned short aig_min;
  79. unsigned short aig_releasek;
  80. unsigned short aig_leakrate_fast;
  81. unsigned short aig_leakrate_slow;
  82. unsigned short attackk_msw;
  83. unsigned short attackk_lsw;
  84. unsigned short delay;
  85. unsigned short releasek_msw;
  86. unsigned short releasek_lsw;
  87. unsigned short rms_tav;
  88. } __attribute__((packed)) audpreproc_cmd_cfg_agc_params;
  89. /*
  90. * Command to configure the params of Advanved AGC
  91. */
  92. #define AUDPREPROC_CMD_CFG_AGC_PARAMS_2 0x0001
  93. #define AUDPREPROC_CMD_CFG_AGC_PARAMS_2_LEN \
  94. sizeof(audpreproc_cmd_cfg_agc_params_2)
  95. #define AUDPREPROC_CMD_2_TX_AGC_ENA_FLAG_ENA -1;
  96. #define AUDPREPROC_CMD_2_TX_AGC_ENA_FLAG_DIS 0x0000;
  97. typedef struct {
  98. unsigned short cmd_id;
  99. unsigned short agc_param_mask;
  100. signed short tx_agc_enable_flag;
  101. unsigned short comp_static_gain;
  102. unsigned short exp_th;
  103. unsigned short exp_slope;
  104. unsigned short comp_th;
  105. unsigned short comp_slope;
  106. unsigned short comp_rms_tav;
  107. unsigned short comp_samp_mask;
  108. unsigned short comp_attackk_msw;
  109. unsigned short comp_attackk_lsw;
  110. unsigned short comp_releasek_msw;
  111. unsigned short comp_releasek_lsw;
  112. unsigned short comp_delay;
  113. unsigned short comp_makeup_gain;
  114. } __attribute__((packed)) audpreproc_cmd_cfg_agc_params_2;
  115. /*
  116. * Command to configure params for ns
  117. */
  118. #define AUDPREPROC_CMD_CFG_NS_PARAMS 0x0002
  119. #define AUDPREPROC_CMD_CFG_NS_PARAMS_LEN \
  120. sizeof(audpreproc_cmd_cfg_ns_params)
  121. #define AUDPREPROC_CMD_EC_MODE_NEW_NLMS_ENA 0x0001
  122. #define AUDPREPROC_CMD_EC_MODE_NEW_NLMS_DIS 0x0000
  123. #define AUDPREPROC_CMD_EC_MODE_NEW_DES_ENA 0x0002
  124. #define AUDPREPROC_CMD_EC_MODE_NEW_DES_DIS 0x0000
  125. #define AUDPREPROC_CMD_EC_MODE_NEW_NS_ENA 0x0004
  126. #define AUDPREPROC_CMD_EC_MODE_NEW_NS_DIS 0x0000
  127. #define AUDPREPROC_CMD_EC_MODE_NEW_CNI_ENA 0x0008
  128. #define AUDPREPROC_CMD_EC_MODE_NEW_CNI_DIS 0x0000
  129. #define AUDPREPROC_CMD_EC_MODE_NEW_NLES_ENA 0x0010
  130. #define AUDPREPROC_CMD_EC_MODE_NEW_NLES_DIS 0x0000
  131. #define AUDPREPROC_CMD_EC_MODE_NEW_HB_ENA 0x0020
  132. #define AUDPREPROC_CMD_EC_MODE_NEW_HB_DIS 0x0000
  133. #define AUDPREPROC_CMD_EC_MODE_NEW_VA_ENA 0x0040
  134. #define AUDPREPROC_CMD_EC_MODE_NEW_VA_DIS 0x0000
  135. #define AUDPREPROC_CMD_EC_MODE_NEW_PCD_ENA 0x0080
  136. #define AUDPREPROC_CMD_EC_MODE_NEW_PCD_DIS 0x0000
  137. #define AUDPREPROC_CMD_EC_MODE_NEW_FEHI_ENA 0x0100
  138. #define AUDPREPROC_CMD_EC_MODE_NEW_FEHI_DIS 0x0000
  139. #define AUDPREPROC_CMD_EC_MODE_NEW_NEHI_ENA 0x0200
  140. #define AUDPREPROC_CMD_EC_MODE_NEW_NEHI_DIS 0x0000
  141. #define AUDPREPROC_CMD_EC_MODE_NEW_NLPP_ENA 0x0400
  142. #define AUDPREPROC_CMD_EC_MODE_NEW_NLPP_DIS 0x0000
  143. #define AUDPREPROC_CMD_EC_MODE_NEW_FNE_ENA 0x0800
  144. #define AUDPREPROC_CMD_EC_MODE_NEW_FNE_DIS 0x0000
  145. #define AUDPREPROC_CMD_EC_MODE_NEW_PRENLMS_ENA 0x1000
  146. #define AUDPREPROC_CMD_EC_MODE_NEW_PRENLMS_DIS 0x0000
  147. typedef struct {
  148. unsigned short cmd_id;
  149. unsigned short ec_mode_new;
  150. unsigned short dens_gamma_n;
  151. unsigned short dens_nfe_block_size;
  152. unsigned short dens_limit_ns;
  153. unsigned short dens_limit_ns_d;
  154. unsigned short wb_gamma_e;
  155. unsigned short wb_gamma_n;
  156. } __attribute__((packed)) audpreproc_cmd_cfg_ns_params;
  157. /*
  158. * Command to configure parameters for IIR tuning filter
  159. */
  160. #define AUDPREPROC_CMD_CFG_IIR_TUNING_FILTER_PARAMS 0x0003
  161. #define AUDPREPROC_CMD_CFG_IIR_TUNING_FILTER_PARAMS_LEN \
  162. sizeof(audpreproc_cmd_cfg_iir_tuning_filter_params)
  163. #define AUDPREPROC_CMD_IIR_ACTIVE_FLAG_DIS 0x0000
  164. #define AUDPREPROC_CMD_IIR_ACTIVE_FLAG_ENA 0x0001
  165. typedef struct {
  166. unsigned short cmd_id;
  167. unsigned short active_flag;
  168. unsigned short num_bands;
  169. unsigned short numerator_coeff_b0_filter0_lsw;
  170. unsigned short numerator_coeff_b0_filter0_msw;
  171. unsigned short numerator_coeff_b1_filter0_lsw;
  172. unsigned short numerator_coeff_b1_filter0_msw;
  173. unsigned short numerator_coeff_b2_filter0_lsw;
  174. unsigned short numerator_coeff_b2_filter0_msw;
  175. unsigned short numerator_coeff_b0_filter1_lsw;
  176. unsigned short numerator_coeff_b0_filter1_msw;
  177. unsigned short numerator_coeff_b1_filter1_lsw;
  178. unsigned short numerator_coeff_b1_filter1_msw;
  179. unsigned short numerator_coeff_b2_filter1_lsw;
  180. unsigned short numerator_coeff_b2_filter1_msw;
  181. unsigned short numerator_coeff_b0_filter2_lsw;
  182. unsigned short numerator_coeff_b0_filter2_msw;
  183. unsigned short numerator_coeff_b1_filter2_lsw;
  184. unsigned short numerator_coeff_b1_filter2_msw;
  185. unsigned short numerator_coeff_b2_filter2_lsw;
  186. unsigned short numerator_coeff_b2_filter2_msw;
  187. unsigned short numerator_coeff_b0_filter3_lsw;
  188. unsigned short numerator_coeff_b0_filter3_msw;
  189. unsigned short numerator_coeff_b1_filter3_lsw;
  190. unsigned short numerator_coeff_b1_filter3_msw;
  191. unsigned short numerator_coeff_b2_filter3_lsw;
  192. unsigned short numerator_coeff_b2_filter3_msw;
  193. unsigned short denominator_coeff_a0_filter0_lsw;
  194. unsigned short denominator_coeff_a0_filter0_msw;
  195. unsigned short denominator_coeff_a1_filter0_lsw;
  196. unsigned short denominator_coeff_a1_filter0_msw;
  197. unsigned short denominator_coeff_a0_filter1_lsw;
  198. unsigned short denominator_coeff_a0_filter1_msw;
  199. unsigned short denominator_coeff_a1_filter1_lsw;
  200. unsigned short denominator_coeff_a1_filter1_msw;
  201. unsigned short denominator_coeff_a0_filter2_lsw;
  202. unsigned short denominator_coeff_a0_filter2_msw;
  203. unsigned short denominator_coeff_a1_filter2_lsw;
  204. unsigned short denominator_coeff_a1_filter2_msw;
  205. unsigned short denominator_coeff_a0_filter3_lsw;
  206. unsigned short denominator_coeff_a0_filter3_msw;
  207. unsigned short denominator_coeff_a1_filter3_lsw;
  208. unsigned short denominator_coeff_a1_filter3_msw;
  209. unsigned short shift_factor_filter0;
  210. unsigned short shift_factor_filter1;
  211. unsigned short shift_factor_filter2;
  212. unsigned short shift_factor_filter3;
  213. unsigned short channel_selected0;
  214. unsigned short channel_selected1;
  215. unsigned short channel_selected2;
  216. unsigned short channel_selected3;
  217. } __attribute__((packed))audpreproc_cmd_cfg_iir_tuning_filter_params;
  218. #endif