From nobody Mon Sep 28 23:12:02 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D590837F30D for ; Sat, 15 Aug 2026 11:01:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786791696; cv=none; b=cioKhPaUw4vccy5QdNyfu40mN7p9IUkHL5rmaY5LzbLEFijOhqcn/7sWYh64msI8ZrJ3X2+bfIARBxtoIZ/Tt+eBX/YtJiKFqNmpgGfr9vHdppvb6DXitF+/CS/ZSWXVFYwg6QmCoYtFX4Yi2ltVLucqZeD6kg4n/Pr3b9wlzHg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786791696; c=relaxed/simple; bh=hUrEZHb5J9leLF9C4izObyVHkwOLF5zpgSLXsiveMEk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=necJciEGQgjVnVxg8/W02rJLuemPOHSPsvXyEUdmgIFLjQSHzA6bNIL3IM649k0rg6GhfRE9bWJE5UhdRKYgu6fB5F3RbYt73MIe9TKaY1dMbsuPK+DyJeolT6Zza+yrdpwHtup0rLCofhIXHr4j8OK2Tt/xK9Co8yMUKiWqfyo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=nXMk2GiY; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nXMk2GiY" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-4954a9e8490so17840955e9.1 for ; Sat, 15 Aug 2026 04:01:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786791693; x=1787396493; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=3ptK48I+o/8rObdtxGC8ySPWO1bsJQ+ZYfLF90RICns=; b=nXMk2GiYPlQ29MxJP93Are/Dtae2JmSmIE7Bx9YaL74Sd9VHWBTNHPJ6sclik2ZUg+ 6oV3hFQQfxThF9sMWclGYJw81URCY4liBg+HRJol7ZuwLNHsFsTZJOnB2HepmRbzPLyF vNaZ6PZck8KpfZLiVAbfC7Lb3Z3IvKij0WJBZK0pwht7e9NuJG4pIY1opeSkZAj+GDJU RHcu4oaEp3ArdxmFtcAufilWIPIhp9rNl3rYnUF/+dt7M4P0PInQ9hCAln8hhx296TNP Ez9ldrilYwjhd7i5qqr6li4C4+Ux2BSAKI5c3T5G6cTl/pQGVrRhwBkHDuVktLeCt+ZU 7Xsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786791693; x=1787396493; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=3ptK48I+o/8rObdtxGC8ySPWO1bsJQ+ZYfLF90RICns=; b=qw6KpQFle0WNdTL4Sq3NpzhKsB50z1ZZLY74bA61UrOw0Ihbv6gdFeB4+vVURgrRac GCKB/xc6rLi+OeouhkT262CIkLkhqJ4P9MqUE+UGf1d+H9YxWmeP2jk5uwtNUI9NVUoi 5OQUFZgioj5npC7Bmw5cjkqtSC8XHHLzHDJzDVJTMpT32jVRU7hHIeSyFpgrnyIwLOIG UuCR7AYzpLE9Kls8McJ8O5GDA3pEkU8VaJZa+OLIXJhk8jy2Qd3QoW3YtMatsUgvAnLc NGm+rOZUgyJi49yNE7ZqKD+SHxpGMt03gGxOMAhqeH64eF9hUnvVicHka5lPDA78ZUhB mx9w== X-Forwarded-Encrypted: i=1; AHgh+RouK+qofHCECgavfTtjt+eM+G1TNgTiVqvUluYmkK6VkIWHVvwGLeLdSiIGJ3fuowP0RzFV2f8A/LXqA74=@vger.kernel.org X-Gm-Message-State: AOJu0YwvLhJRZwZlUyUbDsB22/AcKv6KKpTm72+YeJ0d0+wL9veXZJF0 L/k3OxTrnOpjOH0R5wpWGwtjBtkelPgCyPLpJKq3dYO6pf0+TxCwepPx X-Gm-Gg: AR+sD11FC/HX2SIasofU/usyZR6hbIk3Nf91KYuudlhsvXjFsal5oKh1SW/z6PQ/NIF WmU7t5X2Id8zi5K4F5sbgn2cR2xsxCPKceRcwLLnki4QN++84PeEKfnPSnPVZ9yqR/KCYLrEXq6 wx0YfH2fpErMYB8jC/YJ5G5Tjbwod2bXAKvz22QpdVKrCymweh3/SRyrIn6938KjXYydv1H2JlW AXpvfrC8LfxJWboNQ1mZLSSZPuCFAfe9xASwx71wnHHe7bBGlIveyj6kcm9XY2kCKqyLSp4nMz9 SB5DOIQ08ZDkLLoBkQdF+0dFCkKjZ0BueaeUoYR3nfodgSRzGH8DiCy4tolxmbi/svtnHKJraT1 kxDPjqFZg2t+qcXwtlwYU7CXFTcSvCbVaPEtwO2XmoACzblGP6tlB3zPHkVsEarxZusdWd+KaJq dBF8w+kz38bssHdWZoLTcIafwui6vQ7pPR1q+4RHyL9PzcibYE7MYz7vGYT+YOUNQceseaUpvlL 0sjN0Ap246L1w== X-Received: by 2002:a05:600c:4e14:b0:495:3bc6:d381 with SMTP id 5b1f17b1804b1-49987a4f03bmr179458435e9.2.1786791693056; Sat, 15 Aug 2026 04:01:33 -0700 (PDT) Received: from archlinux.tailbe3ea7.ts.net ([185.19.153.11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49988b1d8f4sm133728035e9.11.2026.08.15.04.01.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Aug 2026 04:01:32 -0700 (PDT) From: Ismail Tarim To: Marcel Holtmann , Luiz Augusto von Dentz , linux-bluetooth@vger.kernel.org Cc: Jing Cai , Sean Wang , Chris Lu , linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Ismail Tarim Subject: [PATCH 1/2] Bluetooth: btmtk: Fix btmtk_usb_subsys_reset() reporting success on failure Date: Sat, 15 Aug 2026 14:01:18 +0300 Message-ID: <20260815110119.11301-2-ismailtarim7@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260815110119.11301-1-ismailtarim7@gmail.com> References: <20260815110119.11301-1-ismailtarim7@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" btmtk_usb_subsys_reset() validates the subsystem reset by reading the chip id back. When that read succeeds at the bus level but yields an id of zero, the reset has demonstrably not taken effect: the function logs "Can't get device id, subsys reset fail." and then returns the return value of btmtk_usb_id_get(), which in that case is zero, i.e. success. btusb_mtk_reset() returns that value unchanged, so its caller cannot tell a completed reset from a failed one. Return -ENODEV when the chip id reads back as zero, leaving the existing MT6639 exemption intact. Observed on an MT7902 [13d3:3579] where the controller firmware asserts and the subsequent subsystem reset fails, yet the driver continues as if the reset had succeeded: Bluetooth: hci0: Mediatek coredump end Bluetooth: hci0: Can't get device id, subsys reset fail. usb 3-10: reset high-speed USB device number 5 using xhci_hcd usb 3-10: device descriptor read/64, error -110 usb usb3-port10: attempt power cycle usb usb3-port10: unable to enumerate USB device Note that this corrects the error reporting only; it does not by itself make the controller recoverable in the case above. Fixes: 25b6d7593a3a ("Bluetooth: btmtk: introduce btmtk reset work") Signed-off-by: Ismail Tarim --- drivers/bluetooth/btmtk.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c index 66b346761043..dc702c0a6034 100644 --- a/drivers/bluetooth/btmtk.c +++ b/drivers/bluetooth/btmtk.c @@ -968,8 +968,10 @@ int btmtk_usb_subsys_reset(struct hci_dev *hdev, u32 d= ev_id) } =20 err =3D btmtk_usb_id_get(hdev, 0x70010200, &val); - if (err || (!val && dev_id !=3D 0x6639)) + if (err || (!val && dev_id !=3D 0x6639)) { bt_dev_err(hdev, "Can't get device id, subsys reset fail."); + return err ? err : -ENODEV; + } =20 return err; } --=20 2.55.0 From nobody Mon Sep 28 23:12:02 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E8F1C36F421 for ; Sat, 15 Aug 2026 11:01:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786791710; cv=none; b=JFEOu+kVRYe1ca/GCx75rL+2Rh2oyCSEP0QWPQyC2SUBNiMbaRDtZkRoIPtmkobuk6mvc+l4+BTEEBr9Hc+GIEfFJX+r+FN8+6Btm/S+i1F38etG1hZ2CZA1Pi9VCtvV6UERxt+l12oYmb598CCRUtxqQKZpEzKWQRM54oaQeZw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786791710; c=relaxed/simple; bh=b5LQIwGVpyvdNO/WfDgWI7hUw5OYOoA0sgu5/kZeQg4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kpfJ8DYsQPnRE08JiMqlIt5XZcC/AogL9qBaiApmpuqxoSNwkGXR14SBFDoMQXQt6fryU95/txXlKZYiTC6fbLA/+ZWJOWQSyCSfzpAKVCVCrRcEJW0aFJMxI9DpS4enVAtgQkElKfwP7TzTd9Nf26ZPShpakPI/vWlJFyvgbYY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PD33yn7/; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PD33yn7/" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4998e0916faso3985765e9.2 for ; Sat, 15 Aug 2026 04:01:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786791706; x=1787396506; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=9/9+rmVvmvs6s8dnr8ttRWG5a1oyP8FaGHhemcTL1GA=; b=PD33yn7/V8Rg9m4qaBE6Fr3fTo3JeIYd15yCFU7pDkX45Bzsh//zjYMcMmvXFE2cGZ PZvQZx4oaSn6jVkfVpeZhrnik2jE6uvZZUUeq/y+szBjkRW3EYmXWGFF/pJUDPNEn37O rSSFeoZooEu9AjhtNdlPKJDUG7viGhV8itJFRReymJ0+whDDHhUQc/Xbn66QSA1wPhwi 3LSUlyV7gUUctKt3cHr6jC0Y+V/TxpuNkAdJKqKeCxWdj5wnemgRlkQDOOR7eF/JXNjj Gv7/TKCE0Wi72ehIlfGyLLY3DIri7Hgvp1kOXZ/QtBtM2CGV5naPL3kTnHhBKrSQd6UI GQjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786791706; x=1787396506; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=9/9+rmVvmvs6s8dnr8ttRWG5a1oyP8FaGHhemcTL1GA=; b=CrhfJpzsW8N/ql8o2TGgKRQ/hzP9RTwTFGpdvnoU6SjN+MJCFnAPeLGnV0hkTIi9wq 6XDyzzQillseNjukOqd8K4FbgKaguxAj3NkWs2EmagGd5vEt1OdiTiTnVlt2/tQDDqtV j/x+wQ9+KV8gksM3MXWUw7dmMeid4k0nRzLfVb6XSTLLMVZ7kptXL3gYEof6EzkEhYCi DjiHDBcJG6jnnB/yTobmyhIfavkeYMy0qgsSx+4kaKz1edh6OAeiprelwYlmo9G2aHNq 69Kez2cL/PtzBFBjUgVFi/MlC9nmEZJ2cM0VlelQ5SWEGzqpwXqehC6bIpTj9TPjZPZI Ovjg== X-Forwarded-Encrypted: i=1; AHgh+RqxZgJYBWvDcXM6hRtfTv7RFfGsQpbut+rc+q4OPuF+qSG+VV8sj6W2gKxv1BqS7hEgqgyQRqUqDvyUZxM=@vger.kernel.org X-Gm-Message-State: AOJu0Yxbso76JPZsi/fIIgfqWxZbT90rMH/EVmvbA7AZBY1U/aL+le+S o7dyzpEMuN2bpVH9r9Cuxxypj71vmsLjMhaGQmPGiSwDUWJf0Cu0PU8/ X-Gm-Gg: AR+sD11iEzOANsZN6XZI81BBFhByoRYTwXnEv6BjgUcvl2w4718xzgLvdHtDVEG6LtV KIJ9JWuhwkzz0LyZE8fDAn77i24OWynkzf/Y1apJz0YUwTmFSsrK7O6HNHgg47ihqlOMC0PlJdh kjXlH4WKrTIqLgHwF8ABdo1jO8C+rwrlqTy7UO/96xTSbeGi0QLRMtCDrONidUgTRX4+mF0cfzm d9pNDrm24aclMv4uicEAaPQBJ9UeG1xaJUd2Trxjh6D66fQ5Fo3qFj6uNtCmf4CCs/v+YTi/EWW XEHybWpraGOxXtFt3YgItvP8giR+vDdaegbixuJd6J1OWzfJ1MRqx4ZcOonmxUU5Xb9zNRPztRZ NZwvJGoW8hSd8fJE5O6oEfxatZLE6LVhK8vufSlSNUnqd9h3vj+06SnvngeUsJOjNfd24Qe8MUq N2CO+Nd285ltn8sW8Ndr4Q3LbzGZGiARkXI9UjXvBRkWuP/kmO5uepXtX1K3AgdSC0CNap2DZlZ SJ8Kthsu4iV X-Received: by 2002:a05:600c:3b1d:b0:499:87b6:f3c0 with SMTP id 5b1f17b1804b1-4998807e4c9mr165228545e9.14.1786791705919; Sat, 15 Aug 2026 04:01:45 -0700 (PDT) Received: from archlinux.tailbe3ea7.ts.net ([185.19.153.11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49988b1d8f4sm133728035e9.11.2026.08.15.04.01.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Aug 2026 04:01:45 -0700 (PDT) From: Ismail Tarim To: Marcel Holtmann , Luiz Augusto von Dentz , linux-bluetooth@vger.kernel.org Cc: Jing Cai , Sean Wang , Chris Lu , linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Ismail Tarim Subject: [PATCH 2/2] Bluetooth: btmtk: Do not discard the subsystem reset timeout Date: Sat, 15 Aug 2026 14:01:19 +0300 Message-ID: <20260815110119.11301-3-ismailtarim7@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260815110119.11301-1-ismailtarim7@gmail.com> References: <20260815110119.11301-1-ismailtarim7@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When the MTK_BT_RST_DONE poll times out, btmtk_usb_subsys_reset() logs "Reset timeout" and keeps the error in err, but err is then overwritten by the return value of the following btmtk_usb_id_get() call, so the timeout is never reported to the caller. Commit 25b6d7593a3a ("Bluetooth: btmtk: introduce btmtk reset work") discarded the return value of the chip id read, so the function returned the timeout error as intended. Commit 3dcb122b3064 ("Bluetooth: btusb: mediatek: return error for failed reg access") started assigning err at that call and silently dropped it. Keep the timeout in a separate variable and return it, restoring the original behaviour without changing the control flow. Fixes: 3dcb122b3064 ("Bluetooth: btusb: mediatek: return error for failed r= eg access") Signed-off-by: Ismail Tarim --- drivers/bluetooth/btmtk.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c index dc702c0a6034..c0ed51567ed4 100644 --- a/drivers/bluetooth/btmtk.c +++ b/drivers/bluetooth/btmtk.c @@ -860,6 +860,7 @@ static u32 btmtk_usb_reset_done(struct hci_dev *hdev) =20 int btmtk_usb_subsys_reset(struct hci_dev *hdev, u32 dev_id) { + int reset_err =3D 0; u32 val; int err; =20 @@ -958,8 +959,10 @@ int btmtk_usb_subsys_reset(struct hci_dev *hdev, u32 d= ev_id) =20 err =3D readx_poll_timeout(btmtk_usb_reset_done, hdev, val, val & MTK_BT_RST_DONE, 20000, 1000000); - if (err < 0) + if (err < 0) { bt_dev_err(hdev, "Reset timeout"); + reset_err =3D err; + } =20 if (dev_id =3D=3D 0x7922) { err =3D btmtk_usb_uhw_reg_write(hdev, MTK_UDMA_INT_STA_BT, 0x000000FF); @@ -973,7 +976,7 @@ int btmtk_usb_subsys_reset(struct hci_dev *hdev, u32 de= v_id) return err ? err : -ENODEV; } =20 - return err; + return reset_err; } EXPORT_SYMBOL_GPL(btmtk_usb_subsys_reset); =20 --=20 2.55.0