summaryrefslogtreecommitdiffstats
path: root/net/bluetooth/msft.h
diff options
context:
space:
mode:
authorMiao-chen Chou <mcchou@chromium.org>2021-09-09 14:10:23 -0700
committerMarcel Holtmann <marcel@holtmann.org>2021-09-10 09:27:13 +0200
commit5031ffcc79b81776ac8f7f8b1a585aed8818e3d1 (patch)
tree18345b9a0686eb451ec79a5bc6bdeb3f6901f9cb /net/bluetooth/msft.h
parent9682d36c21196c4019d84e77eae3921128927ce2 (diff)
downloadlinux-stable-5031ffcc79b81776ac8f7f8b1a585aed8818e3d1.tar.gz
linux-stable-5031ffcc79b81776ac8f7f8b1a585aed8818e3d1.tar.bz2
linux-stable-5031ffcc79b81776ac8f7f8b1a585aed8818e3d1.zip
Bluetooth: Keep MSFT ext info throughout a hci_dev's life cycle
This splits the msft_do_{open/close} to msft_do_{open/close} and msft_{register/unregister}. With this change it is possible to retain the MSFT extension info irrespective of controller power on/off state. This helps bluetoothd to report correct 'supported features' of the controller to the D-Bus clients event if the controller is off. It also re-reads the MSFT info upon every msft_do_open(). The following test steps were performed. 1. Boot the test device and verify the MSFT support debug log in syslog. 2. Power off the controller and read the 'supported features', power on and read again. 3. Restart the bluetoothd and verify the 'supported features' value. Signed-off-by: Miao-chen Chou <mcchou@chromium.org> Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org> Reviewed-by: Archie Pusaka <apusaka@chromium.org> Reviewed-by: Alain Michaud <alainm@chromium.org> Signed-off-by: Manish Mandlik <mmandlik@google.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/msft.h')
-rw-r--r--net/bluetooth/msft.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/bluetooth/msft.h b/net/bluetooth/msft.h
index 6e56d94b88d8..8018948c5975 100644
--- a/net/bluetooth/msft.h
+++ b/net/bluetooth/msft.h
@@ -13,6 +13,8 @@
#if IS_ENABLED(CONFIG_BT_MSFTEXT)
bool msft_monitor_supported(struct hci_dev *hdev);
+void msft_register(struct hci_dev *hdev);
+void msft_unregister(struct hci_dev *hdev);
void msft_do_open(struct hci_dev *hdev);
void msft_do_close(struct hci_dev *hdev);
void msft_vendor_evt(struct hci_dev *hdev, struct sk_buff *skb);
@@ -31,6 +33,8 @@ static inline bool msft_monitor_supported(struct hci_dev *hdev)
return false;
}
+static inline void msft_register(struct hci_dev *hdev) {}
+static inline void msft_unregister(struct hci_dev *hdev) {}
static inline void msft_do_open(struct hci_dev *hdev) {}
static inline void msft_do_close(struct hci_dev *hdev) {}
static inline void msft_vendor_evt(struct hci_dev *hdev, struct sk_buff *skb) {}