Starting a BCM UART controller not defined as a platform device or a serdev with "btattach -B /dev/ttyS1 -P bcm -S 3000000" works fine but the serial port remains at the init_speed, i.e. 115200. The oper_speed is only set if a device is declared in ACPI, device tree or as a platform device. When no registered device has been found this commit will use the current tty speed set by btattach as the oper_speed. Signed-off-by: Frédéric Danis <frederic.danis@xxxxxxxxxxxxx> --- This has been tested with 5.4 kernel only. Afaict there's no change in this driver which should be impacted by this commit in latest kernel. drivers/bluetooth/hci_bcm.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c index 89d4c2224546..57cacf63ae12 100644 --- a/drivers/bluetooth/hci_bcm.c +++ b/drivers/bluetooth/hci_bcm.c @@ -508,6 +508,11 @@ static int bcm_open(struct hci_uart *hu) if (err) goto err_unset_hu; + } else { + /* This is not a serdev or platform device, it should have been started by + * btattach, in this case use the tty speed set by btattach as oper_speed + */ + hu->oper_speed = hu->tty->termios.c_ospeed; } mutex_unlock(&bcm_device_lock); -- 2.34.1