Received: by 2002:a05:7412:a9a3:b0:f9:327e:43ab with SMTP id o35csp3205rdh; Mon, 18 Dec 2023 02:24:42 -0800 (PST) X-Google-Smtp-Source: AGHT+IE4VJF5CSDas3u8xBGBlY1HzcLV1Q+NNnihj8SCvprjxzaLRAGipN5Zy8lw5vw/my0EpeyH X-Received: by 2002:a17:907:75cd:b0:a23:49c5:20d7 with SMTP id jl13-20020a17090775cd00b00a2349c520d7mr563321ejc.119.1702895081683; Mon, 18 Dec 2023 02:24:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702895081; cv=none; d=google.com; s=arc-20160816; b=ka5MR5ttqsPvJ99XKkmFwU9wvUp6zLzTQZ3QVPwJ5tihWLYw20N/QVqq158rc2laK3 OPAVh25SCwa7oPf26M2ZK0AlpTrPCo5ZgBi7/mhmtT4jAafKGA7ehf1Q5HW6aYH3+Tp5 1O5cirSBn6nIjYNDAoRcMlhyzUPOcebArbtqan/bsblF9MQGes5Yo2PPSnSkTCVBhJ1o kDJ/yav9Jel1zoYiwUuRVW7gFGlIb+XUc4oWHGn8ZsX3iryiMO87C7LxjoluS8bdqNXO GkKiaXwcmzN95cwVHD9gUuT+V44nDfoZ/Y23cpmSjCQG7TlstZM1pXDjVzhS/7uxAPwz 0aIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=unr0Ulfwae3XPBopvjUBdsU4Sd/Qnsw8hRJtbljb50M=; fh=nfLoPTX1ApohuoorDJDRtvMGrrjHCbsb0DtsGDzsols=; b=y0leo11kvPxO6jMByFwd1ce18nrrhWg7/60p9qqlPm4BnITzKGX6EM2ZFHfl8NBXM/ w4AU8lDmtFIxPQfhyae1z4J8Tyd0AOVoO1c7NiYQwPK/VrtMVBXvl/uz0IHI6p+aOH8u nP/4M0EQbrEeCMSIn/U3DxIofJSmY2wIqgSmzXvlVWwCeShLjQ95DK14u/qFfzEYMVGu 6zPMGmV0pbem+MId+MM4+y3s/zx5Lz3oQJEcdgSvTdg10XSm5gTclp61gPdi4fItlWPi jhM3wIVYGPbZWIAL7Zj1ekZSxxEogOnbypteGAufwKwxb/p+PNhX5aKv9fBf2WrJRUH+ rP9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@163.com header.s=s110527 header.b=pJtVrrXy; spf=pass (google.com: domain of linux-kernel+bounces-3319-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-3319-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=163.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id n20-20020a1709067b5400b00a22e1489492si6089982ejo.896.2023.12.18.02.24.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Dec 2023 02:24:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-3319-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@163.com header.s=s110527 header.b=pJtVrrXy; spf=pass (google.com: domain of linux-kernel+bounces-3319-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-3319-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=163.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 1FB211F23180 for ; Mon, 18 Dec 2023 10:24:41 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8E56E1426F; Mon, 18 Dec 2023 10:24:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="pJtVrrXy" X-Original-To: linux-kernel@vger.kernel.org Received: from m12.mail.163.com (m12.mail.163.com [220.181.12.215]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C650913FFA; Mon, 18 Dec 2023 10:24:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=unr0U lfwae3XPBopvjUBdsU4Sd/Qnsw8hRJtbljb50M=; b=pJtVrrXyQJr5ZAGKY6Wov I+z4hiy3DvF44rvb1Gac9af24EplrFWQ9XWPjR9SyQ7vqYqF7MtdsCyeRV08Dpkz EenqoGY02L+EMFSq9YghZCXj+D0qwPB4drV1z6BGNG+mli2nWyBQj0VeNbDaH/Ho hcAn6DcMFl0MKelsDbDyns= Received: from WH-D-007635B.QUECTEL.COM (unknown [223.76.229.213]) by zwqz-smtp-mta-g5-3 (Coremail) with SMTP id _____wA31RbTHYBl5dQBGA--.58997S2; Mon, 18 Dec 2023 18:24:20 +0800 (CST) From: 15013537245@163.com To: marcel@holtmann.org, johan.hedberg@gmail.com, luiz.dentz@gmail.com Cc: linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org, zhongjun.yu@quectel.com, clancy shang Subject: [PATCH] Bluetooth: hci_sync: fix BR/EDR wakeup bug Date: Mon, 18 Dec 2023 18:24:17 +0800 Message-Id: <20231218102417.474022-1-15013537245@163.com> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:_____wA31RbTHYBl5dQBGA--.58997S2 X-Coremail-Antispam: 1Uf129KBjvJXoWrKFW5Ary5JFW3ZFW8GFWUCFg_yoW8JrWxpF y2kFZ3tFZ5JrWak3W3A3WIgFyUAF95WFsrCFWqy345X342qr48tr4jkr1rWF18CrZ2kr1f ZF4UtwsxW348Aa7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jkwIDUUUUU= X-CM-SenderInfo: rprviiitvtljiuv6il2tof0z/xtbBEBVK12VOBAnt+AAAsr From: clancy shang when Bluetooth set the event mask and enter suspend, the controller has hci mode change event coming, it cause controller can not enter sleep mode. so it should to set the hci mode change event mask before enter suspend. Signed-off-by: clancy shang --- net/bluetooth/hci_sync.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c index d85a7091a116..97284d9b2a2e 100644 --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c @@ -3800,12 +3800,14 @@ static int hci_set_event_mask_sync(struct hci_dev *hdev) if (lmp_bredr_capable(hdev)) { events[4] |= 0x01; /* Flow Specification Complete */ - /* Don't set Disconnect Complete when suspended as that - * would wakeup the host when disconnecting due to - * suspend. + /* Don't set Disconnect Complete and mode change when + * suspended as that would wakeup the host when disconnecting + * due to suspend. */ - if (hdev->suspended) + if (hdev->suspended) { events[0] &= 0xef; + events[2] &= 0xf7; + } } else { /* Use a different default for LE-only devices */ memset(events, 0, sizeof(events)); -- 2.25.1