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
