components/bt: Fix waking up fail while sleeping

This commit is contained in:
baohongde 2020-10-14 20:20:57 +08:00
parent 3f97f1d67a
commit 3b82670a50
2 changed files with 4 additions and 10 deletions

View File

@ -934,19 +934,15 @@ static void btdm_wakeup_request_callback(void * arg)
static bool async_wakeup_request(int event)
{
bool request_lock = false;
bool do_wakeup_request = false;
switch (event) {
case BTDM_ASYNC_WAKEUP_REQ_HCI:
request_lock = true;
btdm_in_wakeup_requesting_set(true);
// NO break
case BTDM_ASYNC_WAKEUP_REQ_CTRL_DISA:
if (!btdm_power_state_active()) {
do_wakeup_request = true;
if (request_lock) {
btdm_in_wakeup_requesting_set(true);
}
btdm_dispatch_work_to_controller(btdm_wakeup_request_callback, NULL, true);
semphr_take_wrapper(s_wakeup_req_sem, OSI_FUNCS_TIME_BLOCKING);
@ -1055,13 +1051,11 @@ bool esp_vhci_host_check_send_available(void)
void esp_vhci_host_send_packet(uint8_t *data, uint16_t len)
{
bool do_wakeup_request = async_wakeup_request(BTDM_ASYNC_WAKEUP_REQ_HCI);
async_wakeup_request(BTDM_ASYNC_WAKEUP_REQ_HCI);
API_vhci_host_send_packet(data, len);
if (do_wakeup_request) {
async_wakeup_request_end(BTDM_ASYNC_WAKEUP_REQ_HCI);
}
async_wakeup_request_end(BTDM_ASYNC_WAKEUP_REQ_HCI);
}
esp_err_t esp_vhci_host_register_callback(const esp_vhci_host_callback_t *callback)

@ -1 +1 @@
Subproject commit 427c1a3215bcd91ef39abc05e45be562dca4321a
Subproject commit 448e95c108ee490dbfcc69634560ced1eb148e15