From c6b424d8cce143c9f79e63ae75b78ef006d6551b Mon Sep 17 00:00:00 2001 From: Sebastian Pastor Date: Tue, 28 Nov 2017 15:40:39 +0100 Subject: [PATCH] bluetooth-init: if hciattach fails, reset the BT interface and retry With these changes the hciattach mechanism is retried up to 5 times. Signed-off-by: Sebastian Pastor https://jira.digi.com/browse/DEL-5343 https://jira.digi.com/browse/DEL-3711 --- .../bluez/bluez5-5.41/ccimx6qpsbc/bluetooth-init | 16 +++++++++++----- .../bluez/bluez5-5.41/ccimx6ul/bluetooth-init | 16 +++++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5-5.41/ccimx6qpsbc/bluetooth-init b/meta-digi-dey/recipes-connectivity/bluez/bluez5-5.41/ccimx6qpsbc/bluetooth-init index 1a9741841..f6fbc3047 100644 --- a/meta-digi-dey/recipes-connectivity/bluez/bluez5-5.41/ccimx6qpsbc/bluetooth-init +++ b/meta-digi-dey/recipes-connectivity/bluez/bluez5-5.41/ccimx6qpsbc/bluetooth-init @@ -48,11 +48,17 @@ bluetooth_init() { # Start the Bluetooth driver and bring up the interface HCIATTACH_LOG="/var/log/hciattach.log" - killproc hciattach - powercycle_gpio "${BT_EN_QCA_GPIO_NR}" - if ! hciattach ttyBt qca ${BT_RATE:-3000000} -t30 ${BT_FLOW:-flow} unused ${BT_MACADDR} >${HCIATTACH_LOG} 2>&1; then - BT_ERROR="FAIL (hciattach)" - fi + + for RETRY in $(seq 1 5) + do + killproc hciattach + powercycle_gpio "${BT_EN_QCA_GPIO_NR}" + if hciattach ttyBt qca ${BT_RATE:-3000000} -t30 ${BT_FLOW:-flow} unused ${BT_MACADDR} >${HCIATTACH_LOG} 2>&1; then + return + fi + sleep 1 + done + BT_ERROR="FAIL (hciattach)" } # Source function library diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5-5.41/ccimx6ul/bluetooth-init b/meta-digi-dey/recipes-connectivity/bluez/bluez5-5.41/ccimx6ul/bluetooth-init index 925d4933f..6cad5a082 100644 --- a/meta-digi-dey/recipes-connectivity/bluez/bluez5-5.41/ccimx6ul/bluetooth-init +++ b/meta-digi-dey/recipes-connectivity/bluez/bluez5-5.41/ccimx6ul/bluetooth-init @@ -67,11 +67,17 @@ bluetooth_init() { # Start the Bluetooth driver and bring up the interface HCIATTACH_LOG="/var/log/hciattach.log" - killproc hciattach - powercycle_gpio "${BT_EN_QCA_GPIO_NR}" - if ! hciattach ttyBt qca ${BT_RATE:-3000000} -t30 ${BT_FLOW:-flow} unused ${BT_MACADDR} >${HCIATTACH_LOG} 2>&1; then - BT_ERROR="FAIL (hciattach)" - fi + + for RETRY in $(seq 1 5) + do + killproc hciattach + powercycle_gpio "${BT_EN_QCA_GPIO_NR}" + if hciattach ttyBt qca ${BT_RATE:-3000000} -t30 ${BT_FLOW:-flow} unused ${BT_MACADDR} >${HCIATTACH_LOG} 2>&1; then + return + fi + sleep 1 + done + BT_ERROR="FAIL (hciattach)" } # Source function library