summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Lew <clew@codeaurora.org>2017-05-11 16:47:37 -0700
committerChris Lew <clew@codeaurora.org>2017-05-23 10:45:33 -0700
commita3b6b4e493804e18d98f92e160978fd2634d7b84 (patch)
tree04672db2bd78976ba61c8d09743dc5cc00040d0c /include
parent60be71604a84d2e047215cb702d6324379a353bb (diff)
soc: qcom: glink: Add new APIs to toggle RX thread priority
Low latency use cases are failing because glink RX thread to handle the TX Done command is not being scheduled during high system load. These new APIs allow clients to specify if they need the RX glink thread to be Realtime CRs-Fixed: 2050701 Change-Id: I6bd4023394e9ee617797826687f34abaee3fe65d Signed-off-by: Chris Lew <clew@codeaurora.org>
Diffstat (limited to 'include')
-rw-r--r--include/soc/qcom/glink.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/include/soc/qcom/glink.h b/include/soc/qcom/glink.h
index fedca64ec9a2..cecd0c01d69a 100644
--- a/include/soc/qcom/glink.h
+++ b/include/soc/qcom/glink.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2014-2015,2017 The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -339,6 +339,22 @@ int glink_qos_start(void *handle);
*/
unsigned long glink_qos_get_ramp_time(void *handle, size_t pkt_size);
+/**
+ * glink_start_rx_rt() - Vote for RT thread priority on RX.
+ * @handle: Channel handle for which transaction are occurring.
+ *
+ * Return: 0 on success, standard Linux error codes on failure
+ */
+int glink_start_rx_rt(void *handle);
+
+/**
+ * glink_end_rx_rt() - Vote for RT thread priority on RX.
+ * @handle: Channel handle for which transaction are occurring.
+ *
+ * Return: 0 on success, standard Linux error codes on failure
+ */
+int glink_end_rx_rt(void *handle);
+
#else /* CONFIG_MSM_GLINK */
static inline void *glink_open(const struct glink_open_config *cfg_ptr)
{
@@ -427,5 +443,16 @@ static inline unsigned long glink_qos_get_ramp_time(void *handle,
{
return 0;
}
+
+static inline int glink_start_rx_rt(void *handle)
+{
+ return -ENODEV;
+}
+
+static inline int glink_end_rx_rt(void *handle)
+{
+ return -ENODEV;
+}
+
#endif /* CONFIG_MSM_GLINK */
#endif /* _SOC_QCOM_GLINK_H_ */