Hoernchen has uploaded this change for review.

View Change

mstrx: do not wait forever if clock locking fails

Change-Id: Ib85f2452b66fb4d9881fe9676e69e4f6a8ba8f74
---
M Transceiver52M/ms/ms_upper.cpp
M Transceiver52M/ms/uhd_specific.h
2 files changed, 16 insertions(+), 1 deletion(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/40/30940/1
diff --git a/Transceiver52M/ms/ms_upper.cpp b/Transceiver52M/ms/ms_upper.cpp
index 281716e..2f3bdc6 100644
--- a/Transceiver52M/ms/ms_upper.cpp
+++ b/Transceiver52M/ms/ms_upper.cpp
@@ -482,6 +482,10 @@
trx->do_auto_gain = true;

status = trx->init_dev_and_streams();
+ if (status < 0) {
+ std::cerr << "Error initializing hardware, quitting.." << std::endl;
+ return -1;
+ }
trx->set_name_aff_sched("main", 3, SCHED_FIFO, sched_get_priority_max(SCHED_FIFO) - 5);

if (!trxcon::trxc_l1ctl_init(tall_trxcon_ctx)) {
diff --git a/Transceiver52M/ms/uhd_specific.h b/Transceiver52M/ms/uhd_specific.h
index ed88faa..edf7f79 100644
--- a/Transceiver52M/ms/uhd_specific.h
+++ b/Transceiver52M/ms/uhd_specific.h
@@ -133,6 +133,7 @@
int init_device(bh_fn_t rxh, bh_fn_t txh)
{
auto const lock_delay_ms = 500;
+ auto clock_lock_attempts = 15; // x lock_delay_ms
auto const mcr = 26e6;
auto const rate = (1625e3 / 6) * 4;
auto const ref = "external";
@@ -157,8 +158,18 @@
dev->set_tx_bandwidth(bw, channel);

while (!(dev->get_rx_sensor("lo_locked", channel).to_bool() &&
- dev->get_mboard_sensor("ref_locked").to_bool()))
+ dev->get_mboard_sensor("ref_locked").to_bool()) &&
+ clock_lock_attempts > 0) {
+ std::cerr << "clock source lock attempts remaining: " << clock_lock_attempts << ".."
+ << std::endl;
std::this_thread::sleep_for(std::chrono::milliseconds(lock_delay_ms));
+ clock_lock_attempts--;
+ }
+
+ if (clock_lock_attempts <= 0) {
+ std::cerr << "Error locking clock, gpsdo missing? quitting.." << std::endl;
+ return -1;
+ }

uhd::stream_args_t stream_args("sc16", "sc16");
rx_stream = dev->get_rx_stream(stream_args);

To view, visit change 30940. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: Ib85f2452b66fb4d9881fe9676e69e4f6a8ba8f74
Gerrit-Change-Number: 30940
Gerrit-PatchSet: 1
Gerrit-Owner: Hoernchen <ewild@sysmocom.de>
Gerrit-MessageType: newchange