]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
Bluetooth: hci_qca: get wakeup status from serdev device handle
authorZhengping Jiang <jiangzp@google.com>
Thu, 2 Feb 2023 17:47:01 +0000 (09:47 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Mar 2023 08:33:02 +0000 (09:33 +0100)
[ Upstream commit 03b0093f7b310493bc944a20f725228cfe0d3fea ]

Bluetooth controller attached via the UART is handled by the serdev driver.
Get the wakeup status from the device handle through serdev, instead of the
parent path.

Fixes: c1a74160eaf1 ("Bluetooth: hci_qca: Add device_may_wakeup support")
Signed-off-by: Zhengping Jiang <jiangzp@google.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/bluetooth/hci_qca.c

index e4398590b0edce297ea3421e5469cddf2680a309..7b9fd5f104335fb969e34deed833b3285ed777a2 100644 (file)
@@ -1582,10 +1582,11 @@ static bool qca_wakeup(struct hci_dev *hdev)
        struct hci_uart *hu = hci_get_drvdata(hdev);
        bool wakeup;
 
-       /* UART driver handles the interrupt from BT SoC.So we need to use
-        * device handle of UART driver to get the status of device may wakeup.
+       /* BT SoC attached through the serial bus is handled by the serdev driver.
+        * So we need to use the device handle of the serdev driver to get the
+        * status of device may wakeup.
         */
-       wakeup = device_may_wakeup(hu->serdev->ctrl->dev.parent);
+       wakeup = device_may_wakeup(&hu->serdev->ctrl->dev);
        bt_dev_dbg(hu->hdev, "wakeup status : %d", wakeup);
 
        return wakeup;