This patch fix an issue when Android disables BT during ongoing
paring. In this case mgmt did not accept any commands and BT gets
in some unknown state.
Since Android turns off BT anyway, it is ok to just cancel all
the mgmt requests before send power off command.
---
android/bluetooth.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/android/bluetooth.c b/android/bluetooth.c
index ff41627..ad8cfec 100644
--- a/android/bluetooth.c
+++ b/android/bluetooth.c
@@ -2907,6 +2907,9 @@ static void handle_disable_cmd(const void *buf, uint16_t len)
goto reply;
}
+ /* Cancel all pending requests. Need it in case of ongoing paring */
+ mgmt_cancel_index(mgmt_if, adapter.index);
+
if (!set_mode(MGMT_OP_SET_POWERED, 0x00)) {
status = HAL_STATUS_FAILED;
goto reply;
--
1.8.4
Hi Ćukasz,
On Thursday 13 of February 2014 11:51:32 Lukasz Rymanowski wrote:
> This patch fix an issue when Android disables BT during ongoing
> paring. In this case mgmt did not accept any commands and BT gets
> in some unknown state.
> Since Android turns off BT anyway, it is ok to just cancel all
> the mgmt requests before send power off command.
> ---
> android/bluetooth.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/android/bluetooth.c b/android/bluetooth.c
> index ff41627..ad8cfec 100644
> --- a/android/bluetooth.c
> +++ b/android/bluetooth.c
> @@ -2907,6 +2907,9 @@ static void handle_disable_cmd(const void *buf, uint16_t len)
> goto reply;
> }
>
> + /* Cancel all pending requests. Need it in case of ongoing paring */
> + mgmt_cancel_index(mgmt_if, adapter.index);
> +
> if (!set_mode(MGMT_OP_SET_POWERED, 0x00)) {
> status = HAL_STATUS_FAILED;
> goto reply;
Applied, thanks.
--
Best regards,
Szymon Janc