summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVidyakumar Athota <vathota@codeaurora.org>2016-08-10 20:45:29 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-08-17 10:19:35 -0700
commit99c16706c7190b0e3c22fdb162b253af75aab135 (patch)
tree867bb3c911170bac379996a867c8f7b180fac543
parent008f057bbab6dd6629b7e1a3b8c67b650a6b9ef1 (diff)
uapi: sound: add wcd-dsp-glink header file
Add support for WCD-DSP audio codec communication over glink. This file defines all the required structures for the userspace component to communicate with the DSP in WCD audio codec. CRs-Fixed: 1053381 Change-Id: I141a72c879b4c15590ad94c852a2771a360b55f9 Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
-rw-r--r--include/uapi/sound/Kbuild1
-rw-r--r--include/uapi/sound/wcd-dsp-glink.h58
2 files changed, 59 insertions, 0 deletions
diff --git a/include/uapi/sound/Kbuild b/include/uapi/sound/Kbuild
index 8fddb47d1fc4..a19a02471367 100644
--- a/include/uapi/sound/Kbuild
+++ b/include/uapi/sound/Kbuild
@@ -18,3 +18,4 @@ header-y += audio_effects.h
header-y += voice_svc.h
header-y += devdep_params.h
header-y += msmcal-hwdep.h
+header-y += wcd-dsp-glink.h
diff --git a/include/uapi/sound/wcd-dsp-glink.h b/include/uapi/sound/wcd-dsp-glink.h
new file mode 100644
index 000000000000..db92e6b41340
--- /dev/null
+++ b/include/uapi/sound/wcd-dsp-glink.h
@@ -0,0 +1,58 @@
+#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,
+};
+
+/*
+ * 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 */