Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp3854026rdg; Wed, 18 Oct 2023 07:56:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHe6Jn2uS8NFrYkyarfGkIMeUmf553YE3HW6gEk5Tzj7ArEGVVpa283CQ7TXk3NIE3wuAkO X-Received: by 2002:a05:6a00:1ace:b0:6be:5367:211b with SMTP id f14-20020a056a001ace00b006be5367211bmr5508126pfv.3.1697640973051; Wed, 18 Oct 2023 07:56:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697640973; cv=none; d=google.com; s=arc-20160816; b=PEOWUT9Au3/pIteM0eGEpxtRXEo62biAH5pX5X/PQswzZntSy+i/JXG7IdSfYOLyKn eV03vMqPWo/S7cmewzg81jYmhp30IY4d//BbSfd/RQWwvGdA6yUjr5mH+5opbXuld9wx pFxrbotTdCsfWieqr+QpQrv4jD8D/1e3M87Tqo/3Vt16oFDuWKikusSyzZDrAejk1FZy CCyZjYYtcMF/pC2+1BpGxHXTmazRrFjDtxjbqQJj+SSLBAJpWfp8NNLlFFNxpxV/OFgZ A4kcw7TBaPVbJpsaz6zZzfUyzbEEfvU2uzy8oMqN9xKCNMmeMBvUxhFRvrKo/1LC3ac3 175w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:ui-outboundreport:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=nvBOIlS5iJr9tezncFJX8CsZlLO8k3Og3wRYsfbplQA=; fh=0hdKmUcTUr5j/r7Hj5mbXZSUW10oEW1JATmvT41AnF4=; b=pWx5DFM3VcfmPpb11Nis33PgNEkzolr3LGwDzjEx74mOWdMO4V8R503KT5bdikiPBd lLPlYByM+i0+lmNQBQYSqFwZHIAtnWfLaT67+whOCDqmZXULJOkWFoqKBxAKJL5P0UCa RuXzRCVIEgjgxALBA43QmBCCJQZi/nr1LShFh5PTvxkp7fisMaGP/OoBjE+HSeFnoPlw 9ZiiPyNr7f1eMmcA0HDIaCl5jM1l+3nOwN8IthyUvZntBWf2Ep7Sxj9T7AEHQJQj04Ko LD8b0dunLsNbr3TYjYmNm4aH6W7U3SqioRqaGN1Fn+YhfAKX29ncd4OOVKulhWQ6pXIP JL0A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Return-Path: Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id v15-20020a056a00148f00b006b59f4771c5si4275732pfu.277.2023.10.18.07.56.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Oct 2023 07:56:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 10A6080F6481; Wed, 18 Oct 2023 07:56:08 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231247AbjJRO4E (ORCPT + 99 others); Wed, 18 Oct 2023 10:56:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235219AbjJRO4C (ORCPT ); Wed, 18 Oct 2023 10:56:02 -0400 Received: from mout.perfora.net (mout.perfora.net [74.208.4.194]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E5EE8EA; Wed, 18 Oct 2023 07:56:00 -0700 (PDT) Received: from toolbox.int.toradex.com ([213.66.31.70]) by mrelay.perfora.net (mreueus004 [74.208.5.2]) with ESMTPSA (Nemesis) id 1MI55X-1qmkxj1GCN-00F8Gg; Wed, 18 Oct 2023 16:55:52 +0200 From: Marcel Ziswiler To: linux-bluetooth@vger.kernel.org Cc: Sherry Sun , Johan Hedberg , Luiz Augusto von Dentz , Neeraj Sanjay Kale , linux-kernel@vger.kernel.org, Marcel Holtmann , Marcel Ziswiler , Amitkumar Karwar , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH v1 2/2] Bluetooth: btnxpuart: Fix nxp_setup Date: Wed, 18 Oct 2023 16:55:40 +0200 Message-Id: <20231018145540.34014-3-marcel@ziswiler.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20231018145540.34014-1-marcel@ziswiler.com> References: <20231018145540.34014-1-marcel@ziswiler.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K1:+MFEQ/J99joPxvIsCqTTlAHdQvjl7U1vV7zy6rVxiDyAsju9BZN 6V6aDZOOfqFZpc6MQkuHmCLo+ZcIDwK7L8e2QTnivo5Q0I4KIWF9jND7wA7BcRR4Pu+qJyI AbwTyeSlk3A3/6pU/BC1ZCPk26tivUXMRIAvpXFTkmUpfritabMPvF26VeONfSKgCU4CrVp iJKiXKyfvEKuFMt9dZViw== UI-OutboundReport: notjunk:1;M01:P0:M955cJquLio=;4/OtX+QdajlRNC6k1uaGtR0pnzq 0HBvWwPIoXxcKB2NoKJ4DwWbHl7iU+gPwPSjs0L7aSSaV6XGPkqXBwUAbETRzYXoA+GPjJEd0 S3wUNal/Nj8x9Bxr+mqqxXzJHwEG0KpB0hzMNg0JRiaOm4hsY/OMUqCbviRo2GBsnKwJvYOfG OERzvRjsSotfq5LQPqY3P3j8l0uSR1vP4NSwUvm9Lf7WMFdYqiTKyYDWeUWiUWGd3XSLmpKqA tc9H8IBFhED+IUzNBW2sadrOdOJjgzZEgQWFs8OidqFvpblld+HBB0iPyQaDhxpqYzRvu1/ek aZACIx/eSzXuH8qIH2UtVyuYT0R+m3uuXgrv9jb9v3rqQs81FF6sZnt+9NK1R2txsSgcga2rV UzJAtdOqkjY3s9vlAqpBXwhvmQ3gG1SZ0TQr2X/J4uXXa8OA8l90GKnLAKu/m/OhhLHG1HPLi u8gZW2KbIRCxP73FgBt8uS9ggFyc33qGrpl/8ZmBgBA8pGfF5eA8Qyys1VTdcVbesYzvpeZeO fTsXq7UJDDoRYcm5l8WMsoj7SgtOufglNt2TdtXCKsjjbPlqC29nqfYRSPdc2xqFdrxeCCpP8 35jQpTaFh5hIXxIk/ivmQ3M+EEZa9cnv2KjcnjN+IuuHsJO7vJaL7PcWAs+qsWCpF31zBACQC lG7VHZADfjrfIv5ToecpnOe+x2gET8grN4QpXswa06JtGKZHkcAd554TYakJOfKzxf6nYrDGt RhmlRTScYYK5frp/hoszOREVnwepIBK4SbLx4z3My1eYvzIks/XaHsNx5zduVyWG2yyjjpLh2 PxoIpd40vm3nlqcB8N7i/vpYX/GADMmxx7gCtMqwulJelhSjU1NnT2qGwdKjNkJbc+qaVw0DG i8NWHqFFcM+ZPHg== X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Wed, 18 Oct 2023 07:56:08 -0700 (PDT) From: Marcel Ziswiler Unfortunately, nxp_setup() may inadvertently assume that the firmware is already running while the module is not even powered yet. Fix this by waiting up to 10 seconds for the CTS to go up as the combo firmware might be loaded by the Wi-Fi driver over SDIO (mwifiex_sdio). Fixes: 689ca16e5232 ("Bluetooth: NXP: Add protocol support for NXP Bluetooth chipsets") Signed-off-by: Marcel Ziswiler --- This is what may happen without this fix: [ 284.588177] Bluetooth: hci0: Opcode 0x0c03 failed: -110 [ 286.636167] Bluetooth: hci0: Setting wake-up method failed (-110) Unfortunately, even re-loading the btnxpuart kernel module would not recover from this condition. drivers/bluetooth/btnxpuart.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/bluetooth/btnxpuart.c b/drivers/bluetooth/btnxpuart.c index 9cb7529eef09..4b83a0aa3459 100644 --- a/drivers/bluetooth/btnxpuart.c +++ b/drivers/bluetooth/btnxpuart.c @@ -1021,6 +1021,16 @@ static int nxp_setup(struct hci_dev *hdev) if (err < 0) return err; } else { + /* The combo firmware might be loaded by the Wi-Fi driver over SDIO (mwifiex_sdio). + * We wait up to 10s for the CTS to go up. Afterwards, we know that the firmware is + * really ready. + */ + err = serdev_device_wait_for_cts(nxpdev->serdev, true, 10000); + if (err) { + bt_dev_err(nxpdev->hdev, "Wait for CTS failed with %d", err); + return err; + } + bt_dev_dbg(hdev, "FW already running."); clear_bit(BTNXPUART_FW_DOWNLOADING, &nxpdev->tx_state); } -- 2.36.1