mirror of
https://github.com/yurisieucuti/treble_evolution.git
synced 2024-11-28 03:34:31 +00:00
133 lines
4.6 KiB
Diff
133 lines
4.6 KiB
Diff
From 6eed0e5d02d2ffb0ff1f6d4b6325e435eb52bf4c Mon Sep 17 00:00:00 2001
|
|
From: "weifan.zhang" <weifan.zhang@mediatek.corp-partner.google.com>
|
|
Date: Thu, 1 Feb 2024 13:44:37 +0800
|
|
Subject: [PATCH 9/9] Add VSC Cmd for Mediatek chip
|
|
|
|
[Description]
|
|
Add VSC cmd for low latency mode
|
|
|
|
CR-Id: ALPS08619561
|
|
|
|
Bug: 309700239
|
|
Test: m .
|
|
Flag: EXEMPT VSC command
|
|
|
|
Change-Id: I789b6bddfc6b5661430b399943d1288a7c52e988
|
|
---
|
|
system/stack/include/hcidefs.h | 2 +-
|
|
system/stack/l2cap/l2c_utils.cc | 64 ++++++++++++++++-----------------
|
|
2 files changed, 33 insertions(+), 33 deletions(-)
|
|
|
|
diff --git a/system/stack/include/hcidefs.h b/system/stack/include/hcidefs.h
|
|
index a8ad4499bf..9cc8be39d5 100644
|
|
--- a/system/stack/include/hcidefs.h
|
|
+++ b/system/stack/include/hcidefs.h
|
|
@@ -933,7 +933,7 @@ typedef struct {
|
|
#define HCI_UNISOC_ACL_HIGH_PRIORITY 0xFF
|
|
|
|
/* Parameter information for HCI_MTK_SET_ACL_PRIORITY */
|
|
-#define HCI_MTK_ACL_PRIORITY_PARAM_SIZE 1
|
|
+#define HCI_MTK_ACL_PRIORITY_PARAM_SIZE 4
|
|
#define HCI_MTK_SET_ACL_PRIORITY (0xFD95 | HCI_GRP_VENDOR_SPECIFIC)
|
|
#define HCI_MTK_ACL_NORMAL_PRIORITY 0x00
|
|
#define HCI_MTK_ACL_HIGH_PRIORITY 0x01
|
|
diff --git a/system/stack/l2cap/l2c_utils.cc b/system/stack/l2cap/l2c_utils.cc
|
|
index 7b722f426a..657b5b0997 100644
|
|
--- a/system/stack/l2cap/l2c_utils.cc
|
|
+++ b/system/stack/l2cap/l2c_utils.cc
|
|
@@ -2338,34 +2338,6 @@ static void l2cu_set_acl_priority_unisoc(tL2C_LCB* p_lcb,
|
|
HCI_UNISOC_ACL_PRIORITY_PARAM_SIZE, command, NULL);
|
|
}
|
|
|
|
-/*******************************************************************************
|
|
- *
|
|
- * Function l2cu_set_acl_priority_latency_mtk
|
|
- *
|
|
- * Description Sends a VSC to set the ACL priority and recorded latency on
|
|
- * Mediatek chip.
|
|
- *
|
|
- * Returns void
|
|
- *
|
|
- ******************************************************************************/
|
|
-
|
|
-static void l2cu_set_acl_priority_latency_mtk(tL2C_LCB* p_lcb,
|
|
- tL2CAP_PRIORITY priority) {
|
|
- uint8_t vs_param;
|
|
- if (priority == L2CAP_PRIORITY_HIGH) {
|
|
- // priority to high, if using latency mode check preset latency
|
|
- LOG_INFO("Set ACL priority: High Priority Mode");
|
|
- vs_param = HCI_MTK_ACL_HIGH_PRIORITY;
|
|
- } else {
|
|
- // priority to normal
|
|
- LOG_INFO("Set ACL priority: Normal Mode");
|
|
- vs_param = HCI_MTK_ACL_NORMAL_PRIORITY;
|
|
- }
|
|
-
|
|
- BTM_VendorSpecificCommand(HCI_MTK_SET_ACL_PRIORITY,
|
|
- HCI_MTK_ACL_PRIORITY_PARAM_SIZE, &vs_param, NULL);
|
|
-}
|
|
-
|
|
/*******************************************************************************
|
|
*
|
|
* Function l2cu_set_acl_priority
|
|
@@ -2410,10 +2382,6 @@ bool l2cu_set_acl_priority(const RawAddress& bd_addr, tL2CAP_PRIORITY priority,
|
|
l2cu_set_acl_priority_unisoc(p_lcb, priority);
|
|
break;
|
|
|
|
- case LMP_COMPID_MEDIATEK:
|
|
- l2cu_set_acl_priority_latency_mtk(p_lcb, priority);
|
|
- break;
|
|
-
|
|
default:
|
|
/* Not supported/required for other vendors */
|
|
break;
|
|
@@ -2480,6 +2448,34 @@ static void l2cu_set_acl_latency_syna(tL2C_LCB* p_lcb, tL2CAP_LATENCY latency) {
|
|
HCI_SYNA_ACL_PRIORITY_PARAM_SIZE, command, NULL);
|
|
}
|
|
|
|
+/*******************************************************************************
|
|
+ *
|
|
+ * Function l2cu_set_acl_latency_mtk
|
|
+ *
|
|
+ * Description Sends a VSC to set the ACL latency on Mediatek chip.
|
|
+ *
|
|
+ * Returns void
|
|
+ *
|
|
+ ******************************************************************************/
|
|
+
|
|
+static void l2cu_set_acl_latency_mtk(tL2CAP_LATENCY latency) {
|
|
+ LOG_INFO("Set ACL latency: %s",
|
|
+ latency == L2CAP_LATENCY_LOW ? "Low Latancy" : "Normal Latency");
|
|
+
|
|
+ uint8_t command[HCI_MTK_ACL_PRIORITY_PARAM_SIZE];
|
|
+ uint8_t* pp = command;
|
|
+ uint8_t vs_param = latency == L2CAP_LATENCY_LOW
|
|
+ ? HCI_MTK_ACL_HIGH_PRIORITY
|
|
+ : HCI_MTK_ACL_NORMAL_PRIORITY;
|
|
+ UINT8_TO_STREAM(pp, vs_param);
|
|
+ UINT8_TO_STREAM(pp, 0);
|
|
+ UINT16_TO_STREAM(pp, 0); //reserved bytes
|
|
+
|
|
+ BTM_VendorSpecificCommand(HCI_MTK_SET_ACL_PRIORITY,
|
|
+ HCI_MTK_ACL_PRIORITY_PARAM_SIZE, command, NULL);
|
|
+}
|
|
+
|
|
+
|
|
/*******************************************************************************
|
|
*
|
|
* Function l2cu_set_acl_latency
|
|
@@ -2512,6 +2508,10 @@ bool l2cu_set_acl_latency(const RawAddress& bd_addr, tL2CAP_LATENCY latency) {
|
|
l2cu_set_acl_latency_syna(p_lcb, latency);
|
|
break;
|
|
|
|
+ case LMP_COMPID_MEDIATEK:
|
|
+ l2cu_set_acl_latency_mtk(latency);
|
|
+ break;
|
|
+
|
|
default:
|
|
/* Not supported/required for other vendors */
|
|
break;
|
|
--
|
|
2.25.1
|
|
|