goto generic_reply;
case OP_RX_ANTENNA:
- db_set_antenna(rx_dboard, ((op_config_mimo_t *)payload)->flags);
+ ok = db_set_antenna(rx_dboard, ((op_config_mimo_t *)payload)->flags);
goto generic_reply;
case OP_TX_ANTENNA:
- db_set_antenna(tx_dboard, ((op_config_mimo_t *)payload)->flags);
+ ok = db_set_antenna(tx_dboard, ((op_config_mimo_t *)payload)->flags);
goto generic_reply;
case OP_BURN_MAC_ADDR:
bool xcvr2450_set_gain_rx(struct db_base *db, u2_fxpt_gain_t gain);
bool xcvr2450_set_gain_tx(struct db_base *db, u2_fxpt_gain_t gain);
bool xcvr2450_set_tx_enable(struct db_base *db, bool on);
+bool xcvr2450_set_rx_antenna(struct db_base *db, int ant);
+bool xcvr2450_set_tx_antenna(struct db_base *db, int ant);
struct db_xcvr2450_common {
int d_mimo, d_int_div, d_frac_div, d_highband, d_five_gig;
.base.atr_mask = RX_ATR_MASK,
.base.atr_txval = 0x0,
.base.atr_rxval = 0x0,
+ .base.set_antenna = xcvr2450_set_rx_antenna,
.common = &db_xcvr2450_common,
};
.base.atr_mask = TX_ATR_MASK,
.base.atr_txval = 0x0,
.base.atr_rxval = 0x0,
+ .base.set_antenna = xcvr2450_set_tx_antenna,
.common = &db_xcvr2450_common,
};
set_gpio(db);
return true;
}
+
+/**************************************************
+ * Set Antennas
+ **************************************************/
+bool xcvr2450_set_rx_antenna(struct db_base *dbb, int ant){
+ printf("xcvr set rx ant %d\n", ant);
+ if (ant > 1) return false;
+ struct db_xcvr2450_dummy *db = (struct db_xcvr2450_dummy *) dbb;
+ db->common->d_rx_ant = ant;
+ set_gpio(db);
+ return true;
+}
+
+bool xcvr2450_set_tx_antenna(struct db_base *dbb, int ant){
+ printf("xcvr set tx ant %d\n", ant);
+ if (ant > 1) return false;
+ struct db_xcvr2450_dummy *db = (struct db_xcvr2450_dummy *) dbb;
+ db->common->d_tx_ant = ant;
+ set_gpio(db);
+ return true;
+}
memset(&cmd, 0, sizeof(cmd));
init_etf_hdrs(&cmd.h, d_addr, 0, CONTROL_CHAN, -1);
- cmd.op.opcode = OP_TX_ANTENNA;
+ cmd.op.opcode = OP_RX_ANTENNA;
cmd.op.len = sizeof(cmd.op);
cmd.op.rid = d_next_rid++;
cmd.op.flags = ant;
if (!transmit_cmd_and_wait(&cmd, sizeof(cmd), &p, DEF_CMD_TIMEOUT))
return false;
- return true;//ntohx(reply.ok) == 1;
+ return ntohx(reply.ok) == 1;
}
bool
memset(&cmd, 0, sizeof(cmd));
init_etf_hdrs(&cmd.h, d_addr, 0, CONTROL_CHAN, -1);
- cmd.op.opcode = OP_RX_ANTENNA;
+ cmd.op.opcode = OP_TX_ANTENNA;
cmd.op.len = sizeof(cmd.op);
cmd.op.rid = d_next_rid++;
cmd.op.flags = ant;
if (!transmit_cmd_and_wait(&cmd, sizeof(cmd), &p, DEF_CMD_TIMEOUT))
return false;
- return true;//ntohx(reply.ok) == 1;
+ return ntohx(reply.ok) == 1;
}
bool