On Wed 10 Mar 05:41 CST 2021, Venkata Lakshmi Narayana Gubba wrote: > Added device_may_wakeup() support. This would be an excellent place to describe _why_ this is necessary, instead of just repeating $subject. Something along the lines of the comment in the patch. Regards, Bjorn > > Signed-off-by: Venkata Lakshmi Narayana Gubba <gubbaven@xxxxxxxxxxxxxx> > --- > drivers/bluetooth/hci_qca.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c > index de36af6..73af901 100644 > --- a/drivers/bluetooth/hci_qca.c > +++ b/drivers/bluetooth/hci_qca.c > @@ -1571,6 +1571,20 @@ static void qca_cmd_timeout(struct hci_dev *hdev) > mutex_unlock(&qca->hci_memdump_lock); > } > > +static bool qca_prevent_wake(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. > + */ > + wakeup = device_may_wakeup(hu->serdev->ctrl->dev.parent); > + bt_dev_dbg(hu->hdev, "wakeup status : %d", wakeup); > + > + return !wakeup; > +} > + > static int qca_wcn3990_init(struct hci_uart *hu) > { > struct qca_serdev *qcadev; > @@ -1721,6 +1735,7 @@ static int qca_setup(struct hci_uart *hu) > qca_debugfs_init(hdev); > hu->hdev->hw_error = qca_hw_error; > hu->hdev->cmd_timeout = qca_cmd_timeout; > + hu->hdev->prevent_wake = qca_prevent_wake; > } else if (ret == -ENOENT) { > /* No patch/nvm-config found, run with original fw/config */ > set_bit(QCA_ROM_FW, &qca->flags); > -- > QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member > of Code Aurora Forum, hosted by The Linux Foundation >