From nobody Mon Jul 20 12:00:07 2026 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4h3fGJ1Qqlz6lrHk for ; Mon, 20 Jul 2026 12:00:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4h3fGH720cz3M7v for ; Mon, 20 Jul 2026 12:00:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1784548808; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DDULH/Ei99hXkrtrdO5006hYU9afPmOjMl+Qvy7VGEI=; b=g1cA/n2W1mWtDhWrwgTuUcb9fn0anCLPAfZ4Z2kowGQZyEvzNlhMm7nqEIZnJrJC/fpgRj RHBm6An+kHPCkl6btyMuGNcnrKup9cH7P4WqEv7Utc1bejfPI74mGYyvX8APh0COtnBpNm QMLRt4P6bOrOkuIxXmfbujrmmeOFl9xMLYGnCwRs/k+j0X1qLUwTSXzoSV9rNyJnR2sGZk PRBp4xEG6NcPenNzEUt9D2NjZKjSci+I2oduZPRTCdUqSjpYq/qkBYVyuVrsCZkT+S4uzU qty1eBby9hwyy3KcSpvgZiz7y02jhSFh1iIkmyGHUvDTnA1Vbl7XbYoeQFtBCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1784548808; a=rsa-sha256; cv=none; b=Xhu6HjGyQQ9KeX8jXCPwvu9+oNnhqDTMw7qjNdHrpWXpiFkGsNlgD1kJmzCQCTemrnj9kZ g3VkN4jwXUqMvrfR1Hr2oRzB9ueE6QP8r30dMfbqGccNaOwuH4NVJcY1y2xLzWYtXu3Cas L5bMa9rgS2EUxqt8GFbSCS5i0o/c/NdjRQGcw/qCciVC8Q9h8f4T68L3eYHG+fNh7wDLuI 4lsU7eJSSW21WGJxeqc+W1R2CXMF5csiIsXwGkMX/NUeW2DpDiWu3wYHAMG/x8o/jjFoK5 zZCV2ns3Kw2qO01oDc1kxmTzYCwSRytSmkh+JWhGHGvhLRXjyYN2udwpxalTcg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1784548808; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DDULH/Ei99hXkrtrdO5006hYU9afPmOjMl+Qvy7VGEI=; b=g5urFrO6CN3haPJXJnG+eLzUw22mVenf5NOFs5Tkh5gsHY6oU+YePS2x+o3gd24Tha77Lc Vye5Plf4iy1wtSFm7d0aJE2eRc02LyAI/W+zKpDBpZGv8Z7472Xwo/7yazdVgcoyd8tEK6 G6sg8ifISacplvqTlb13BAI8k7K3Dh4ggzOCyUYXH1qpiowC1HNaYZ6oirivEsVeRaQ2PO VGhxP0UUTIZKR7NLMJnrN9nQ6yVsZ2JcHkgBB4+Zbrpkh/9hj/PRpNNnKoXpYchV3dfpX9 wrA/cDEUJlkcd5vNls++l0KLYh/WPwp2rl9rG8qcW5vOxx/lKXVUZkAb0NriNw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4h3fGH5CM3z114t for ; Mon, 20 Jul 2026 12:00:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b254 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 20 Jul 2026 12:00:07 +0000 To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org Cc: Majed Alkhaleefah From: Lorenzo Salvadore Subject: git: d3ebf769a3 - main - Status/2026Q2/bluetooth.adoc: Add report List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: salvadore X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d3ebf769a3b1d7f5f6c6f17118ffa358fb65ff9a Auto-Submitted: auto-generated Date: Mon, 20 Jul 2026 12:00:07 +0000 Message-Id: <6a5e0dc7.3b254.781af@gitrepo.freebsd.org> The branch main has been updated by salvadore: URL: https://cgit.FreeBSD.org/doc/commit/?id=d3ebf769a3b1d7f5f6c6f17118ffa358fb65ff9a commit d3ebf769a3b1d7f5f6c6f17118ffa358fb65ff9a Author: Majed Alkhaleefah AuthorDate: 2026-07-13 12:09:45 +0000 Commit: Lorenzo Salvadore CommitDate: 2026-07-20 11:59:35 +0000 Status/2026Q2/bluetooth.adoc: Add report Pull Request: https://github.com/freebsd/freebsd-doc/pull/697 --- .../status/report-2026-04-2026-06/bluetooth.adoc | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/website/content/en/status/report-2026-04-2026-06/bluetooth.adoc b/website/content/en/status/report-2026-04-2026-06/bluetooth.adoc new file mode 100644 index 0000000000..3e0d719861 --- /dev/null +++ b/website/content/en/status/report-2026-04-2026-06/bluetooth.adoc @@ -0,0 +1,39 @@ +=== Bluetooth HID drivers +Links: + +link:https://wiki.freebsd.org/SummerOfCode2026Projects/BluetoothSupportForHIDDevices[FreeBSD wiki project page] URL: link:https://wiki.freebsd.org/SummerOfCode2026Projects/BluetoothSupportForHIDDevices[] + +link:https://github.com/majintosh/freebsd-bthid[Project Github repo] URL: link:https://github.com/majintosh/freebsd-bthid[] + +Contact: Majed Alkhaleefah + +I have been working on two drivers to enable support for HID drivers for Bluetooth devices as part of GSoC 2026. + +The primary goal of this project is to register connected Bluetooth HID devices as Newbus devices via two new drivers: `bthidbus` and `bthid`. +`bthidbus` acts as the parent bus that manages the creation and attachment of `bthid` child devices. +`bthid` serves as the transport layer, spawning a `hidbus` device and routing all received packets to it once they are stripped of their headers. +The short-term goal here is to enable support for wireless HID connections. +The longer-term goal is to begin setting the foundation that allows others to write drivers for devices that can only connect via Bluetooth. + +What has been accomplished: + +* `bthidbus` can successfully open a connection to a Bluetooth device via sockets. +* `bthid` can receive and manage sockets handed down from `bthidbus` via ivars. +* `bthid` can send the report descriptor to `hidbus`, which successfully spawns the correct HID device and driver. +(e.g., a gamepad connected over Bluetooth spawns an `hgame` device and an `evdev` node.) +* Input from Bluetooth devices is successfully received by `hidbus` and `evdev`. + + +Current issues and planned changes: + +* The actual report descriptors, Bluetooth addresses, etc, have to be hardcoded into `bthidbus`. +I initially considered adding the querying/listening logic to `bthidbus` to make it act like a pseudo-server, but I worried this would risk bloating and scope creep. +The approach I will be going with instead is to rely on the `bthidd` daemon's existing querying logic and have it send new connection information to `bthidbus` via an `ioctl`. +This would remove `bthidbus` 's current role as the connection-initiator and instead have it only manage connections that have already been opened. +* There is significant input latency when monitoring via `evtest`. +I have two different working hypotheses. +The first is that the issue lies in `bthid` and how it manages interrupts via taskqueues. +The second is that it lies in the Networking stack, as Bluetooth packets are piped between multiple different Netgraph nodes before being received by `bthid`. +This could also very well be an issue with `evtest`; I still have to look into this. + + +All testing so far has been done with the Nintendo Switch Pro Controller.