diff --git a/emulator/btdev.c b/emulator/btdev.c
index d97476b..28709ca 100644
--- a/emulator/btdev.c
+++ b/emulator/btdev.c
const struct bt_hci_cmd_le_ltk_req_reply *llrr;
const struct bt_hci_cmd_read_local_amp_assoc *rlaa_cmd;
const struct bt_hci_cmd_read_rssi *rrssi;
+ const struct bt_hci_cmd_read_tx_power *rtxp;
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;
struct bt_hci_rsp_user_confirm_request_reply ucrr_rsp;
struct bt_hci_rsp_user_confirm_request_neg_reply ucrnr_rsp;
struct bt_hci_rsp_read_rssi rrssi_rsp;
+ struct bt_hci_rsp_read_tx_power rtxp_rsp;
uint8_t status, page;
switch (opcode) {
cmd_complete(btdev, opcode, &rrssi_rsp, sizeof(rrssi_rsp));
break;
+ case BT_HCI_CMD_READ_TX_POWER:
+ rtxp = data;
+
+ switch (rtxp->type) {
+ case 0x00:
+ rtxp_rsp.status = BT_HCI_ERR_SUCCESS;
+ rtxp_rsp.level = -1; /* non-zero */
+ break;
+
+ case 0x01:
+ rtxp_rsp.status = BT_HCI_ERR_SUCCESS;
+ rtxp_rsp.level = 4; /* max for class 2 radio */
+ break;
+
+ default:
+ rtxp_rsp.level = 0;
+ rtxp_rsp.status = BT_HCI_ERR_INVALID_PARAMETERS;
+ break;
+ }
+
+ rtxp_rsp.handle = rtxp->handle;
+ cmd_complete(btdev, opcode, &rtxp_rsp, sizeof(rtxp_rsp));
+ break;
+
case BT_HCI_CMD_READ_LOCAL_AMP_INFO:
if (btdev->type != BTDEV_TYPE_AMP)
goto unsupported;