summaryrefslogtreecommitdiffstats
path: root/stack
diff options
context:
space:
mode:
Diffstat (limited to 'stack')
-rw-r--r--stack/btm/btm_acl.c18
-rw-r--r--stack/btm/btm_int.h1
-rw-r--r--stack/btm/btm_pm.c7
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