linux/drivers
Lorenzo Stoakes (ARM) aec6a8d80e Bluetooth: hci_bcm4377: Ignore reserved PHY in ext adv reports on BCM4378
Commit ed2a2ef16a ("Bluetooth: Add quirk to ignore reserved PHY bits in
LE Extended Adv Report") added a quirk to handle creative use of the
reserved bits in the PHY fields for 4388 controllers in Apple silicon.

I observed the same issue with the BCM4378 Bluetooth controller (14e4:5f69,
rev 05) on an Apple MacBook Pro (13-inch, M2, 2022):

> HCI Event: LE Meta Event (0x3e) plen 51
      LE Extended Advertising Report (0x0d)
        Num reports: 1
        Entry 0
          Event type: 0x2513
            Props: 0x0013
              Connectable
              Scannable
              Use legacy advertising PDUs
            Data status: Complete
            Reserved (0x2500)
          Legacy PDU Type: Reserved (0x2513)
          Address type: Random (0x01)
          Address: EA:C1:82:F0:24:C6 (Static)
          Primary PHY: Reserved
          Secondary PHY: No packets
          SID: no ADI field (0xff)
          TX power: 127 dBm
          RSSI: -57 dBm (0xc7)
          Periodic advertising interval: 0.00 msec (0x0000)
          Direct address type: Public (0x00)
          Direct address: 00:00:00:00:00:00 (OUI 00-00-00)
          Data length: 25

This results in the firmware rejecting connection attempts with
"Unsupported Feature or Parameter Value" (0x11).

Fix the issue by using the same quirk for BCM4378 devices too.

I tested this locally and confirmed that the issue is resolved.

This was observed when attempting to connect a Kinesis Advantage 360
keyboard to the MacBook.

Assisted-by: Claude:claude-fable-5
Fixes: 2e7ed5f5e6 ("Bluetooth: hci_sync: Use advertised PHYs on hci_le_ext_create_conn_sync")
Cc: stable@vger.kernel.org
Signed-off-by: Lorenzo Stoakes (ARM) <ljs@kernel.org>
Reviewed-by: Sven Peter <sven@kernel.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
History 2026-08-24 13:10:49 -04:00
..
accel accel/amdxdna: Skip unmapped range in aie2_populate_range() 2026-08-12 23:12:20 -07:00
accessibility Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
acpi Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
amba amba: use generic driver_override infrastructure 2026-05-30 22:25:23 +02:00
android Rust changes for v7.3 2026-08-18 11:25:09 -07:00
ata ata changes for 7.3 2026-08-19 12:31:50 -07:00
atm atm: remove unused ATM PHY operations 2026-06-16 08:53:53 -07:00
auxdisplay Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
base Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
bcma Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
block Rust changes for v7.3 2026-08-18 11:25:09 -07:00
bluetooth Bluetooth: hci_bcm4377: Ignore reserved PHY in ext adv reports on BCM4378 2026-08-24 13:10:49 -04:00
bus FSL SOC Changes for 7.3 2026-08-10 10:15:56 +02:00
cache Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
cdrom cdrom: fix stack out-of-bounds read in CDROMVOLCTRL 2026-07-20 21:54:52 -06:00
cdx Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
char This update includes the following changes: 2026-08-19 17:25:42 -07:00
clk pmdomain providers: 2026-08-19 09:28:46 -07:00
clocksource VDSO updates: 2026-08-18 16:56:25 -07:00
comedi comedi: comedi_parport: deal with premature interrupt 2026-07-17 14:50:35 +02:00
connector Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
counter Counter fixes for 7.2 2026-08-06 11:03:41 +02:00
cpufreq Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
cpuidle soc: qcom: Avoid SCM and SPM for cpuidle drivers 2026-07-11 10:01:51 -05:00
crypto This update includes the following changes: 2026-08-19 17:25:42 -07:00
cxl cxl: Support dpa without a mailbox 2026-06-29 10:55:47 -07:00
dax mm.git review status for mm-hotfixes-stable..mm-stable 2026-06-19 10:14:34 -07:00
dca treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
devfreq Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
dibs net/dibs: Correct freeing of dmb_clientid_arr 2026-08-12 17:08:05 -07:00
dio dio: Use tabs and avoid continuation logging in dio_init 2026-05-18 11:16:26 +02:00
dma dmaengine fixes for v7.2 2026-08-02 09:19:40 -07:00
dma-buf udmabuf: Ensure to perform cache synchronisation in begin_cpu_udmabuf() 2026-07-10 16:26:39 -07:00
dpll Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-08-18 10:42:41 -07:00
edac x86/msr updates for v7.3: 2026-08-18 14:02:15 -07:00
eisa Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
extcon Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
firewire - Get rid of static_cpu_has() - one less API to care about testing CPU 2026-08-18 19:09:42 -07:00
firmware sound updates for 7.3-rc1 2026-08-19 10:04:59 -07:00
fpga Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
fsi Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
fwctl rust: introduce abstractions for fwctl 2026-08-14 19:21:17 -03:00
gnss Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
gpib gpio: legacy interface cleanups for 7.3 2026-07-27 09:56:49 +02:00
gpio gpio updates for v7.3-rc1 2026-08-19 09:10:07 -07:00
gpu This update includes the following changes: 2026-08-19 17:25:42 -07:00
greybus greybus: gb-beagleplay: bound bootloader receive buffering 2026-04-02 15:55:09 +02:00
hid Major changes: 2026-08-20 07:36:20 -07:00
hsi Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
hte Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
hv mshv_vtl: bounds-check cpu index in vtl mmap fault handler 2026-07-31 20:02:04 +00:00
hwmon hwmon updates for v7.3 2026-08-19 09:56:28 -07:00
hwspinlock hwspinlock: qcom: avoid uninitialized struct members 2026-06-08 21:51:12 -05:00
hwtracing intel_th: fix MSC output device reference leak 2026-07-17 14:52:08 +02:00
i2c Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
i3c i3c: mipi-i3c-hci: Use named initializers for platform_device_id's .driver_data 2026-06-16 23:19:45 +02:00
idle Merge branch 'intel-idle-lpi' 2026-08-07 21:22:50 +02:00
iio Linux 7.2 2026-08-18 14:21:04 +02:00
infiniband net/mlx5: Move vport DOWN state check out of mlx5_query_vport_max_tx_speed() 2026-08-20 12:22:42 -07:00
input hid-for-linus-2026081901 2026-08-19 10:00:31 -07:00
interconnect Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
iommu iommufd v7.3 merge window pull request 2026-08-19 12:42:58 -07:00
ipack Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
irqchip Interrupt chip driver updates: 2026-08-18 15:24:18 -07:00
leds Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
macintosh sched/cputime: Remove superfluous and error prone kcpustat_field() parameter 2026-06-02 21:27:25 +02:00
mailbox Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
mcb Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
md - 6 minor cleanups found by Claude Opus 4.6 2026-08-19 12:35:15 -07:00
media [GIT PULL for v7.3] media updates 2026-08-19 10:09:22 -07:00
memory Memory controller drivers for v7.3 2026-07-29 16:56:11 +02:00
memstick memstick: ms_block: reject a card that reports too many blocks 2026-07-06 17:09:30 +02:00
message Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
mfd Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
misc mei: pull kvfree out of spinlock 2026-07-31 13:28:05 +02:00
mmc Networking changes for 7.3. 2026-08-20 08:16:04 -07:00
most most: usb: Use kzalloc_objs for endpoint address array 2026-04-02 17:06:09 +02:00
mtd Among the most important fixes that we have here, there are: 2026-07-17 09:30:17 -07:00
mux Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
net net: hibmcge: fix page_pool DMA direction mismatch 2026-08-22 13:49:13 -07:00
nfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-08-18 10:42:41 -07:00
ntb NTB: ntb_transport: Reject oversized TX buffers 2026-08-20 13:43:24 -07:00
nubus nubus: Switch to dynamic root device 2026-05-18 11:16:19 +02:00
nvdimm Updates for the 7.2 release 2026-06-18 16:27:58 -07:00
nvme block-7.2-20260625 2026-06-25 09:56:47 -07:00
nvmem nvmem: layouts: Add fixed-layout driver 2026-07-31 11:00:13 +02:00
of Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
opp opp: Use clk_get_optional() to avoid leaving opp_table->clk as an error pointer 2026-08-06 11:54:14 +05:30
parisc parisc: Fix IRQ leak in LASI driver 2026-05-04 11:48:12 +02:00
parport parport: Fix race between port and client registration 2026-05-22 12:19:02 +02:00
pci Networking changes for 7.3. 2026-08-20 08:16:04 -07:00
pcmcia pcmcia: replace linux/gpio.h inclusions 2026-07-24 20:12:48 +02:00
peci Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
perf perf: arm_pmuv3: Zero initialize hw_id branch stack field 2026-08-07 11:55:16 +00:00
phy gpio updates for v7.3-rc1 2026-08-19 09:10:07 -07:00
pinctrl Linux 7.2 2026-08-18 14:21:04 +02:00
platform Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
pmdomain Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
pnp Merge branches 'acpi-numa', 'acpi-misc' and 'pnp' 2026-08-07 20:01:31 +02:00
power power sequencing updates for v7.3-rc1 2026-08-19 09:08:06 -07:00
powercap x86/msr updates for v7.3: 2026-08-18 14:02:15 -07:00
pps Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
ps3 Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ptp ptp: netc: fix period truncation and potential divide-by-zero in PEROUT 2026-08-22 12:34:39 -07:00
pwm Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
rapidio mm.git review status for mm-hotfixes-stable..mm-nonmm-stable 2026-06-21 13:20:19 -07:00
ras x86/ras: Move contents from arch/x86/ras/Kconfig into drivers/ras/Kconfig 2026-07-01 18:40:09 -07:00
regulator regulator: Updates for v7.3 2026-08-19 09:36:58 -07:00
remoteproc remoteproc: qcom: pas: Drop start/stop completion from struct qcom_pas 2026-06-08 21:53:51 -05:00
resctrl arm64 updates for 7.3 2026-08-18 11:57:17 -07:00
reset Linux 7.2-rc7 2026-08-10 01:20:05 +02:00
rpmsg rpmsg update for v7.2 2026-06-20 23:31:15 -07:00
rtc Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-08-13 11:00:14 -07:00
sbus Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
scsi ata changes for 7.3 2026-08-19 12:31:50 -07:00
sh Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
siox Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
slimbus slimbus: qcom-ngd-ctrl: use platform_device_set_of_node() 2026-07-10 16:07:09 +02:00
soc spi: Updates for v7.3 2026-08-19 09:47:41 -07:00
soundwire soundwire: bus_type: Create IRQ mapping before calling driver probe() 2026-08-14 13:53:25 +01:00
spi spi: Updates for v7.3 2026-08-19 09:47:41 -07:00
spmi Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
ssb Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
staging Networking changes for 7.3. 2026-08-20 08:16:04 -07:00
target vfs-7.3-rc1.kthread 2026-08-17 11:35:12 -07:00
tc Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
tee soc: drivers for 7.3 2026-08-18 19:40:29 -07:00
thermal - Get rid of static_cpu_has() - one less API to care about testing CPU 2026-08-18 19:09:42 -07:00
thunderbolt thunderbolt: Initialize ->domain_released completion before it is being used 2026-07-30 06:47:32 +02:00
tty Linux 7.2-rc7 2026-08-10 01:20:05 +02:00
ufs scsi: core: pair EH runtime PM get and put 2026-08-07 11:00:49 -04:00
uio uio_hv_generic: Bind to FCopy device by default 2026-07-17 14:50:09 +02:00
usb Networking changes for 7.3. 2026-08-20 08:16:04 -07:00
vdpa vdpa/mlx5: Fix buffer length in create_direct_keys() 2026-08-03 15:21:54 -04:00
vfio vfio: Enable cdev noiommu mode under iommufd 2026-07-14 12:05:01 -03:00
vhost vhost-net: wake queue of tun/tap after ptr_ring consume 2026-08-07 17:29:15 -07:00
video fbdev: bitblit: bound-check glyph index in bit_cursor() 2026-08-08 08:08:58 +02:00
virt arm64 updates for 7.3 2026-08-18 11:57:17 -07:00
virtio mm: page_reporting: allow driver to set batch capacity 2026-07-09 15:48:56 -07:00
w1 Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
watchdog watchdog updates for v7.3 2026-08-19 09:53:35 -07:00
xen xenbus: Unregister reboot notifier on init failure 2026-08-13 12:48:57 +02:00
zorro zorro: sysfs: Replace sprintf() by sysfs_emit() 2026-04-27 13:52:12 +02:00
Kconfig net: remove ISDN subsystem and Bluetooth CMTP 2026-04-23 10:24:02 -07:00
Makefile net: remove ISDN subsystem and Bluetooth CMTP 2026-04-23 10:24:02 -07:00