Bluetooth: hci_sync: Fix use HCI_OP_LE_READ_BUFFER_SIZE_V2
Don't try to use HCI_OP_LE_READ_BUFFER_SIZE_V2 if controller don't
support ISO channels, but in order to check if ISO channels are
supported HCI_OP_LE_READ_LOCAL_FEATURES needs to be done earlier so the
features bits can be checked on hci_le_read_buffer_size_sync.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216817
Fixes: c1631dbc00
("Bluetooth: hci_sync: Fix hci_read_buffer_size_sync")
Cc: stable@vger.kernel.org # 6.1
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
parent
2185e0fdbb
commit
3a4d29b6d6
@ -3572,7 +3572,7 @@ static const struct hci_init_stage hci_init2[] = {
|
||||
static int hci_le_read_buffer_size_sync(struct hci_dev *hdev)
|
||||
{
|
||||
/* Use Read LE Buffer Size V2 if supported */
|
||||
if (hdev->commands[41] & 0x20)
|
||||
if (iso_capable(hdev) && hdev->commands[41] & 0x20)
|
||||
return __hci_cmd_sync_status(hdev,
|
||||
HCI_OP_LE_READ_BUFFER_SIZE_V2,
|
||||
0, NULL, HCI_CMD_TIMEOUT);
|
||||
@ -3597,10 +3597,10 @@ static int hci_le_read_supported_states_sync(struct hci_dev *hdev)
|
||||
|
||||
/* LE Controller init stage 2 command sequence */
|
||||
static const struct hci_init_stage le_init2[] = {
|
||||
/* HCI_OP_LE_READ_BUFFER_SIZE */
|
||||
HCI_INIT(hci_le_read_buffer_size_sync),
|
||||
/* HCI_OP_LE_READ_LOCAL_FEATURES */
|
||||
HCI_INIT(hci_le_read_local_features_sync),
|
||||
/* HCI_OP_LE_READ_BUFFER_SIZE */
|
||||
HCI_INIT(hci_le_read_buffer_size_sync),
|
||||
/* HCI_OP_LE_READ_SUPPORTED_STATES */
|
||||
HCI_INIT(hci_le_read_supported_states_sync),
|
||||
{}
|
||||
|
Loading…
Reference in New Issue
Block a user