aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth/hci_bcm.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2018-01-22 12:53:24 +0100
committerMarcel Holtmann <marcel@holtmann.org>2018-01-22 13:01:42 +0100
commit8c6b8eda7294775097e0d0eb64cb6f86d460d7c2 (patch)
treea81a05ed752780b471e4816cfe3758fefeaf0127 /drivers/bluetooth/hci_bcm.c
parentBluetooth: btbcm: Add entry for BCM4343A0 UART bluetooth (diff)
downloadlinux-dev-8c6b8eda7294775097e0d0eb64cb6f86d460d7c2.tar.xz
linux-dev-8c6b8eda7294775097e0d0eb64cb6f86d460d7c2.zip
Bluetooth: hci_bcm: For serdev case close serdev on failure to set power
Commit 8bfa7e1e03ac ("Bluetooth: hci_bcm: Handle errors properly") introduced error checking for the bcm_gpio_set_power() call in bcm_open() but the error-path it introduces unsets dev->hu, which is correct for platform_device instantiated bcm_dev-s but not for serdev instantiated devs. For serdev instantiated devs serdev_device_close() should be called instead (and dev->hu should be left set). Cc: Lukas Wunner <lukas@wunner.de> Fixes: 8bfa7e1e03ac ("Bluetooth: hci_bcm: Handle errors properly") Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth/hci_bcm.c')
-rw-r--r--drivers/bluetooth/hci_bcm.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
index 64800cd2796c..0438a64b8185 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -412,8 +412,11 @@ out:
return 0;
err_unset_hu:
+ if (hu->serdev)
+ serdev_device_close(hu->serdev);
#ifdef CONFIG_PM
- bcm->dev->hu = NULL;
+ else
+ bcm->dev->hu = NULL;
#endif
err_free:
mutex_unlock(&bcm_device_lock);