@@ -2508,6 +2508,7 @@ static void default_cmd(struct btdev *btdev, uint16_t opcode,
const struct bt_hci_le_scan_phy *lsp;
const struct bt_hci_cmd_le_set_ext_scan_enable *lsese;
const struct bt_hci_cmd_le_reject_cis *lrcis;
+ const struct bt_hci_cmd_le_remove_iso_path *lerip;
struct bt_hci_rsp_read_default_link_policy rdlp;
struct bt_hci_rsp_read_stored_link_key rslk;
struct bt_hci_rsp_write_stored_link_key wslk;
@@ -3907,6 +3908,30 @@ static void default_cmd(struct btdev *btdev, uint16_t opcode,
break;
+ case BT_HCI_CMD_LE_REMOVE_ISO_PATH:
+ if (btdev->type != BTDEV_TYPE_BREDRLE52)
+ goto unsupported;
+
+ lerip = data;
+ status = BT_HCI_ERR_SUCCESS;
+
+ if (!btdev->conn || le16_to_cpu(lerip->handle) != ISO_HANDLE)
+ status = BT_HCI_ERR_UNKNOWN_CONN_ID;
+
+ switch (lerip->direction) {
+ case 0x00:
+ btdev->le_iso_path[0] = 0x00;
+ break;
+ case 0x01:
+ btdev->le_iso_path[1] = 0x00;
+ break;
+ default:
+ status = BT_HCI_ERR_INVALID_PARAMETERS;
+ }
+
+ cmd_complete(btdev, opcode, &status, sizeof(status));
+ break;
+
case BT_HCI_CMD_LE_SET_HOST_FEATURE:
if (btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
@@ -2780,7 +2780,7 @@ struct bt_hci_cmd_le_setup_iso_path {
#define BT_HCI_BIT_LE_REMOVE_ISO_PATH BT_HCI_CMD_BIT(43, 4)
struct bt_hci_cmd_le_remove_iso_path {
uint16_t handle;
- uint8_t path_dir;
+ uint8_t direction;
} __attribute__ ((packed));
#define BT_HCI_CMD_LE_ISO_TX_TEST 0x2070
@@ -8118,7 +8118,7 @@ static void le_remove_iso_path_cmd(const void *data, uint8_t size)
const struct bt_hci_cmd_le_remove_iso_path *cmd = data;
print_field("Connection Handle: %d", le16_to_cpu(cmd->handle));
- print_iso_dir("Data Path Direction", cmd->path_dir);
+ print_iso_dir("Data Path Direction", cmd->direction);
}
static void le_req_peer_sca_cmd(const void *data, uint8_t size)
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> This implements support for LE Remove ISO Data Path command. --- emulator/btdev.c | 25 +++++++++++++++++++++++++ monitor/bt.h | 2 +- monitor/packet.c | 2 +- 3 files changed, 27 insertions(+), 2 deletions(-)