Update to v4.19 kernel headers.

Test: Builds and boots.
Change-Id: I99a9ed79666e143b47f02ca4e59eed94f69b7e4a
(cherry picked from commit a981e2e52e2e95a65fa9c9b6fb16dcb4c83dd576)
diff --git a/libc/kernel/uapi/sound/asoc.h b/libc/kernel/uapi/sound/asoc.h
index d0bab8b..e46c4b5 100644
--- a/libc/kernel/uapi/sound/asoc.h
+++ b/libc/kernel/uapi/sound/asoc.h
@@ -95,6 +95,11 @@
 #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_RATES (1 << 0)
 #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_CHANNELS (1 << 1)
 #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
+#define SND_SOC_TPLG_DAI_CLK_GATE_UNDEFINED 0
+#define SND_SOC_TPLG_DAI_CLK_GATE_GATED 1
+#define SND_SOC_TPLG_DAI_CLK_GATE_CONT 2
+#define SND_SOC_TPLG_MCLK_CO 0
+#define SND_SOC_TPLG_MCLK_CI 1
 #define SND_SOC_DAI_FORMAT_I2S 1
 #define SND_SOC_DAI_FORMAT_RIGHT_J 2
 #define SND_SOC_DAI_FORMAT_LEFT_J 3
@@ -108,6 +113,10 @@
 #define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_CHANNELS (1 << 1)
 #define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
 #define SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP (1 << 3)
+#define SND_SOC_TPLG_BCLK_CM 0
+#define SND_SOC_TPLG_BCLK_CS 1
+#define SND_SOC_TPLG_FSYNC_CM 0
+#define SND_SOC_TPLG_FSYNC_CS 1
 struct snd_soc_tplg_hdr {
   __le32 magic;
   __le32 abi;
@@ -335,4 +344,48 @@
   __le32 flags;
   struct snd_soc_tplg_private priv;
 } __attribute__((packed));
+struct snd_soc_tplg_manifest_v4 {
+  __le32 size;
+  __le32 control_elems;
+  __le32 widget_elems;
+  __le32 graph_elems;
+  __le32 pcm_elems;
+  __le32 dai_link_elems;
+  struct snd_soc_tplg_private priv;
+} __packed;
+struct snd_soc_tplg_stream_caps_v4 {
+  __le32 size;
+  char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
+  __le64 formats;
+  __le32 rates;
+  __le32 rate_min;
+  __le32 rate_max;
+  __le32 channels_min;
+  __le32 channels_max;
+  __le32 periods_min;
+  __le32 periods_max;
+  __le32 period_size_min;
+  __le32 period_size_max;
+  __le32 buffer_size_min;
+  __le32 buffer_size_max;
+} __packed;
+struct snd_soc_tplg_pcm_v4 {
+  __le32 size;
+  char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
+  char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
+  __le32 pcm_id;
+  __le32 dai_id;
+  __le32 playback;
+  __le32 capture;
+  __le32 compress;
+  struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
+  __le32 num_streams;
+  struct snd_soc_tplg_stream_caps_v4 caps[2];
+} __packed;
+struct snd_soc_tplg_link_config_v4 {
+  __le32 size;
+  __le32 id;
+  struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
+  __le32 num_streams;
+} __packed;
 #endif
diff --git a/libc/kernel/uapi/sound/skl-tplg-interface.h b/libc/kernel/uapi/sound/skl-tplg-interface.h
new file mode 100644
index 0000000..58e0afa
--- /dev/null
+++ b/libc/kernel/uapi/sound/skl-tplg-interface.h
@@ -0,0 +1,183 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __HDA_TPLG_INTERFACE_H__
+#define __HDA_TPLG_INTERFACE_H__
+#include <linux/types.h>
+#define SKL_CONTROL_TYPE_BYTE_TLV 0x100
+#define SKL_CONTROL_TYPE_MIC_SELECT 0x102
+#define HDA_SST_CFG_MAX 900
+#define MAX_IN_QUEUE 8
+#define MAX_OUT_QUEUE 8
+#define SKL_UUID_STR_SZ 40
+enum skl_event_types {
+  SKL_EVENT_NONE = 0,
+  SKL_MIXER_EVENT,
+  SKL_MUX_EVENT,
+  SKL_VMIXER_EVENT,
+  SKL_PGA_EVENT
+};
+enum skl_ch_cfg {
+  SKL_CH_CFG_MONO = 0,
+  SKL_CH_CFG_STEREO = 1,
+  SKL_CH_CFG_2_1 = 2,
+  SKL_CH_CFG_3_0 = 3,
+  SKL_CH_CFG_3_1 = 4,
+  SKL_CH_CFG_QUATRO = 5,
+  SKL_CH_CFG_4_0 = 6,
+  SKL_CH_CFG_5_0 = 7,
+  SKL_CH_CFG_5_1 = 8,
+  SKL_CH_CFG_DUAL_MONO = 9,
+  SKL_CH_CFG_I2S_DUAL_STEREO_0 = 10,
+  SKL_CH_CFG_I2S_DUAL_STEREO_1 = 11,
+  SKL_CH_CFG_4_CHANNEL = 12,
+  SKL_CH_CFG_INVALID
+};
+enum skl_module_type {
+  SKL_MODULE_TYPE_MIXER = 0,
+  SKL_MODULE_TYPE_COPIER,
+  SKL_MODULE_TYPE_UPDWMIX,
+  SKL_MODULE_TYPE_SRCINT,
+  SKL_MODULE_TYPE_ALGO,
+  SKL_MODULE_TYPE_BASE_OUTFMT,
+  SKL_MODULE_TYPE_KPB,
+  SKL_MODULE_TYPE_MIC_SELECT,
+};
+enum skl_core_affinity {
+  SKL_AFFINITY_CORE_0 = 0,
+  SKL_AFFINITY_CORE_1,
+  SKL_AFFINITY_CORE_MAX
+};
+enum skl_pipe_conn_type {
+  SKL_PIPE_CONN_TYPE_NONE = 0,
+  SKL_PIPE_CONN_TYPE_FE,
+  SKL_PIPE_CONN_TYPE_BE
+};
+enum skl_hw_conn_type {
+  SKL_CONN_NONE = 0,
+  SKL_CONN_SOURCE = 1,
+  SKL_CONN_SINK = 2
+};
+enum skl_dev_type {
+  SKL_DEVICE_BT = 0x0,
+  SKL_DEVICE_DMIC = 0x1,
+  SKL_DEVICE_I2S = 0x2,
+  SKL_DEVICE_SLIMBUS = 0x3,
+  SKL_DEVICE_HDALINK = 0x4,
+  SKL_DEVICE_HDAHOST = 0x5,
+  SKL_DEVICE_NONE
+};
+enum skl_interleaving {
+  SKL_INTERLEAVING_PER_CHANNEL = 0,
+  SKL_INTERLEAVING_PER_SAMPLE = 1,
+};
+enum skl_sample_type {
+  SKL_SAMPLE_TYPE_INT_MSB = 0,
+  SKL_SAMPLE_TYPE_INT_LSB = 1,
+  SKL_SAMPLE_TYPE_INT_SIGNED = 2,
+  SKL_SAMPLE_TYPE_INT_UNSIGNED = 3,
+  SKL_SAMPLE_TYPE_FLOAT = 4
+};
+enum module_pin_type {
+  SKL_PIN_TYPE_HOMOGENEOUS,
+  SKL_PIN_TYPE_HETEROGENEOUS,
+};
+enum skl_module_param_type {
+  SKL_PARAM_DEFAULT = 0,
+  SKL_PARAM_INIT,
+  SKL_PARAM_SET,
+  SKL_PARAM_BIND
+};
+struct skl_dfw_algo_data {
+  __u32 set_params : 2;
+  __u32 rsvd : 30;
+  __u32 param_id;
+  __u32 max;
+  char params[0];
+} __packed;
+enum skl_tkn_dir {
+  SKL_DIR_IN,
+  SKL_DIR_OUT
+};
+enum skl_tuple_type {
+  SKL_TYPE_TUPLE,
+  SKL_TYPE_DATA
+};
+struct skl_dfw_v4_module_pin {
+  __u16 module_id;
+  __u16 instance_id;
+} __packed;
+struct skl_dfw_v4_module_fmt {
+  __u32 channels;
+  __u32 freq;
+  __u32 bit_depth;
+  __u32 valid_bit_depth;
+  __u32 ch_cfg;
+  __u32 interleaving_style;
+  __u32 sample_type;
+  __u32 ch_map;
+} __packed;
+struct skl_dfw_v4_module_caps {
+  __u32 set_params : 2;
+  __u32 rsvd : 30;
+  __u32 param_id;
+  __u32 caps_size;
+  __u32 caps[HDA_SST_CFG_MAX];
+} __packed;
+struct skl_dfw_v4_pipe {
+  __u8 pipe_id;
+  __u8 pipe_priority;
+  __u16 conn_type : 4;
+  __u16 rsvd : 4;
+  __u16 memory_pages : 8;
+} __packed;
+struct skl_dfw_v4_module {
+  char uuid[SKL_UUID_STR_SZ];
+  __u16 module_id;
+  __u16 instance_id;
+  __u32 max_mcps;
+  __u32 mem_pages;
+  __u32 obs;
+  __u32 ibs;
+  __u32 vbus_id;
+  __u32 max_in_queue : 8;
+  __u32 max_out_queue : 8;
+  __u32 time_slot : 8;
+  __u32 core_id : 4;
+  __u32 rsvd1 : 4;
+  __u32 module_type : 8;
+  __u32 conn_type : 4;
+  __u32 dev_type : 4;
+  __u32 hw_conn_type : 4;
+  __u32 rsvd2 : 12;
+  __u32 params_fixup : 8;
+  __u32 converter : 8;
+  __u32 input_pin_type : 1;
+  __u32 output_pin_type : 1;
+  __u32 is_dynamic_in_pin : 1;
+  __u32 is_dynamic_out_pin : 1;
+  __u32 is_loadable : 1;
+  __u32 rsvd3 : 11;
+  struct skl_dfw_v4_pipe pipe;
+  struct skl_dfw_v4_module_fmt in_fmt[MAX_IN_QUEUE];
+  struct skl_dfw_v4_module_fmt out_fmt[MAX_OUT_QUEUE];
+  struct skl_dfw_v4_module_pin in_pin[MAX_IN_QUEUE];
+  struct skl_dfw_v4_module_pin out_pin[MAX_OUT_QUEUE];
+  struct skl_dfw_v4_module_caps caps;
+} __packed;
+#endif
diff --git a/libc/kernel/uapi/sound/tlv.h b/libc/kernel/uapi/sound/tlv.h
index 9a5c521..0822429 100644
--- a/libc/kernel/uapi/sound/tlv.h
+++ b/libc/kernel/uapi/sound/tlv.h
@@ -29,18 +29,26 @@
 #define SNDRV_CTL_TLVT_CHMAP_PAIRED 0x103
 #define SNDRV_CTL_TLVD_ITEM(type,...) (type), SNDRV_CTL_TLVD_LENGTH(__VA_ARGS__), __VA_ARGS__
 #define SNDRV_CTL_TLVD_LENGTH(...) ((unsigned int) sizeof((const unsigned int[]) { __VA_ARGS__ }))
+#define SNDRV_CTL_TLVO_TYPE 0
+#define SNDRV_CTL_TLVO_LEN 1
 #define SNDRV_CTL_TLVD_CONTAINER_ITEM(...) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_CONTAINER, __VA_ARGS__)
 #define SNDRV_CTL_TLVD_DECLARE_CONTAINER(name,...) unsigned int name[] = { SNDRV_CTL_TLVD_CONTAINER_ITEM(__VA_ARGS__) }
 #define SNDRV_CTL_TLVD_DB_SCALE_MASK 0xffff
 #define SNDRV_CTL_TLVD_DB_SCALE_MUTE 0x10000
 #define SNDRV_CTL_TLVD_DB_SCALE_ITEM(min,step,mute) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_SCALE, (min), ((step) & SNDRV_CTL_TLVD_DB_SCALE_MASK) | ((mute) ? SNDRV_CTL_TLVD_DB_SCALE_MUTE : 0))
 #define SNDRV_CTL_TLVD_DECLARE_DB_SCALE(name,min,step,mute) unsigned int name[] = { SNDRV_CTL_TLVD_DB_SCALE_ITEM(min, step, mute) }
+#define SNDRV_CTL_TLVO_DB_SCALE_MIN 2
+#define SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP 3
 #define SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB,max_dB) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX, (min_dB), (max_dB))
 #define SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB,max_dB) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX_MUTE, (min_dB), (max_dB))
 #define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX(name,min_dB,max_dB) unsigned int name[] = { SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB, max_dB) }
 #define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX_MUTE(name,min_dB,max_dB) unsigned int name[] = { SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) }
+#define SNDRV_CTL_TLVO_DB_MINMAX_MIN 2
+#define SNDRV_CTL_TLVO_DB_MINMAX_MAX 3
 #define SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB,max_dB) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_LINEAR, (min_dB), (max_dB))
 #define SNDRV_CTL_TLVD_DECLARE_DB_LINEAR(name,min_dB,max_dB) unsigned int name[] = { SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) }
+#define SNDRV_CTL_TLVO_DB_LINEAR_MIN 2
+#define SNDRV_CTL_TLVO_DB_LINEAR_MAX 3
 #define SNDRV_CTL_TLVD_DB_RANGE_ITEM(...) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_RANGE, __VA_ARGS__)
 #define SNDRV_CTL_TLVD_DECLARE_DB_RANGE(name,...) unsigned int name[] = { SNDRV_CTL_TLVD_DB_RANGE_ITEM(__VA_ARGS__) }
 #define SNDRV_CTL_TLVD_DB_GAIN_MUTE - 9999999