diff --git a/Runner/suites/Connectivity/Bluetooth/BT_FW_KMD_Service/run.sh b/Runner/suites/Connectivity/Bluetooth/BT_FW_KMD_Service/run.sh index 778394f0..60b56cbc 100755 --- a/Runner/suites/Connectivity/Bluetooth/BT_FW_KMD_Service/run.sh +++ b/Runner/suites/Connectivity/Bluetooth/BT_FW_KMD_Service/run.sh @@ -89,6 +89,7 @@ fi # ---------- DT node / compatible ---------- # ---------- DT node / compatible ---------- if dt_confirm_node_or_compatible_all \ + "qcom,wcn3950-bt" \ "qcom,wcn7850-bt" \ "qcom,wcn6855-bt" \ "qcom,wcn6750-bt" \ @@ -104,7 +105,7 @@ fi if fw_dir="$(btfwpresent 2>/dev/null)"; then log_pass "Firmware present in: $fw_dir" else - log_warn "No BT firmware matching msbtfw*/msnv* found under standard firmware paths." + log_warn "No BT firmware matching msbtfw*/msnv* or cmbtfw*/cmnv* found under standard firmware paths." inc_warn fi diff --git a/Runner/utils/lib_bluetooth.sh b/Runner/utils/lib_bluetooth.sh index 89246abf..b8e6b8b3 100755 --- a/Runner/utils/lib_bluetooth.sh +++ b/Runner/utils/lib_bluetooth.sh @@ -1880,15 +1880,30 @@ btpower() { btfwpresent() { dir="" + pattern="" + file="" + for d in /lib/firmware/qca /usr/lib/firmware/qca /lib/firmware /usr/lib/firmware; do [ -d "$d" ] || continue - if ls "$d"/msbtfw*.mbn "$d"/msbtfw*.tlv "$d"/msnv*.bin >/dev/null 2>&1; then - dir="$d"; break - fi + + for pattern in \ + "msbtfw*.mbn" \ + "msbtfw*.tlv" \ + "msnv*.bin" \ + "cmbtfw*.tlv" \ + "cmnv*.bin" + do + for file in "$d"/$pattern; do + if [ -e "$file" ]; then + dir="$d" + printf '%s\n' "$dir" + return 0 + fi + done + done done - [ -n "$dir" ] || return 1 - printf '%s\n' "$dir" - return 0 + + return 1 } btfwloaded() {