system/bt
Revision | dfec6ff67ff93b8f9d29b34ca92a99925472201e (tree) |
---|---|
Zeit | 2020-04-14 23:54:21 |
Autor | anitha3x <anithax.h.chandrasekar@inte...> |
Commiter | Chih-Wei Huang |
A work around fix for incorrect controller response.
Reason: The controller did not send correct response
for read remote extended features for "page 1" request.
Since lmp extended features ssp was not true, the sm4
was not enabled. Therefore host did not initiate
authentication request. When L2CAP AVDTP connection
was established, the controller returned disconnect
complete with authentication failed reason.
Fix: Provided a retry of read remote extended features
request from host, when response for 'page 1' was
incorrect. This enabled authentication from host and
hence L2CAP AVDTP connection was successful.
Revert the changes, once contoller fix is available
Tracked-On: OAM-69566
Signed-off-by: anitha3x <anithax.h.chandrasekar@intel.com>
@@ -939,9 +939,16 @@ void btm_process_remote_ext_features(tACL_CONN* p_acl_cb, | ||
939 | 939 | BTM_TRACE_ERROR("%s: page=%d unexpected", __func__, page_idx); |
940 | 940 | break; |
941 | 941 | } |
942 | - memcpy(p_dev_rec->feature_pages[page_idx], | |
943 | - p_acl_cb->peer_lmp_feature_pages[page_idx], | |
944 | - HCI_FEATURE_BYTES_PER_PAGE); | |
942 | + if ((page_idx == 1) && !HCI_SSP_HOST_SUPPORTED( | |
943 | + p_acl_cb->peer_lmp_feature_pages[page_idx])) { | |
944 | + BTM_TRACE_ERROR("Not received response for Page 1, retry"); | |
945 | + btm_read_remote_ext_features(handle, page_idx); | |
946 | + return; | |
947 | + } else { | |
948 | + memcpy(p_dev_rec->feature_pages[page_idx], | |
949 | + p_acl_cb->peer_lmp_feature_pages[page_idx], | |
950 | + HCI_FEATURE_BYTES_PER_PAGE); | |
951 | + } | |
945 | 952 | } |
946 | 953 | |
947 | 954 | if (!(p_dev_rec->sec_flags & BTM_SEC_NAME_KNOWN) || |