Bluetooth: Keep MSFT ext info throughout a hci_dev's life cycle
authorMiao-chen Chou <mcchou@chromium.org>
Thu, 9 Sep 2021 21:10:23 +0000 (14:10 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 10 Sep 2021 07:27:13 +0000 (09:27 +0200)
commit5031ffcc79b81776ac8f7f8b1a585aed8818e3d1
tree18345b9a0686eb451ec79a5bc6bdeb3f6901f9cb
parent9682d36c21196c4019d84e77eae3921128927ce2
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>
net/bluetooth/hci_core.c
net/bluetooth/msft.c
net/bluetooth/msft.h