forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-31 f70575805708cabdedea7498aaa3f710fde4d920
kernel/drivers/bluetooth/btmrvl_main.c
....@@ -587,6 +587,14 @@
587587 return 0;
588588 }
589589
590
+static bool btmrvl_prevent_wake(struct hci_dev *hdev)
591
+{
592
+ struct btmrvl_private *priv = hci_get_drvdata(hdev);
593
+ struct btmrvl_sdio_card *card = priv->btmrvl_dev.card;
594
+
595
+ return !device_may_wakeup(&card->func->dev);
596
+}
597
+
590598 /*
591599 * This function handles the event generated by firmware, rx data
592600 * received from firmware, and tx data sent from kernel.
....@@ -669,6 +677,7 @@
669677 int btmrvl_register_hdev(struct btmrvl_private *priv)
670678 {
671679 struct hci_dev *hdev = NULL;
680
+ struct btmrvl_sdio_card *card = priv->btmrvl_dev.card;
672681 int ret;
673682
674683 hdev = hci_alloc_dev();
....@@ -687,6 +696,8 @@
687696 hdev->send = btmrvl_send_frame;
688697 hdev->setup = btmrvl_setup;
689698 hdev->set_bdaddr = btmrvl_set_bdaddr;
699
+ hdev->prevent_wake = btmrvl_prevent_wake;
700
+ SET_HCIDEV_DEV(hdev, &card->func->dev);
690701
691702 hdev->dev_type = priv->btmrvl_dev.dev_type;
692703