diff --git a/libc/kernel/uapi/sound/sof/abi.h b/libc/kernel/uapi/sound/sof/abi.h
index 2111f5c..0948673 100644
--- a/libc/kernel/uapi/sound/sof/abi.h
+++ b/libc/kernel/uapi/sound/sof/abi.h
@@ -19,7 +19,7 @@
 #ifndef __INCLUDE_UAPI_SOUND_SOF_ABI_H__
 #define __INCLUDE_UAPI_SOUND_SOF_ABI_H__
 #define SOF_ABI_MAJOR 3
-#define SOF_ABI_MINOR 6
+#define SOF_ABI_MINOR 8
 #define SOF_ABI_PATCH 0
 #define SOF_ABI_MAJOR_SHIFT 24
 #define SOF_ABI_MAJOR_MASK 0xff
diff --git a/libc/kernel/uapi/sound/sof/eq.h b/libc/kernel/uapi/sound/sof/eq.h
deleted file mode 100644
index c45ba35..0000000
--- a/libc/kernel/uapi/sound/sof/eq.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_EQ_H__
-#define __INCLUDE_UAPI_SOUND_SOF_USER_EQ_H__
-#define SOF_EQ_FIR_IDX_SWITCH 0
-#define SOF_EQ_FIR_MAX_SIZE 4096
-#define SOF_EQ_FIR_MAX_LENGTH 192
-#define SOF_EQ_FIR_MAX_RESPONSES 8
-struct sof_eq_fir_config {
-  uint32_t size;
-  uint16_t channels_in_config;
-  uint16_t number_of_responses;
-  uint32_t reserved[4];
-  int16_t data[];
-} __packed;
-struct sof_eq_fir_coef_data {
-  int16_t length;
-  int16_t out_shift;
-  uint32_t reserved[4];
-  int16_t coef[];
-} __packed;
-#define SOF_EQ_FIR_COEF_NHEADER (sizeof(struct sof_eq_fir_coef_data) / sizeof(int16_t))
-#define SOF_EQ_IIR_IDX_SWITCH 0
-#define SOF_EQ_IIR_MAX_SIZE 1024
-#define SOF_EQ_IIR_MAX_RESPONSES 8
-struct sof_eq_iir_config {
-  uint32_t size;
-  uint32_t channels_in_config;
-  uint32_t number_of_responses;
-  uint32_t reserved[4];
-  int32_t data[];
-} __packed;
-struct sof_eq_iir_header_df2t {
-  uint32_t num_sections;
-  uint32_t num_sections_in_series;
-  uint32_t reserved[4];
-  int32_t biquads[];
-} __packed;
-struct sof_eq_iir_biquad_df2t {
-  int32_t a2;
-  int32_t a1;
-  int32_t b2;
-  int32_t b1;
-  int32_t b0;
-  int32_t output_shift;
-  int32_t output_gain;
-} __packed;
-#define SOF_EQ_IIR_DF2T_BIQUADS_MAX 11
-#define SOF_EQ_IIR_NHEADER_DF2T (sizeof(struct sof_eq_iir_header_df2t) / sizeof(int32_t))
-#define SOF_EQ_IIR_NBIQUAD_DF2T (sizeof(struct sof_eq_iir_biquad_df2t) / sizeof(int32_t))
-#endif
diff --git a/libc/kernel/uapi/sound/sof/manifest.h b/libc/kernel/uapi/sound/sof/manifest.h
deleted file mode 100644
index b8bd3e5..0000000
--- a/libc/kernel/uapi/sound/sof/manifest.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_MANIFEST_H__
-#define __INCLUDE_UAPI_SOUND_SOF_USER_MANIFEST_H__
-#define SOF_MAN_ELF_TEXT_OFFSET 0x2000
-#define SOF_MAN_EXT_HEADER_MAGIC 0x31454124
-#define SOF_MAN_MOD_TYPE_BUILTIN 0
-#define SOF_MAN_MOD_TYPE_MODULE 1
-struct sof_man_module_type {
-  uint32_t load_type : 4;
-  uint32_t auto_start : 1;
-  uint32_t domain_ll : 1;
-  uint32_t domain_dp : 1;
-  uint32_t rsvd_ : 25;
-};
-#define SOF_MAN_SEGMENT_TEXT 0
-#define SOF_MAN_SEGMENT_RODATA 1
-#define SOF_MAN_SEGMENT_DATA 1
-#define SOF_MAN_SEGMENT_BSS 2
-#define SOF_MAN_SEGMENT_EMPTY 15
-union sof_man_segment_flags {
-  uint32_t ul;
-  struct {
-    uint32_t contents : 1;
-    uint32_t alloc : 1;
-    uint32_t load : 1;
-    uint32_t readonly : 1;
-    uint32_t code : 1;
-    uint32_t data : 1;
-    uint32_t _rsvd0 : 2;
-    uint32_t type : 4;
-    uint32_t _rsvd1 : 4;
-    uint32_t length : 16;
-  } r;
-} __packed;
-struct sof_man_segment_desc {
-  union sof_man_segment_flags flags;
-  uint32_t v_base_addr;
-  uint32_t file_offset;
-} __packed;
-#define SOF_MAN_MOD_ID_LEN 4
-#define SOF_MAN_MOD_NAME_LEN 8
-#define SOF_MAN_MOD_SHA256_LEN 32
-#define SOF_MAN_MOD_ID { '$', 'A', 'M', 'E' }
-struct sof_man_module {
-  uint8_t struct_id[SOF_MAN_MOD_ID_LEN];
-  uint8_t name[SOF_MAN_MOD_NAME_LEN];
-  uint8_t uuid[16];
-  struct sof_man_module_type type;
-  uint8_t hash[SOF_MAN_MOD_SHA256_LEN];
-  uint32_t entry_point;
-  uint16_t cfg_offset;
-  uint16_t cfg_count;
-  uint32_t affinity_mask;
-  uint16_t instance_max_count;
-  uint16_t instance_bss_size;
-  struct sof_man_segment_desc segment[3];
-} __packed;
-struct sof_man_mod_config {
-  uint32_t par[4];
-  uint32_t is_pages;
-  uint32_t cps;
-  uint32_t ibs;
-  uint32_t obs;
-  uint32_t module_flags;
-  uint32_t cpc;
-  uint32_t obls;
-} __packed;
-#define SOF_MAN_FW_HDR_FW_NAME_LEN 8
-#define SOF_MAN_FW_HDR_ID { '$', 'A', 'M', '1' }
-#define SOF_MAN_FW_HDR_NAME "ADSPFW"
-#define SOF_MAN_FW_HDR_FLAGS 0x0
-#define SOF_MAN_FW_HDR_FEATURES 0xff
-struct sof_man_fw_header {
-  uint8_t header_id[4];
-  uint32_t header_len;
-  uint8_t name[SOF_MAN_FW_HDR_FW_NAME_LEN];
-  uint32_t preload_page_count;
-  uint32_t fw_image_flags;
-  uint32_t feature_mask;
-  uint16_t major_version;
-  uint16_t minor_version;
-  uint16_t hotfix_version;
-  uint16_t build_version;
-  uint32_t num_module_entries;
-  uint32_t hw_buf_base_addr;
-  uint32_t hw_buf_length;
-  uint32_t load_offset;
-} __packed;
-struct sof_man_fw_desc {
-  struct sof_man_fw_header header;
-} __packed;
-struct sof_man_component_desc {
-  uint32_t reserved[2];
-  uint32_t version;
-  uint8_t hash[SOF_MAN_MOD_SHA256_LEN];
-  uint32_t base_offset;
-  uint32_t limit_offset;
-  uint32_t attributes[4];
-} __packed;
-struct sof_man_adsp_meta_file_ext {
-  uint32_t ext_type;
-  uint32_t ext_len;
-  uint32_t imr_type;
-  uint8_t reserved[16];
-  struct sof_man_component_desc comp_desc[1];
-} __packed;
-struct sof_man_module_manifest {
-  struct sof_man_module module;
-  uint32_t text_size;
-} __packed;
-#endif
diff --git a/libc/kernel/uapi/sound/sof/tokens.h b/libc/kernel/uapi/sound/sof/tokens.h
index 748c5fe..0f80cfa 100644
--- a/libc/kernel/uapi/sound/sof/tokens.h
+++ b/libc/kernel/uapi/sound/sof/tokens.h
@@ -55,6 +55,7 @@
 #define SOF_TKN_INTEL_DMIC_NUM_PDM_ACTIVE 605
 #define SOF_TKN_INTEL_DMIC_SAMPLE_RATE 608
 #define SOF_TKN_INTEL_DMIC_FIFO_WORD_LENGTH 609
+#define SOF_TKN_INTEL_DMIC_UNMUTE_RAMP_TIME_MS 610
 #define SOF_TKN_INTEL_DMIC_PDM_CTRL_ID 700
 #define SOF_TKN_INTEL_DMIC_PDM_MIC_A_Enable 701
 #define SOF_TKN_INTEL_DMIC_PDM_MIC_B_Enable 702
diff --git a/libc/kernel/uapi/sound/sof/tone.h b/libc/kernel/uapi/sound/sof/tone.h
deleted file mode 100644
index a4b745e..0000000
--- a/libc/kernel/uapi/sound/sof/tone.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_TONE_H__
-#define __INCLUDE_UAPI_SOUND_SOF_USER_TONE_H__
-#define SOF_TONE_IDX_FREQUENCY 0
-#define SOF_TONE_IDX_AMPLITUDE 1
-#define SOF_TONE_IDX_FREQ_MULT 2
-#define SOF_TONE_IDX_AMPL_MULT 3
-#define SOF_TONE_IDX_LENGTH 4
-#define SOF_TONE_IDX_PERIOD 5
-#define SOF_TONE_IDX_REPEATS 6
-#define SOF_TONE_IDX_LIN_RAMP_STEP 7
-#endif
diff --git a/libc/kernel/uapi/sound/sof/trace.h b/libc/kernel/uapi/sound/sof/trace.h
deleted file mode 100644
index a5eed43..0000000
--- a/libc/kernel/uapi/sound/sof/trace.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_TRACE_H__
-#define __INCLUDE_UAPI_SOUND_SOF_USER_TRACE_H__
-struct system_time {
-  uint32_t val_l;
-  uint32_t val_u;
-} __packed;
-#define LOG_ENABLE 1
-#define LOG_DISABLE 0
-#define LOG_LEVEL_CRITICAL 1
-#define LOG_LEVEL_VERBOSE 2
-struct log_buffer_layout {
-  uint32_t read_ptr;
-  uint32_t write_ptr;
-  uint32_t buffer[0];
-} __packed;
-struct log_buffer_status {
-  uint32_t core_id;
-} __packed;
-#define TRACE_ID_LENGTH 12
-struct log_entry_header {
-  uint32_t id_0 : TRACE_ID_LENGTH;
-  uint32_t id_1 : TRACE_ID_LENGTH;
-  uint32_t core_id : 8;
-  uint64_t timestamp;
-  uint32_t log_entry_address;
-} __packed;
-#endif
