Bluetooth: hci: added HCI vendor-specific Setup function feature

- Added config BT_HCI_SETUP to enable HCI vendor-specific Setup feature,
- Added pointer to 'setup' function in bt_hci_driver structure.

BT_HCI_SETUP feature is useful when the BT Controller requires execution
of the vendor-specific commands sequence to initialize the BT Controller
before the BT Host executes a Reset sequence. To enable this feature the
CONFIG_BT_HCI_SETUP should be enable.

Fixes #41140

Signed-off-by: Nazar Palamar <nazar.palamar@infineon.com>
This commit is contained in:
Nazar Palamar 2022-01-20 15:48:42 +02:00 committed by Johan Hedberg
commit c77a546f14
2 changed files with 28 additions and 0 deletions

View file

@ -131,3 +131,16 @@ config BT_DRIVER_QUIRK_NO_AUTO_DLE
This has to be enabled when the BLE controller connected is Zephyr This has to be enabled when the BLE controller connected is Zephyr
open source controller. open source controller.
config BT_HCI_SETUP
bool
help
Enable the HCI vendor-specific Setup function.
This option has to be enabled when the BT Controller requires execution
of the vendor-specific commands sequence to initialize the BT Controller
before the BT Host executes a Reset sequence.
The user should generally avoid changing it via menuconfig or in
configuration files. This option are enabled by the vendor-specific
HCI extension, where the Setup function is implemented.

View file

@ -185,6 +185,21 @@ struct bt_hci_driver {
* @return 0 on success or negative error number on failure. * @return 0 on success or negative error number on failure.
*/ */
int (*send)(struct net_buf *buf); int (*send)(struct net_buf *buf);
#if defined(CONFIG_BT_HCI_SETUP) || defined(__DOXYGEN__)
/**
* @brief HCI vendor-specific setup
*
* Executes vendor-specific commands sequence to initialize
* BT Controller before BT Host executes Reset sequence.
*
* @note @kconfig{CONFIG_BT_HCI_SETUP} must be selected for this
* field to be available.
*
* @return 0 on success or negative error number on failure.
*/
int (*setup)(void);
#endif /* defined(CONFIG_BT_HCI_SETUP) || defined(__DOXYGEN__)*/
}; };
/** /**