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
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.
*/
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__)*/
};
/**