From 21721e967bb9da50623b4889456fff893a5262e5 Mon Sep 17 00:00:00 2001
From: Thomas Schlichter <thomas.schlichter@iis.fraunhofer.de>
Date: Fri, 4 Nov 2022 18:18:35 +0100
Subject: [PATCH] workaround issue of N310 with UHD >= 4.2.0 when changing the
 BW

UHD issue was reported here:
https://github.com/EttusResearch/uhd/issues/644
---
 radio/USRP/USERSPACE/LIB/usrp_lib.cpp | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/radio/USRP/USERSPACE/LIB/usrp_lib.cpp b/radio/USRP/USERSPACE/LIB/usrp_lib.cpp
index 2a351dcce09..2b38ee4fb17 100644
--- a/radio/USRP/USERSPACE/LIB/usrp_lib.cpp
+++ b/radio/USRP/USERSPACE/LIB/usrp_lib.cpp
@@ -1417,11 +1417,13 @@ extern "C" {
   s->tx_stream = s->usrp->get_tx_stream(stream_args_tx);
 
   /* Setting TX/RX BW after streamers are created due to USRP calibration issue */
-  for(int i=0; i<((int) s->usrp->get_tx_num_channels()) && i<openair0_cfg[0].tx_num_channels; i++)
-    s->usrp->set_tx_bandwidth(openair0_cfg[0].tx_bw,i+choffset);
+  if (device->type != USRP_N300_DEV) { // N310 with UHD >= 4.2.0 has issues with changing the BW
+    for(int i=0; i<((int) s->usrp->get_tx_num_channels()) && i<openair0_cfg[0].tx_num_channels; i++)
+      s->usrp->set_tx_bandwidth(openair0_cfg[0].tx_bw,i+choffset);
 
-  for(int i=0; i<((int) s->usrp->get_rx_num_channels()) && i<openair0_cfg[0].rx_num_channels; i++)
-    s->usrp->set_rx_bandwidth(openair0_cfg[0].rx_bw,i+choffset);
+    for(int i=0; i<((int) s->usrp->get_rx_num_channels()) && i<openair0_cfg[0].rx_num_channels; i++)
+      s->usrp->set_rx_bandwidth(openair0_cfg[0].rx_bw,i+choffset);
+  }
 
   for (int i=0; i<openair0_cfg[0].rx_num_channels; i++) {
     LOG_I(HW,"RX Channel %d\n",i);
-- 
GitLab