All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] asha: allow LE 2M PHY on the audio channel
@ 2026-10-13  3:48 Kyle Pepper
  2026-10-13  4:50 ` bluez.test.bot
  0 siblings, 1 reply; 2+ messages in thread
From: Kyle Pepper @ 2026-10-13  3:48 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Marcel Holtmann, Luiz Augusto von Dentz

Allow LE 2M on the CoC socket to increase available throughput for
capable peers. Retain LE 1M fallback and treat BT_PHY as best effort
for older kernels.

Test the PHY mask and continued startup when the preference is rejected.

Assisted-by: OpenCode:gpt-6.1-sol
---
Submission review notes (not part of the commit message):
Local validation is for base 7428ca2df9356363079db0f48412c20cbdb9471f.
Compatibility with newer upstream tips has not been verified locally.
N8/UB500 completes 2M in the downstream stack. N7/1M-only hardware
is unavailable; fallback has focused unit coverage, not new hardware proof.

 .gitignore            |   1 +
 Makefile.am           |   9 ++++
 profiles/audio/asha.c |  11 ++++
 unit/test-asha-phy.c  | 117 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 138 insertions(+)
 create mode 100644 unit/test-asha-phy.c

diff --git a/.gitignore b/.gitignore
index 06b24735df..d214ba0591 100644
--- a/.gitignore
+++ b/.gitignore
@@ -112,6 +112,7 @@ unit/test-lib
 unit/test-mgmt
 unit/test-uhid
 unit/test-hfp
+unit/test-asha-phy
 unit/test-crypto
 unit/test-ecc
 unit/test-hog
diff --git a/Makefile.am b/Makefile.am
index f742458d11..2041ac87db 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -706,6 +706,15 @@ unit_test_avrcp_LDADD = lib/libbluetooth-internal.la \
 
 unit_tests += unit/test-hfp
 
+unit_tests += unit/test-asha-phy
+
+unit_test_asha_phy_SOURCES = unit/test-asha-phy.c
+unit_test_asha_phy_CFLAGS = $(AM_CFLAGS) -DBLUETOOTH_PLUGIN_BUILTIN \
+	-ffunction-sections -fdata-sections
+unit_test_asha_phy_LDADD = src/libshared-glib.la \
+	lib/libbluetooth-internal.la $(GLIB_LIBS) $(DBUS_LIBS)
+unit_test_asha_phy_LDFLAGS = -Wl,--gc-sections
+
 unit_test_hfp_SOURCES = unit/test-hfp.c
 unit_test_hfp_LDADD = src/libshared-glib.la $(GLIB_LIBS)
 
diff --git a/profiles/audio/asha.c b/profiles/audio/asha.c
index 8e625fdca3..d86224764d 100644
--- a/profiles/audio/asha.c
+++ b/profiles/audio/asha.c
@@ -88,6 +88,8 @@ static void connect_cb(GIOChannel *io, GError *err, gpointer user_data)
 	struct connect_data *conn_data = user_data;
 	struct bt_asha_device *asha_dev = conn_data->asha_dev;
 	GError *gerr = NULL;
+	uint32_t phys;
+	int fd;
 
 	if (err) {
 		error("%s", err->message);
@@ -105,6 +107,15 @@ static void connect_cb(GIOChannel *io, GError *err, gpointer user_data)
 		g_error_free(gerr);
 	}
 
+	/*
+	 * Allow LE 2M with LE 1M fallback. Older kernels may lack BT_PHY.
+	 */
+	phys = BT_PHY_LE_1M_TX | BT_PHY_LE_1M_RX |
+			BT_PHY_LE_2M_TX | BT_PHY_LE_2M_RX;
+	fd = g_io_channel_unix_get_fd(io);
+	if (setsockopt(fd, SOL_BLUETOOTH, BT_PHY, &phys, sizeof(phys)) < 0)
+		DBG("Could not set LE 2M PHY preference: %s", strerror(errno));
+
 	asha_dev->io = io;
 
 	bt_asha_start(asha_dev->asha, conn_data->cb,
diff --git a/unit/test-asha-phy.c b/unit/test-asha-phy.c
new file mode 100644
index 0000000000..9c9d7b9a98
--- /dev/null
+++ b/unit/test-asha-phy.c
@@ -0,0 +1,117 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include <assert.h>
+#include <stdarg.h>
+#include <sys/socket.h>
+
+int test_setsockopt(int fd, int level, int option, const void *value,
+							socklen_t length);
+
+/* Source-level mocks remain effective with link-time optimization. */
+#define setsockopt test_setsockopt
+#define bt_io_get test_io_get
+#define bt_asha_start test_start
+#include "profiles/audio/asha.c"
+#undef setsockopt
+#undef bt_io_get
+#undef bt_asha_start
+#include "src/shared/tester.h"
+
+static unsigned int preferences, starts;
+static bool mtu_ok;
+static int preference_error, expected_fd;
+
+void btd_error(uint16_t index, const char *format, ...)
+{
+}
+
+void btd_debug(uint16_t index, const char *format, ...)
+{
+}
+
+int test_setsockopt(int fd, int level, int option, const void *value,
+							socklen_t length)
+{
+	const uint32_t *phys = value;
+
+	assert(fd == expected_fd && level == SOL_BLUETOOTH && option == BT_PHY);
+	assert(length == sizeof(*phys));
+	assert(*phys == (BT_PHY_LE_1M_TX | BT_PHY_LE_1M_RX |
+					BT_PHY_LE_2M_TX | BT_PHY_LE_2M_RX));
+	assert(starts == 0);
+	preferences++;
+	errno = preference_error;
+	return preference_error ? -1 : 0;
+}
+
+gboolean test_io_get(GIOChannel *io, GError **error, BtIOOption first, ...)
+{
+	va_list args;
+	uint16_t *imtu, *omtu;
+
+	if (!mtu_ok) {
+		*error = g_error_new(G_IO_CHANNEL_ERROR,
+				G_IO_CHANNEL_ERROR_FAILED, "MTU failure");
+		return FALSE;
+	}
+
+	assert(first == BT_IO_OPT_IMTU);
+	va_start(args, first);
+	imtu = va_arg(args, uint16_t *);
+	assert(va_arg(args, int) == BT_IO_OPT_OMTU);
+	omtu = va_arg(args, uint16_t *);
+	assert(va_arg(args, int) == BT_IO_OPT_INVALID);
+	va_end(args);
+	*imtu = 512;
+	*omtu = 163;
+	return TRUE;
+}
+
+unsigned int test_start(struct bt_asha *asha, bt_asha_cb_t callback, void *data)
+{
+	assert(preferences == 1);
+	starts++;
+	return 0;
+}
+
+static void test_phy(const void *user_data)
+{
+	const int errors[] = { 0, ENOPROTOOPT, EINVAL };
+	unsigned int i;
+	int fds[2];
+	GIOChannel *io;
+	GError *error;
+	struct bt_asha asha = { 0 };
+	struct bt_asha_device device = { .asha = &asha };
+	struct connect_data data = { .asha_dev = &device };
+
+	assert(!pipe(fds));
+	io = g_io_channel_unix_new(fds[0]);
+	expected_fd = fds[0];
+
+	for (i = 0; i < ARRAY_SIZE(errors); i++) {
+		preferences = starts = 0;
+		preference_error = errors[i];
+		mtu_ok = i != 2;
+		connect_cb(io, NULL, &data);
+		assert(preferences == 1 && starts == 1 && device.io == io);
+		assert(device.imtu == 512 && device.omtu == 163);
+	}
+
+	preferences = starts = 0;
+	error = g_error_new(G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED,
+							"mock connection failure");
+	connect_cb(io, error, &data);
+	assert(preferences == 0 && starts == 0);
+	g_error_free(error);
+	g_io_channel_unref(io);
+	close(fds[0]);
+	close(fds[1]);
+	tester_test_passed();
+}
+
+int main(int argc, char *argv[])
+{
+	tester_init(&argc, &argv);
+	tester_add("ASHA/PHY/preference", NULL, NULL, test_phy, NULL);
+	return tester_run();
+}

base-commit: 7428ca2df9356363079db0f48412c20cbdb9471f


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* RE: asha: allow LE 2M PHY on the audio channel
  2026-10-13  3:48 [PATCH] asha: allow LE 2M PHY on the audio channel Kyle Pepper
@ 2026-10-13  4:50 ` bluez.test.bot
  0 siblings, 0 replies; 2+ messages in thread
From: bluez.test.bot @ 2026-10-13  4:50 UTC (permalink / raw)
  To: linux-bluetooth, cochcoder

[-- Attachment #1: Type: text/plain, Size: 29808 bytes --]

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/series/1184360/

---Test result---

Test Summary:
CheckPatch                    PASS      0.64 seconds
GitLint                       PASS      0.34 seconds
BuildEll                      PASS      20.07 seconds
BluezMake                     FAIL      298.83 seconds
MakeCheck                     FAIL      2.88 seconds
MakeDistcheck                 PASS      154.37 seconds
CheckValgrind                 PASS      241.26 seconds
CheckSmatch                   PASS      304.58 seconds
bluezmakeextell               PASS      97.99 seconds
TestFunctional                ERROR     305.36 seconds
IncrementalBuild              FAIL      306.65 seconds
ScanBuild                     PASS      1166.24 seconds

Details
##############################
Test: BluezMake - FAIL
Desc: Build BlueZ
Output:

tools/mgmt-tester.c: In function ‘main’:
tools/mgmt-tester.c:13828:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
13828 | int main(int argc, char *argv[])
      |     ^~~~
unit/test-avdtp.c: In function ‘main’:
unit/test-avdtp.c:766:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
  766 | int main(int argc, char *argv[])
      |     ^~~~
unit/test-avrcp.c: In function ‘main’:
unit/test-avrcp.c:1382:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
 1382 | int main(int argc, char *argv[])
      |     ^~~~
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_exit':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:538:(.text.asha_exit+0xc): undefined reference to `btd_profile_unregister'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_init':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:529:(.text.asha_init+0xc): undefined reference to `btd_profile_register'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `get_transport':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:342:(.text.get_transport+0xb4): undefined reference to `media_transport_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `get_device':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:329:(.text.get_device+0xb4): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `make_endpoint_path':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:70:(.text.make_endpoint_path+0xb3): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:72:(.text.make_endpoint_path+0x155): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_endpoint_register':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:420:(.text.asha_source_endpoint_register+0x1f): undefined reference to `btd_get_dbus_connection'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:420:(.text.asha_source_endpoint_register+0x45): undefined reference to `g_dbus_register_interface'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:429:(.text.asha_source_endpoint_register+0x54): undefined reference to `media_endpoint_get_asha'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:430:(.text.asha_source_endpoint_register+0x9e): undefined reference to `media_transport_create'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_accept':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:461:(.text.asha_source_accept+0x88): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:462:(.text.asha_source_accept+0x93): undefined reference to `btd_device_get_gatt_db'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:463:(.text.asha_source_accept+0x9f): undefined reference to `btd_device_get_gatt_client'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:464:(.text.asha_source_accept+0xac): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:467:(.text.asha_source_accept+0xb7): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:482:(.text.asha_source_accept+0x124): undefined reference to `btd_service_connecting_complete'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_disconnect':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:489:(.text.asha_source_disconnect+0x8f): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:490:(.text.asha_source_disconnect+0x9a): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:493:(.text.asha_source_disconnect+0xa5): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_endpoint_unregister':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:446:(.text.asha_source_disconnect+0xe0): undefined reference to `btd_get_dbus_connection'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:446:(.text.asha_source_disconnect+0xf2): undefined reference to `g_dbus_unregister_interface'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:450:(.text.asha_source_disconnect+0x144): undefined reference to `media_transport_destroy'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_disconnect':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:505:(.text.asha_source_disconnect+0x1b6): undefined reference to `btd_service_disconnecting_complete'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_device_remove':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:372:(.text.asha_source_device_remove+0x7e): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:375:(.text.asha_source_device_remove+0x86): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:378:(.text.asha_source_device_remove+0xa7): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:378:(.text.asha_source_device_remove+0x151): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_device_probe':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:352:(.text.asha_source_device_probe+0x8f): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:355:(.text.asha_source_device_probe+0x9a): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:364:(.text.asha_source_device_probe+0x16c): undefined reference to `btd_service_set_user_data'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:6173: unit/test-asha-phy] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:4267: all] Error 2
##############################
Test: MakeCheck - FAIL
Desc: Run Bluez Make Check
Output:

/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_exit':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:538:(.text.asha_exit+0xc): undefined reference to `btd_profile_unregister'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_init':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:529:(.text.asha_init+0xc): undefined reference to `btd_profile_register'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `get_transport':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:342:(.text.get_transport+0xb4): undefined reference to `media_transport_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `get_device':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:329:(.text.get_device+0xb4): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `make_endpoint_path':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:70:(.text.make_endpoint_path+0xb3): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:72:(.text.make_endpoint_path+0x155): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_endpoint_register':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:420:(.text.asha_source_endpoint_register+0x1f): undefined reference to `btd_get_dbus_connection'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:420:(.text.asha_source_endpoint_register+0x45): undefined reference to `g_dbus_register_interface'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:429:(.text.asha_source_endpoint_register+0x54): undefined reference to `media_endpoint_get_asha'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:430:(.text.asha_source_endpoint_register+0x9e): undefined reference to `media_transport_create'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_accept':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:461:(.text.asha_source_accept+0x88): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:462:(.text.asha_source_accept+0x93): undefined reference to `btd_device_get_gatt_db'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:463:(.text.asha_source_accept+0x9f): undefined reference to `btd_device_get_gatt_client'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:464:(.text.asha_source_accept+0xac): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:467:(.text.asha_source_accept+0xb7): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:482:(.text.asha_source_accept+0x124): undefined reference to `btd_service_connecting_complete'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_disconnect':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:489:(.text.asha_source_disconnect+0x8f): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:490:(.text.asha_source_disconnect+0x9a): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:493:(.text.asha_source_disconnect+0xa5): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_endpoint_unregister':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:446:(.text.asha_source_disconnect+0xe0): undefined reference to `btd_get_dbus_connection'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:446:(.text.asha_source_disconnect+0xf2): undefined reference to `g_dbus_unregister_interface'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:450:(.text.asha_source_disconnect+0x144): undefined reference to `media_transport_destroy'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_disconnect':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:505:(.text.asha_source_disconnect+0x1b6): undefined reference to `btd_service_disconnecting_complete'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_device_remove':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:372:(.text.asha_source_device_remove+0x7e): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:375:(.text.asha_source_device_remove+0x86): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:378:(.text.asha_source_device_remove+0xa7): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:378:(.text.asha_source_device_remove+0x151): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_device_probe':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:352:(.text.asha_source_device_probe+0x8f): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:355:(.text.asha_source_device_probe+0x9a): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:364:(.text.asha_source_device_probe+0x16c): undefined reference to `btd_service_set_user_data'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:6173: unit/test-asha-phy] Error 1
make: *** [Makefile:11033: check] Error 2
##############################
Test: TestFunctional - ERROR
Desc: Run test-functional
Output:
Failed to build BlueZ:
Failed to build BlueZ
##############################
Test: IncrementalBuild - FAIL
Desc: Incremental build with the patches in the series
Output:

tools/mgmt-tester.c: In function ‘main’:
tools/mgmt-tester.c:13828:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
13828 | int main(int argc, char *argv[])
      |     ^~~~
unit/test-avdtp.c: In function ‘main’:
unit/test-avdtp.c:766:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
  766 | int main(int argc, char *argv[])
      |     ^~~~
unit/test-avrcp.c: In function ‘main’:
unit/test-avrcp.c:1382:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
 1382 | int main(int argc, char *argv[])
      |     ^~~~
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_exit':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:538:(.text.asha_exit+0xc): undefined reference to `btd_profile_unregister'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_init':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:529:(.text.asha_init+0xc): undefined reference to `btd_profile_register'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `get_transport':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:342:(.text.get_transport+0xb4): undefined reference to `media_transport_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `get_device':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:329:(.text.get_device+0xb4): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `make_endpoint_path':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:70:(.text.make_endpoint_path+0xb3): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:72:(.text.make_endpoint_path+0x155): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_endpoint_register':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:420:(.text.asha_source_endpoint_register+0x1f): undefined reference to `btd_get_dbus_connection'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:420:(.text.asha_source_endpoint_register+0x45): undefined reference to `g_dbus_register_interface'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:429:(.text.asha_source_endpoint_register+0x54): undefined reference to `media_endpoint_get_asha'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:430:(.text.asha_source_endpoint_register+0x9e): undefined reference to `media_transport_create'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_accept':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:461:(.text.asha_source_accept+0x88): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:462:(.text.asha_source_accept+0x93): undefined reference to `btd_device_get_gatt_db'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:463:(.text.asha_source_accept+0x9f): undefined reference to `btd_device_get_gatt_client'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:464:(.text.asha_source_accept+0xac): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:467:(.text.asha_source_accept+0xb7): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:482:(.text.asha_source_accept+0x124): undefined reference to `btd_service_connecting_complete'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_disconnect':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:489:(.text.asha_source_disconnect+0x8f): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:490:(.text.asha_source_disconnect+0x9a): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:493:(.text.asha_source_disconnect+0xa5): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_endpoint_unregister':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:446:(.text.asha_source_disconnect+0xe0): undefined reference to `btd_get_dbus_connection'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:446:(.text.asha_source_disconnect+0xf2): undefined reference to `g_dbus_unregister_interface'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:450:(.text.asha_source_disconnect+0x144): undefined reference to `media_transport_destroy'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_disconnect':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:505:(.text.asha_source_disconnect+0x1b6): undefined reference to `btd_service_disconnecting_complete'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_device_remove':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:372:(.text.asha_source_device_remove+0x7e): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:375:(.text.asha_source_device_remove+0x86): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:378:(.text.asha_source_device_remove+0xa7): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:378:(.text.asha_source_device_remove+0x151): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_device_probe':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:352:(.text.asha_source_device_probe+0x8f): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:355:(.text.asha_source_device_probe+0x9a): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:364:(.text.asha_source_device_probe+0x16c): undefined reference to `btd_service_set_user_data'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:6173: unit/test-asha-phy] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:4267: all] Error 2
asha: allow LE 2M PHY on the audio channel

tools/mgmt-tester.c: In function ‘main’:
tools/mgmt-tester.c:13828:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
13828 | int main(int argc, char *argv[])
      |     ^~~~
unit/test-avdtp.c: In function ‘main’:
unit/test-avdtp.c:766:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
  766 | int main(int argc, char *argv[])
      |     ^~~~
unit/test-avrcp.c: In function ‘main’:
unit/test-avrcp.c:1382:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
 1382 | int main(int argc, char *argv[])
      |     ^~~~
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_exit':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:538:(.text.asha_exit+0xc): undefined reference to `btd_profile_unregister'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_init':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:529:(.text.asha_init+0xc): undefined reference to `btd_profile_register'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `get_transport':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:342:(.text.get_transport+0xb4): undefined reference to `media_transport_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `get_device':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:329:(.text.get_device+0xb4): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `make_endpoint_path':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:70:(.text.make_endpoint_path+0xb3): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:72:(.text.make_endpoint_path+0x155): undefined reference to `device_get_path'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_endpoint_register':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:420:(.text.asha_source_endpoint_register+0x1f): undefined reference to `btd_get_dbus_connection'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:420:(.text.asha_source_endpoint_register+0x45): undefined reference to `g_dbus_register_interface'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:429:(.text.asha_source_endpoint_register+0x54): undefined reference to `media_endpoint_get_asha'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:430:(.text.asha_source_endpoint_register+0x9e): undefined reference to `media_transport_create'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_accept':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:461:(.text.asha_source_accept+0x88): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:462:(.text.asha_source_accept+0x93): undefined reference to `btd_device_get_gatt_db'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:463:(.text.asha_source_accept+0x9f): undefined reference to `btd_device_get_gatt_client'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:464:(.text.asha_source_accept+0xac): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:467:(.text.asha_source_accept+0xb7): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:482:(.text.asha_source_accept+0x124): undefined reference to `btd_service_connecting_complete'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_disconnect':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:489:(.text.asha_source_disconnect+0x8f): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:490:(.text.asha_source_disconnect+0x9a): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:493:(.text.asha_source_disconnect+0xa5): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_endpoint_unregister':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:446:(.text.asha_source_disconnect+0xe0): undefined reference to `btd_get_dbus_connection'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:446:(.text.asha_source_disconnect+0xf2): undefined reference to `g_dbus_unregister_interface'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:450:(.text.asha_source_disconnect+0x144): undefined reference to `media_transport_destroy'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_disconnect':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:505:(.text.asha_source_disconnect+0x1b6): undefined reference to `btd_service_disconnecting_complete'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_device_remove':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:372:(.text.asha_source_device_remove+0x7e): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:375:(.text.asha_source_device_remove+0x86): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:378:(.text.asha_source_device_remove+0xa7): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:378:(.text.asha_source_device_remove+0x151): undefined reference to `btd_service_get_user_data'
/usr/bin/x86_64-linux-gnu-ld.bfd: unit/test_asha_phy-test-asha-phy.o: in function `asha_source_device_probe':
/home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:352:(.text.asha_source_device_probe+0x8f): undefined reference to `btd_service_get_device'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:355:(.text.asha_source_device_probe+0x9a): undefined reference to `device_get_address'
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/runner/work/bluez/bluez/src/src/./profiles/audio/asha.c:364:(.text.asha_source_device_probe+0x16c): undefined reference to `btd_service_set_user_data'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:6173: unit/test-asha-phy] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:4267: all] Error 2


https://github.com/bluez/bluez/pull/2666

---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-10-13  4:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-13  3:48 [PATCH] asha: allow LE 2M PHY on the audio channel Kyle Pepper
2026-10-13  4:50 ` bluez.test.bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.