lkml.org 
[lkml]   [2022]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.19 0532/1157] Bluetooth: Add default wakeup callback for HCI UART driver
    Date
    From: Ying Hsu <yinghsu@chromium.org>

    [ Upstream commit bee5395ced44c5a312348557eb2dfb0c2a7bfaa2 ]

    Bluetooth HCI devices indicate if they are able to wakeup in the wakeup
    callback since 'commit 4539ca67fe8e ("Bluetooth: Rename driver
    .prevent_wake to .wakeup")'. This patch adds a default wakeup callback
    for Bluetooth HCI UAR devices. It assumes Bluetooth HCI UART devices are
    wakeable for backward compatibility. For those who need a customized
    behavior, one can override it before calling hci_uart_register_device().

    Fixes: 4539ca67fe8e ("Bluetooth: Rename driver .prevent_wake to .wakeup")
    Signed-off-by: Ying Hsu <yinghsu@chromium.org>
    Reviewed-by: Alain Michaud <alainm@chromium.org>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/bluetooth/hci_serdev.c | 11 +++++++++++
    1 file changed, 11 insertions(+)

    diff --git a/drivers/bluetooth/hci_serdev.c b/drivers/bluetooth/hci_serdev.c
    index 4cda890ce647..c0e5f42ec6b7 100644
    --- a/drivers/bluetooth/hci_serdev.c
    +++ b/drivers/bluetooth/hci_serdev.c
    @@ -231,6 +231,15 @@ static int hci_uart_setup(struct hci_dev *hdev)
    return 0;
    }

    +/* Check if the device is wakeable */
    +static bool hci_uart_wakeup(struct hci_dev *hdev)
    +{
    + /* HCI UART devices are assumed to be wakeable by default.
    + * Implement wakeup callback to override this behavior.
    + */
    + return true;
    +}
    +
    /** hci_uart_write_wakeup - transmit buffer wakeup
    * @serdev: serial device
    *
    @@ -342,6 +351,8 @@ int hci_uart_register_device(struct hci_uart *hu,
    hdev->flush = hci_uart_flush;
    hdev->send = hci_uart_send_frame;
    hdev->setup = hci_uart_setup;
    + if (!hdev->wakeup)
    + hdev->wakeup = hci_uart_wakeup;
    SET_HCIDEV_DEV(hdev, &hu->serdev->dev);

    if (test_bit(HCI_UART_NO_SUSPEND_NOTIFIER, &hu->flags))
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-16 02:06    [W:4.087 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site