Loading system/stack/include/hcidefs.h +9 −0 Original line number Diff line number Diff line Loading @@ -912,6 +912,9 @@ typedef struct { // TODO Remove this once all QTI specific hacks are removed. #define LMP_COMPID_QTI 0x001D // TODO Remove this once all UNISOC specific hacks are removed. #define LMP_COMPID_UNISOC 0x073F /* Parameter information for HCI_SYNA_SET_ACL_PRIORITY */ #define HCI_SYNA_ACL_PRIORITY_PARAM_SIZE 3 #define HCI_SYNA_ACL_NORMAL_PRIORITY 0xF0 Loading @@ -919,6 +922,12 @@ typedef struct { #define HCI_SYNA_ACL_HIGH_PRIORITY_LOW_LATENCY 0xF3 #define HCI_SYNA_SET_ACL_PRIORITY (0x0057 | HCI_GRP_VENDOR_SPECIFIC) /* Parameter information for HCI_UNISOC_SET_ACL_PRIORITY */ #define HCI_UNISOC_ACL_PRIORITY_PARAM_SIZE 3 #define HCI_UNISOC_SET_ACL_PRIORITY (0x0057 | HCI_GRP_VENDOR_SPECIFIC) #define HCI_UNISOC_ACL_NORMAL_PRIORITY 0x00 #define HCI_UNISOC_ACL_HIGH_PRIORITY 0xFF /* * Define packet size */ Loading system/stack/l2cap/l2c_utils.cc +36 −0 Original line number Diff line number Diff line Loading @@ -2313,6 +2313,38 @@ static void l2cu_set_acl_priority_latency_syna(tL2C_LCB* p_lcb, HCI_SYNA_ACL_PRIORITY_PARAM_SIZE, command, NULL); } /******************************************************************************* * * Function l2cu_set_acl_priority_unisoc * * Description Sends a VSC to set the ACL priority on Unisoc chip. * * Returns void * ******************************************************************************/ static void l2cu_set_acl_priority_unisoc(tL2C_LCB* p_lcb, tL2CAP_PRIORITY priority) { uint8_t vs_param; if (priority == L2CAP_PRIORITY_HIGH) { // priority to high LOG_INFO("Set ACL priority: High Priority Mode"); vs_param = HCI_UNISOC_ACL_HIGH_PRIORITY; } else { // priority to normal LOG_INFO("Set ACL priority: Normal Mode"); vs_param = HCI_UNISOC_ACL_NORMAL_PRIORITY; } uint8_t command[HCI_UNISOC_ACL_PRIORITY_PARAM_SIZE]; uint8_t* pp = command; UINT16_TO_STREAM(pp, p_lcb->Handle()); UINT8_TO_STREAM(pp, vs_param); BTM_VendorSpecificCommand(HCI_UNISOC_SET_ACL_PRIORITY, HCI_UNISOC_ACL_PRIORITY_PARAM_SIZE, command, NULL); } /******************************************************************************* * * Function l2cu_set_acl_priority Loading Loading @@ -2353,6 +2385,10 @@ bool l2cu_set_acl_priority(const RawAddress& bd_addr, tL2CAP_PRIORITY priority, l2cu_set_acl_priority_latency_syna(p_lcb, priority); break; case LMP_COMPID_UNISOC: l2cu_set_acl_priority_unisoc(p_lcb, priority); break; default: /* Not supported/required for other vendors */ break; Loading Loading
system/stack/include/hcidefs.h +9 −0 Original line number Diff line number Diff line Loading @@ -912,6 +912,9 @@ typedef struct { // TODO Remove this once all QTI specific hacks are removed. #define LMP_COMPID_QTI 0x001D // TODO Remove this once all UNISOC specific hacks are removed. #define LMP_COMPID_UNISOC 0x073F /* Parameter information for HCI_SYNA_SET_ACL_PRIORITY */ #define HCI_SYNA_ACL_PRIORITY_PARAM_SIZE 3 #define HCI_SYNA_ACL_NORMAL_PRIORITY 0xF0 Loading @@ -919,6 +922,12 @@ typedef struct { #define HCI_SYNA_ACL_HIGH_PRIORITY_LOW_LATENCY 0xF3 #define HCI_SYNA_SET_ACL_PRIORITY (0x0057 | HCI_GRP_VENDOR_SPECIFIC) /* Parameter information for HCI_UNISOC_SET_ACL_PRIORITY */ #define HCI_UNISOC_ACL_PRIORITY_PARAM_SIZE 3 #define HCI_UNISOC_SET_ACL_PRIORITY (0x0057 | HCI_GRP_VENDOR_SPECIFIC) #define HCI_UNISOC_ACL_NORMAL_PRIORITY 0x00 #define HCI_UNISOC_ACL_HIGH_PRIORITY 0xFF /* * Define packet size */ Loading
system/stack/l2cap/l2c_utils.cc +36 −0 Original line number Diff line number Diff line Loading @@ -2313,6 +2313,38 @@ static void l2cu_set_acl_priority_latency_syna(tL2C_LCB* p_lcb, HCI_SYNA_ACL_PRIORITY_PARAM_SIZE, command, NULL); } /******************************************************************************* * * Function l2cu_set_acl_priority_unisoc * * Description Sends a VSC to set the ACL priority on Unisoc chip. * * Returns void * ******************************************************************************/ static void l2cu_set_acl_priority_unisoc(tL2C_LCB* p_lcb, tL2CAP_PRIORITY priority) { uint8_t vs_param; if (priority == L2CAP_PRIORITY_HIGH) { // priority to high LOG_INFO("Set ACL priority: High Priority Mode"); vs_param = HCI_UNISOC_ACL_HIGH_PRIORITY; } else { // priority to normal LOG_INFO("Set ACL priority: Normal Mode"); vs_param = HCI_UNISOC_ACL_NORMAL_PRIORITY; } uint8_t command[HCI_UNISOC_ACL_PRIORITY_PARAM_SIZE]; uint8_t* pp = command; UINT16_TO_STREAM(pp, p_lcb->Handle()); UINT8_TO_STREAM(pp, vs_param); BTM_VendorSpecificCommand(HCI_UNISOC_SET_ACL_PRIORITY, HCI_UNISOC_ACL_PRIORITY_PARAM_SIZE, command, NULL); } /******************************************************************************* * * Function l2cu_set_acl_priority Loading Loading @@ -2353,6 +2385,10 @@ bool l2cu_set_acl_priority(const RawAddress& bd_addr, tL2CAP_PRIORITY priority, l2cu_set_acl_priority_latency_syna(p_lcb, priority); break; case LMP_COMPID_UNISOC: l2cu_set_acl_priority_unisoc(p_lcb, priority); break; default: /* Not supported/required for other vendors */ break; Loading