<p>Hoernchen <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-trx/+/24447">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  fixeria: Looks good to me, but someone else must approve
  pespin: Looks good to me, but someone else must approve
  Hoernchen: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">uhd: ensure configured clock source is actually used<br><br>We wouldn't want to get caught running with unlocked external clock<br>sources, right?!<br><br>Change-Id: Ie38d85617f46eb5ab7d9527ddf6aaab4d3edf6bf<br>---<br>M Transceiver52M/device/uhd/UHDDevice.cpp<br>1 file changed, 14 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp</span><br><span>index 010fa8c..5486822 100644</span><br><span>--- a/Transceiver52M/device/uhd/UHDDevice.cpp</span><br><span>+++ b/Transceiver52M/device/uhd/UHDDevice.cpp</span><br><span>@@ -548,6 +548,7 @@</span><br><span> int uhd_device::open(const std::string &args, int ref, bool swap_channels)</span><br><span> {</span><br><span>   const char *refstr;</span><br><span style="color: hsl(120, 100%, 40%);">+   int clock_lock_attempts = 15;</span><br><span> </span><br><span>    /* Register msg handler. Different APIs depending on UHD version */</span><br><span> #ifdef USE_UHD_3_11</span><br><span>@@ -620,6 +621,19 @@</span><br><span> </span><br><span>        usrp_dev->set_clock_source(refstr);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    std::vector<std::string> sensor_names = usrp_dev->get_mboard_sensor_names();</span><br><span style="color: hsl(120, 100%, 40%);">+ if (std::find(sensor_names.begin(), sensor_names.end(), "ref_locked") != sensor_names.end()) {</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGC(DDEV, INFO) << "Waiting for clock reference lock (max " << clock_lock_attempts << "s)..." << std::flush;</span><br><span style="color: hsl(120, 100%, 40%);">+             while (!usrp_dev->get_mboard_sensor("ref_locked", 0).to_bool() && clock_lock_attempts--)</span><br><span style="color: hsl(120, 100%, 40%);">+                 sleep(1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           if (!clock_lock_attempts) {</span><br><span style="color: hsl(120, 100%, 40%);">+                   LOGC(DDEV, ALERT) << "Locking to external 10Mhz failed!";</span><br><span style="color: hsl(120, 100%, 40%);">+                     return -1;</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     LOGC(DDEV, INFO) << "Selected clock source is " << usrp_dev->get_clock_source(0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         try {</span><br><span>                set_rates();</span><br><span>         } catch (const std::exception &e) {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-trx/+/24447">change 24447</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-trx/+/24447"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-trx </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ie38d85617f46eb5ab7d9527ddf6aaab4d3edf6bf </div>
<div style="display:none"> Gerrit-Change-Number: 24447 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </div>
<div style="display:none"> Gerrit-Owner: Hoernchen <ewild@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Hoernchen <ewild@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>