<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmocom-bb/+/20326">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">firmware: calibration: proper support for gtm900b target<br><br>GTM900-B can share almost all calibration tables with GTA0x and FCDEV3B,<br>only the VCXO is significantly different.<br><br>Related: OS#3582<br>Change-Id: I52b63b1d086452139b1efd308d47a4183eace745<br>---<br>M src/target/firmware/Makefile<br>A src/target/firmware/board/gtm900b/afcparams.c<br>D src/target/firmware/board/gtm900b/rf_tables.c<br>3 files changed, 49 insertions(+), 596 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/26/20326/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/target/firmware/Makefile b/src/target/firmware/Makefile</span><br><span>index 6eacb33..104ddac 100644</span><br><span>--- a/src/target/firmware/Makefile</span><br><span>+++ b/src/target/firmware/Makefile</span><br><span>@@ -50,7 +50,8 @@</span><br><span> </span><br><span> # Huawei GTM900-B</span><br><span> BOARD_gtm900b_OBJS=$(calypso_COMMON_OBJS) board/gtm900b/init.o \</span><br><span style="color: hsl(0, 100%, 40%);">- board/gtm900b/rffe_gtm900b.o board/gtm900b/rf_tables.o \</span><br><span style="color: hsl(120, 100%, 40%);">+ board/gtm900b/rffe_gtm900b.o board/gta0x/rf_tables.o \</span><br><span style="color: hsl(120, 100%, 40%);">+ board/gtm900b/afcparams.o \</span><br><span> board/common/readcal_tiffs.o battery/dummy.o $(FB_dummy_OBJS)</span><br><span> BOARD_gtm900b_ENVIRONMENTS=highram</span><br><span> </span><br><span>diff --git a/src/target/firmware/board/gtm900b/afcparams.c b/src/target/firmware/board/gtm900b/afcparams.c</span><br><span>new file mode 100644</span><br><span>index 0000000..ca8908d</span><br><span>--- /dev/null</span><br><span>+++ b/src/target/firmware/board/gtm900b/afcparams.c</span><br><span>@@ -0,0 +1,47 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This code was written by Mychaela Falconia <falcon@freecalypso.org></span><br><span style="color: hsl(120, 100%, 40%);">+ * who refuses to claim copyright on it and has released it as public domain</span><br><span style="color: hsl(120, 100%, 40%);">+ * instead. NO rights reserved, all rights relinquished.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; either version 2 of the License, or</span><br><span style="color: hsl(120, 100%, 40%);">+ * (at your option) any later version.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * You should have received a copy of the GNU General Public License along</span><br><span style="color: hsl(120, 100%, 40%);">+ * with this program; if not, write to the Free Software Foundation, Inc.,</span><br><span style="color: hsl(120, 100%, 40%);">+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include <stdint.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <rf/vcxocal.h></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%);">+ * Here is a representative set of AFC Psi parameters that has been</span><br><span style="color: hsl(120, 100%, 40%);">+ * calibrated by Huawei on a GTM900-B MGC2GSMT module, as recorded</span><br><span style="color: hsl(120, 100%, 40%);">+ * in the /gsm/rf/afcparams file:</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Psi_sta_inv: 13626</span><br><span style="color: hsl(120, 100%, 40%);">+ * Psi_st: 4</span><br><span style="color: hsl(120, 100%, 40%);">+ * Psi_st_32: 252168</span><br><span style="color: hsl(120, 100%, 40%);">+ * Psi_st_inv: 17032</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * The following AFC slope number is the closest OsmocomBB-style afc_slope</span><br><span style="color: hsl(120, 100%, 40%);">+ * integer corresponding to these Psi numbers; the true value is somewhere</span><br><span style="color: hsl(120, 100%, 40%);">+ * between 115 and 116.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+int16_t afc_slope = 115;</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%);">+ * The compiled-in AFC initial DAC value below is the same as was used by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the old OsmocomBB code written for Mot C1xx phones, but it will normally</span><br><span style="color: hsl(120, 100%, 40%);">+ * be overridden by the per-unit factory calibration value read from the</span><br><span style="color: hsl(120, 100%, 40%);">+ * /gsm/rf/afcdac file in FFS.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+int16_t afc_initial_dac_value = -700;</span><br><span>diff --git a/src/target/firmware/board/gtm900b/rf_tables.c b/src/target/firmware/board/gtm900b/rf_tables.c</span><br><span>deleted file mode 100644</span><br><span>index 7f5b0fd..0000000</span><br><span>--- a/src/target/firmware/board/gtm900b/rf_tables.c</span><br><span>+++ /dev/null</span><br><span>@@ -1,595 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-/*</span><br><span style="color: hsl(0, 100%, 40%);">- * This code was written by Mychaela Falconia <falcon@freecalypso.org></span><br><span style="color: hsl(0, 100%, 40%);">- * who refuses to claim copyright on it and has released it as public domain</span><br><span style="color: hsl(0, 100%, 40%);">- * instead. NO rights reserved, all rights relinquished.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * Tweaked (coding style changes) by Vadim Yanitskiy <axilirator@gmail.com></span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(0, 100%, 40%);">- * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(0, 100%, 40%);">- * the Free Software Foundation; either version 2 of the License, or</span><br><span style="color: hsl(0, 100%, 40%);">- * (at your option) any later version.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(0, 100%, 40%);">- * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(0, 100%, 40%);">- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span><br><span style="color: hsl(0, 100%, 40%);">- * GNU General Public License for more details.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * You should have received a copy of the GNU General Public License along</span><br><span style="color: hsl(0, 100%, 40%);">- * with this program; if not, write to the Free Software Foundation, Inc.,</span><br><span style="color: hsl(0, 100%, 40%);">- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <stdint.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <rf/txcal.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <rf/vcxocal.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* FIXME those are from the Compal phones, do measurements with the GTM900-B */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*</span><br><span style="color: hsl(0, 100%, 40%);">- * The following AFC initial DAC value and AFC slope settings are unchanged</span><br><span style="color: hsl(0, 100%, 40%);">- * from the old OsmocomBB code in which they were hard-coded in layer1/afc.c.</span><br><span style="color: hsl(0, 100%, 40%);">- * This AFC slope setting corresponds very closely to the original Leonardo</span><br><span style="color: hsl(0, 100%, 40%);">- * Psi values which are used by Motorola's official fw at least on the C139,</span><br><span style="color: hsl(0, 100%, 40%);">- * hence I have good reason to believe that they are indeed correct for the</span><br><span style="color: hsl(0, 100%, 40%);">- * Mot C1xx hardware target family.</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-int16_t afc_initial_dac_value = -700;</span><br><span style="color: hsl(0, 100%, 40%);">-int16_t afc_slope = 287;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* APC offset (comes from the official firmware) for TI-classic targets */</span><br><span style="color: hsl(0, 100%, 40%);">-uint8_t apc_offset = 48;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*</span><br><span style="color: hsl(0, 100%, 40%);">- * The following Tx levels tables are the ones compiled into Compal's</span><br><span style="color: hsl(0, 100%, 40%);">- * firmwares; more specifically, they were originally extracted out</span><br><span style="color: hsl(0, 100%, 40%);">- * of the one special Mot C11x fw version for which we got the linker</span><br><span style="color: hsl(0, 100%, 40%);">- * map file with symbols and subsequently confirmed to be unchanged in</span><br><span style="color: hsl(0, 100%, 40%);">- * Mot C139 and SE J100 firmwares. In normal operation the APC DAC values</span><br><span style="color: hsl(0, 100%, 40%);">- * in these levels tables are replaced with the ones read from the per-unit</span><br><span style="color: hsl(0, 100%, 40%);">- * and per-band factory calibration records.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * It should be noted that these compiled-in numbers are approximately</span><br><span style="color: hsl(0, 100%, 40%);">- * correct for the C11x/12x/155/156 family (SKY77324 RF PA) but are totally</span><br><span style="color: hsl(0, 100%, 40%);">- * wrong for the newer C139/140 (SKY77325) and SE J100 (SKY77328) hardware;</span><br><span style="color: hsl(0, 100%, 40%);">- * it appears that Compal never bothered with changing these compiled-in</span><br><span style="color: hsl(0, 100%, 40%);">- * numbers in their fw for the newer designs because the expectation is</span><br><span style="color: hsl(0, 100%, 40%);">- * that these compiled-in numbers are just dummy placeholders to be</span><br><span style="color: hsl(0, 100%, 40%);">- * overridden by per-unit calibration.</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-struct txcal_tx_level rf_tx_levels_850[RF_TX_LEVELS_TABLE_SIZE] = {</span><br><span style="color: hsl(0, 100%, 40%);">- { 560, 0, 0 }, /* 0 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 560, 0, 0 }, /* 1 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 560, 0, 0 }, /* 2 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 560, 0, 0 }, /* 3 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 560, 0, 0 }, /* 4 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 638, 0, 0 }, /* 5 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 554, 1, 0 }, /* 6 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 467, 2, 0 }, /* 7 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 395, 3, 0 }, /* 8 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 337, 4, 0 }, /* 9 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 290, 5, 0 }, /* 10 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 253, 6, 0 }, /* 11 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 224, 7, 0 }, /* 12 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 201, 8, 0 }, /* 13 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 183, 9, 0 }, /* 14 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 168, 10, 0 }, /* 15 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 157, 11, 0 }, /* 16 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 148, 12, 0 }, /* 17 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 141, 13, 0 }, /* 18 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 136, 14, 0 }, /* 19 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 20 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 21 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 22 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 23 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 24 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 25 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 26 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 27 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 28 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 29 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 30 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 46, 14, 0 }, /* 31 */</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct txcal_tx_level rf_tx_levels_900[RF_TX_LEVELS_TABLE_SIZE] = {</span><br><span style="color: hsl(0, 100%, 40%);">- { 550, 0, 0 }, /* 0 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 550, 0, 0 }, /* 1 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 550, 0, 0 }, /* 2 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 550, 0, 0 }, /* 3 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 550, 0, 0 }, /* 4 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 550, 0, 0 }, /* 5 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 476, 1, 0 }, /* 6 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 402, 2, 0 }, /* 7 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 338, 3, 0 }, /* 8 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 294, 4, 0 }, /* 9 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 260, 5, 0 }, /* 10 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 226, 6, 0 }, /* 11 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 204, 7, 0 }, /* 12 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 186, 8, 0 }, /* 13 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 172, 9, 0 }, /* 14 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 161, 10, 0 }, /* 15 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 153, 11, 0 }, /* 16 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 146, 12, 0 }, /* 17 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 141, 13, 0 }, /* 18 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 137, 14, 0 }, /* 19 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 20 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 21 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 22 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 23 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 24 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 25 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 26 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 27 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 28 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 29 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 30 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 43, 14, 0 }, /* 31 */</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct txcal_tx_level rf_tx_levels_1800[RF_TX_LEVELS_TABLE_SIZE] = {</span><br><span style="color: hsl(0, 100%, 40%);">- { 480, 0, 0 }, /* 0 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 416, 1, 0 }, /* 1 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 352, 2, 0 }, /* 2 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 308, 3, 0 }, /* 3 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 266, 4, 0 }, /* 4 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 242, 5, 0 }, /* 5 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 218, 6, 0 }, /* 6 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 200, 7, 0 }, /* 7 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 186, 8, 0 }, /* 8 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 175, 9, 0 }, /* 9 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 167, 10, 0 }, /* 10 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 160, 11, 0 }, /* 11 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 156, 12, 0 }, /* 12 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 152, 13, 0 }, /* 13 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 145, 14, 0 }, /* 14 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 142, 15, 0 }, /* 15 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 16 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 17 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 18 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 19 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 20 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 21 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 22 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 23 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 24 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 25 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 26 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 27 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 61, 15, 0 }, /* 28 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 750, 0, 0 }, /* 29 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 750, 0, 0 }, /* 30 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 750, 0, 0 }, /* 31 */</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct txcal_tx_level rf_tx_levels_1900[RF_TX_LEVELS_TABLE_SIZE] = {</span><br><span style="color: hsl(0, 100%, 40%);">- { 520, 0, 0 }, /* 0 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 465, 1, 0 }, /* 1 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 390, 2, 0 }, /* 2 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 330, 3, 0 }, /* 3 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 285, 4, 0 }, /* 4 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 250, 5, 0 }, /* 5 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 225, 6, 0 }, /* 6 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 205, 7, 0 }, /* 7 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 190, 8, 0 }, /* 8 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 177, 9, 0 }, /* 9 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 168, 10, 0 }, /* 10 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 161, 11, 0 }, /* 11 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 155, 12, 0 }, /* 12 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 150, 13, 0 }, /* 13 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 147, 14, 0 }, /* 14 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 143, 15, 0 }, /* 15 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 16 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 17 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 18 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 19 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 20 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 21 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 22 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 23 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 24 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 25 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 26 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 27 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 62, 15, 0 }, /* 28 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 915, 0, 0 }, /* 29 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 915, 0, 0 }, /* 30 */</span><br><span style="color: hsl(0, 100%, 40%);">- { 915, 0, 0 }, /* 31 */</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct txcal_ramp_def rf_tx_ramps_850[RF_TX_RAMP_SIZE] = {</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 0 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 11, 31, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 1 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 1, 1, 7, 16, 28, 31, 31, 13, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 2 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 1, 1, 8, 16, 29, 31, 31, 11, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 28, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 3 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 2, 0, 6, 18, 28, 31, 31, 12, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 9, 24, 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 4 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 3, 0, 5, 19, 31, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 5 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 2, 0, 7, 18, 31, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 6 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 3, 0, 5, 20, 31, 31, 31, 7, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 10, 21, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 7 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 4, 0, 9, 23, 22, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 9, 24, 30, 31, 30, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 8 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 5, 0, 8, 21, 24, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 23, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 9 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 5, 0, 3, 1, 27, 22, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 27, 25, 26, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 10 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 5, 0, 0, 2, 7, 22, 23, 31, 31, 7, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 25, 30, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 11 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 5, 0, 4, 8, 21, 21, 31, 31, 7, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 21, 31, 31, 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 12 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 7, 0, 0, 12, 22, 25, 31, 27, 4, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 9, 12, 21, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 13 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 7, 0, 8, 15, 31, 31, 31, 5, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 6, 14, 23, 31, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 14 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 20, 0, 0, 8, 15, 14, 31, 31, 9, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 15 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct txcal_ramp_def rf_tx_ramps_900[RF_TX_RAMP_SIZE] = {</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 0 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 11, 31, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 1 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 1, 1, 7, 16, 28, 31, 31, 13, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 2 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 1, 1, 8, 16, 29, 31, 31, 11, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 28, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 3 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 2, 0, 6, 18, 28, 31, 31, 12, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 9, 24, 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 4 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 3, 0, 5, 19, 31, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 5 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 2, 0, 7, 18, 31, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 6 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 3, 0, 5, 20, 31, 31, 31, 7, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 10, 21, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 7 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 4, 0, 9, 23, 22, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 9, 24, 30, 31, 30, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 8 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 5, 0, 8, 21, 24, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 23, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 9 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 5, 0, 3, 1, 27, 22, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 27, 25, 26, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 10 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 5, 0, 0, 2, 7, 22, 23, 31, 31, 7, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 25, 30, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 11 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 5, 0, 4, 8, 21, 21, 31, 31, 7, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 21, 31, 31, 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 12 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 7, 0, 0, 12, 22, 25, 31, 27, 4, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 9, 12, 21, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 13 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 7, 0, 8, 15, 31, 31, 31, 5, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 6, 14, 23, 31, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 14 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 20, 0, 0, 8, 15, 14, 31, 31, 9, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 15 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct txcal_ramp_def rf_tx_ramps_1800[RF_TX_RAMP_SIZE] = {</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 0 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 2, 3, 5, 16, 31, 31, 31, 9, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 11, 31, 31, 31, 10, 11, 3, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 1 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 2, 3, 4, 17, 30, 31, 31, 10, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 10, 31, 31, 31, 13, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 2 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 4, 2, 2, 18, 31, 31, 31, 9, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 10, 26, 31, 31, 16, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 3 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 3, 4, 4, 15, 31, 31, 31, 9, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 9, 31, 31, 31, 13, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 4 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 4, 3, 7, 11, 31, 31, 31, 10, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 31, 31, 31, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 5 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 4, 3, 2, 7, 14, 25, 31, 31, 11, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 14, 31, 31, 31, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 6 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 7, 1, 3, 10, 12, 25, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 30, 31, 31, 14, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 7 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 3, 5, 0, 5, 8, 12, 26, 31, 31, 7, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 31, 31, 31, 15, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 8 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 9, 0, 3, 10, 16, 21, 31, 31, 7, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 11, 28, 31, 27, 10, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 9 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 10, 0, 6, 9, 15, 22, 29, 31, 6, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 9, 22, 31, 31, 12, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 10 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 14, 0, 0, 8, 6, 20, 21, 29, 24, 6, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 28, 29, 26, 14, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 11 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 16, 0, 3, 5, 8, 16, 31, 28, 18, 3, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 6, 18, 26, 31, 16, 9, 7, 0, 15, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 12 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 19, 0, 3, 6, 8, 21, 24, 31, 14, 2, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 12, 31, 31, 27, 4, 0, 23, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 13 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 14, 14, 0, 0, 24, 31, 31, 14, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 11, 31, 31, 22, 11, 3, 19, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 14 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 15 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 31, 13, 0, 0, 14, 31, 31, 8, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 4, 31, 31, 25, 5, 0, 5, 26, 1, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct txcal_ramp_def rf_tx_ramps_1900[RF_TX_RAMP_SIZE] = {</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 0 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 7, 0, 0, 16, 31, 31, 31, 12, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 13, 31, 31, 31, 18, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 1 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 2, 3, 4, 17, 30, 31, 31, 10, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 10, 31, 31, 31, 13, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 2 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 4, 2, 2, 18, 31, 31, 31, 9, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 10, 26, 31, 31, 16, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 3 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 3, 4, 4, 15, 31, 31, 31, 9, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 9, 31, 31, 31, 13, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 4 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 0, 4, 3, 0, 18, 31, 31, 31, 10, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 31, 31, 31, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 5 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 4, 3, 2, 7, 14, 25, 31, 31, 11, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 14, 31, 31, 31, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 6 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 7, 1, 3, 10, 12, 25, 31, 31, 8, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 30, 31, 31, 14, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 7 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 3, 5, 0, 5, 8, 12, 26, 31, 31, 7, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 7, 31, 31, 31, 15, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 8 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 9, 0, 3, 10, 16, 21, 31, 31, 7, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 11, 28, 31, 27, 10, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 9 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 10, 0, 6, 9, 15, 22, 29, 31, 6, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 9, 22, 31, 31, 12, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 10 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 14, 0, 0, 4, 10, 20, 21, 29, 24, 6, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 8, 28, 29, 26, 14, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 11 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 16, 0, 3, 5, 8, 16, 31, 28, 18, 3, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 6, 18, 26, 31, 16, 9, 7, 0, 15, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 12 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 19, 0, 3, 6, 8, 21, 24, 31, 14, 2, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 12, 31, 31, 27, 4, 0, 23, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 13 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 14, 14, 0, 0, 24, 31, 31, 14, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 11, 31, 31, 22, 11, 3, 19, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 14 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">- { /* profile 15 */</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-up */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- /* ramp-down */</span><br><span style="color: hsl(0, 100%, 40%);">- { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0},</span><br><span style="color: hsl(0, 100%, 40%);">- },</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmocom-bb/+/20326">change 20326</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/osmocom-bb/+/20326"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmocom-bb </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I52b63b1d086452139b1efd308d47a4183eace745 </div>
<div style="display:none"> Gerrit-Change-Number: 20326 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>