Bluetooth: hci_bcm: Fix clock (un)prepare
authorJohn Keeping <john@metanate.com>
Wed, 15 Mar 2017 12:20:05 +0000 (12:20 +0000)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 12 Apr 2017 20:02:36 +0000 (22:02 +0200)
The hci_bcm driver currently does not prepare/unprepare the clock and
goes directly to enable, but as the documentation for clk_enable says,
clk_prepare must be called before clk_enable.

Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/hci_bcm.c

index 5262a2077d7a83c217635e83eb66f10fde82b3d6..c7d3c6842bcfb51c4ac6272cb44b562315938211 100644 (file)
@@ -146,13 +146,13 @@ static bool bcm_device_exists(struct bcm_device *device)
 static int bcm_gpio_set_power(struct bcm_device *dev, bool powered)
 {
        if (powered && !IS_ERR(dev->clk) && !dev->clk_enabled)
-               clk_enable(dev->clk);
+               clk_prepare_enable(dev->clk);
 
        gpiod_set_value(dev->shutdown, powered);
        gpiod_set_value(dev->device_wakeup, powered);
 
        if (!powered && !IS_ERR(dev->clk) && dev->clk_enabled)
-               clk_disable(dev->clk);
+               clk_disable_unprepare(dev->clk);
 
        dev->clk_enabled = powered;