maxim_dsm.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469
  1. /*
  2. *
  3. * Copyright 2011-2012 Maxim Integrated Products
  4. *
  5. * This program is free software; you can redistribute it and/or modify it
  6. * under the terms of the GNU General Public License as published by the
  7. * Free Software Foundation; either version 2 of the License, or (at your
  8. * option) any later version.
  9. *
  10. */
  11. #ifndef __SOUND_MAXIM_DSM_H__
  12. #define __SOUND_MAXIM_DSM_H__
  13. #define DSM_RX_PORT_ID 0x4000
  14. #define AFE_PARAM_ID_ENABLE_DSM_RX 0x10001062
  15. #define AFE_PARAM_ID_ENABLE_DSM_TX 0x10001063
  16. #define DSM_ID_FILTER_GET_AFE_PARAMS 0x00000000
  17. #define DSM_ID_FILTER_SET_AFE_CNTRLS 0x00000001
  18. #define FLAG_WRITE_ALL 0xabefcdab
  19. #define FLAG_WRITE_CAL_FROM_FILE 0xffff0000
  20. #define FLAG_WRITE_ONOFF_ONLY 0xcdababef
  21. #define FLAG_WRITE_RDC_CAL_ONLY 0xca00ca00
  22. #define FLAG_WRITE_FEATURE_ONLY 0xfea0fea0
  23. #define RESERVED_ADDR_COUNT 0xFF
  24. #define START_ADDR_FOR_LSI 0x2A004C
  25. #define END_ADDR_FOR_LSI (0x2A027A + RESERVED_ADDR_COUNT)
  26. enum maxdsm_version {
  27. VERSION_3_0 = 30,
  28. VERSION_3_5_A = 35,
  29. VERSION_3_5_B,
  30. VERSION_4_0_A = 40,
  31. VERSION_4_0_B,
  32. };
  33. enum maxdsm_platform_type {
  34. PLATFORM_TYPE_A = 0,
  35. PLATFORM_TYPE_B,
  36. };
  37. enum maxdsm_ioctl_cmds {
  38. MAXDSM_IOCTL_GET_VERSION = 1000,
  39. MAXDSM_IOCTL_SET_VERSION,
  40. MAXDSM_IOCTL_GET_PARAM,
  41. MAXDSM_IOCTL_SET_PARAM,
  42. MAXDSM_IOCTL_GET_ALL_PARAMS,
  43. MAXDSM_IOCTL_SET_ALL_PARAMS,
  44. MAXDSM_IOCTL_GET_CAL_DATA,
  45. MAXDSM_IOCTL_SET_CAL_DATA,
  46. MAXDSM_IOCTL_GET_PLATFORM_TYPE,
  47. MAXDSM_IOCTL_SET_PLATFORM_TYPE,
  48. };
  49. enum maxdsm_ignore_param {
  50. MAXDSM_IGNORE_MASK_VOICE_COIL = 1U << 0,
  51. MAXDSM_IGNORE_MASK_AMBIENT_TEMP = 1U << 1,
  52. MAXDSM_IGNORE_MASK_ALL = 1U << 16,
  53. };
  54. enum maxdsm_offset {
  55. PARAM_OFFSET_PLATFORM,
  56. PARAM_OFFSET_PORT_ID,
  57. PARAM_OFFSET_RX_MOD_ID,
  58. PARAM_OFFSET_TX_MOD_ID,
  59. PARAM_OFFSET_FILTER_SET,
  60. PARAM_OFFSET_VERSION,
  61. PARAM_OFFSET_MAX,
  62. };
  63. enum maxdsm_3_0_params {
  64. PARAM_RDC,
  65. PARAM_RDC_SZ,
  66. PARAM_VOICE_COIL_TEMP,
  67. PARAM_VOICE_COIL_TEMP_SZ,
  68. PARAM_Q,
  69. PARAM_Q_SZ,
  70. PARAM_FRES,
  71. PARAM_FRES_SZ,
  72. PARAM_EXCURSION,
  73. PARAM_EXCURSION_SZ,
  74. PARAM_VOICE_COIL,
  75. PARAM_VOICE_COIL_SZ,
  76. PARAM_RELEASE_TIME,
  77. PARAM_RELEASE_TIME_SZ,
  78. PARAM_THERMAL_LIMIT,
  79. PARAM_THERMAL_LIMIT_SZ,
  80. PARAM_EXCUR_LIMIT,
  81. PARAM_EXCUR_LIMIT_SZ,
  82. PARAM_ONOFF,
  83. PARAM_ONOFF_SZ,
  84. PARAM_STATIC_GAIN,
  85. PARAM_STATIC_GAIN_SZ,
  86. PARAM_LFX_GAIN,
  87. PARAM_LFX_GAIN_SZ,
  88. PARAM_PILOT_GAIN,
  89. PARAM_PILOT_GAIN_SZ,
  90. PARAM_WRITE_FLAG,
  91. PARAM_WRITE_FLAG_SZ,
  92. PARAM_FEATURE_SET,
  93. PARAM_FEATURE_SET_SZ,
  94. PARAM_SMOOTH_VOLT,
  95. PARAM_SMOOTH_VOLT_SZ,
  96. PARAM_HPF_CUTOFF,
  97. PARAM_HPF_CUTOFF_SZ,
  98. PARAM_LEAD_R,
  99. PARAM_LEAD_R_SZ,
  100. PARAM_RMS_SMOO_FAC,
  101. PARAM_RMS_SMOO_FAC_SZ,
  102. PARAM_CLIP_LIMIT,
  103. PARAM_CLIP_LIMIT_SZ,
  104. PARAM_THERMAL_COEF,
  105. PARAM_THERMAL_COEF_SZ,
  106. PARAM_QSPK,
  107. PARAM_QSPK_SZ,
  108. PARAM_EXCUR_LOG_THRESH,
  109. PARAM_EXCUR_LOG_THRESH_SZ,
  110. PARAM_TEMP_LOG_THRESH,
  111. PARAM_TEMP_LOG_THRESH_SZ,
  112. PARAM_RES_FREQ,
  113. PARAM_RES_FREQ_SZ,
  114. PARAM_RES_FREQ_GUARD_BAND,
  115. PARAM_RES_FREQ_GUARD_BAND_SZ,
  116. PARAM_DSM_3_0_MAX,
  117. };
  118. enum maxdsm_3_5_params {
  119. PARAM_AMBIENT_TEMP = PARAM_DSM_3_0_MAX,
  120. PARAM_AMBIENT_TEMP_SZ,
  121. PARAM_STL_ATTACK_TIME,
  122. PARAM_STL_ATTACK_TIME_SZ,
  123. PARAM_STL_RELEASE_TIME,
  124. PARAM_STL_RELEASE_TIME_SZ,
  125. PARAM_ADMITTANCE_A1,
  126. PARAM_ADMITTANCE_A1_SZ,
  127. PARAM_ADMITTANCE_A2,
  128. PARAM_ADMITTANCE_A2_SZ,
  129. PARAM_ADMITTANCE_B0,
  130. PARAM_ADMITTANCE_B0_SZ,
  131. PARAM_ADMITTANCE_B1,
  132. PARAM_ADMITTANCE_B1_SZ,
  133. PARAM_ADMITTANCE_B2,
  134. PARAM_ADMITTANCE_B2_SZ,
  135. PARAM_TCH1,
  136. PARAM_TCH1_SZ,
  137. PARAM_RTH1,
  138. PARAM_RTH1_SZ,
  139. PARAM_TCH2,
  140. PARAM_TCH2_SZ,
  141. PARAM_RTH2,
  142. PARAM_RTH2_SZ,
  143. PARAM_STL_ATTENUATION_GAIN,
  144. PARAM_STL_ATTENUATION_GAIN_SZ,
  145. PARAM_SPT_RAMP_DOWN_FRAMES,
  146. PARAM_SPT_RAMP_DOWN_FRAMES_SZ,
  147. PARAM_SPT_THRESHOLD,
  148. PARAM_SPT_THRESHOLD_SZ,
  149. PARAM_T_HORIZON,
  150. PARAM_T_HORIZON_SZ,
  151. PARAM_LFX_ADMITTANCE_A1,
  152. PARAM_LFX_ADMITTANCE_A1_SZ,
  153. PARAM_LFX_ADMITTANCE_A2,
  154. PARAM_LFX_ADMITTANCE_A2_SZ,
  155. PARAM_LFX_ADMITTANCE_B0,
  156. PARAM_LFX_ADMITTANCE_B0_SZ,
  157. PARAM_LFX_ADMITTANCE_B1,
  158. PARAM_LFX_ADMITTANCE_B1_SZ,
  159. PARAM_LFX_ADMITTANCE_B2,
  160. PARAM_LFX_ADMITTANCE_B2_SZ,
  161. PARAM_DSM_3_5_MAX,
  162. };
  163. enum maxdsm_4_0_params {
  164. PARAM_X_MAX = PARAM_DSM_3_5_MAX,
  165. PARAM_X_MAX_SZ,
  166. PARAM_SPK_FS,
  167. PARAM_SPK_FS_SZ,
  168. PARAM_Q_GUARD_BAND,
  169. PARAM_Q_GUARD_BAND_SZ,
  170. PARAM_STIMPEDMODEL_COEFFS_A1,
  171. PARAM_STIMPEDMODEL_COEFFS_A1_SZ,
  172. PARAM_STIMPEDMODEL_COEFFS_A2,
  173. PARAM_STIMPEDMODEL_COEFFS_A2_SZ,
  174. PARAM_STIMPEDMODEL_COEFFS_B0,
  175. PARAM_STIMPEDMODEL_COEFFS_B0_SZ,
  176. PARAM_STIMPEDMODEL_COEFFS_B1,
  177. PARAM_STIMPEDMODEL_COEFFS_B1_SZ,
  178. PARAM_STIMPEDMODEL_COEFFS_B2,
  179. PARAM_STIMPEDMODEL_COEFFS_B2_SZ,
  180. PARAM_STIMPEDMODEL_FLAG,
  181. PARAM_STIMPEDMODEL_FLAG_SZ,
  182. PARAM_Q_NOTCH,
  183. PARAM_Q_NOTCH_SZ,
  184. PARAM_DSM_4_0_MAX,
  185. };
  186. enum maxdsm_3_0_params_a {
  187. PARAM_A_VOICE_COIL_TEMP,
  188. PARAM_A_VOICE_COIL_TEMP_SZ,
  189. PARAM_A_EXCURSION,
  190. PARAM_A_EXCURSION_SZ,
  191. PARAM_A_RDC,
  192. PARAM_A_RDC_SZ,
  193. PARAM_A_Q_LO,
  194. PARAM_A_Q_LO_SZ,
  195. PARAM_A_Q_HI,
  196. PARAM_A_Q_HI_SZ,
  197. PARAM_A_FRES_LO,
  198. PARAM_A_FRES_LO_SZ,
  199. PARAM_A_FRES_HI,
  200. PARAM_A_FRES_HI_SZ,
  201. PARAM_A_EXCUR_LIMIT,
  202. PARAM_A_EXCUR_LIMIT_SZ,
  203. PARAM_A_VOICE_COIL,
  204. PARAM_A_VOICE_COIL_SZ,
  205. PARAM_A_THERMAL_LIMIT,
  206. PARAM_A_THERMAL_LIMIT_SZ,
  207. PARAM_A_RELEASE_TIME,
  208. PARAM_A_RELEASE_TIME_SZ,
  209. PARAM_A_ONOFF,
  210. PARAM_A_ONOFF_SZ,
  211. PARAM_A_STATIC_GAIN,
  212. PARAM_A_STATIC_GAIN_SZ,
  213. PARAM_A_LFX_GAIN,
  214. PARAM_A_LFX_GAIN_SZ,
  215. PARAM_A_PILOT_GAIN,
  216. PARAM_A_PILOT_GAIN_SZ,
  217. PARAM_A_FEATURE_SET,
  218. PARAM_A_FEATURE_SET_SZ,
  219. PARAM_A_SMOOTH_VOLT,
  220. PARAM_A_SMOOTH_VOLT_SZ,
  221. PARAM_A_HPF_CUTOFF,
  222. PARAM_A_HPF_CUTOFF_SZ,
  223. PARAM_A_LEAD_R,
  224. PARAM_A_LEAD_R_SZ,
  225. PARAM_A_RMS_SMOO_FAC,
  226. PARAM_A_RMS_SMOO_FAC_SZ,
  227. PARAM_A_CLIP_LIMIT,
  228. PARAM_A_CLIP_LIMIT_SZ,
  229. PARAM_A_THERMAL_COEF,
  230. PARAM_A_THERMAL_COEF_SZ,
  231. PARAM_A_QSPK,
  232. PARAM_A_QSPK_SZ,
  233. PARAM_A_EXCUR_LOG_THRESH,
  234. PARAM_A_EXCUR_LOG_THRESH_SZ,
  235. PARAM_A_TEMP_LOG_THRESH,
  236. PARAM_A_TEMP_LOG_THRESH_SZ,
  237. PARAM_A_RES_FREQ,
  238. PARAM_A_RES_FREQ_SZ,
  239. PARAM_A_RES_FREQ_GUARD_BAND,
  240. PARAM_A_RES_FREQ_GUARD_BAND_SZ,
  241. PARAM_A_DSM_3_0_MAX,
  242. };
  243. enum maxdsm_3_5_params_a {
  244. PARAM_A_AMBIENT_TEMP = PARAM_A_DSM_3_0_MAX,
  245. PARAM_A_AMBIENT_TEMP_SZ,
  246. PARAM_A_ADMITTANCE_A1,
  247. PARAM_A_ADMITTANCE_A1_SZ,
  248. PARAM_A_ADMITTANCE_A2,
  249. PARAM_A_ADMITTANCE_A2_SZ,
  250. PARAM_A_ADMITTANCE_B0,
  251. PARAM_A_ADMITTANCE_B0_SZ,
  252. PARAM_A_ADMITTANCE_B1,
  253. PARAM_A_ADMITTANCE_B1_SZ,
  254. PARAM_A_ADMITTANCE_B2,
  255. PARAM_A_ADMITTANCE_B2_SZ,
  256. PARAM_A_RTH1_HI,
  257. PARAM_A_RTH1_HI_SZ,
  258. PARAM_A_RTH1_LO,
  259. PARAM_A_RTH1_LO_SZ,
  260. PARAM_A_RTH2_HI,
  261. PARAM_A_RTH2_HI_SZ,
  262. PARAM_A_RTH2_LO,
  263. PARAM_A_RTH2_LO_SZ,
  264. PARAM_A_STL_ATENGAIN_HI,
  265. PARAM_A_STL_ATENGAIN_HI_SZ,
  266. PARAM_A_STL_ATENGAIN_LO,
  267. PARAM_A_STL_ATENGAIN_LO_SZ,
  268. PARAM_A_SPT_RAMP_DOWN_FRAMES,
  269. PARAM_A_SPT_RAMP_DOWN_FRAMES_SZ,
  270. PARAM_A_SPT_THRESHOLD_HI,
  271. PARAM_A_SPT_THRESHOLD_HI_SZ,
  272. PARAM_A_SPT_THRESHOLD_LO,
  273. PARAM_A_SPT_THRESHOLD_LO_SZ,
  274. PARAM_A_T_HORIZON,
  275. PARAM_A_T_HORIZON_SZ,
  276. PARAM_A_LFX_ADMITTANCE_A1,
  277. PARAM_A_LFX_ADMITTANCE_A1_SZ,
  278. PARAM_A_LFX_ADMITTANCE_A2,
  279. PARAM_A_LFX_ADMITTANCE_A2_SZ,
  280. PARAM_A_LFX_ADMITTANCE_B0,
  281. PARAM_A_LFX_ADMITTANCE_B0_SZ,
  282. PARAM_A_LFX_ADMITTANCE_B1,
  283. PARAM_A_LFX_ADMITTANCE_B1_SZ,
  284. PARAM_A_LFX_ADMITTANCE_B2,
  285. PARAM_A_LFX_ADMITTANCE_B2_SZ,
  286. PARAM_A_ALGORITHM_X_MAX,
  287. PARAM_A_ALGORITHM_X_MAX_SZ,
  288. PARAM_A_DSM_3_5_MAX,
  289. };
  290. enum maxdsm_4_0_params_a {
  291. PARAM_A_STL_TCTH1_HI = PARAM_A_DSM_3_5_MAX,
  292. PARAM_A_STL_TCTH1_HI_SZ,
  293. PARAM_A_STL_TCTH1_LO,
  294. PARAM_A_STL_TCTH1_LO_SZ,
  295. PARAM_A_STL_TCTH2_HI,
  296. PARAM_A_STL_TCTH2_HI_SZ,
  297. PARAM_A_STL_TCTH2_LO,
  298. PARAM_A_STL_TCTH2_LO_SZ,
  299. PARAM_A_STL_ATTACK_HI,
  300. PARAM_A_STL_ATTACK_HI_SZ,
  301. PARAM_A_STL_ATTACK_LO,
  302. PARAM_A_STL_ATTACK_LO_SZ,
  303. PARAM_A_STL_RELEASE_HI,
  304. PARAM_A_STL_RELEASE_HI_SZ,
  305. PARAM_A_STL_RELEASE_LO,
  306. PARAM_A_STL_RELEASE_LO_SZ,
  307. PARAM_A_STL_SPK_FS,
  308. PARAM_A_STL_SPK_FS_SZ,
  309. PARAM_A_Q_GUARD_BAND_HI,
  310. PARAM_A_Q_GUARD_BAND_HI_SZ,
  311. PARAM_A_Q_GUARD_BAND_LO,
  312. PARAM_A_Q_GUARD_BAND_LO_SZ,
  313. PARAM_A_STIMPEDMODEL_COEFFS_A1_HI,
  314. PARAM_A_STIMPEDMODEL_COEFFS_A1_HI_SZ,
  315. PARAM_A_STIMPEDMODEL_COEFFS_A1_LO,
  316. PARAM_A_STIMPEDMODEL_COEFFS_A1_LO_SZ,
  317. PARAM_A_STIMPEDMODEL_COEFFS_A2_HI,
  318. PARAM_A_STIMPEDMODEL_COEFFS_A2_HI_SZ,
  319. PARAM_A_STIMPEDMODEL_COEFFS_A2_LO,
  320. PARAM_A_STIMPEDMODEL_COEFFS_A2_LO_SZ,
  321. PARAM_A_STIMPEDMODEL_COEFFS_B0_HI,
  322. PARAM_A_STIMPEDMODEL_COEFFS_B0_HI_SZ,
  323. PARAM_A_STIMPEDMODEL_COEFFS_B0_LO,
  324. PARAM_A_STIMPEDMODEL_COEFFS_B0_LO_SZ,
  325. PARAM_A_STIMPEDMODEL_COEFFS_B1_HI,
  326. PARAM_A_STIMPEDMODEL_COEFFS_B1_HI_SZ,
  327. PARAM_A_STIMPEDMODEL_COEFFS_B1_LO,
  328. PARAM_A_STIMPEDMODEL_COEFFS_B1_LO_SZ,
  329. PARAM_A_STIMPEDMODEL_COEFFS_B2_HI,
  330. PARAM_A_STIMPEDMODEL_COEFFS_B2_HI_SZ,
  331. PARAM_A_STIMPEDMODEL_COEFFS_B2_LO,
  332. PARAM_A_STIMPEDMODEL_COEFFS_B2_LO_SZ,
  333. PARAM_A_STIMPEDMODEL_FLAG,
  334. PARAM_A_STIMPEDMODEL_FLAG_SZ,
  335. PARAM_A_Q_NOTCH_HI,
  336. PARAM_A_Q_NOTCH_HI_SZ,
  337. PARAM_A_Q_NOTCH_LO,
  338. PARAM_A_Q_NOTCH_LO_SZ,
  339. PARAM_A_DSM_4_0_MAX,
  340. };
  341. enum {
  342. WRITE_PROTECT,
  343. LOG_AVAILABLE,
  344. VERSION_INFO,
  345. LAST_2_SEC_TEMP,
  346. LAST_2_SEC_EXCUR,
  347. RESERVED_1,
  348. SEQUENCE_OF_TEMP,
  349. SEQUENCE_OF_EXCUR,
  350. LAST_2_SEC_RDC,
  351. LAST_2_SEC_FREQ,
  352. RESERVED_2,
  353. RESERVED_3,
  354. AFTER_2_SEC_TEMP_TEMP,
  355. AFTER_2_SEC_EXCUR_TEMP,
  356. AFTER_2_SEC_TEMP_EXCUR,
  357. AFTER_2_SEC_EXCUR_EXCUR,
  358. AFTER_2_SEC_RDC_TEMP,
  359. AFTER_2_SEC_FREQ_TEMP,
  360. AFTER_2_SEC_RDC_EXCUR,
  361. AFTER_2_SEC_FREQ_EXCUR,
  362. MAX_LOG_BUFFER_POS,
  363. };
  364. struct param_info {
  365. int id;
  366. uint32_t addr;
  367. int size;
  368. int type;
  369. int val;
  370. };
  371. struct param_set_data {
  372. int name;
  373. uint32_t addr;
  374. uint32_t value;
  375. uint32_t wflag;
  376. };
  377. struct maxim_dsm {
  378. struct regmap *regmap;
  379. uint32_t *param;
  380. uint32_t param_size;
  381. uint32_t platform_type;
  382. uint32_t port_id;
  383. uint32_t rx_mod_id;
  384. uint32_t tx_mod_id;
  385. uint32_t filter_set;
  386. uint32_t version;
  387. uint32_t *binfo;
  388. uint32_t registered;
  389. uint32_t update_cal;
  390. uint32_t ignore_mask;
  391. uint32_t spk_state;
  392. };
  393. #ifdef CONFIG_SND_SOC_MAXIM_DSM
  394. #define USE_DSM_UPDATE_CAL
  395. #define USE_DSM_LOG
  396. #define USE_DSM_DEBUG
  397. #endif /* CONFIG_SND_SOC_MAXIM_DSM */
  398. int maxdsm_init(void);
  399. int maxdsm_deinit(void);
  400. uint32_t maxdsm_get_platform_type(void);
  401. int maxdsm_set_feature_en(int on);
  402. int maxdsm_set_rdc_temp(uint32_t rdc, uint32_t temp);
  403. int maxdsm_set_dsm_onoff_status(int on);
  404. uint32_t maxdsm_get_dcresistance(void);
  405. int maxdsm_update_info(uint32_t *pinfo);
  406. int maxdsm_get_port_id(void);
  407. int maxdsm_get_rx_mod_id(void);
  408. int maxdsm_get_tx_mod_id(void);
  409. void maxdsm_set_regmap(struct regmap *regmap);
  410. int maxdsm_update_feature_en_adc(int apply);
  411. int maxdsm_get_spk_state(void);
  412. void maxdsm_set_spk_state(int state);
  413. int maxdsm_set_pilot_signal_state(int on);
  414. #ifdef USE_DSM_LOG
  415. #define LOG_BUFFER_ARRAY_SIZE 10
  416. /* BUFSIZE must be 4 bytes allignment*/
  417. #define BEFORE_BUFSIZE (4+(LOG_BUFFER_ARRAY_SIZE*2))
  418. #define AFTER_BUFSIZE (LOG_BUFFER_ARRAY_SIZE*4)
  419. int maxdsm_get_dump_status(void);
  420. void maxdsm_update_param(void);
  421. void maxdsm_log_update(const void *byte_log_array,
  422. const void *int_log_array,
  423. const void *after_prob_byte_log_array,
  424. const void *after_prob_int_log_array);
  425. ssize_t maxdsm_log_prepare(char *buf);
  426. void maxdsm_cal_update(const void *byte_log_array,
  427. const void *int_log_array,
  428. const void *after_prob_byte_log_array,
  429. const void *after_prob_int_log_array);
  430. #endif /* USE_DSM_LOG */
  431. #ifdef USE_DSM_UPDATE_CAL
  432. int maxdsm_cal_avail(void);
  433. int maxdsm_update_caldata(int on);
  434. ssize_t maxdsm_cal_prepare(char *buf);
  435. #endif
  436. #endif /* __SOUND_MAXIM_DSM_H__ */