| .. | .. |
|---|
| 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 | |
|---|