From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (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 ABED9364E9B for ; Mon, 23 Feb 2026 11:54:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771847674; cv=none; b=R4S/Y/kI+wPNzuUQJH3nwfXXlM22RBjcbjbCF+Ez5zpPzDFEUr+DCtAlsEQF/vrnu+hShPk7d5E9J/jBnTIHVyTeesVPuBWyxBCPCX8ulrTWs4TKIQRlFxu3lsJ4nFjuxc2KGId6tHqQpmGuqk7Ebebr/cadHOmBGmuJeSwoZj8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771847674; c=relaxed/simple; bh=3ADRWXv/1WnNGruw8DIjoU0m1gFOqtMRdvhW58J0+fU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OTHHL6euwaY3ZNker+86611K72FsTQEMW3y6xS1gJyM4tfBs5HghXalQsCiID1kOgjS1MHDm9QaaMtII2NjSLj12Kmq6o/AN9jgyy6eAQIven+xW/ArGrr1fuRpsubq51mPpH7whn9TthjrMPKerucOexLPO34DBvf/5o/E/De4= 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=JQS+3k8X; arc=none smtp.client-ip=209.85.221.43 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="JQS+3k8X" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-4327790c4e9so3169874f8f.2 for ; Mon, 23 Feb 2026 03:54:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771847671; x=1772452471; 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; bh=2y4/fXSvTacfxYjUuGuM/I9b80VjM1rPJJklCOVNYSg=; b=JQS+3k8XBhw541HzFta7b/XMeWbqa53Dj/VykX0uIRO/hQObILETDqUz1DmsbpYB8D RqLqY5sGRnotCBKoGn8va5YBGUDREkPRVLKXzPhiSMaBo7Ji/dx7Lkz5WSGJAhfB2JSV F4FRAYKj1soclPLbsTEauLda62dKuVcOtaSAiPswnYUmAuYcbdPKkTxl//VTBogZLmJd wlrIsz/rx9yGc+yuSIVs2hUOvXdfy6xM+eHMGJd1HcYVZMjmFO/AHiK9bh1spunC1eCu Hpl+tVJManDkhbgIQ8AsstBIh8RAek/K4WtKtoCbps2IgizGxIID3V1g1+2zi7+8cw9p pvTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771847671; x=1772452471; 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; bh=2y4/fXSvTacfxYjUuGuM/I9b80VjM1rPJJklCOVNYSg=; b=PX3lcRHUSeheLa0uTbBW3LVuTWpUYhWsv/2QynGA5w5RtajosCX9zH9NdZJ6sUqFG4 koXk39Cp+GglF7YV6tPNP3YV0wb4ivOJJIT9kx9NZMyKYc3Sgz4J87iqmzE0pLkALnLy hWgIziPfroCeyIlpP4M+3PWHFjZO1uR24BVZrQGfYdmua7dF62Bmh28KVZdAcAxFjae6 3bVzQlUZ7+T0RTxiWBZzDFye+kWXZ8rDeX/OR4t2VlypoFjKgzvdEnvS0ThI4JmmONmj fzNa6n1CRXXqUfK5Q6i7jQJqayWTLmX8qwDgEA8kVDEa0fnL3qCtTTP/E1vAsG7aX1NI +D4Q== X-Gm-Message-State: AOJu0YxZ5WRv1PKzPw7hbQbtY3gbIwLoY1OlZ7VXPwreABeyEgde/9Ly XuuMs9giV5dtyl1yvNhcsXwaqvRsYta+MMK0loqlQMcYNW1azBS4BIqLrull7Q== X-Gm-Gg: ATEYQzwG2V3dgXrabGHleNQ/Dh0xDu8NneYSX8F3zxJqRScTNPnmfWJRcxouAdhBVSZ 9KJZzr5TYZm2zQMqgm9F3nIROcSbxtEnrJ1Dpl9pS9rUwDYHDMocrvXVcnix4HfQ0WJjnRsrSBq cfzqCoTcQWOgwQcK3lN+/Htid/SodZplGu+DQfu7xFKyA18RH1VxxrlS0MBsGufNBwe9h81yv+M o35Wti+303vhERzwb2T+cavgPUuNySvU+hlIP6xIibrrf+xcicl2qHpShKmzu8LGuZha1OjhhGN m58zppl6jRrsjoHa+0ppWX/lrrfDHh3b73bT4gYd5tiAtXbk4Xd40yVqKpIq0aIrlwq2Ap0ylYH Vy2BOt5GlGG+VVWYI/kG4BwTXkZO95LmsEJhywEpwMIU0rv3ZgVzRsY43lW/hzqvy9H1EkkF2wx YGiElg2f58Hnhwlx7gQmL/xIeE94Wx3TgfCO7M0JeLSPLW/yjotqNLpUmdv1WX6qurvR1vt6IGb SMN3xtKOEeGI/MzcfpYxmztX0ln59cM0ktxkNjF X-Received: by 2002:a05:6000:420c:b0:435:9d70:f299 with SMTP id ffacd0b85a97d-4396f174178mr13783963f8f.22.1771847671002; Mon, 23 Feb 2026 03:54:31 -0800 (PST) Received: from Lord-Beerus.station (net-188-152-100-94.cust.vodafonedsl.it. [188.152.100.94]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43970c00e8bsm15675668f8f.15.2026.02.23.03.54.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 03:54:30 -0800 (PST) From: Stefano Radaelli X-Google-Original-From: Stefano Radaelli To: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-bluetooth@vger.kernel.org Cc: pierluigi.p@variscite.com, Stefano Radaelli , Marcel Holtmann , Luiz Augusto von Dentz , Rob Herring , Krzysztof Kozlowski , Conor Dooley , David Lechner Subject: [PATCH v1 2/2] Bluetooth: hci_ll: Add DT property to disable enhanced SCO setup Date: Mon, 23 Feb 2026 12:52:56 +0100 Message-ID: <998db3667bb97a6908be01912e165d79ba849925.1771847350.git.stefano.r@variscite.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN quirk was introduced by commit 05abad857277 ("Bluetooth: HCI: Add HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN quirk") to handle controllers that advertise support for the HCI Enhanced Setup Synchronous Connection command but fail to use it properly with some SCO configurations (e.g. BT_VOICE_TRANSPARENT/mSBC). This behavior has been observed on TI controllers used with the hci_ll driver, where SCO setup can fail unless the enhanced setup path is avoided. Add support for the optional DT property "ti,no-enhanced-setup-sync-conn" and, when present, set HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN during controller setup, as intended by the quirk documentation. Signed-off-by: Stefano Radaelli --- drivers/bluetooth/hci_ll.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/bluetooth/hci_ll.c b/drivers/bluetooth/hci_ll.c index 91acf24f1ef5..5f69f0654c19 100644 --- a/drivers/bluetooth/hci_ll.c +++ b/drivers/bluetooth/hci_ll.c @@ -68,6 +68,7 @@ struct ll_device { struct gpio_desc *enable_gpio; struct clk *ext_clk; bdaddr_t bdaddr; + bool broken_enhanced_setup; }; struct ll_struct { @@ -656,6 +657,10 @@ static int ll_setup(struct hci_uart *hu) hci_set_quirk(hu->hdev, HCI_QUIRK_INVALID_BDADDR); } + if (lldev->broken_enhanced_setup) + hci_set_quirk(hu->hdev, + HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN); + /* Operational speed if any */ if (hu->oper_speed) speed = hu->oper_speed; @@ -710,6 +715,10 @@ static int hci_ti_probe(struct serdev_device *serdev) of_property_read_u32(serdev->dev.of_node, "max-speed", &max_speed); hci_uart_set_speeds(hu, 115200, max_speed); + lldev->broken_enhanced_setup = + of_property_read_bool(serdev->dev.of_node, + "ti,no-enhanced-setup-sync-conn"); + /* optional BD address from nvram */ bdaddr_cell = nvmem_cell_get(&serdev->dev, "bd-address"); if (IS_ERR(bdaddr_cell)) { -- 2.47.3