Commit | Line | Data |
---|---|---|
145373cb MC |
1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | /* | |
3 | * Copyright (C) 2020 Google Corporation | |
4 | */ | |
5 | ||
e5e1e7fd MC |
6 | #define MSFT_FEATURE_MASK_BREDR_RSSI_MONITOR BIT(0) |
7 | #define MSFT_FEATURE_MASK_LE_CONN_RSSI_MONITOR BIT(1) | |
8 | #define MSFT_FEATURE_MASK_LE_ADV_RSSI_MONITOR BIT(2) | |
9 | #define MSFT_FEATURE_MASK_LE_ADV_MONITOR BIT(3) | |
10 | #define MSFT_FEATURE_MASK_CURVE_VALIDITY BIT(4) | |
11 | #define MSFT_FEATURE_MASK_CONCURRENT_ADV_MONITOR BIT(5) | |
12 | ||
145373cb MC |
13 | #if IS_ENABLED(CONFIG_BT_MSFTEXT) |
14 | ||
a2a4dedf | 15 | bool msft_monitor_supported(struct hci_dev *hdev); |
5031ffcc MC |
16 | void msft_register(struct hci_dev *hdev); |
17 | void msft_unregister(struct hci_dev *hdev); | |
145373cb MC |
18 | void msft_do_open(struct hci_dev *hdev); |
19 | void msft_do_close(struct hci_dev *hdev); | |
3e54c589 | 20 | void msft_vendor_evt(struct hci_dev *hdev, void *data, struct sk_buff *skb); |
e5e1e7fd | 21 | __u64 msft_get_features(struct hci_dev *hdev); |
a2a4dedf | 22 | int msft_add_monitor_pattern(struct hci_dev *hdev, struct adv_monitor *monitor); |
7cf5c297 | 23 | int msft_remove_monitor(struct hci_dev *hdev, struct adv_monitor *monitor); |
bf6a4e30 | 24 | void msft_req_add_set_filter_enable(struct hci_request *req, bool enable); |
394566bf | 25 | int msft_set_filter_enable(struct hci_dev *hdev, bool enable); |
182ee45d LAD |
26 | int msft_suspend_sync(struct hci_dev *hdev); |
27 | int msft_resume_sync(struct hci_dev *hdev); | |
a61d6718 | 28 | bool msft_curve_validity(struct hci_dev *hdev); |
145373cb MC |
29 | |
30 | #else | |
31 | ||
a2a4dedf AP |
32 | static inline bool msft_monitor_supported(struct hci_dev *hdev) |
33 | { | |
34 | return false; | |
35 | } | |
36 | ||
5031ffcc MC |
37 | static inline void msft_register(struct hci_dev *hdev) {} |
38 | static inline void msft_unregister(struct hci_dev *hdev) {} | |
145373cb MC |
39 | static inline void msft_do_open(struct hci_dev *hdev) {} |
40 | static inline void msft_do_close(struct hci_dev *hdev) {} | |
9a667031 LAD |
41 | static inline void msft_vendor_evt(struct hci_dev *hdev, void *data, |
42 | struct sk_buff *skb) {} | |
e5e1e7fd | 43 | static inline __u64 msft_get_features(struct hci_dev *hdev) { return 0; } |
a2a4dedf AP |
44 | static inline int msft_add_monitor_pattern(struct hci_dev *hdev, |
45 | struct adv_monitor *monitor) | |
46 | { | |
47 | return -EOPNOTSUPP; | |
48 | } | |
145373cb | 49 | |
66bd095a | 50 | static inline int msft_remove_monitor(struct hci_dev *hdev, |
7cf5c297 | 51 | struct adv_monitor *monitor) |
66bd095a AP |
52 | { |
53 | return -EOPNOTSUPP; | |
54 | } | |
55 | ||
bf6a4e30 HC |
56 | static inline void msft_req_add_set_filter_enable(struct hci_request *req, |
57 | bool enable) {} | |
394566bf AP |
58 | static inline int msft_set_filter_enable(struct hci_dev *hdev, bool enable) |
59 | { | |
60 | return -EOPNOTSUPP; | |
61 | } | |
62 | ||
182ee45d LAD |
63 | static inline int msft_suspend_sync(struct hci_dev *hdev) |
64 | { | |
65 | return -EOPNOTSUPP; | |
66 | } | |
67 | ||
68 | static inline int msft_resume_sync(struct hci_dev *hdev) | |
69 | { | |
70 | return -EOPNOTSUPP; | |
71 | } | |
ce81843b | 72 | |
a61d6718 MH |
73 | static inline bool msft_curve_validity(struct hci_dev *hdev) |
74 | { | |
75 | return false; | |
76 | } | |
77 | ||
145373cb | 78 | #endif |