1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (C) 2020 Google Corporation 4 */ 5 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 13#if IS_ENABLED(CONFIG_BT_MSFTEXT) 14 15bool msft_monitor_supported(struct hci_dev *hdev); 16void msft_register(struct hci_dev *hdev); 17void msft_unregister(struct hci_dev *hdev); 18void msft_do_open(struct hci_dev *hdev); 19void msft_do_close(struct hci_dev *hdev); 20void msft_vendor_evt(struct hci_dev *hdev, void *data, struct sk_buff *skb); 21__u64 msft_get_features(struct hci_dev *hdev); 22int msft_add_monitor_pattern(struct hci_dev *hdev, struct adv_monitor *monitor); 23int msft_remove_monitor(struct hci_dev *hdev, struct adv_monitor *monitor); 24void msft_req_add_set_filter_enable(struct hci_request *req, bool enable); 25int msft_set_filter_enable(struct hci_dev *hdev, bool enable); 26int msft_suspend_sync(struct hci_dev *hdev); 27int msft_resume_sync(struct hci_dev *hdev); 28bool msft_curve_validity(struct hci_dev *hdev); 29 30#else 31 32static inline bool msft_monitor_supported(struct hci_dev *hdev) 33{ 34 return false; 35} 36 37static inline void msft_register(struct hci_dev *hdev) {} 38static inline void msft_unregister(struct hci_dev *hdev) {} 39static inline void msft_do_open(struct hci_dev *hdev) {} 40static inline void msft_do_close(struct hci_dev *hdev) {} 41static inline void msft_vendor_evt(struct hci_dev *hdev, void *data, 42 struct sk_buff *skb) {} 43static inline __u64 msft_get_features(struct hci_dev *hdev) { return 0; } 44static inline int msft_add_monitor_pattern(struct hci_dev *hdev, 45 struct adv_monitor *monitor) 46{ 47 return -EOPNOTSUPP; 48} 49 50static inline int msft_remove_monitor(struct hci_dev *hdev, 51 struct adv_monitor *monitor) 52{ 53 return -EOPNOTSUPP; 54} 55 56static inline void msft_req_add_set_filter_enable(struct hci_request *req, 57 bool enable) {} 58static inline int msft_set_filter_enable(struct hci_dev *hdev, bool enable) 59{ 60 return -EOPNOTSUPP; 61} 62 63static inline int msft_suspend_sync(struct hci_dev *hdev) 64{ 65 return -EOPNOTSUPP; 66} 67 68static inline int msft_resume_sync(struct hci_dev *hdev) 69{ 70 return -EOPNOTSUPP; 71} 72 73static inline bool msft_curve_validity(struct hci_dev *hdev) 74{ 75 return false; 76} 77 78#endif 79