msm8x26: Update audio headers

Change-Id: I673b79338a663a602944a1bd9dcd2d3c529da181
diff --git a/kernel-headers/linux/msm_audio_calibration.h b/kernel-headers/linux/msm_audio_calibration.h
index 6ade5aa..fe8a389 100644
--- a/kernel-headers/linux/msm_audio_calibration.h
+++ b/kernel-headers/linux/msm_audio_calibration.h
@@ -22,489 +22,533 @@
 #include <linux/ioctl.h>
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CAL_IOCTL_MAGIC 'a'
-#define AUDIO_ALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC,   200, void *)
-#define AUDIO_DEALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC,   201, void *)
-#define AUDIO_PREPARE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC,   202, void *)
+#define AUDIO_ALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 200, void *)
+#define AUDIO_DEALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 201, void *)
+#define AUDIO_PREPARE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 202, void *)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC,   203, void *)
-#define AUDIO_GET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC,   204, void *)
-#define AUDIO_POST_CALIBRATION _IOWR(CAL_IOCTL_MAGIC,   205, void *)
-#define AUDIO_GET_RTAC_ADM_INFO _IOR(CAL_IOCTL_MAGIC,   207, void *)
+#define AUDIO_SET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 203, void *)
+#define AUDIO_GET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 204, void *)
+#define AUDIO_POST_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 205, void *)
+#define AUDIO_GET_RTAC_ADM_INFO _IOR(CAL_IOCTL_MAGIC, 207, void *)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_GET_RTAC_VOICE_INFO _IOR(CAL_IOCTL_MAGIC,   208, void *)
-#define AUDIO_GET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC,   209, void *)
-#define AUDIO_SET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC,   210, void *)
-#define AUDIO_GET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC,   211, void *)
+#define AUDIO_GET_RTAC_VOICE_INFO _IOR(CAL_IOCTL_MAGIC, 208, void *)
+#define AUDIO_GET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC, 209, void *)
+#define AUDIO_SET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC, 210, void *)
+#define AUDIO_GET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC, 211, void *)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC,   212, void *)
-#define AUDIO_GET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC,   213, void *)
-#define AUDIO_SET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC,   214, void *)
-#define AUDIO_GET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC,   215, void *)
+#define AUDIO_SET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC, 212, void *)
+#define AUDIO_GET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC, 213, void *)
+#define AUDIO_SET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC, 214, void *)
+#define AUDIO_GET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC, 215, void *)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC,   216, void *)
-#define AUDIO_GET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC,   217, void *)
-#define AUDIO_SET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC,   218, void *)
+#define AUDIO_SET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC, 216, void *)
+#define AUDIO_GET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC, 217, void *)
+#define AUDIO_SET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC, 218, void *)
 enum {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- CVP_VOC_RX_TOPOLOGY_CAL_TYPE = 0,
- CVP_VOC_TX_TOPOLOGY_CAL_TYPE,
- CVP_VOCPROC_CAL_TYPE,
- CVP_VOCVOL_CAL_TYPE,
+  CVP_VOC_RX_TOPOLOGY_CAL_TYPE = 0,
+  CVP_VOC_TX_TOPOLOGY_CAL_TYPE,
+  CVP_VOCPROC_STATIC_CAL_TYPE,
+  CVP_VOCPROC_DYNAMIC_CAL_TYPE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- CVS_VOCSTRM_CAL_TYPE,
- CVP_VOCDEV_CFG_CAL_TYPE,
- CVP_VOCPROC_COL_CAL_TYPE,
- CVP_VOCVOL_COL_CAL_TYPE,
+  CVS_VOCSTRM_STATIC_CAL_TYPE,
+  CVP_VOCDEV_CFG_CAL_TYPE,
+  CVP_VOCPROC_STATIC_COL_CAL_TYPE,
+  CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- CVS_VOCSTRM_COL_CAL_TYPE,
- ADM_TOPOLOGY_CAL_TYPE,
- ADM_CUST_TOPOLOGY_CAL_TYPE,
- ADM_AUDPROC_CAL_TYPE,
+  CVS_VOCSTRM_STATIC_COL_CAL_TYPE,
+  ADM_TOPOLOGY_CAL_TYPE,
+  ADM_CUST_TOPOLOGY_CAL_TYPE,
+  ADM_AUDPROC_CAL_TYPE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ADM_AUDVOL_CAL_TYPE,
- ASM_TOPOLOGY_CAL_TYPE,
- ASM_CUST_TOPOLOGY_CAL_TYPE,
- ASM_AUDSTRM_CAL_TYPE,
+  ADM_AUDVOL_CAL_TYPE,
+  ASM_TOPOLOGY_CAL_TYPE,
+  ASM_CUST_TOPOLOGY_CAL_TYPE,
+  ASM_AUDSTRM_CAL_TYPE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- AFE_COMMON_RX_CAL_TYPE,
- AFE_COMMON_TX_CAL_TYPE,
- AFE_ANC_CAL_TYPE,
- AFE_AANC_CAL_TYPE,
+  AFE_COMMON_RX_CAL_TYPE,
+  AFE_COMMON_TX_CAL_TYPE,
+  AFE_ANC_CAL_TYPE,
+  AFE_AANC_CAL_TYPE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- AFE_FB_SPKR_PROT_CAL_TYPE,
- AFE_HW_DELAY_CAL_TYPE,
- AFE_SIDETONE_CAL_TYPE,
- LSM_CAL_TYPE,
+  AFE_FB_SPKR_PROT_CAL_TYPE,
+  AFE_HW_DELAY_CAL_TYPE,
+  AFE_SIDETONE_CAL_TYPE,
+  LSM_CUST_TOPOLOGY_CAL_TYPE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ADM_RTAC_INFO_CAL_TYPE,
- VOICE_RTAC_INFO_CAL_TYPE,
- ADM_RTAC_APR_CAL_TYPE,
- ASM_RTAC_APR_CAL_TYPE,
+  LSM_TOPOLOGY_CAL_TYPE,
+  LSM_CAL_TYPE,
+  ADM_RTAC_INFO_CAL_TYPE,
+  VOICE_RTAC_INFO_CAL_TYPE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VOICE_RTAC_APR_CAL_TYPE,
- MAD_CAL_TYPE,
- ULP_AFE_CAL_TYPE,
- ULP_LSM_CAL_TYPE,
+  ADM_RTAC_APR_CAL_TYPE,
+  ASM_RTAC_APR_CAL_TYPE,
+  VOICE_RTAC_APR_CAL_TYPE,
+  MAD_CAL_TYPE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DTS_EAGLE_CAL_TYPE,
- MAX_CAL_TYPES,
+  ULP_AFE_CAL_TYPE,
+  ULP_LSM_CAL_TYPE,
+  DTS_EAGLE_CAL_TYPE,
+  AUDIO_CORE_METAINFO_CAL_TYPE,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  MAX_CAL_TYPES,
 };
 enum {
+  VERSION_0_0,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VERSION_0_0,
 };
+enum {
+  PER_VOCODER_CAL_BIT_MASK = 0x10000,
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MAX_IOCTL_CMD_SIZE 512
 struct audio_cal_header {
+  int32_t data_size;
+  int32_t version;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int32_t data_size;
- int32_t version;
- int32_t cal_type;
- int32_t cal_type_size;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t cal_type;
+  int32_t cal_type_size;
 };
 struct audio_cal_type_header {
- int32_t version;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t version;
+  int32_t buffer_number;
+};
 struct audio_cal_data {
- int32_t cal_size;
- int32_t mem_handle;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t cal_size;
+  int32_t mem_handle;
+};
 struct audio_cal_type_alloc {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+};
 struct audio_cal_alloc {
- struct audio_cal_header hdr;
- struct audio_cal_type_alloc cal_type;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_header hdr;
+  struct audio_cal_type_alloc cal_type;
+};
 struct audio_cal_type_dealloc {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+};
 struct audio_cal_dealloc {
- struct audio_cal_header hdr;
- struct audio_cal_type_dealloc cal_type;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_header hdr;
+  struct audio_cal_type_dealloc cal_type;
+};
 struct audio_cal_type_prepare {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+};
 struct audio_cal_prepare {
- struct audio_cal_header hdr;
- struct audio_cal_type_prepare cal_type;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_header hdr;
+  struct audio_cal_type_prepare cal_type;
+};
 struct audio_cal_type_post {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+};
 struct audio_cal_post {
- struct audio_cal_header hdr;
- struct audio_cal_type_post cal_type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_header hdr;
+  struct audio_cal_type_post cal_type;
 };
+struct audio_cal_info_metainfo {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  uint32_t nKey;
+};
 enum {
- RX_DEVICE,
- TX_DEVICE,
- MAX_PATH_TYPE
+  RX_DEVICE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  TX_DEVICE,
+  MAX_PATH_TYPE
 };
 struct audio_cal_info_adm_top {
- int32_t topology;
- int32_t acdb_id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int32_t path;
- int32_t app_type;
+  int32_t topology;
+  int32_t acdb_id;
+  int32_t path;
+  int32_t app_type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct audio_cal_info_audproc {
+  int32_t acdb_id;
+  int32_t path;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int32_t acdb_id;
- int32_t path;
- int32_t app_type;
- int32_t sample_rate;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t app_type;
+  int32_t sample_rate;
 };
 struct audio_cal_info_audvol {
- int32_t acdb_id;
- int32_t path;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int32_t app_type;
- int32_t vol_index;
+  int32_t acdb_id;
+  int32_t path;
+  int32_t app_type;
+  int32_t vol_index;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct audio_cal_info_afe {
+  int32_t acdb_id;
+  int32_t path;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int32_t acdb_id;
- int32_t path;
- int32_t sample_rate;
+  int32_t sample_rate;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_info_asm_top {
- int32_t topology;
- int32_t app_type;
-};
+  int32_t topology;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t app_type;
+};
 struct audio_cal_info_audstrm {
- int32_t app_type;
+  int32_t app_type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct audio_cal_info_aanc {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int32_t acdb_id;
+  int32_t acdb_id;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MAX_HW_DELAY_ENTRIES 25
 struct audio_cal_hw_delay_entry {
+  uint32_t sample_rate;
+  uint32_t delay_usec;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t sample_rate;
- uint32_t delay_usec;
 };
 struct audio_cal_hw_delay_data {
+  uint32_t num_entries;
+  struct audio_cal_hw_delay_entry entry[MAX_HW_DELAY_ENTRIES];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t num_entries;
- struct audio_cal_hw_delay_entry entry[MAX_HW_DELAY_ENTRIES];
 };
 struct audio_cal_info_hw_delay {
+  int32_t acdb_id;
+  int32_t path;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int32_t acdb_id;
- int32_t path;
- int32_t property_type;
- struct audio_cal_hw_delay_data data;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t property_type;
+  struct audio_cal_hw_delay_data data;
 };
 enum msm_spkr_prot_states {
- MSM_SPKR_PROT_CALIBRATED,
- MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MSM_SPKR_PROT_DISABLED,
- MSM_SPKR_PROT_NOT_CALIBRATED
+  MSM_SPKR_PROT_CALIBRATED,
+  MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS,
+  MSM_SPKR_PROT_DISABLED,
+  MSM_SPKR_PROT_NOT_CALIBRATED
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct audio_cal_info_spk_prot_cfg {
+  int32_t r0;
+  int32_t t0;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int32_t r0;
- int32_t t0;
- uint32_t mode;
+  uint32_t mode;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_info_msm_spk_prot_status {
- int32_t r0;
- int32_t status;
-};
+  int32_t r0;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t status;
+};
 struct audio_cal_info_sidetone {
- uint16_t enable;
- uint16_t gain;
- int32_t tx_acdb_id;
+  uint16_t enable;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int32_t rx_acdb_id;
- int32_t mid;
- int32_t pid;
+  uint16_t gain;
+  int32_t tx_acdb_id;
+  int32_t rx_acdb_id;
+  int32_t mid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t pid;
 };
+struct audio_cal_info_lsm_top {
+  int32_t topology;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t acdb_id;
+  int32_t app_type;
+};
 struct audio_cal_info_lsm {
- int32_t acdb_id;
- int32_t path;
- int32_t app_type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t acdb_id;
+  int32_t path;
+  int32_t app_type;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_info_voc_top {
- int32_t topology;
- int32_t acdb_id;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t topology;
+  int32_t acdb_id;
 };
-struct audio_cal_info_vocproc {
- int32_t tx_acdb_id;
- int32_t rx_acdb_id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int32_t tx_sample_rate;
- int32_t rx_sample_rate;
+struct audio_cal_info_vocproc {
+  int32_t tx_acdb_id;
+  int32_t rx_acdb_id;
+  int32_t tx_sample_rate;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t rx_sample_rate;
 };
 enum {
+  DEFAULT_FEATURE_SET,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DEFAULT_FEATURE_SET,
- VOL_BOOST_FEATURE_SET,
+  VOL_BOOST_FEATURE_SET,
 };
 struct audio_cal_info_vocvol {
+  int32_t tx_acdb_id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int32_t tx_acdb_id;
- int32_t rx_acdb_id;
- int32_t feature_set;
+  int32_t rx_acdb_id;
+  int32_t feature_set;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_info_vocdev_cfg {
- int32_t tx_acdb_id;
- int32_t rx_acdb_id;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t tx_acdb_id;
+  int32_t rx_acdb_id;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MAX_VOICE_COLUMNS 20
-union audio_cal_col_na {
- uint8_t val8;
- uint16_t val16;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t val32;
- uint64_t val64;
+union audio_cal_col_na {
+  uint8_t val8;
+  uint16_t val16;
+  uint32_t val32;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  uint64_t val64;
 } __packed;
 struct audio_cal_col {
+  uint32_t id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t id;
- uint32_t type;
- union audio_cal_col_na na_value;
+  uint32_t type;
+  union audio_cal_col_na na_value;
 } __packed;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_col_data {
- uint32_t num_columns;
- struct audio_cal_col column[MAX_VOICE_COLUMNS];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  uint32_t num_columns;
+  struct audio_cal_col column[MAX_VOICE_COLUMNS];
 } __packed;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_info_voc_col {
- int32_t table_id;
- struct audio_cal_col_data data;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int32_t table_id;
+  int32_t tx_acdb_id;
+  int32_t rx_acdb_id;
+  struct audio_cal_col_data data;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
 struct audio_cal_type_basic {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
-};
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
 struct audio_cal_basic {
- struct audio_cal_header hdr;
- struct audio_cal_type_basic cal_type;
+  struct audio_cal_header hdr;
+  struct audio_cal_type_basic cal_type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_type_adm_top {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
- struct audio_cal_info_adm_top cal_info;
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_info_adm_top cal_info;
 };
 struct audio_cal_adm_top {
- struct audio_cal_header hdr;
- struct audio_cal_type_adm_top cal_type;
+  struct audio_cal_header hdr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_type_adm_top cal_type;
+};
+struct audio_cal_type_metainfo {
+  struct audio_cal_type_header cal_hdr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_metainfo cal_info;
+};
+struct audio_core_metainfo {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_header hdr;
+  struct audio_cal_type_metainfo cal_type;
 };
 struct audio_cal_type_audproc {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_info_audproc cal_info;
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_audproc cal_info;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_audproc {
- struct audio_cal_header hdr;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_type_audproc cal_type;
+  struct audio_cal_header hdr;
+  struct audio_cal_type_audproc cal_type;
 };
-struct audio_cal_type_audvol {
- struct audio_cal_type_header cal_hdr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_data cal_data;
- struct audio_cal_info_audvol cal_info;
+struct audio_cal_type_audvol {
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_audvol cal_info;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct audio_cal_audvol {
+  struct audio_cal_header hdr;
+  struct audio_cal_type_audvol cal_type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_header hdr;
- struct audio_cal_type_audvol cal_type;
 };
 struct audio_cal_type_asm_top {
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
- struct audio_cal_info_asm_top cal_info;
+  struct audio_cal_info_asm_top cal_info;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_asm_top {
- struct audio_cal_header hdr;
- struct audio_cal_type_asm_top cal_type;
+  struct audio_cal_header hdr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_type_asm_top cal_type;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_type_audstrm {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
- struct audio_cal_info_audstrm cal_info;
+  struct audio_cal_type_header cal_hdr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_audstrm cal_info;
 };
 struct audio_cal_audstrm {
- struct audio_cal_header hdr;
- struct audio_cal_type_audstrm cal_type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_header hdr;
+  struct audio_cal_type_audstrm cal_type;
 };
 struct audio_cal_type_afe {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_info_afe cal_info;
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_afe cal_info;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_afe {
- struct audio_cal_header hdr;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_type_afe cal_type;
+  struct audio_cal_header hdr;
+  struct audio_cal_type_afe cal_type;
 };
-struct audio_cal_type_aanc {
- struct audio_cal_type_header cal_hdr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_data cal_data;
- struct audio_cal_info_aanc cal_info;
+struct audio_cal_type_aanc {
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_aanc cal_info;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct audio_cal_aanc {
+  struct audio_cal_header hdr;
+  struct audio_cal_type_aanc cal_type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_header hdr;
- struct audio_cal_type_aanc cal_type;
 };
 struct audio_cal_type_fb_spk_prot_cfg {
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
- struct audio_cal_info_spk_prot_cfg cal_info;
+  struct audio_cal_info_spk_prot_cfg cal_info;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_fb_spk_prot_cfg {
- struct audio_cal_header hdr;
- struct audio_cal_type_fb_spk_prot_cfg cal_type;
+  struct audio_cal_header hdr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_type_fb_spk_prot_cfg cal_type;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_type_hw_delay {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
- struct audio_cal_info_hw_delay cal_info;
+  struct audio_cal_type_header cal_hdr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_hw_delay cal_info;
 };
 struct audio_cal_hw_delay {
- struct audio_cal_header hdr;
- struct audio_cal_type_hw_delay cal_type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_header hdr;
+  struct audio_cal_type_hw_delay cal_type;
 };
 struct audio_cal_type_sidetone {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_info_sidetone cal_info;
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_sidetone cal_info;
 };
-struct audio_cal_sidetone {
- struct audio_cal_header hdr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_type_sidetone cal_type;
+struct audio_cal_sidetone {
+  struct audio_cal_header hdr;
+  struct audio_cal_type_sidetone cal_type;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct audio_cal_type_lsm_top {
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_lsm_top cal_info;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct audio_cal_lsm_top {
+  struct audio_cal_header hdr;
+  struct audio_cal_type_lsm_top cal_type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct audio_cal_type_lsm {
- struct audio_cal_type_header cal_hdr;
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_data cal_data;
- struct audio_cal_info_lsm cal_info;
+  struct audio_cal_info_lsm cal_info;
 };
 struct audio_cal_lsm {
+  struct audio_cal_header hdr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_header hdr;
- struct audio_cal_type_lsm cal_type;
+  struct audio_cal_type_lsm cal_type;
 };
 struct audio_cal_type_voc_top {
+  struct audio_cal_type_header cal_hdr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
- struct audio_cal_info_voc_top cal_info;
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_voc_top cal_info;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_voc_top {
- struct audio_cal_header hdr;
- struct audio_cal_type_voc_top cal_type;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_header hdr;
+  struct audio_cal_type_voc_top cal_type;
+};
 struct audio_cal_type_vocproc {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
- struct audio_cal_info_vocproc cal_info;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_vocproc cal_info;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_vocproc {
- struct audio_cal_header hdr;
- struct audio_cal_type_vocproc cal_type;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_header hdr;
+  struct audio_cal_type_vocproc cal_type;
 };
-struct audio_cal_type_vocvol {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_info_vocvol cal_info;
+struct audio_cal_type_vocvol {
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_vocvol cal_info;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct audio_cal_vocvol {
- struct audio_cal_header hdr;
+  struct audio_cal_header hdr;
+  struct audio_cal_type_vocvol cal_type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_type_vocvol cal_type;
 };
 struct audio_cal_type_vocdev_cfg {
- struct audio_cal_type_header cal_hdr;
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_data cal_data;
- struct audio_cal_info_vocdev_cfg cal_info;
+  struct audio_cal_info_vocdev_cfg cal_info;
 };
 struct audio_cal_vocdev_cfg {
+  struct audio_cal_header hdr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_header hdr;
- struct audio_cal_type_vocdev_cfg cal_type;
+  struct audio_cal_type_vocdev_cfg cal_type;
 };
 struct audio_cal_type_voc_col {
+  struct audio_cal_type_header cal_hdr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
- struct audio_cal_info_voc_col cal_info;
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_voc_col cal_info;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_voc_col {
- struct audio_cal_header hdr;
- struct audio_cal_type_voc_col cal_type;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_header hdr;
+  struct audio_cal_type_voc_col cal_type;
+};
 struct audio_cal_type_fb_spk_prot_status {
- struct audio_cal_type_header cal_hdr;
- struct audio_cal_data cal_data;
- struct audio_cal_info_msm_spk_prot_status cal_info;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_type_header cal_hdr;
+  struct audio_cal_data cal_data;
+  struct audio_cal_info_msm_spk_prot_status cal_info;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct audio_cal_fb_spk_prot_status {
- struct audio_cal_header hdr;
- struct audio_cal_type_fb_spk_prot_status cal_type;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  struct audio_cal_header hdr;
+  struct audio_cal_type_fb_spk_prot_status cal_type;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/kernel-headers/sound/lsm_params.h b/kernel-headers/sound/lsm_params.h
index e5ed244..0005615 100644
--- a/kernel-headers/sound/lsm_params.h
+++ b/kernel-headers/sound/lsm_params.h
@@ -23,46 +23,91 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SNDRV_LSM_VERSION SNDRV_PROTOCOL_VERSION(0, 1, 0)
 enum lsm_app_id {
- LSM_VOICE_WAKEUP_APP_ID = 1,
- LSM_VOICE_WAKEUP_APP_ID_V2 = 2,
+  LSM_VOICE_WAKEUP_APP_ID = 1,
+  LSM_VOICE_WAKEUP_APP_ID_V2 = 2,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum lsm_detection_mode {
- LSM_MODE_KEYWORD_ONLY_DETECTION = 1,
- LSM_MODE_USER_KEYWORD_DETECTION
+  LSM_MODE_KEYWORD_ONLY_DETECTION = 1,
+  LSM_MODE_USER_KEYWORD_DETECTION
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-struct snd_lsm_sound_model {
- __u8 __user *data;
- __u32 data_size;
+enum lsm_vw_status {
+  LSM_VOICE_WAKEUP_STATUS_RUNNING = 1,
+  LSM_VOICE_WAKEUP_STATUS_DETECTED,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- enum lsm_detection_mode detection_mode;
- __u16 min_keyw_confidence;
- __u16 min_user_confidence;
- bool detect_failure;
+  LSM_VOICE_WAKEUP_STATUS_END_SPEECH,
+  LSM_VOICE_WAKEUP_STATUS_REJECTED
+};
+enum LSM_PARAM_TYPE {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  LSM_ENDPOINT_DETECT_THRESHOLD = 0,
+  LSM_OPERATION_MODE,
+  LSM_GAIN,
+  LSM_MIN_CONFIDENCE_LEVELS,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  LSM_REG_SND_MODEL,
+  LSM_DEREG_SND_MODEL,
+  LSM_CUSTOM_PARAMS,
+  LSM_PARAMS_MAX,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+struct snd_lsm_ep_det_thres {
+  __u32 epd_begin;
+  __u32 epd_end;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct snd_lsm_detect_mode {
+  enum lsm_detection_mode mode;
+  bool detect_failure;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct snd_lsm_gain {
+  __u16 gain;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct snd_lsm_sound_model_v2 {
- __u8 __user *data;
- __u8 *confidence_level;
+  __u8 __user * data;
+  __u8 * confidence_level;
+  __u32 data_size;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 data_size;
- enum lsm_detection_mode detection_mode;
- __u8 num_confidence_levels;
- bool detect_failure;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  enum lsm_detection_mode detection_mode;
+  __u8 num_confidence_levels;
+  bool detect_failure;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct snd_lsm_session_data {
- enum lsm_app_id app_id;
+  enum lsm_app_id app_id;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct snd_lsm_event_status {
- __u16 status;
- __u16 payload_size;
- __u8 payload[0];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  __u16 status;
+  __u16 payload_size;
+  __u8 payload[0];
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct snd_lsm_detection_params {
+  __u8 * conf_level;
+  enum lsm_detection_mode detect_mode;
+  __u8 num_confidence_levels;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  bool detect_failure;
+};
+struct lsm_params_info {
+  __u32 module_id;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  __u32 param_id;
+  __u32 param_size;
+  __u8 __user * param_data;
+  enum LSM_PARAM_TYPE param_type;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-#define SNDRV_LSM_REG_SND_MODEL _IOW('U', 0x00, struct snd_lsm_sound_model)
+struct snd_lsm_module_params {
+  __u8 __user * params;
+  __u32 num_params;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  __u32 data_size;
+};
 #define SNDRV_LSM_DEREG_SND_MODEL _IOW('U', 0x01, int)
 #define SNDRV_LSM_EVENT_STATUS _IOW('U', 0x02, struct snd_lsm_event_status)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
@@ -71,6 +116,10 @@
 #define SNDRV_LSM_STOP _IOW('U', 0x05, int)
 #define SNDRV_LSM_SET_SESSION_DATA _IOW('U', 0x06, struct snd_lsm_session_data)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SNDRV_LSM_REG_SND_MODEL_V2 _IOW('U', 0x07,  struct snd_lsm_sound_model_v2)
+#define SNDRV_LSM_REG_SND_MODEL_V2 _IOW('U', 0x07, struct snd_lsm_sound_model_v2)
+#define SNDRV_LSM_LAB_CONTROL _IOW('U', 0x08, uint32_t)
+#define SNDRV_LSM_STOP_LAB _IO('U', 0x09)
+#define SNDRV_LSM_SET_PARAMS _IOW('U', 0x0A, struct snd_lsm_detection_params)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SNDRV_LSM_SET_MODULE_PARAMS _IOW('U', 0x0B, struct snd_lsm_module_params)
 #endif
-
diff --git a/original-kernel-headers/linux/msm_audio_calibration.h b/original-kernel-headers/linux/msm_audio_calibration.h
index db7a6f0..4a0f7db 100644
--- a/original-kernel-headers/linux/msm_audio_calibration.h
+++ b/original-kernel-headers/linux/msm_audio_calibration.h
@@ -47,13 +47,13 @@
 enum {
 	CVP_VOC_RX_TOPOLOGY_CAL_TYPE = 0,
 	CVP_VOC_TX_TOPOLOGY_CAL_TYPE,
-	CVP_VOCPROC_CAL_TYPE,
-	CVP_VOCVOL_CAL_TYPE,
-	CVS_VOCSTRM_CAL_TYPE,
+	CVP_VOCPROC_STATIC_CAL_TYPE,
+	CVP_VOCPROC_DYNAMIC_CAL_TYPE,
+	CVS_VOCSTRM_STATIC_CAL_TYPE,
 	CVP_VOCDEV_CFG_CAL_TYPE,
-	CVP_VOCPROC_COL_CAL_TYPE,
-	CVP_VOCVOL_COL_CAL_TYPE,
-	CVS_VOCSTRM_COL_CAL_TYPE,
+	CVP_VOCPROC_STATIC_COL_CAL_TYPE,
+	CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE,
+	CVS_VOCSTRM_STATIC_COL_CAL_TYPE,
 
 	ADM_TOPOLOGY_CAL_TYPE,
 	ADM_CUST_TOPOLOGY_CAL_TYPE,
@@ -72,6 +72,8 @@
 	AFE_HW_DELAY_CAL_TYPE,
 	AFE_SIDETONE_CAL_TYPE,
 
+	LSM_CUST_TOPOLOGY_CAL_TYPE,
+	LSM_TOPOLOGY_CAL_TYPE,
 	LSM_CAL_TYPE,
 
 	ADM_RTAC_INFO_CAL_TYPE,
@@ -85,6 +87,7 @@
 	ULP_LSM_CAL_TYPE,
 
 	DTS_EAGLE_CAL_TYPE,
+	AUDIO_CORE_METAINFO_CAL_TYPE,
 
 	MAX_CAL_TYPES,
 };
@@ -93,6 +96,10 @@
 	VERSION_0_0,
 };
 
+enum {
+	PER_VOCODER_CAL_BIT_MASK = 0x10000,
+};
+
 #define MAX_IOCTL_CMD_SIZE	512
 
 /* common structures */
@@ -106,6 +113,7 @@
 
 struct audio_cal_type_header {
 	int32_t		version;
+	int32_t		buffer_number;
 };
 
 struct audio_cal_data {
@@ -164,6 +172,11 @@
 	struct audio_cal_type_post	cal_type;
 };
 
+/*AUDIO_CORE_META_INFO */
+
+struct audio_cal_info_metainfo {
+	uint32_t nKey;
+};
 
 /* Cal info types */
 enum {
@@ -265,6 +278,13 @@
 	int32_t		pid;
 };
 
+struct audio_cal_info_lsm_top {
+	int32_t		topology;
+	int32_t		acdb_id;
+	int32_t		app_type;
+};
+
+
 struct audio_cal_info_lsm {
 	int32_t		acdb_id;
 	/* RX_DEVICE or TX_DEVICE */
@@ -323,6 +343,8 @@
 
 struct audio_cal_info_voc_col {
 	int32_t				table_id;
+	int32_t				tx_acdb_id;
+	int32_t				rx_acdb_id;
 	struct audio_cal_col_data	data;
 };
 
@@ -348,6 +370,17 @@
 	struct audio_cal_type_adm_top	cal_type;
 };
 
+struct audio_cal_type_metainfo {
+	struct audio_cal_type_header	cal_hdr;
+	struct audio_cal_data		cal_data;
+	struct audio_cal_info_metainfo	cal_info;
+};
+
+struct audio_core_metainfo {
+	struct audio_cal_header	  hdr;
+	struct audio_cal_type_metainfo cal_type;
+};
+
 struct audio_cal_type_audproc {
 	struct audio_cal_type_header	cal_hdr;
 	struct audio_cal_data		cal_data;
@@ -447,6 +480,17 @@
 	struct audio_cal_type_sidetone		cal_type;
 };
 
+struct audio_cal_type_lsm_top {
+	struct audio_cal_type_header	cal_hdr;
+	struct audio_cal_data		cal_data;
+	struct audio_cal_info_lsm_top	cal_info;
+};
+
+struct audio_cal_lsm_top {
+	struct audio_cal_header		hdr;
+	struct audio_cal_type_lsm_top	cal_type;
+};
+
 struct audio_cal_type_lsm {
 	struct audio_cal_type_header	cal_hdr;
 	struct audio_cal_data		cal_data;
diff --git a/original-kernel-headers/sound/lsm_params.h b/original-kernel-headers/sound/lsm_params.h
index 2ecb3e1..e2528c7 100644
--- a/original-kernel-headers/sound/lsm_params.h
+++ b/original-kernel-headers/sound/lsm_params.h
@@ -16,15 +16,54 @@
 	LSM_MODE_USER_KEYWORD_DETECTION
 };
 
-struct snd_lsm_sound_model {
-	__u8 __user *data;
-	__u32 data_size;
-	enum lsm_detection_mode detection_mode;
-	__u16 min_keyw_confidence;
-	__u16 min_user_confidence;
+enum lsm_vw_status {
+	LSM_VOICE_WAKEUP_STATUS_RUNNING = 1,
+	LSM_VOICE_WAKEUP_STATUS_DETECTED,
+	LSM_VOICE_WAKEUP_STATUS_END_SPEECH,
+	LSM_VOICE_WAKEUP_STATUS_REJECTED
+};
+
+enum LSM_PARAM_TYPE {
+	LSM_ENDPOINT_DETECT_THRESHOLD = 0,
+	LSM_OPERATION_MODE,
+	LSM_GAIN,
+	LSM_MIN_CONFIDENCE_LEVELS,
+	LSM_REG_SND_MODEL,
+	LSM_DEREG_SND_MODEL,
+	LSM_CUSTOM_PARAMS,
+	/* driver ioctl will parse only so many params */
+	LSM_PARAMS_MAX,
+};
+
+/*
+ * Data for LSM_ENDPOINT_DETECT_THRESHOLD param_type
+ * @epd_begin: Begin threshold
+ * @epd_end: End threshold
+ */
+struct snd_lsm_ep_det_thres {
+	__u32 epd_begin;
+	__u32 epd_end;
+};
+
+/*
+ * Data for LSM_OPERATION_MODE param_type
+ * @mode: The detection mode to be used
+ * @detect_failure: Setting to enable failure detections.
+ */
+struct snd_lsm_detect_mode {
+	enum lsm_detection_mode mode;
 	bool detect_failure;
 };
 
+/*
+ * Data for LSM_GAIN param_type
+ * @gain: The gain to be applied on LSM
+ */
+struct snd_lsm_gain {
+	__u16 gain;
+};
+
+
 struct snd_lsm_sound_model_v2 {
 	__u8 __user *data;
 	__u8 *confidence_level;
@@ -44,7 +83,53 @@
 	__u8 payload[0];
 };
 
-#define SNDRV_LSM_REG_SND_MODEL	 _IOW('U', 0x00, struct snd_lsm_sound_model)
+struct snd_lsm_detection_params {
+	__u8 *conf_level;
+	enum lsm_detection_mode detect_mode;
+	__u8 num_confidence_levels;
+	bool detect_failure;
+};
+
+/*
+ * Param info for each parameter type
+ * @module_id: Module to which parameter is to be set
+ * @param_id: Parameter that is to be set
+ * @param_size: size (in number of bytes) for the data
+ *		in param_data.
+ *		For confidence levels, this is num_conf_levels
+ *		For REG_SND_MODEL, this is size of sound model
+ *		For CUSTOM_PARAMS, this is size of the entire blob of data
+ * @param_data: Data for the parameter.
+ *		For some param_types this is a structure defined, ex: LSM_GAIN
+ *		For CONFIDENCE_LEVELS, this is array of confidence levels
+ *		For REG_SND_MODEL, this is the sound model data
+ *		For CUSTOM_PARAMS, this is the blob of custom data.
+ */
+struct lsm_params_info {
+	__u32 module_id;
+	__u32 param_id;
+	__u32 param_size;
+	__u8 __user *param_data;
+	enum LSM_PARAM_TYPE param_type;
+};
+
+/*
+ * Data passed to the SET_PARAM_V2 IOCTL
+ * @num_params: Number of params that are to be set
+ *		should not be greater than LSM_PARAMS_MAX
+ * @params: Points to an array of lsm_params_info
+ *	    Each entry points to one parameter to set
+ * @data_size: size (in bytes) for params
+ *	       should be equal to
+ *	       num_params * sizeof(struct lsm_parms_info)
+ */
+struct snd_lsm_module_params {
+	__u8 __user *params;
+	__u32 num_params;
+	__u32 data_size;
+};
+
+
 #define SNDRV_LSM_DEREG_SND_MODEL _IOW('U', 0x01, int)
 #define SNDRV_LSM_EVENT_STATUS	_IOW('U', 0x02, struct snd_lsm_event_status)
 #define SNDRV_LSM_ABORT_EVENT	_IOW('U', 0x03, int)
@@ -53,4 +138,11 @@
 #define SNDRV_LSM_SET_SESSION_DATA _IOW('U', 0x06, struct snd_lsm_session_data)
 #define SNDRV_LSM_REG_SND_MODEL_V2 _IOW('U', 0x07,\
 					struct snd_lsm_sound_model_v2)
+#define SNDRV_LSM_LAB_CONTROL	_IOW('U', 0x08, uint32_t)
+#define SNDRV_LSM_STOP_LAB	_IO('U', 0x09)
+#define SNDRV_LSM_SET_PARAMS	_IOW('U', 0x0A, \
+					struct snd_lsm_detection_params)
+#define SNDRV_LSM_SET_MODULE_PARAMS	_IOW('U', 0x0B, \
+					struct snd_lsm_module_params)
+
 #endif