.. | .. |
---|
587 | 587 | return 0; |
---|
588 | 588 | } |
---|
589 | 589 | |
---|
| 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 | + |
---|
590 | 598 | /* |
---|
591 | 599 | * This function handles the event generated by firmware, rx data |
---|
592 | 600 | * received from firmware, and tx data sent from kernel. |
---|
.. | .. |
---|
669 | 677 | int btmrvl_register_hdev(struct btmrvl_private *priv) |
---|
670 | 678 | { |
---|
671 | 679 | struct hci_dev *hdev = NULL; |
---|
| 680 | + struct btmrvl_sdio_card *card = priv->btmrvl_dev.card; |
---|
672 | 681 | int ret; |
---|
673 | 682 | |
---|
674 | 683 | hdev = hci_alloc_dev(); |
---|
.. | .. |
---|
687 | 696 | hdev->send = btmrvl_send_frame; |
---|
688 | 697 | hdev->setup = btmrvl_setup; |
---|
689 | 698 | hdev->set_bdaddr = btmrvl_set_bdaddr; |
---|
| 699 | + hdev->prevent_wake = btmrvl_prevent_wake; |
---|
| 700 | + SET_HCIDEV_DEV(hdev, &card->func->dev); |
---|
690 | 701 | |
---|
691 | 702 | hdev->dev_type = priv->btmrvl_dev.dev_type; |
---|
692 | 703 | |
---|