2018-03-07 21:39:03

by Marcel Holtmann

[permalink] [raw]
Subject: [PATCH] Bluetooth: hci_bcm: Use default baud rate if missing shutdown GPIO

In case the shutdown GPIO is not wired up, it is impossible to reset the
Bluetooth controller to its original state. This include the initial
default baud rate which leads to issues when reloading the module or
when something unexpected happens. To avoid any kind of runtime
deadlocks, stick with the initial default baud rate.

Signed-off-by: Marcel Holtmann <[email protected]>
---
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 6035d68d8167..1b9bef24b7a2 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -1141,6 +1141,11 @@ static int bcm_serdev_probe(struct serdev_device *serdev)
if (err)
return err;

+ if (!bcmdev->shutdown) {
+ dev_warn(&serdev->dev, "No reset resource, using default baud rate\n");
+ bcmdev->oper_speed = bcmdev->init_speed;
+ }
+
err = bcm_gpio_set_power(bcmdev, false);
if (err)
dev_err(&serdev->dev, "Failed to power down\n");
--
2.14.3



2018-03-11 13:33:54

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: hci_bcm: Use default baud rate if missing shutdown GPIO

Hi Marcel,

On Wed, Mar 07, 2018, Marcel Holtmann wrote:
> In case the shutdown GPIO is not wired up, it is impossible to reset the
> Bluetooth controller to its original state. This include the initial
> default baud rate which leads to issues when reloading the module or
> when something unexpected happens. To avoid any kind of runtime
> deadlocks, stick with the initial default baud rate.
>
> Signed-off-by: Marcel Holtmann <[email protected]>
> ---
> drivers/bluetooth/hci_bcm.c | 5 +++++
> 1 file changed, 5 insertions(+)

Applied to bluetooth-next. Thanks.

Johan