diff options
Diffstat (limited to 'stack')
-rw-r--r-- | stack/btm/btm_acl.c | 18 | ||||
-rw-r--r-- | stack/btm/btm_int.h | 1 | ||||
-rw-r--r-- | stack/btm/btm_pm.c | 7 |
3 files changed, 20 insertions, 6 deletions
diff --git a/stack/btm/btm_acl.c b/stack/btm/btm_acl.c index b389224b2..9b2c99040 100644 --- a/stack/btm/btm_acl.c +++ b/stack/btm/btm_acl.c @@ -524,9 +524,18 @@ void btm_acl_update_busy_level (tBTM_BLI_EVENT event) { case BTM_BLI_ACL_UP_EVT: BTM_TRACE_DEBUG ("BTM_BLI_ACL_UP_EVT"); + btm_cb.num_acl++; break; case BTM_BLI_ACL_DOWN_EVT: - BTM_TRACE_DEBUG ("BTM_BLI_ACL_DOWN_EVT"); + if (btm_cb.num_acl) + { + btm_cb.num_acl--; + BTM_TRACE_DEBUG ("BTM_BLI_ACL_DOWN_EVT", btm_cb.num_acl); + } + else + { + BTM_TRACE_ERROR ("BTM_BLI_ACL_DOWN_EVT issued, but num_acl already zero !!!"); + } break; case BTM_BLI_PAGE_EVT: BTM_TRACE_DEBUG ("BTM_BLI_PAGE_EVT"); @@ -558,7 +567,7 @@ void btm_acl_update_busy_level (tBTM_BLI_EVENT event) if (btm_cb.is_paging || btm_cb.is_inquiry) busy_level = 10; else - busy_level = BTM_GetNumAclLinks(); + busy_level = (UINT8)btm_cb.num_acl; if ((busy_level != btm_cb.busy_level) ||(old_inquiry_state != btm_cb.is_inquiry)) { @@ -1638,7 +1647,6 @@ void btm_establish_continue (tACL_CONN *p_acl_cb) (*btm_cb.p_bl_changed_cb)(&evt_data); } - btm_acl_update_busy_level (BTM_BLI_ACL_UP_EVT); #else if (btm_cb.p_acl_changed_cb) @@ -2123,6 +2131,9 @@ BOOLEAN BTM_IsAclConnectionUp (BD_ADDR remote_bda, tBT_TRANSPORT transport) *******************************************************************************/ UINT16 BTM_GetNumAclLinks (void) { +#if (defined(BTM_BUSY_LEVEL_CHANGE_INCLUDED) && BTM_BUSY_LEVEL_CHANGE_INCLUDED == TRUE) + return(UINT16)btm_cb.num_acl; +#else tACL_CONN *p = &btm_cb.acl_db[0]; UINT16 xx, yy; BTM_TRACE_DEBUG ("BTM_GetNumAclLinks"); @@ -2133,6 +2144,7 @@ UINT16 BTM_GetNumAclLinks (void) } return(yy); +#endif } /******************************************************************************* diff --git a/stack/btm/btm_int.h b/stack/btm/btm_int.h index 7032177f2..fcb17bb5c 100644 --- a/stack/btm/btm_int.h +++ b/stack/btm/btm_int.h @@ -916,6 +916,7 @@ typedef struct UINT8 acl_disc_reason; UINT8 trace_level; #if (defined(BTM_BUSY_LEVEL_CHANGE_INCLUDED) && BTM_BUSY_LEVEL_CHANGE_INCLUDED == TRUE) + UINT8 num_acl; /* num of active ACL links */ UINT8 busy_level; /* the current busy level */ BOOLEAN is_paging; /* TRUE, if paging is in progess */ BOOLEAN is_inquiry; /* TRUE, if inquiry is in progess */ diff --git a/stack/btm/btm_pm.c b/stack/btm/btm_pm.c index ffa4acf57..76bfc048b 100644 --- a/stack/btm/btm_pm.c +++ b/stack/btm/btm_pm.c @@ -1020,9 +1020,9 @@ BOOLEAN btm_pm_device_in_active_or_sniff_mode(void) /* The active state is the highest state-includes connected device and sniff mode*/ /* Covers active and sniff modes */ - if (BTM_GetNumAclLinks() > 0) + if (btm_cb.num_acl > 0) { - BTM_TRACE_DEBUG("%s() - ACL links: %d", __FUNCTION__, BTM_GetNumAclLinks()); + BTM_TRACE_DEBUG("btm_pm_device_in_active_or_sniff_mode-acl:%d", btm_cb.num_acl); return TRUE; } @@ -1030,7 +1030,8 @@ BOOLEAN btm_pm_device_in_active_or_sniff_mode(void) /* Check BLE states */ if (btm_ble_get_conn_st() != BLE_CONN_IDLE) { - BTM_TRACE_DEBUG("%s() - BLE state: %x", __FUNCTION__, btm_ble_get_conn_st()); + BTM_TRACE_DEBUG("btm_pm_device_in_active_or_sniff_mode- BLE state: %x", + btm_ble_get_conn_st()); return TRUE; } #endif |