Snap for 4560043 from e842c65cf6c9453e95347d79863c1e4b73360e7a to pi-release

Change-Id: I559b8ba802bb29e70f1bb257921d9df72aa13136
diff --git a/kernel-headers/sound/wcd-dsp-glink.h b/kernel-headers/sound/wcd-dsp-glink.h
new file mode 100644
index 0000000..d00744c
--- /dev/null
+++ b/kernel-headers/sound/wcd-dsp-glink.h
@@ -0,0 +1,49 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 _WCD_DSP_GLINK_H
+#define _WCD_DSP_GLINK_H
+#include <linux/types.h>
+#define WDSP_CH_NAME_MAX_LEN 50
+enum {
+  WDSP_REG_PKT = 1,
+  WDSP_CMD_PKT,
+  WDSP_READY_PKT,
+};
+#define WDSP_READY_PKT WDSP_READY_PKT
+struct wdsp_reg_pkt {
+  __u8 no_of_channels;
+  __u8 payload[0];
+};
+struct wdsp_cmd_pkt {
+  char ch_name[WDSP_CH_NAME_MAX_LEN];
+  __u32 payload_size;
+  __u8 payload[0];
+};
+struct wdsp_write_pkt {
+  __u8 pkt_type;
+  __u8 payload[0];
+};
+struct wdsp_glink_ch_cfg {
+  char name[WDSP_CH_NAME_MAX_LEN];
+  __u32 latency_in_us;
+  __u32 no_of_intents;
+  __u32 intents_size[0];
+};
+#endif
+
diff --git a/original-kernel-headers/sound/wcd-dsp-glink.h b/original-kernel-headers/sound/wcd-dsp-glink.h
new file mode 100644
index 0000000..39d128d
--- /dev/null
+++ b/original-kernel-headers/sound/wcd-dsp-glink.h
@@ -0,0 +1,60 @@
+#ifndef _WCD_DSP_GLINK_H
+#define _WCD_DSP_GLINK_H
+
+#include <linux/types.h>
+
+#define WDSP_CH_NAME_MAX_LEN 50
+
+enum {
+	WDSP_REG_PKT = 1,
+	WDSP_CMD_PKT,
+	WDSP_READY_PKT,
+};
+#define WDSP_READY_PKT WDSP_READY_PKT
+
+/*
+ * struct wdsp_reg_pkt -  Glink channel information structure format
+ * @no_of_channels:   Number of glink channels to open
+ * @payload[0]:       Dynamic array contains all the glink channels information
+ */
+struct wdsp_reg_pkt {
+	__u8 no_of_channels;
+	__u8 payload[0];
+};
+
+/*
+ * struct wdsp_cmd_pkt - WDSP command packet format
+ * @ch_name:         Name of the glink channel
+ * @payload_size:    Size of the payload
+ * @payload[0]:      Actual data payload
+ */
+struct wdsp_cmd_pkt {
+	char ch_name[WDSP_CH_NAME_MAX_LEN];
+	__u32 payload_size;
+	__u8 payload[0];
+};
+
+/*
+ * struct wdsp_write_pkt - Format that userspace send the data to driver.
+ * @pkt_type:      Type of the packet(REG or CMD PKT)
+ * @payload[0]:    Payload is either cmd or reg pkt structure based on pkt type
+ */
+struct wdsp_write_pkt {
+	__u8 pkt_type;
+	__u8 payload[0];
+};
+
+/*
+ * struct wdsp_glink_ch_cfg - Defines the glink channel configuration.
+ * @ch_name:           Name of the glink channel
+ * @latency_in_us:     Latency specified in micro seconds for QOS
+ * @no_of_intents:     Number of intents prequeued
+ * @intents_size[0]:   Dynamic array to specify size of each intent
+ */
+struct wdsp_glink_ch_cfg {
+	char name[WDSP_CH_NAME_MAX_LEN];
+	__u32 latency_in_us;
+	__u32 no_of_intents;
+	__u32 intents_size[0];
+};
+#endif /* _WCD_DSP_GLINK_H */