From 717f0c6ec71a016a0b292acffeacf239d007b8ff Mon Sep 17 00:00:00 2001 From: Tian Hao Date: Sat, 27 Jul 2019 16:58:02 +0800 Subject: [PATCH] bugfix btdm sleep twice after wakeup request (2f7e614) This problem may cause HCI send command timeout. When host call VHCI api to do btdm_wakeup_request, then controller wakeup process will be handled in ISR and controller task context. As host task priority is lower than controller task and ISR, it will cause an incorrect behavior that before VHCI take the rx_flow_on_semaphore, controller sleep again, then VHCI cannot take the semaphore and has to wait the automatic wakeup. --- libbtdm_app.a | Bin 389038 -> 386376 bytes 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 libbtdm_app.a diff --git a/libbtdm_app.a b/libbtdm_app.a old mode 100755 new mode 100644 index 1b0dcc5cd42a81f5acf02d3a3af3180e3457102d..509b8ae1892e41a34789cd99e1c11be987314d0b GIT binary patch delta 16599 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 Y{l?yG9x-Du8Dt{f)AoIh_S4z_7ZSYisQ>@~