Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp5386262pxb; Wed, 26 Jan 2022 10:43:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJy/ewXHCgi+VhjlPVbIbnEVdxaXrZGWh5EKWhUyTgrFkZG4625QoLTp0Hu4912X32615gz1 X-Received: by 2002:a17:903:32c1:b0:14b:2d82:c05a with SMTP id i1-20020a17090332c100b0014b2d82c05amr20267116plr.55.1643222605081; Wed, 26 Jan 2022 10:43:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643222605; cv=none; d=google.com; s=arc-20160816; b=flcxDdBciaRoRAsgD4nNT/iVAVD/TOtVv9O4mNQVi1zAV3X9s2Fk4keP1ZOFPsepC8 B1AerULShRmJaW4orAC7bPv5hxCxFf+pleN8Z5sjvQL4Stoq8sERUt0vagXbUjaoHJsp ltNeYglf9xhWTGpipE0ml1/YMhHFX2K7rzk+r3TZZ8ptrxP6Tc8ufUKQ3llSFUxPYXQo IDzoyFsAlH8miDLdWgRKKmNsf9M9gjwgI+r2iAkCxzhGsfAOEe0rho/U+DdektcOyqsP Ep/+ZwPtSrkvKMvqNFF+eRW4D8X+hZfIUqHfyTSXdpeYlMfWDSy9ED98DThVht4QiFuX Am/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=43g7eQfNihO4PvfDCp/q0KW8Ai3xysLurmj0NB1X6JI=; b=z/h6EXEgmQD1vyPacqgWLZttETMMu5uwN6lnMjWn6fPa32VHMjsnKY5l3pbsxBVJyf IEMbcCeS/j5OVBINPUOSfveWANV/OpxK7De4EdkO0kHQfnXkOu1RsZUyvCNJFddv6yGv a5Ikk+GPbflA7Yo6jrj/I6Z2/Uk6Jd2jfTthvP6T9aNb3H0cv/4o3OY8AeBmJUXPAxmC sNFrio2ASWGYfdzXv4D3NzSvQiTRpaFMMyaqZ+DwYrvL5s00Xjol5tOkJfKolPm/y2VI H6P5E/3HFKcPIlj7zfbzab9/msmgcME0O+/yovLbdo1acvkv+fhwMnyiuZVKtKW5cxhQ gPQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lexina.in header.s=dkim header.b=VCRhhIFd; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=REJECT dis=NONE) header.from=lexina.in Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q3si7848pln.403.2022.01.26.10.43.06; Wed, 26 Jan 2022 10:43:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@lexina.in header.s=dkim header.b=VCRhhIFd; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=REJECT dis=NONE) header.from=lexina.in Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233397AbiAZFbU (ORCPT + 99 others); Wed, 26 Jan 2022 00:31:20 -0500 Received: from mx.msync.work ([95.217.65.204]:48834 "EHLO mx.msync.work" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233071AbiAZFbT (ORCPT ); Wed, 26 Jan 2022 00:31:19 -0500 X-Greylist: delayed 47802 seconds by postgrey-1.27 at vger.kernel.org; Wed, 26 Jan 2022 00:31:19 EST Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id D1171282C37; Wed, 26 Jan 2022 05:31:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lexina.in; s=dkim; t=1643175075; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=43g7eQfNihO4PvfDCp/q0KW8Ai3xysLurmj0NB1X6JI=; b=VCRhhIFdjeNKSoofU6YOSCS+vKVgFmgWOdy4dfk2phMG7BiPvu5yIiEk0bRLtadwzZrGKB sZ8RMmMC7O/rPSq+BCegZ1CLVYNuf3BddjnixVjidxmtOdawNYXZtuPUOmBDMov9ivSsq2 VP4fvjXz/dkCG2M/Q6vbmOMItp0/M6nHwjO1dQNZdCc2u9m0FACD9PFfQD1nlWrbyglxjn yjFCBHa6/hNJD02A3aFeeGTilkyTppNqXgfBXPPg5ouvc7F0gxanxih9a5g0PWUxKIms2r 1jS+hqL+rECjxNgdcOTyWB9IShnJHEGPmMHHuW2flMc7V+3D8V+bQuPOtkVTnQ== From: Vyacheslav Bocharov To: marcel@holtmann.org, johan.hedberg@gmail.com, luiz.dentz@gmail.com, linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Rudi Heitbaum Subject: [PATCH v6 2/2] Bluetooth: hci_h5: Add power reset via gpio in h5_btrtl_open Date: Wed, 26 Jan 2022 08:31:03 +0300 Message-Id: <20220126053103.3261693-3-adeep@lexina.in> In-Reply-To: <20220126053103.3261693-1-adeep@lexina.in> References: <20220126053103.3261693-1-adeep@lexina.in> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Last-TLS-Session-Version: TLSv1.3 Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Add power reset for bluetooth via enable-gpios in h5_btrtl_open function. While testing the RTL8822CS SDIO WiFi/BT adapter, it was found that in some cases the kernel could not initialize BT firmware. However, manually resetting the adapter via gpio (off/on sequence) allows it to start correctly. Apparently, when the system starts, the adapter is in an undefined state (including unknown gpio state after starting uboot). A forced reset helps to initialize the adapter in most cases. It has been found experimentally that 100 ms is sufficient for a reset. Signed-off-by: Vyacheslav Bocharov --- drivers/bluetooth/hci_h5.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c index 34286ffe0568..fdf504b0d265 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c @@ -966,6 +966,11 @@ static void h5_btrtl_open(struct h5 *h5) pm_runtime_enable(&h5->hu->serdev->dev); } + /* The controller needs reset to startup */ + gpiod_set_value_cansleep(h5->enable_gpio, 0); + gpiod_set_value_cansleep(h5->device_wake_gpio, 0); + msleep(100); + /* The controller needs up to 500ms to wakeup */ gpiod_set_value_cansleep(h5->enable_gpio, 1); gpiod_set_value_cansleep(h5->device_wake_gpio, 1); -- 2.30.2