From nobody Mon Sep 28 23:06:23 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (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 D402D397AEF for ; Sat, 15 Aug 2026 11:56:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786795005; cv=none; b=RRUkp+dnIxH2u4QS4T/RWkPSlLygeiQqsiI65GeRSd2us2B/ed5gutGqeIWkEFKBAEfHynsMmb3MRxfO9PxSjzGWZa2XpTnjf8t9UiW7wv3djlJQJI0vzXpoDHqaR892JymjmNE2kIXj3tqAktw1Vx8OaJT+T1x08AtSpcO0xtk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786795005; c=relaxed/simple; bh=jryRxjqTE3dL1Kz6tqHtb7AjwGT7zGFF9zHrjezAJBA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pL40czWrnrKXykDIoHEeRDtufn1FSzQ5fGDbaLXebnR5lgY4gS7cxhtYlGcd+ps6MwqPPQcZDS3Cq1+Nf0ot0Fz2YUMYOxPaxX3CkSOOsNa5TrGESTpOUQhaMu/5YX0pD7Vmep/PZKQy5Y6aSo3oVhWmxZ77snrruOsP+IAJ67E= 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=QmzwoxCh; arc=none smtp.client-ip=209.85.128.54 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="QmzwoxCh" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-495437bb891so14126345e9.1 for ; Sat, 15 Aug 2026 04:56:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786795001; x=1787399801; 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=2EvcCjXX/E/EH5B0VOq94NnG4HOn80gOVENNBtRlSfE=; b=QmzwoxChX9eYXhf8sV61oBYLvGLxWt5QlcG+qgxglyOgmuwSWtIkW84zy6i2ASFV3R 2nj7VijpRp/3kLyilleS3eSFHldJYU0FfnMnjBsUWRKG4ySOd6wvLandFNsC6O/shHwa 9i9/xOxswECYsUG9YqBrxYKfZWi1DOkJFV8voSABLXQ+nZVFlwh+hJXi+U3Y1Q4+5FuT vevz7uQ8dsg5L3+1NFEo08Vc3x/BdTFQfEP5zy4QEPrW5jf2Fd6XR+1uJR/1/GLv165w 1EfOhN0Uig02/BPf+Hu22kjnrUTETZBzYPX8yn4XtGVcHrlncms3iiVNQSEKY7q9zPxF jaxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786795001; x=1787399801; 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=2EvcCjXX/E/EH5B0VOq94NnG4HOn80gOVENNBtRlSfE=; b=LfpbwJtfo5pBhO+hXlNn0Nj2cN3a2gB6NDYwIixtnIDjnxZL9tXLFgd5o86BWwdMtq nJ1O1h/zx1oIZvjlscqCCeRIQArCK03C0/3RB4x17trzdlQ+zXGAqrcRufgX7WGhKjLr W8hrKerNoHJFg0UwfmueA4u0iSs2A/y4K8JdFP4WNHUInerMe3qwcd0ui2hs+x1nLufN x7T1/LKayhi+jRIBX71E9S+jysZ2q8rXHSP7w6Dr0sLz6t1MZQLflr93KvRjIKbxcVNr V9a1MlLwd6yzOD+NxwxWvjpopbwSSCM447Ifap5i8fH1fJAr6BmCumeg7NZLM3Ji++Cw 6j4Q== X-Forwarded-Encrypted: i=1; AHgh+RrCT85QyGb225aeV1LsipyRni/gV+CK4eG4JzdJY48KLsbmioWkGJBerBX5MfMa+iGCNF/CkwCmsRLEaVk=@vger.kernel.org X-Gm-Message-State: AOJu0Yx2fDaGZuYU5wTSGgcM11oALYNeLRoCOyrV6MqXREmWS8knHEdu mQpaOr69QDykTRr/cj2xi0cObu4foGu3gEts8YRwa/R0dshTzjHlLFHk X-Gm-Gg: AR+sD10Dwp2i1txlFlnQjYNjPfo2XLN38WqL89VORV5lpLmwLNRjoEVgpymj5unIa1n MsQua+B2jtQGTKcKcrcAVv31he2cqQzjZ9JXZhFGHvkfuEysOx/e/UG9LqM/IJMJIlmpZUK4/BK lOiIrflPM9zkNjOLoJoXHLIvDvGO5hlXFfIvgyC6WgkVQKrGedGcslj/jUySB4Ax4PsPl89WNBN AWu0gykwxyfrFGDvhHfW1KcbV/qlmXaonXriwln/i0Qq4w0cst3Ar7vi4HF4PB89DxgO4BF4EZn mlPiW3gvt5O2FwlaiL3RGohqO/l1ogqldcPSCNAcGh96VH5uCH08xOaJ4C5Nc0U3wr3Kn+lxa9P lZs9rmtna7I3OrdHn52/MMs8s0t0ELUvEpBt5090YX4GDWFxTrrdoQ36I16CVDU8yCfLxtapmqT IC4KmTmpIhzRNnzM0JHDS51r4K/B6LbsLAt813oUR1Z+6SYxlKGco6vjlzEqX7ri1Aj9/85QaKv f1GRG1Xk7K3gH5KcA== X-Received: by 2002:a05:600c:4309:b0:499:8afd:4a9f with SMTP id 5b1f17b1804b1-4998afd4d6cmr78007035e9.0.1786795000955; Sat, 15 Aug 2026 04:56:40 -0700 (PDT) Received: from archlinux.tailbe3ea7.ts.net ([185.19.153.11]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4815f2c129dsm16085455f8f.26.2026.08.15.04.56.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Aug 2026 04:56:40 -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 v2 1/2] Bluetooth: btmtk: Do not report success when subsys reset fails Date: Sat, 15 Aug 2026 14:56:23 +0300 Message-ID: <20260815115624.8309-2-ismailtarim7@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260815115624.8309-1-ismailtarim7@gmail.com> References: <20260815115624.8309-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]. The path can be reached on demand by asking the controller for a coredump, since btmtk requests a reset once the dump completes: # echo 1 > /sys/class/bluetooth/hci0/device/coredump 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 The same sequence occurs unprompted when the controller firmware asserts on its own. 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:06:23 2026 Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.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 F14D23B6379 for ; Sat, 15 Aug 2026 11:56:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786795008; cv=none; b=L2T7WP1HysRKZq+51zzVFyizsprsyoun3SayRnHN8vl4UmOkdC4kp04mLbwCmSXpxaTZ7kObkjzkgRicAMv01ue7N8forYygwQEOBmzlrxwWqesXq++cw3SNSgNsnDD+y48P3EfqWexGj2i71KVg/hIvcOySdUZOHDoBhB6d8Us= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786795008; c=relaxed/simple; bh=b5LQIwGVpyvdNO/WfDgWI7hUw5OYOoA0sgu5/kZeQg4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NUdgO4dEv6ANrYA69uaS3pT8wYVLLJO3Ga9s3lVoDtnYO4ixOXiwVCzxWRakXg2S5hi5IlINB1sillEujKoW0UUpU2aaT63h14gKWIbn20exohnl4JtFVrSwBLOk4ZyneWCq9bNqv2AwQAqVxObwScRS/+rqqT2F8P4u0WKBMWs= 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=m4UAO/7J; arc=none smtp.client-ip=209.85.221.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="m4UAO/7J" Received: by mail-wr1-f52.google.com with SMTP id ffacd0b85a97d-471eeac43bfso1691177f8f.3 for ; Sat, 15 Aug 2026 04:56:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786795005; x=1787399805; 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=m4UAO/7Jrx2eKOR2GDdqDlQ1zZmhcy2bvhoZSSSY0gP4y8lHFbaAO7bCLXbcZvJRCS BupAgmNQ6zddMp2WtxJbXYgUNxOE82MwRBX1ckdJEQNiTPeawX0FiP/tg6W71Er4aiMA Po6y+G6DLG66SEmvmJ/Jd7K8gA59c0SPNCK3CRaE8AGdR0moZpfhgb54WtrgdXf8Uf7G +e0V3EDFQvsUCOCqqSzWzNJyGAlmFaX8Fmt2nWCUHa3ur2vUioUQPlDKpvFcOwyZ8QGL P2NDvJg3so7fYhd7rJDH9rrxeLH9SDvs3bug5dkxkMLv/HYPr7lsO37W06kna48R6XmP cxjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786795005; x=1787399805; 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=aclmWeGqsrFTzFfRTUX4Lv3rt/pUEpkCh7HJWNsZmA9WoHzmFf1PMFN9q3LJrDKJzB zeK8LOe+M5NUylZRtUeAaUaST8V9B2/RzzlZklAe0sOordc9rpcumk75MfWsO0aBxOjl RYFocsoM7RocElJERcEchThLTB2VWGE/+Z47L/6zxSt2O3OFOqyi3ifnHbbDVMfXDNGp kqEe3Vooxs/Lzj8/rnU9Vc8matzQFAcUoZYE0yahz3ZQzLpEt8yFnmZ7no0rDmt/g/jw JXpoYuTOW+oE032QiiMaAmUDuB/sazGVIr1ax36rg7NOUdUjZgxtYyufhNKOLuD8YlTj nl8g== X-Forwarded-Encrypted: i=1; AHgh+RqdDR5N2LRVgmDoD9eCZFfyI21hk4N5Yxk/+7HzRfaEwxiV1y+4sdBRTIl7WY+tPy3PQR9ojv6pF8skMCM=@vger.kernel.org X-Gm-Message-State: AOJu0YxmMaMzQTDo7deX4VUoCr7I2vH6df8KcdYeBC1ABtmabR+DF6NK a5/+YlKlsmb4kq7H5/7Xq6HNGJfc9YcDSKqXkEI0oHPleqyd0YgmVCJ7 X-Gm-Gg: AR+sD10oD17lBfuu3HEpUfu3PI0j9wxnndXJMFk/puGDREGECOiuzhV8SEK/QMf/uDp u/RsUpg3VGycoD4NbmWQ+vpTLF5i+VsfArTLSvs4/wo3TvybXOcLVFk0IL0rR0GFfnHZhW9z8bA XuwFJjasQumXPCMM+qUb9aVPHGB/P0zjT1FjmRJX0FkQFSMXRxuapBuXZXMzPyg/pMNieHafV1j 22IKOzDiHCZhvHm9O4rXA9kUAKlDoUmVrXtkdziZaWLtc3W/CkyPD72hGle33LBCv7+xonsZnjM Nvn2eb1tZ58ntG6fGBo2OxHKfoVm3j82/INY90kzL5A6jTi1HZHVp9caSwjGstfEz4C1Unx7cfF rmk+1FwJ3NGi/miboCxgiKPlbODR8HR1oyQzqJPzE/Ljds0xd0mphGzhOXWoABhRR9GXFJQVF0j EmsB3iVvESYQKesoom/P9MnPGMKkVtN9fo8Z5JD7FM0xPofC3Y4ng51pEa1xUGh2bhDNkKe0h+h /yD4aKKzeTR X-Received: by 2002:a05:6000:25f5:b0:482:984d:fdd2 with SMTP id ffacd0b85a97d-482984dff83mr6257452f8f.20.1786795005196; Sat, 15 Aug 2026 04:56:45 -0700 (PDT) Received: from archlinux.tailbe3ea7.ts.net ([185.19.153.11]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4815f2c129dsm16085455f8f.26.2026.08.15.04.56.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Aug 2026 04:56:44 -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 v2 2/2] Bluetooth: btmtk: Do not discard the subsystem reset timeout Date: Sat, 15 Aug 2026 14:56:24 +0300 Message-ID: <20260815115624.8309-3-ismailtarim7@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260815115624.8309-1-ismailtarim7@gmail.com> References: <20260815115624.8309-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