Browse Source

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>
Hans de Goede 7 years ago
parent
commit
8c6b8eda72
1 changed files with 4 additions and 1 deletions
  1. 4 1
      drivers/bluetooth/hci_bcm.c

+ 4 - 1
drivers/bluetooth/hci_bcm.c

@@ -412,8 +412,11 @@ out:
 	return 0;
 	return 0;
 
 
 err_unset_hu:
 err_unset_hu:
+	if (hu->serdev)
+		serdev_device_close(hu->serdev);
 #ifdef CONFIG_PM
 #ifdef CONFIG_PM
-	bcm->dev->hu = NULL;
+	else
+		bcm->dev->hu = NULL;
 #endif
 #endif
 err_free:
 err_free:
 	mutex_unlock(&bcm_device_lock);
 	mutex_unlock(&bcm_device_lock);