Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp13334790ybl; Sun, 29 Dec 2019 09:32:23 -0800 (PST) X-Google-Smtp-Source: APXvYqyuUWB+KeXMByzHDeRsS2UZmkvqpbpfcyJonJn0/YnehcWwSwaZ0afke4IkHtsSoXqKIXw3 X-Received: by 2002:a9d:6181:: with SMTP id g1mr71662923otk.104.1577640743773; Sun, 29 Dec 2019 09:32:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1577640743; cv=none; d=google.com; s=arc-20160816; b=uOSzEqEsUnUlidKnqUpxyR5yEt9dWAHPVtzcnITeXMHeKbQl70p0SOZ361hcA4OuYv 6ql1+FafEsriwX+bFydvoyi2NoFNLfaDGXNl2TNQp90dw/uMsPLPwJXOetFZ3fT1CLoV Kcpl6akqrMlgQQUmaF1BEMBmfRJBgFEy8xZFn+snIC5dTZ46zkH7vmmfMLQwkhC6WI9J 6lVcB53t7V7z9n2He6nWLzK9fBOLn0MNIWrfOYz2vRA5tEYsRw927iWSKpS4OKOQB4t0 +mIn8VGgYVBlgUI80e/XuHeNz9oS9su3b0eaQ6x4z7QNfs3hHvlD/S+uGivLlLo/SvWq 1Hkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=mdQToONudz89xOSDXlsAbSdC3qZSPinYDnuSZyprLa8=; b=D7Ix3MWshFdnQIXV/qmkY225I0sZYfS4fql2qYHEkYoeJoyz26pnarczz44IniSzfJ QDBHkPKmMqAV+tylJe1BdzTreS2VGP4q7HXLF/bgtif0ZHq6WT6jfeRTXI2gRs0RYNyQ V5dgI9tSrUBth5Dr3BJZsWj+9RL2yC523n2YpGr/KtCg1pE/nohoujshm4aRlT8Ku0cT OmdULVPdxOUpZ3ELRHA0vpzLp7FCJkR3dhaZT97ymMa9nEEFqbJmEJDzSsV22mMOOsLf HfTlXNcdQG+MCbXjbq71zPlDvicpEuCDtBy5fuBXaI58CM4AXkoieyHlxAMYw0eSUVuK QDVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PBD3Cipq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e20si10273315oti.219.2019.12.29.09.32.12; Sun, 29 Dec 2019 09:32:23 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PBD3Cipq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729060AbfL2Ra6 (ORCPT + 99 others); Sun, 29 Dec 2019 12:30:58 -0500 Received: from mail.kernel.org ([198.145.29.99]:57482 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728600AbfL2Rax (ORCPT ); Sun, 29 Dec 2019 12:30:53 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9D8A6207FF; Sun, 29 Dec 2019 17:30:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1577640653; bh=TfimsuIF6EybkJwgJ0GEs0c71QsnFaT5U9YqQV7DJUU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PBD3CipqAIzU4R1wILrmEqJmOW11ycnflAtx3Ark2vWiA6FzdMfFqgoXQ57jeLXZ4 8irZa/BdtbN1tZdm+HFM8CFTvfPw7GemjjBWNQfMz7ldxqF9urwOtTlN0+oxXrDU5h UOoRuF2cEkfzfAzPM2moZnKjzAkRzpczku3yKsZE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Szymon Janc , =?UTF-8?q?S=C3=B6ren=20Beye?= , Marcel Holtmann , Sasha Levin Subject: [PATCH 4.19 082/219] Bluetooth: Workaround directed advertising bug in Broadcom controllers Date: Sun, 29 Dec 2019 18:18:04 +0100 Message-Id: <20191229162517.979966167@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20191229162508.458551679@linuxfoundation.org> References: <20191229162508.458551679@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Szymon Janc [ Upstream commit 4c371bb95cf06ded80df0e6139fdd77cee1d9a94 ] It appears that some Broadcom controllers (eg BCM20702A0) reject LE Set Advertising Parameters command if advertising intervals provided are not within range for undirected and low duty directed advertising. Workaround this bug by populating min and max intervals with 'valid' values. < HCI Command: LE Set Advertising Parameters (0x08|0x0006) plen 15 Min advertising interval: 0.000 msec (0x0000) Max advertising interval: 0.000 msec (0x0000) Type: Connectable directed - ADV_DIRECT_IND (high duty cycle) (0x01) Own address type: Public (0x00) Direct address type: Random (0x01) Direct address: E2:F0:7B:9F:DC:F4 (Static) Channel map: 37, 38, 39 (0x07) Filter policy: Allow Scan Request from Any, Allow Connect Request from Any (0x00) > HCI Event: Command Complete (0x0e) plen 4 LE Set Advertising Parameters (0x08|0x0006) ncmd 1 Status: Invalid HCI Command Parameters (0x12) Signed-off-by: Szymon Janc Tested-by: Sören Beye Signed-off-by: Marcel Holtmann Signed-off-by: Sasha Levin --- net/bluetooth/hci_conn.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index 15d1cb5aee18..f5c27065ad44 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c @@ -931,6 +931,14 @@ static void hci_req_directed_advertising(struct hci_request *req, return; memset(&cp, 0, sizeof(cp)); + + /* Some controllers might reject command if intervals are not + * within range for undirected advertising. + * BCM20702A0 is known to be affected by this. + */ + cp.min_interval = cpu_to_le16(0x0020); + cp.max_interval = cpu_to_le16(0x0020); + cp.type = LE_ADV_DIRECT_IND; cp.own_address_type = own_addr_type; cp.direct_addr_type = conn->dst_type; -- 2.20.1