summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Viel <clement.viel@qorvo.com>2023-03-13 12:10:40 +0100
committerTreeHugger Robot <treehugger-gerrit@google.com>2023-03-24 18:13:17 +0000
commitc2741355e97290d9ddc1326398a8349558349be3 (patch)
tree601540e48c9603c13785b2ce6534bb4ea40643fe
parente4a6f52ff17e5bd8d79de7f651d12a849cd99531 (diff)
downloaduwb-c2741355e97290d9ddc1326398a8349558349be3.tar.gz
dw3000: harmonize tx and rx RF2 functions
Bug: 272477040 Change-Id: I220ff27173d2000c907460e6d02812f5f16d2bcb Signed-off-by: Clément Viel <clement.viel@qorvo.com>
-rw-r--r--kernel/drivers/net/ieee802154/dw3000_core.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/kernel/drivers/net/ieee802154/dw3000_core.c b/kernel/drivers/net/ieee802154/dw3000_core.c
index 0c2c7f6..4df0b41 100644
--- a/kernel/drivers/net/ieee802154/dw3000_core.c
+++ b/kernel/drivers/net/ieee802154/dw3000_core.c
@@ -1418,11 +1418,11 @@ static int dw3000_change_tx_rf_port(struct dw3000 *dw, bool use_rf2)
static int dw3000_change_rx_rf_port(struct dw3000 *dw, bool use_rf2)
{
int rc = 0;
- u32 val = DW3000_TXRXSWITCH_AUTO;
-
- if (use_rf2) {
- val |= DW3000_RF_SWITCH_RX_RF2;
- }
+ u32 val = DW3000_TXRXSWITCH_AUTO |
+ ((u32)use_rf2
+ << DW3000_RF_SWITCH_CTRL_ANT_TXRX_RXPORT_BIT_OFFSET) |
+ ((u32)use_rf2
+ << DW3000_RF_SWITCH_CTRL_ANT_TXRX_MODE_OVR_BIT_OFFSET);
rc = dw3000_reg_write32(dw, DW3000_RF_SWITCH_CTRL_ID, 0, val);
if (!rc)
dw->rx_rf2 = use_rf2;
@@ -6522,12 +6522,6 @@ int dw3000_set_rx_antennas(struct dw3000 *dw, int ant_set_id, bool pdoa_enabled,
port = ant_calib->port; /* Save port for later check */
if (((ant_calib->port == 1) || dw->rx_rf2) && ant_idx2 < 0) {
dw3000_change_rx_rf_port(dw, true);
- } else if (ant_calib->port == 1 && ant_idx2 > 0) {
- if (frame_idx == 5) {
- dw3000_change_rx_rf_port(dw, true);
- } else {
- dw3000_change_rx_rf_port(dw, false);
- }
} else {
dw3000_change_rx_rf_port(dw, false);
}