>>> 18xx-ti-utils R8.7_SP3 Extracting gzip -d -c /home/buildroot/autobuild/run/instance-3/dl/18xx-ti-utils/18xx-ti-utils-R8.7_SP3.tar.gz | tar --strip-components=1 -C /home/buildroot/autobuild/run/instance-3/output-1/build/18xx-ti-utils-R8.7_SP3 -xf - >>> 18xx-ti-utils R8.7_SP3 Patching >>> 18xx-ti-utils R8.7_SP3 Configuring >>> 18xx-ti-utils R8.7_SP3 Building PATH="/home/buildroot/autobuild/run/instance-3/output-1/host/bin:/home/buildroot/autobuild/run/instance-3/output-1/host/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" CROSS_COMPILE=/home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-buildroot-linux-gnueabihf- NFSROOT="/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot" NLVER=3 /usr/bin/make -j4 -C /home/buildroot/autobuild/run/instance-3/output-1/build/18xx-ti-utils-R8.7_SP3 CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -D_FORTIFY_SOURCE=2 -I/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32" make[1]: Entering directory `/home/buildroot/autobuild/run/instance-3/output-1/build/18xx-ti-utils-R8.7_SP3' /home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -D_FORTIFY_SOURCE=2 -I/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32 -c -o nvs.o nvs.c /home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -D_FORTIFY_SOURCE=2 -I/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32 -c -o misc_cmds.o misc_cmds.c /home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -D_FORTIFY_SOURCE=2 -I/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32 -c -o calibrator.o calibrator.c /home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -D_FORTIFY_SOURCE=2 -I/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32 -c -o plt.o plt.c misc_cmds.c: In function 'get_nvs_mac': misc_cmds.c:38:2: warning: ignoring return value of 'read' declared with attribute 'warn_unused_result' [-Wunused-result] 38 | read(fd, mac_buff, 12); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c: In function 'prepare_nvs_file': nvs.c:744:32: warning: taking address of packed member of 'struct wl1271_cmd_cal_p2g' may result in an unaligned pointer value [-Waddress-of-packed-member] 744 | if (nvs_fill_version(new_nvs, &pdata->ver)) | ^~~~~~~~~~~ nvs.c: In function 'print_127x_fem_param5': nvs.c:1126:53: warning: taking address of packed member of 'struct wl1271_ini_fem_params_5' may result in an unaligned pointer value [-Waddress-of-packed-member] 1126 | print_femle16a(fem, "TxBiPReferencePDvoltage_5G", p->tx_bip_ref_pd_voltage); | ~^~~~~~~~~~~~~~~~~~~~~~~ nvs.c:1057:68: note: in definition of macro 'print_femle16a' 1057 | #define print_femle16a(fem, name, data) _print_femle16a(fem, name, data, sizeof(data) / 2) | ^~~~ nvs.c: In function 'print_128x_fem_param5': nvs.c:1151:53: warning: taking address of packed member of 'struct wl128x_ini_fem_params_5' may result in an unaligned pointer value [-Waddress-of-packed-member] 1151 | print_femle16a(fem, "TxBiPReferencePDvoltage_5G", p->tx_bip_ref_pd_voltage); | ~^~~~~~~~~~~~~~~~~~~~~~~ nvs.c:1057:68: note: in definition of macro 'print_femle16a' 1057 | #define print_femle16a(fem, name, data) _print_femle16a(fem, name, data, sizeof(data) / 2) | ^~~~ nvs.c: In function 'nvs_set_mac': nvs.c:93:2: warning: ignoring return value of 'read' declared with attribute 'warn_unused_result' [-Wunused-result] 93 | read(fd, mac_buff, 12); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:110:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 110 | write(fd, mac_buff, 12); | ^~~~~~~~~~~~~~~~~~~~~~~ nvs.c: In function 'nvs_fill_radio_params': nvs.c:165:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 165 | write(fd, (const void *)&gp, sizeof(gp)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:168:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 168 | write(fd, (const void *)p, sizeof(gp)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c: In function 'nvs_set_autofem': nvs.c:250:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 250 | write(fd, c++, 1); | ^~~~~~~~~~~~~~~~~ nvs.c: In function 'nvs_set_autofem_128x': nvs.c:272:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 272 | write(fd, c++, 1); | ^~~~~~~~~~~~~~~~~ nvs.c: In function 'nvs_set_fem_manuf': nvs.c:294:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 294 | write(fd, c++, 1); | ^~~~~~~~~~~~~~~~~ nvs.c: In function 'nvs_set_fem_manuf_128x': nvs.c:316:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 316 | write(fd, c++, 1); | ^~~~~~~~~~~~~~~~~ nvs.c: In function 'nvs_fill_radio_params_128x': nvs.c:224:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 224 | write(fd, (const void *)&gp, sizeof(gp)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:227:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 227 | write(fd, (const void *)p, sizeof(gp)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c: In function 'prepare_nvs_file': nvs.c:676:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 676 | write(new_nvs, &vals[1], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:677:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 677 | write(new_nvs, &vals[2], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:678:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 678 | write(new_nvs, &vals[3], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:687:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 687 | write(new_nvs, &mac_addr[5], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:688:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 688 | write(new_nvs, &mac_addr[4], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:689:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 689 | write(new_nvs, &mac_addr[3], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:690:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 690 | write(new_nvs, &mac_addr[2], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:692:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 692 | write(new_nvs, &vals[1], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:693:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 693 | write(new_nvs, &vals[4], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:694:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 694 | write(new_nvs, &vals[3], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:696:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 696 | write(new_nvs, &mac_addr[1], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:697:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 697 | write(new_nvs, &mac_addr[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:699:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 699 | write(new_nvs, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:700:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 700 | write(new_nvs, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:704:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 704 | write(new_nvs, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:708:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 708 | write(new_nvs, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:713:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 713 | write(new_nvs, &vals[6], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:714:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 714 | write(new_nvs, &pdata->len, 2); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:718:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 718 | write(new_nvs, p++, 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:748:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 748 | write(new_nvs, &vals[5], 1); /* eTLV_LAST */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:749:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 749 | write(new_nvs, &vals[5], 1); /* eTLV_LAST */ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:750:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 750 | write(new_nvs, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:751:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 751 | write(new_nvs, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c: In function 'nvs_fill_old_rx_data': nvs.c:541:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 541 | write(fd, &rx_type, 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:544:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 544 | write(fd, &len, 2); | ^~~~~~~~~~~~~~~~~~ nvs.c:547:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 547 | write(fd, &(buf[idx]), 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c: In function 'nvs_fill_version': nvs.c:517:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 517 | write(fd, &tmp, 1); | ^~~~~~~~~~~~~~~~~~ nvs.c:519:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 519 | write(fd, &tmp2, 2); | ^~~~~~~~~~~~~~~~~~~ nvs.c:522:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 522 | write(fd, &tmp, 1); | ^~~~~~~~~~~~~~~~~~ nvs.c:525:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 525 | write(fd, &tmp, 1); | ^~~~~~~~~~~~~~~~~~ nvs.c:528:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 528 | write(fd, &tmp, 1); | ^~~~~~~~~~~~~~~~~~ nvs.c: In function 'nvs_fill_nvs_part': nvs.c:573:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 573 | write(fd, &vals[1], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:574:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 574 | write(fd, &vals[2], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:575:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 575 | write(fd, &vals[3], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:583:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 583 | write(fd, &mac_addr[5], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:584:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 584 | write(fd, &mac_addr[4], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:585:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 585 | write(fd, &mac_addr[3], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:586:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 586 | write(fd, &mac_addr[2], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:588:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 588 | write(fd, &vals[1], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:589:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 589 | write(fd, &vals[4], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:590:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 590 | write(fd, &vals[3], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:592:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 592 | write(fd, &mac_addr[1], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:593:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 593 | write(fd, &mac_addr[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:595:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 595 | write(fd, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:596:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 596 | write(fd, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:600:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 600 | write(fd, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:604:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 604 | write(fd, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:607:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 607 | write(fd, &vals[6], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:608:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 608 | write(fd, &nvs_tx_sz, 2); | ^~~~~~~~~~~~~~~~~~~~~~~~ nvs.c:611:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 611 | write(fd, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:621:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 621 | write(fd, &vals[5], 1); /* eTLV_LAST */ | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:622:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 622 | write(fd, &vals[5], 1); /* eTLV_LAST */ | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:623:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 623 | write(fd, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c:624:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 624 | write(fd, &vals[0], 1); | ^~~~~~~~~~~~~~~~~~~~~~ nvs.c: In function 'fill_nvs_def_rx_params': nvs.c:438:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 438 | write(fd, &type, 1); | ^~~~~~~~~~~~~~~~~~~ nvs.c:441:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 441 | write(fd, &length, 2); | ^~~~~~~~~~~~~~~~~~~~~ nvs.c:445:3: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 445 | write(fd, &type, 1); | ^~~~~~~~~~~~~~~~~~~ nvs.c: In function 'nvs_upd_nvs_part': nvs.c:556:2: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 556 | write(fd, p, 0x1D4); | ^~~~~~~~~~~~~~~~~~~ /home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -D_FORTIFY_SOURCE=2 -I/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32 -c -o wl18xx_plt.o wl18xx_plt.c /home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -D_FORTIFY_SOURCE=2 -I/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32 -c -o ini.o ini.c ini.c: In function 'parse_fem0_band2_prms': ini.c:199:32: warning: taking address of packed member of 'struct wl1271_ini_fem_params_2' may result in an unaligned pointer value [-Waddress-of-packed-member] 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | } | ~ 201 | | 202 | static int parse_general_prms(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 204 | { | ~ 205 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 206 | struct wl1271_ini_general_params *gp = &(p->ini1271.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | | 208 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 | return 1; | ~~~~~~~~~ 210 | | 211 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | | 214 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | | 216 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 217 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | | 219 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 220 | | 221 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | | 223 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 225 | | 226 | COMPARE_N_ADD("DC2DCMode", l, val, &gp->dc2dc_mode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | | 228 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 229 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 230 | | 231 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 232 | | 233 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | | 235 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | | 237 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | | 239 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | | 241 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | | 243 | return 1; | ~~~~~~~~~ 244 | } | ~ 245 | | 246 | static int parse_general_prms_128x(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 248 | { | ~ 249 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 250 | struct wl128x_ini_general_params *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | &(p->ini128x.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | | 253 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | return 1; | ~~~~~~~~~ 255 | | 256 | | 257 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 258 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | | 260 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 261 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | | 263 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 264 | | 265 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 266 | | 267 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 268 | | 269 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 270 | | 271 | COMPARE_N_ADD("TCXO_Clk", l, val, &gp->tcxo_ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | | 273 | COMPARE_N_ADD("TCXO_SettlingTime", l, val, &gp->tcxo_settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | | 275 | COMPARE_N_ADD("TCXO_ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 | &gp->tcxo_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | | 278 | COMPARE_N_ADD("TCXO_LDO_Voltage", l, val, &gp->tcxo_ldo_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | | 280 | COMPARE_N_ADD("Platform_configuration", l, val, &gp->platform_conf); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | | 282 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 284 | | 285 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | | 287 | COMPARE_N_ADD("XTALItrimVal", l, val, &gp->xtal_itrim_val); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | | 289 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | | 291 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | | 293 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 294 | | 295 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 296 | | 297 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | | 299 | return 1; | ~~~~~~~~~ 300 | } | ~ 301 | | 302 | static int parse_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 303 | { | ~ 304 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 305 | struct wl1271_ini_band_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | &(p->ini1271.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | | 308 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | return 1; | ~~~~~~~~~ 310 | | 311 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313 | | 314 | COMPARE_N_ADD("TXTraceLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 315 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 316 | | 317 | COMPARE_N_ADD("RxRssiAndProcessCompensation_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 319 | | 320 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | | 322 | return 1; | ~~~~~~~~~ 323 | } | ~ 324 | | 325 | static int parse_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | { | ~ 327 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 328 | struct wl128x_ini_band_params_2 *gp = &(p->ini128x.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 329 | | 330 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 331 | return 1; | ~~~~~~~~~ 332 | | 333 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 334 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | | 336 | COMPARE_N_ADD("TxTraceLoss_2_4G", l, val, &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 337 | | 338 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | | 340 | return 1; | ~~~~~~~~~ 341 | } | ~ 342 | | 343 | static int parse_band5_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | { | ~ 345 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 346 | struct wl1271_ini_band_params_5 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 347 | &(p->ini1271.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | | 349 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 350 | return 1; | ~~~~~~~~~ 351 | | 352 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | | 355 | COMPARE_N_ADD("TXTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 357 | | 358 | COMPARE_N_ADD("RxRssiAndProcessCompensation_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | | 361 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | | 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | static int parse_band5_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | { | ~ 368 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 369 | struct wl128x_ini_band_params_5 *gp = &(p->ini128x.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 370 | | 371 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | return 1; | ~~~~~~~~~ 373 | | 374 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 375 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | | 377 | COMPARE_N_ADD("TxTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 378 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 379 | | 380 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 381 | | 382 | return 1; | ~~~~~~~~~ 383 | } | ~ 384 | | 385 | static int parse_fem0_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | { | ~ 387 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 388 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 389 | &(p->ini1271.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 390 | | 391 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | return 1; | ~~~~~~~~~ 393 | | 394 | COMPARE_N_ADD2("FEM0_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:394:2: note: in expansion of macro 'COMPARE_N_ADD2' 394 | COMPARE_N_ADD2("FEM0_TXBiPReferencePDvoltage_2_4G", l, val, | ^~~~~~~~~~~~~~ ini.c: In function 'parse_fem0_band2_prms_128x': ini.c:199:32: warning: taking address of packed member of 'struct wl128x_ini_fem_params_2' may result in an unaligned pointer value [-Waddress-of-packed-member] 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | } | ~ 201 | | 202 | static int parse_general_prms(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 204 | { | ~ 205 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 206 | struct wl1271_ini_general_params *gp = &(p->ini1271.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | | 208 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 | return 1; | ~~~~~~~~~ 210 | | 211 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | | 214 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | | 216 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 217 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | | 219 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 220 | | 221 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | | 223 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 225 | | 226 | COMPARE_N_ADD("DC2DCMode", l, val, &gp->dc2dc_mode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | | 228 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 229 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 230 | | 231 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 232 | | 233 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | | 235 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | | 237 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | | 239 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | | 241 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | | 243 | return 1; | ~~~~~~~~~ 244 | } | ~ 245 | | 246 | static int parse_general_prms_128x(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 248 | { | ~ 249 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 250 | struct wl128x_ini_general_params *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | &(p->ini128x.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | | 253 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | return 1; | ~~~~~~~~~ 255 | | 256 | | 257 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 258 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | | 260 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 261 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | | 263 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 264 | | 265 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 266 | | 267 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 268 | | 269 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 270 | | 271 | COMPARE_N_ADD("TCXO_Clk", l, val, &gp->tcxo_ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | | 273 | COMPARE_N_ADD("TCXO_SettlingTime", l, val, &gp->tcxo_settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | | 275 | COMPARE_N_ADD("TCXO_ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 | &gp->tcxo_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | | 278 | COMPARE_N_ADD("TCXO_LDO_Voltage", l, val, &gp->tcxo_ldo_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | | 280 | COMPARE_N_ADD("Platform_configuration", l, val, &gp->platform_conf); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | | 282 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 284 | | 285 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | | 287 | COMPARE_N_ADD("XTALItrimVal", l, val, &gp->xtal_itrim_val); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | | 289 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | | 291 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | | 293 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 294 | | 295 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 296 | | 297 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | | 299 | return 1; | ~~~~~~~~~ 300 | } | ~ 301 | | 302 | static int parse_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 303 | { | ~ 304 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 305 | struct wl1271_ini_band_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | &(p->ini1271.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | | 308 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | return 1; | ~~~~~~~~~ 310 | | 311 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313 | | 314 | COMPARE_N_ADD("TXTraceLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 315 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 316 | | 317 | COMPARE_N_ADD("RxRssiAndProcessCompensation_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 319 | | 320 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | | 322 | return 1; | ~~~~~~~~~ 323 | } | ~ 324 | | 325 | static int parse_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | { | ~ 327 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 328 | struct wl128x_ini_band_params_2 *gp = &(p->ini128x.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 329 | | 330 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 331 | return 1; | ~~~~~~~~~ 332 | | 333 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 334 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | | 336 | COMPARE_N_ADD("TxTraceLoss_2_4G", l, val, &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 337 | | 338 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | | 340 | return 1; | ~~~~~~~~~ 341 | } | ~ 342 | | 343 | static int parse_band5_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | { | ~ 345 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 346 | struct wl1271_ini_band_params_5 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 347 | &(p->ini1271.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | | 349 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 350 | return 1; | ~~~~~~~~~ 351 | | 352 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | | 355 | COMPARE_N_ADD("TXTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 357 | | 358 | COMPARE_N_ADD("RxRssiAndProcessCompensation_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | | 361 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | | 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | static int parse_band5_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | { | ~ 368 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 369 | struct wl128x_ini_band_params_5 *gp = &(p->ini128x.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 370 | | 371 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | return 1; | ~~~~~~~~~ 373 | | 374 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 375 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | | 377 | COMPARE_N_ADD("TxTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 378 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 379 | | 380 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 381 | | 382 | return 1; | ~~~~~~~~~ 383 | } | ~ 384 | | 385 | static int parse_fem0_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | { | ~ 387 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 388 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 389 | &(p->ini1271.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 390 | | 391 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | return 1; | ~~~~~~~~~ 393 | | 394 | COMPARE_N_ADD2("FEM0_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 396 | | 397 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 398 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 399 | | 400 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 401 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 402 | | 403 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 404 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | | 406 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 408 | | 409 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 410 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | | 412 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 413 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | | 415 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | | 418 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 420 | | 421 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 422 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | | 424 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 425 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | | 427 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 428 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 429 | | 430 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | | 433 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | | 435 | return 1; | ~~~~~~~~~ 436 | } | ~ 437 | | 438 | static int parse_fem0_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 439 | { | ~ 440 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 441 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 442 | &(p->ini128x.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | | 444 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | return 1; | ~~~~~~~~~ 446 | | 447 | COMPARE_N_ADD2("FEM0_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:447:2: note: in expansion of macro 'COMPARE_N_ADD2' 447 | COMPARE_N_ADD2("FEM0_TxBiPReferencePDvoltage_2_4G", l, val, | ^~~~~~~~~~~~~~ ini.c: In function 'parse_fem1_band2_prms': ini.c:199:32: warning: taking address of packed member of 'struct wl1271_ini_fem_params_2' may result in an unaligned pointer value [-Waddress-of-packed-member] 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | } | ~ 201 | | 202 | static int parse_general_prms(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 204 | { | ~ 205 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 206 | struct wl1271_ini_general_params *gp = &(p->ini1271.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | | 208 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 | return 1; | ~~~~~~~~~ 210 | | 211 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | | 214 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | | 216 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 217 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | | 219 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 220 | | 221 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | | 223 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 225 | | 226 | COMPARE_N_ADD("DC2DCMode", l, val, &gp->dc2dc_mode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | | 228 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 229 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 230 | | 231 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 232 | | 233 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | | 235 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | | 237 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | | 239 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | | 241 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | | 243 | return 1; | ~~~~~~~~~ 244 | } | ~ 245 | | 246 | static int parse_general_prms_128x(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 248 | { | ~ 249 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 250 | struct wl128x_ini_general_params *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | &(p->ini128x.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | | 253 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | return 1; | ~~~~~~~~~ 255 | | 256 | | 257 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 258 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | | 260 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 261 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | | 263 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 264 | | 265 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 266 | | 267 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 268 | | 269 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 270 | | 271 | COMPARE_N_ADD("TCXO_Clk", l, val, &gp->tcxo_ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | | 273 | COMPARE_N_ADD("TCXO_SettlingTime", l, val, &gp->tcxo_settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | | 275 | COMPARE_N_ADD("TCXO_ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 | &gp->tcxo_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | | 278 | COMPARE_N_ADD("TCXO_LDO_Voltage", l, val, &gp->tcxo_ldo_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | | 280 | COMPARE_N_ADD("Platform_configuration", l, val, &gp->platform_conf); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | | 282 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 284 | | 285 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | | 287 | COMPARE_N_ADD("XTALItrimVal", l, val, &gp->xtal_itrim_val); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | | 289 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | | 291 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | | 293 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 294 | | 295 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 296 | | 297 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | | 299 | return 1; | ~~~~~~~~~ 300 | } | ~ 301 | | 302 | static int parse_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 303 | { | ~ 304 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 305 | struct wl1271_ini_band_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | &(p->ini1271.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | | 308 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | return 1; | ~~~~~~~~~ 310 | | 311 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313 | | 314 | COMPARE_N_ADD("TXTraceLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 315 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 316 | | 317 | COMPARE_N_ADD("RxRssiAndProcessCompensation_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 319 | | 320 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | | 322 | return 1; | ~~~~~~~~~ 323 | } | ~ 324 | | 325 | static int parse_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | { | ~ 327 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 328 | struct wl128x_ini_band_params_2 *gp = &(p->ini128x.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 329 | | 330 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 331 | return 1; | ~~~~~~~~~ 332 | | 333 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 334 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | | 336 | COMPARE_N_ADD("TxTraceLoss_2_4G", l, val, &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 337 | | 338 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | | 340 | return 1; | ~~~~~~~~~ 341 | } | ~ 342 | | 343 | static int parse_band5_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | { | ~ 345 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 346 | struct wl1271_ini_band_params_5 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 347 | &(p->ini1271.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | | 349 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 350 | return 1; | ~~~~~~~~~ 351 | | 352 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | | 355 | COMPARE_N_ADD("TXTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 357 | | 358 | COMPARE_N_ADD("RxRssiAndProcessCompensation_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | | 361 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | | 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | static int parse_band5_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | { | ~ 368 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 369 | struct wl128x_ini_band_params_5 *gp = &(p->ini128x.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 370 | | 371 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | return 1; | ~~~~~~~~~ 373 | | 374 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 375 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | | 377 | COMPARE_N_ADD("TxTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 378 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 379 | | 380 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 381 | | 382 | return 1; | ~~~~~~~~~ 383 | } | ~ 384 | | 385 | static int parse_fem0_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | { | ~ 387 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 388 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 389 | &(p->ini1271.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 390 | | 391 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | return 1; | ~~~~~~~~~ 393 | | 394 | COMPARE_N_ADD2("FEM0_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 396 | | 397 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 398 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 399 | | 400 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 401 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 402 | | 403 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 404 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | | 406 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 408 | | 409 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 410 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | | 412 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 413 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | | 415 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | | 418 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 420 | | 421 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 422 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | | 424 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 425 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | | 427 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 428 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 429 | | 430 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | | 433 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | | 435 | return 1; | ~~~~~~~~~ 436 | } | ~ 437 | | 438 | static int parse_fem0_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 439 | { | ~ 440 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 441 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 442 | &(p->ini128x.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | | 444 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | return 1; | ~~~~~~~~~ 446 | | 447 | COMPARE_N_ADD2("FEM0_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 449 | | 450 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 452 | | 453 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 455 | | 456 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 457 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | | 459 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | | 462 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 464 | | 465 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 467 | | 468 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 470 | | 471 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | | 474 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 476 | | 477 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 479 | | 480 | COMPARE_N_ADD("FEM0_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 482 | | 483 | COMPARE_N_ADD("FEM0_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | | 486 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 487 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 488 | | 489 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 490 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 491 | | 492 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 493 | | 494 | return 1; | ~~~~~~~~~ 495 | } | ~ 496 | | 497 | static int parse_fem1_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | { | ~ 499 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 500 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 501 | &(p->ini1271.dyn_radio_params_2[1].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 502 | | 503 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 504 | return 1; | ~~~~~~~~~ 505 | | 506 | COMPARE_N_ADD2("FEM1_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:506:2: note: in expansion of macro 'COMPARE_N_ADD2' 506 | COMPARE_N_ADD2("FEM1_TXBiPReferencePDvoltage_2_4G", l, val, | ^~~~~~~~~~~~~~ ini.c: In function 'parse_fem1_band2_prms_128x': ini.c:199:32: warning: taking address of packed member of 'struct wl128x_ini_fem_params_2' may result in an unaligned pointer value [-Waddress-of-packed-member] 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | } | ~ 201 | | 202 | static int parse_general_prms(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 204 | { | ~ 205 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 206 | struct wl1271_ini_general_params *gp = &(p->ini1271.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | | 208 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 | return 1; | ~~~~~~~~~ 210 | | 211 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | | 214 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | | 216 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 217 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | | 219 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 220 | | 221 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | | 223 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 225 | | 226 | COMPARE_N_ADD("DC2DCMode", l, val, &gp->dc2dc_mode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | | 228 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 229 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 230 | | 231 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 232 | | 233 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | | 235 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | | 237 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | | 239 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | | 241 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | | 243 | return 1; | ~~~~~~~~~ 244 | } | ~ 245 | | 246 | static int parse_general_prms_128x(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 248 | { | ~ 249 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 250 | struct wl128x_ini_general_params *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | &(p->ini128x.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | | 253 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | return 1; | ~~~~~~~~~ 255 | | 256 | | 257 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 258 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | | 260 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 261 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | | 263 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 264 | | 265 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 266 | | 267 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 268 | | 269 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 270 | | 271 | COMPARE_N_ADD("TCXO_Clk", l, val, &gp->tcxo_ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | | 273 | COMPARE_N_ADD("TCXO_SettlingTime", l, val, &gp->tcxo_settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | | 275 | COMPARE_N_ADD("TCXO_ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 | &gp->tcxo_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | | 278 | COMPARE_N_ADD("TCXO_LDO_Voltage", l, val, &gp->tcxo_ldo_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | | 280 | COMPARE_N_ADD("Platform_configuration", l, val, &gp->platform_conf); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | | 282 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 284 | | 285 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | | 287 | COMPARE_N_ADD("XTALItrimVal", l, val, &gp->xtal_itrim_val); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | | 289 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | | 291 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | | 293 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 294 | | 295 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 296 | | 297 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | | 299 | return 1; | ~~~~~~~~~ 300 | } | ~ 301 | | 302 | static int parse_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 303 | { | ~ 304 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 305 | struct wl1271_ini_band_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | &(p->ini1271.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | | 308 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | return 1; | ~~~~~~~~~ 310 | | 311 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313 | | 314 | COMPARE_N_ADD("TXTraceLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 315 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 316 | | 317 | COMPARE_N_ADD("RxRssiAndProcessCompensation_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 319 | | 320 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | | 322 | return 1; | ~~~~~~~~~ 323 | } | ~ 324 | | 325 | static int parse_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | { | ~ 327 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 328 | struct wl128x_ini_band_params_2 *gp = &(p->ini128x.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 329 | | 330 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 331 | return 1; | ~~~~~~~~~ 332 | | 333 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 334 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | | 336 | COMPARE_N_ADD("TxTraceLoss_2_4G", l, val, &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 337 | | 338 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | | 340 | return 1; | ~~~~~~~~~ 341 | } | ~ 342 | | 343 | static int parse_band5_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | { | ~ 345 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 346 | struct wl1271_ini_band_params_5 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 347 | &(p->ini1271.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | | 349 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 350 | return 1; | ~~~~~~~~~ 351 | | 352 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | | 355 | COMPARE_N_ADD("TXTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 357 | | 358 | COMPARE_N_ADD("RxRssiAndProcessCompensation_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | | 361 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | | 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | static int parse_band5_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | { | ~ 368 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 369 | struct wl128x_ini_band_params_5 *gp = &(p->ini128x.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 370 | | 371 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | return 1; | ~~~~~~~~~ 373 | | 374 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 375 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | | 377 | COMPARE_N_ADD("TxTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 378 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 379 | | 380 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 381 | | 382 | return 1; | ~~~~~~~~~ 383 | } | ~ 384 | | 385 | static int parse_fem0_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | { | ~ 387 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 388 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 389 | &(p->ini1271.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 390 | | 391 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | return 1; | ~~~~~~~~~ 393 | | 394 | COMPARE_N_ADD2("FEM0_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 396 | | 397 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 398 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 399 | | 400 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 401 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 402 | | 403 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 404 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | | 406 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 408 | | 409 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 410 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | | 412 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 413 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | | 415 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | | 418 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 420 | | 421 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 422 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | | 424 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 425 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | | 427 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 428 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 429 | | 430 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | | 433 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | | 435 | return 1; | ~~~~~~~~~ 436 | } | ~ 437 | | 438 | static int parse_fem0_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 439 | { | ~ 440 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 441 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 442 | &(p->ini128x.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | | 444 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | return 1; | ~~~~~~~~~ 446 | | 447 | COMPARE_N_ADD2("FEM0_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 449 | | 450 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 452 | | 453 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 455 | | 456 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 457 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | | 459 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | | 462 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 464 | | 465 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 467 | | 468 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 470 | | 471 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | | 474 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 476 | | 477 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 479 | | 480 | COMPARE_N_ADD("FEM0_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 482 | | 483 | COMPARE_N_ADD("FEM0_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | | 486 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 487 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 488 | | 489 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 490 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 491 | | 492 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 493 | | 494 | return 1; | ~~~~~~~~~ 495 | } | ~ 496 | | 497 | static int parse_fem1_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | { | ~ 499 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 500 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 501 | &(p->ini1271.dyn_radio_params_2[1].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 502 | | 503 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 504 | return 1; | ~~~~~~~~~ 505 | | 506 | COMPARE_N_ADD2("FEM1_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | | 509 | COMPARE_N_ADD("FEM1_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 511 | | 512 | COMPARE_N_ADD("FEM1_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 513 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 514 | | 515 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 520 | | 521 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 523 | | 524 | COMPARE_N_ADD("FEM1_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 525 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 526 | | 527 | COMPARE_N_ADD("FEM1_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 528 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | | 530 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 532 | | 533 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 534 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 535 | | 536 | COMPARE_N_ADD("FEM1_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 537 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | | 539 | COMPARE_N_ADD("FEM1_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 541 | | 542 | COMPARE_N_ADD("FEM1_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 543 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 544 | | 545 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | | 547 | return 1; | ~~~~~~~~~ 548 | } | ~ 549 | | 550 | static int parse_fem1_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 551 | { | ~ 552 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 553 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 554 | &(p->ini128x.dyn_radio_params_2[1].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 555 | | 556 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 557 | return 1; | ~~~~~~~~~ 558 | | 559 | COMPARE_N_ADD2("FEM1_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 560 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:559:2: note: in expansion of macro 'COMPARE_N_ADD2' 559 | COMPARE_N_ADD2("FEM1_TxBiPReferencePDvoltage_2_4G", l, val, | ^~~~~~~~~~~~~~ ini.c: In function 'parse_fem2_band2_prms': ini.c:199:32: warning: taking address of packed member of 'struct wl1271_ini_fem_params_2' may result in an unaligned pointer value [-Waddress-of-packed-member] 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | } | ~ 201 | | 202 | static int parse_general_prms(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 204 | { | ~ 205 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 206 | struct wl1271_ini_general_params *gp = &(p->ini1271.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | | 208 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 | return 1; | ~~~~~~~~~ 210 | | 211 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | | 214 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | | 216 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 217 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | | 219 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 220 | | 221 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | | 223 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 225 | | 226 | COMPARE_N_ADD("DC2DCMode", l, val, &gp->dc2dc_mode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | | 228 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 229 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 230 | | 231 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 232 | | 233 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | | 235 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | | 237 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | | 239 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | | 241 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | | 243 | return 1; | ~~~~~~~~~ 244 | } | ~ 245 | | 246 | static int parse_general_prms_128x(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 248 | { | ~ 249 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 250 | struct wl128x_ini_general_params *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | &(p->ini128x.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | | 253 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | return 1; | ~~~~~~~~~ 255 | | 256 | | 257 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 258 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | | 260 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 261 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | | 263 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 264 | | 265 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 266 | | 267 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 268 | | 269 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 270 | | 271 | COMPARE_N_ADD("TCXO_Clk", l, val, &gp->tcxo_ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | | 273 | COMPARE_N_ADD("TCXO_SettlingTime", l, val, &gp->tcxo_settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | | 275 | COMPARE_N_ADD("TCXO_ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 | &gp->tcxo_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | | 278 | COMPARE_N_ADD("TCXO_LDO_Voltage", l, val, &gp->tcxo_ldo_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | | 280 | COMPARE_N_ADD("Platform_configuration", l, val, &gp->platform_conf); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | | 282 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 284 | | 285 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | | 287 | COMPARE_N_ADD("XTALItrimVal", l, val, &gp->xtal_itrim_val); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | | 289 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | | 291 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | | 293 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 294 | | 295 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 296 | | 297 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | | 299 | return 1; | ~~~~~~~~~ 300 | } | ~ 301 | | 302 | static int parse_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 303 | { | ~ 304 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 305 | struct wl1271_ini_band_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | &(p->ini1271.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | | 308 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | return 1; | ~~~~~~~~~ 310 | | 311 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313 | | 314 | COMPARE_N_ADD("TXTraceLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 315 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 316 | | 317 | COMPARE_N_ADD("RxRssiAndProcessCompensation_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 319 | | 320 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | | 322 | return 1; | ~~~~~~~~~ 323 | } | ~ 324 | | 325 | static int parse_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | { | ~ 327 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 328 | struct wl128x_ini_band_params_2 *gp = &(p->ini128x.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 329 | | 330 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 331 | return 1; | ~~~~~~~~~ 332 | | 333 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 334 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | | 336 | COMPARE_N_ADD("TxTraceLoss_2_4G", l, val, &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 337 | | 338 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | | 340 | return 1; | ~~~~~~~~~ 341 | } | ~ 342 | | 343 | static int parse_band5_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | { | ~ 345 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 346 | struct wl1271_ini_band_params_5 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 347 | &(p->ini1271.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | | 349 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 350 | return 1; | ~~~~~~~~~ 351 | | 352 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | | 355 | COMPARE_N_ADD("TXTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 357 | | 358 | COMPARE_N_ADD("RxRssiAndProcessCompensation_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | | 361 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | | 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | static int parse_band5_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | { | ~ 368 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 369 | struct wl128x_ini_band_params_5 *gp = &(p->ini128x.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 370 | | 371 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | return 1; | ~~~~~~~~~ 373 | | 374 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 375 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | | 377 | COMPARE_N_ADD("TxTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 378 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 379 | | 380 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 381 | | 382 | return 1; | ~~~~~~~~~ 383 | } | ~ 384 | | 385 | static int parse_fem0_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | { | ~ 387 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 388 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 389 | &(p->ini1271.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 390 | | 391 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | return 1; | ~~~~~~~~~ 393 | | 394 | COMPARE_N_ADD2("FEM0_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 396 | | 397 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 398 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 399 | | 400 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 401 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 402 | | 403 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 404 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | | 406 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 408 | | 409 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 410 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | | 412 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 413 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | | 415 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | | 418 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 420 | | 421 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 422 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | | 424 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 425 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | | 427 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 428 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 429 | | 430 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | | 433 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | | 435 | return 1; | ~~~~~~~~~ 436 | } | ~ 437 | | 438 | static int parse_fem0_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 439 | { | ~ 440 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 441 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 442 | &(p->ini128x.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | | 444 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | return 1; | ~~~~~~~~~ 446 | | 447 | COMPARE_N_ADD2("FEM0_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 449 | | 450 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 452 | | 453 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 455 | | 456 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 457 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | | 459 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | | 462 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 464 | | 465 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 467 | | 468 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 470 | | 471 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | | 474 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 476 | | 477 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 479 | | 480 | COMPARE_N_ADD("FEM0_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 482 | | 483 | COMPARE_N_ADD("FEM0_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | | 486 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 487 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 488 | | 489 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 490 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 491 | | 492 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 493 | | 494 | return 1; | ~~~~~~~~~ 495 | } | ~ 496 | | 497 | static int parse_fem1_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | { | ~ 499 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 500 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 501 | &(p->ini1271.dyn_radio_params_2[1].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 502 | | 503 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 504 | return 1; | ~~~~~~~~~ 505 | | 506 | COMPARE_N_ADD2("FEM1_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | | 509 | COMPARE_N_ADD("FEM1_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 511 | | 512 | COMPARE_N_ADD("FEM1_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 513 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 514 | | 515 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 520 | | 521 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 523 | | 524 | COMPARE_N_ADD("FEM1_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 525 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 526 | | 527 | COMPARE_N_ADD("FEM1_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 528 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | | 530 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 532 | | 533 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 534 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 535 | | 536 | COMPARE_N_ADD("FEM1_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 537 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | | 539 | COMPARE_N_ADD("FEM1_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 541 | | 542 | COMPARE_N_ADD("FEM1_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 543 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 544 | | 545 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | | 547 | return 1; | ~~~~~~~~~ 548 | } | ~ 549 | | 550 | static int parse_fem1_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 551 | { | ~ 552 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 553 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 554 | &(p->ini128x.dyn_radio_params_2[1].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 555 | | 556 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 557 | return 1; | ~~~~~~~~~ 558 | | 559 | COMPARE_N_ADD2("FEM1_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 560 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | | 562 | COMPARE_N_ADD("FEM1_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 564 | | 565 | COMPARE_N_ADD("FEM1_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 566 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 567 | | 568 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | | 571 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 573 | | 574 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | | 577 | COMPARE_N_ADD("FEM1_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | | 580 | COMPARE_N_ADD("FEM1_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 582 | | 583 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 584 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 585 | | 586 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 588 | | 589 | COMPARE_N_ADD("FEM1_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 590 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | | 592 | COMPARE_N_ADD("FEM1_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 593 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | | 595 | COMPARE_N_ADD("FEM1_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 597 | | 598 | COMPARE_N_ADD("FEM1_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 600 | | 601 | COMPARE_N_ADD("FEM1_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | | 604 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | | 606 | return 1; | ~~~~~~~~~ 607 | } | ~ 608 | | 609 | static int parse_fem2_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 610 | { | ~ 611 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 612 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | &(p->ini1271.dyn_radio_params_2[2].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 614 | | 615 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | return 1; | ~~~~~~~~~ 617 | | 618 | COMPARE_N_ADD2("FEM2_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:618:2: note: in expansion of macro 'COMPARE_N_ADD2' 618 | COMPARE_N_ADD2("FEM2_TXBiPReferencePDvoltage_2_4G", l, val, | ^~~~~~~~~~~~~~ ini.c: In function 'parse_fem2_band2_prms_128x': ini.c:199:32: warning: taking address of packed member of 'struct wl128x_ini_fem_params_2' may result in an unaligned pointer value [-Waddress-of-packed-member] 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | } | ~ 201 | | 202 | static int parse_general_prms(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 204 | { | ~ 205 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 206 | struct wl1271_ini_general_params *gp = &(p->ini1271.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | | 208 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 | return 1; | ~~~~~~~~~ 210 | | 211 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | | 214 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | | 216 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 217 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | | 219 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 220 | | 221 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | | 223 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 225 | | 226 | COMPARE_N_ADD("DC2DCMode", l, val, &gp->dc2dc_mode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | | 228 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 229 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 230 | | 231 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 232 | | 233 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | | 235 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | | 237 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | | 239 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | | 241 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | | 243 | return 1; | ~~~~~~~~~ 244 | } | ~ 245 | | 246 | static int parse_general_prms_128x(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 248 | { | ~ 249 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 250 | struct wl128x_ini_general_params *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | &(p->ini128x.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | | 253 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | return 1; | ~~~~~~~~~ 255 | | 256 | | 257 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 258 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | | 260 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 261 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | | 263 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 264 | | 265 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 266 | | 267 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 268 | | 269 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 270 | | 271 | COMPARE_N_ADD("TCXO_Clk", l, val, &gp->tcxo_ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | | 273 | COMPARE_N_ADD("TCXO_SettlingTime", l, val, &gp->tcxo_settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | | 275 | COMPARE_N_ADD("TCXO_ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 | &gp->tcxo_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | | 278 | COMPARE_N_ADD("TCXO_LDO_Voltage", l, val, &gp->tcxo_ldo_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | | 280 | COMPARE_N_ADD("Platform_configuration", l, val, &gp->platform_conf); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | | 282 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 284 | | 285 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | | 287 | COMPARE_N_ADD("XTALItrimVal", l, val, &gp->xtal_itrim_val); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | | 289 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | | 291 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | | 293 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 294 | | 295 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 296 | | 297 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | | 299 | return 1; | ~~~~~~~~~ 300 | } | ~ 301 | | 302 | static int parse_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 303 | { | ~ 304 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 305 | struct wl1271_ini_band_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | &(p->ini1271.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | | 308 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | return 1; | ~~~~~~~~~ 310 | | 311 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313 | | 314 | COMPARE_N_ADD("TXTraceLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 315 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 316 | | 317 | COMPARE_N_ADD("RxRssiAndProcessCompensation_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 319 | | 320 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | | 322 | return 1; | ~~~~~~~~~ 323 | } | ~ 324 | | 325 | static int parse_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | { | ~ 327 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 328 | struct wl128x_ini_band_params_2 *gp = &(p->ini128x.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 329 | | 330 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 331 | return 1; | ~~~~~~~~~ 332 | | 333 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 334 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | | 336 | COMPARE_N_ADD("TxTraceLoss_2_4G", l, val, &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 337 | | 338 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | | 340 | return 1; | ~~~~~~~~~ 341 | } | ~ 342 | | 343 | static int parse_band5_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | { | ~ 345 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 346 | struct wl1271_ini_band_params_5 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 347 | &(p->ini1271.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | | 349 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 350 | return 1; | ~~~~~~~~~ 351 | | 352 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | | 355 | COMPARE_N_ADD("TXTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 357 | | 358 | COMPARE_N_ADD("RxRssiAndProcessCompensation_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | | 361 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | | 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | static int parse_band5_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | { | ~ 368 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 369 | struct wl128x_ini_band_params_5 *gp = &(p->ini128x.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 370 | | 371 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | return 1; | ~~~~~~~~~ 373 | | 374 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 375 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | | 377 | COMPARE_N_ADD("TxTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 378 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 379 | | 380 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 381 | | 382 | return 1; | ~~~~~~~~~ 383 | } | ~ 384 | | 385 | static int parse_fem0_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | { | ~ 387 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 388 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 389 | &(p->ini1271.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 390 | | 391 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | return 1; | ~~~~~~~~~ 393 | | 394 | COMPARE_N_ADD2("FEM0_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 396 | | 397 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 398 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 399 | | 400 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 401 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 402 | | 403 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 404 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | | 406 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 408 | | 409 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 410 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | | 412 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 413 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | | 415 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | | 418 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 420 | | 421 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 422 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | | 424 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 425 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | | 427 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 428 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 429 | | 430 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | | 433 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | | 435 | return 1; | ~~~~~~~~~ 436 | } | ~ 437 | | 438 | static int parse_fem0_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 439 | { | ~ 440 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 441 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 442 | &(p->ini128x.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | | 444 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | return 1; | ~~~~~~~~~ 446 | | 447 | COMPARE_N_ADD2("FEM0_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 449 | | 450 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 452 | | 453 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 455 | | 456 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 457 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | | 459 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | | 462 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 464 | | 465 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 467 | | 468 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 470 | | 471 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | | 474 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 476 | | 477 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 479 | | 480 | COMPARE_N_ADD("FEM0_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 482 | | 483 | COMPARE_N_ADD("FEM0_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | | 486 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 487 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 488 | | 489 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 490 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 491 | | 492 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 493 | | 494 | return 1; | ~~~~~~~~~ 495 | } | ~ 496 | | 497 | static int parse_fem1_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | { | ~ 499 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 500 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 501 | &(p->ini1271.dyn_radio_params_2[1].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 502 | | 503 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 504 | return 1; | ~~~~~~~~~ 505 | | 506 | COMPARE_N_ADD2("FEM1_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | | 509 | COMPARE_N_ADD("FEM1_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 511 | | 512 | COMPARE_N_ADD("FEM1_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 513 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 514 | | 515 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 520 | | 521 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 523 | | 524 | COMPARE_N_ADD("FEM1_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 525 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 526 | | 527 | COMPARE_N_ADD("FEM1_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 528 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | | 530 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 532 | | 533 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 534 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 535 | | 536 | COMPARE_N_ADD("FEM1_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 537 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | | 539 | COMPARE_N_ADD("FEM1_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 541 | | 542 | COMPARE_N_ADD("FEM1_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 543 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 544 | | 545 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | | 547 | return 1; | ~~~~~~~~~ 548 | } | ~ 549 | | 550 | static int parse_fem1_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 551 | { | ~ 552 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 553 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 554 | &(p->ini128x.dyn_radio_params_2[1].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 555 | | 556 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 557 | return 1; | ~~~~~~~~~ 558 | | 559 | COMPARE_N_ADD2("FEM1_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 560 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | | 562 | COMPARE_N_ADD("FEM1_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 564 | | 565 | COMPARE_N_ADD("FEM1_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 566 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 567 | | 568 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | | 571 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 573 | | 574 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | | 577 | COMPARE_N_ADD("FEM1_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | | 580 | COMPARE_N_ADD("FEM1_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 582 | | 583 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 584 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 585 | | 586 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 588 | | 589 | COMPARE_N_ADD("FEM1_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 590 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | | 592 | COMPARE_N_ADD("FEM1_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 593 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | | 595 | COMPARE_N_ADD("FEM1_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 597 | | 598 | COMPARE_N_ADD("FEM1_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 600 | | 601 | COMPARE_N_ADD("FEM1_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | | 604 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | | 606 | return 1; | ~~~~~~~~~ 607 | } | ~ 608 | | 609 | static int parse_fem2_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 610 | { | ~ 611 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 612 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | &(p->ini1271.dyn_radio_params_2[2].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 614 | | 615 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | return 1; | ~~~~~~~~~ 617 | | 618 | COMPARE_N_ADD2("FEM2_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 620 | | 621 | COMPARE_N_ADD("FEM2_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 622 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 623 | | 624 | COMPARE_N_ADD("FEM2_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 625 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 626 | | 627 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 631 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | | 636 | COMPARE_N_ADD("FEM2_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 637 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | | 639 | COMPARE_N_ADD("FEM2_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 641 | | 642 | COMPARE_N_ADD("FEM2_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 643 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | | 645 | COMPARE_N_ADD("FEM2_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 646 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | COMPARE_N_ADD("FEM2_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | | 651 | COMPARE_N_ADD("FEM2_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 652 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 653 | | 654 | COMPARE_N_ADD("FEM2_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | | 657 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | | 659 | return 1; | ~~~~~~~~~ 660 | } | ~ 661 | | 662 | static int parse_fem2_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 663 | { | ~ 664 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 665 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 666 | &(p->ini128x.dyn_radio_params_2[2].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 667 | | 668 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | return 1; | ~~~~~~~~~ 670 | | 671 | COMPARE_N_ADD2("FEM2_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 672 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:671:2: note: in expansion of macro 'COMPARE_N_ADD2' 671 | COMPARE_N_ADD2("FEM2_TxBiPReferencePDvoltage_2_4G", l, val, | ^~~~~~~~~~~~~~ ini.c: In function 'parse_fem3_band2_prms': ini.c:199:32: warning: taking address of packed member of 'struct wl1271_ini_fem_params_2' may result in an unaligned pointer value [-Waddress-of-packed-member] 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | } | ~ 201 | | 202 | static int parse_general_prms(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 204 | { | ~ 205 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 206 | struct wl1271_ini_general_params *gp = &(p->ini1271.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | | 208 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 | return 1; | ~~~~~~~~~ 210 | | 211 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | | 214 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | | 216 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 217 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | | 219 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 220 | | 221 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | | 223 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 225 | | 226 | COMPARE_N_ADD("DC2DCMode", l, val, &gp->dc2dc_mode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | | 228 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 229 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 230 | | 231 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 232 | | 233 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | | 235 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | | 237 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | | 239 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | | 241 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | | 243 | return 1; | ~~~~~~~~~ 244 | } | ~ 245 | | 246 | static int parse_general_prms_128x(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 248 | { | ~ 249 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 250 | struct wl128x_ini_general_params *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | &(p->ini128x.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | | 253 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | return 1; | ~~~~~~~~~ 255 | | 256 | | 257 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 258 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | | 260 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 261 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | | 263 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 264 | | 265 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 266 | | 267 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 268 | | 269 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 270 | | 271 | COMPARE_N_ADD("TCXO_Clk", l, val, &gp->tcxo_ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | | 273 | COMPARE_N_ADD("TCXO_SettlingTime", l, val, &gp->tcxo_settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | | 275 | COMPARE_N_ADD("TCXO_ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 | &gp->tcxo_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | | 278 | COMPARE_N_ADD("TCXO_LDO_Voltage", l, val, &gp->tcxo_ldo_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | | 280 | COMPARE_N_ADD("Platform_configuration", l, val, &gp->platform_conf); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | | 282 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 284 | | 285 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | | 287 | COMPARE_N_ADD("XTALItrimVal", l, val, &gp->xtal_itrim_val); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | | 289 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | | 291 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | | 293 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 294 | | 295 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 296 | | 297 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | | 299 | return 1; | ~~~~~~~~~ 300 | } | ~ 301 | | 302 | static int parse_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 303 | { | ~ 304 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 305 | struct wl1271_ini_band_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | &(p->ini1271.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | | 308 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | return 1; | ~~~~~~~~~ 310 | | 311 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313 | | 314 | COMPARE_N_ADD("TXTraceLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 315 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 316 | | 317 | COMPARE_N_ADD("RxRssiAndProcessCompensation_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 319 | | 320 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | | 322 | return 1; | ~~~~~~~~~ 323 | } | ~ 324 | | 325 | static int parse_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | { | ~ 327 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 328 | struct wl128x_ini_band_params_2 *gp = &(p->ini128x.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 329 | | 330 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 331 | return 1; | ~~~~~~~~~ 332 | | 333 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 334 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | | 336 | COMPARE_N_ADD("TxTraceLoss_2_4G", l, val, &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 337 | | 338 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | | 340 | return 1; | ~~~~~~~~~ 341 | } | ~ 342 | | 343 | static int parse_band5_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | { | ~ 345 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 346 | struct wl1271_ini_band_params_5 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 347 | &(p->ini1271.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | | 349 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 350 | return 1; | ~~~~~~~~~ 351 | | 352 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | | 355 | COMPARE_N_ADD("TXTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 357 | | 358 | COMPARE_N_ADD("RxRssiAndProcessCompensation_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | | 361 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | | 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | static int parse_band5_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | { | ~ 368 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 369 | struct wl128x_ini_band_params_5 *gp = &(p->ini128x.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 370 | | 371 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | return 1; | ~~~~~~~~~ 373 | | 374 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 375 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | | 377 | COMPARE_N_ADD("TxTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 378 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 379 | | 380 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 381 | | 382 | return 1; | ~~~~~~~~~ 383 | } | ~ 384 | | 385 | static int parse_fem0_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | { | ~ 387 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 388 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 389 | &(p->ini1271.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 390 | | 391 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | return 1; | ~~~~~~~~~ 393 | | 394 | COMPARE_N_ADD2("FEM0_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 396 | | 397 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 398 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 399 | | 400 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 401 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 402 | | 403 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 404 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | | 406 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 408 | | 409 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 410 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | | 412 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 413 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | | 415 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | | 418 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 420 | | 421 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 422 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | | 424 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 425 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | | 427 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 428 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 429 | | 430 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | | 433 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | | 435 | return 1; | ~~~~~~~~~ 436 | } | ~ 437 | | 438 | static int parse_fem0_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 439 | { | ~ 440 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 441 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 442 | &(p->ini128x.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | | 444 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | return 1; | ~~~~~~~~~ 446 | | 447 | COMPARE_N_ADD2("FEM0_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 449 | | 450 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 452 | | 453 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 455 | | 456 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 457 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | | 459 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | | 462 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 464 | | 465 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 467 | | 468 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 470 | | 471 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | | 474 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 476 | | 477 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 479 | | 480 | COMPARE_N_ADD("FEM0_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 482 | | 483 | COMPARE_N_ADD("FEM0_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | | 486 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 487 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 488 | | 489 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 490 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 491 | | 492 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 493 | | 494 | return 1; | ~~~~~~~~~ 495 | } | ~ 496 | | 497 | static int parse_fem1_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | { | ~ 499 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 500 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 501 | &(p->ini1271.dyn_radio_params_2[1].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 502 | | 503 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 504 | return 1; | ~~~~~~~~~ 505 | | 506 | COMPARE_N_ADD2("FEM1_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | | 509 | COMPARE_N_ADD("FEM1_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 511 | | 512 | COMPARE_N_ADD("FEM1_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 513 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 514 | | 515 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 520 | | 521 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 523 | | 524 | COMPARE_N_ADD("FEM1_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 525 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 526 | | 527 | COMPARE_N_ADD("FEM1_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 528 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | | 530 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 532 | | 533 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 534 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 535 | | 536 | COMPARE_N_ADD("FEM1_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 537 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | | 539 | COMPARE_N_ADD("FEM1_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 541 | | 542 | COMPARE_N_ADD("FEM1_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 543 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 544 | | 545 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | | 547 | return 1; | ~~~~~~~~~ 548 | } | ~ 549 | | 550 | static int parse_fem1_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 551 | { | ~ 552 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 553 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 554 | &(p->ini128x.dyn_radio_params_2[1].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 555 | | 556 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 557 | return 1; | ~~~~~~~~~ 558 | | 559 | COMPARE_N_ADD2("FEM1_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 560 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | | 562 | COMPARE_N_ADD("FEM1_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 564 | | 565 | COMPARE_N_ADD("FEM1_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 566 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 567 | | 568 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | | 571 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 573 | | 574 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | | 577 | COMPARE_N_ADD("FEM1_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | | 580 | COMPARE_N_ADD("FEM1_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 582 | | 583 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 584 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 585 | | 586 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 588 | | 589 | COMPARE_N_ADD("FEM1_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 590 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | | 592 | COMPARE_N_ADD("FEM1_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 593 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | | 595 | COMPARE_N_ADD("FEM1_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 597 | | 598 | COMPARE_N_ADD("FEM1_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 600 | | 601 | COMPARE_N_ADD("FEM1_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | | 604 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | | 606 | return 1; | ~~~~~~~~~ 607 | } | ~ 608 | | 609 | static int parse_fem2_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 610 | { | ~ 611 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 612 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | &(p->ini1271.dyn_radio_params_2[2].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 614 | | 615 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | return 1; | ~~~~~~~~~ 617 | | 618 | COMPARE_N_ADD2("FEM2_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 620 | | 621 | COMPARE_N_ADD("FEM2_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 622 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 623 | | 624 | COMPARE_N_ADD("FEM2_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 625 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 626 | | 627 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 631 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | | 636 | COMPARE_N_ADD("FEM2_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 637 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | | 639 | COMPARE_N_ADD("FEM2_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 641 | | 642 | COMPARE_N_ADD("FEM2_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 643 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | | 645 | COMPARE_N_ADD("FEM2_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 646 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | COMPARE_N_ADD("FEM2_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | | 651 | COMPARE_N_ADD("FEM2_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 652 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 653 | | 654 | COMPARE_N_ADD("FEM2_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | | 657 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | | 659 | return 1; | ~~~~~~~~~ 660 | } | ~ 661 | | 662 | static int parse_fem2_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 663 | { | ~ 664 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 665 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 666 | &(p->ini128x.dyn_radio_params_2[2].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 667 | | 668 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | return 1; | ~~~~~~~~~ 670 | | 671 | COMPARE_N_ADD2("FEM2_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 672 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 673 | | 674 | COMPARE_N_ADD("FEM2_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 676 | | 677 | COMPARE_N_ADD("FEM2_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 679 | | 680 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 682 | | 683 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 685 | | 686 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | | 689 | COMPARE_N_ADD("FEM2_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | | 692 | COMPARE_N_ADD("FEM2_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 693 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | | 695 | COMPARE_N_ADD("FEM2_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 697 | | 698 | COMPARE_N_ADD("FEM2_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 699 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 700 | | 701 | COMPARE_N_ADD("FEM2_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | | 704 | COMPARE_N_ADD("FEM2_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 705 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 706 | | 707 | COMPARE_N_ADD("FEM2_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 708 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 709 | | 710 | COMPARE_N_ADD("FEM2_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 712 | | 713 | COMPARE_N_ADD("FEM2_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 715 | | 716 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | | 718 | return 1; | ~~~~~~~~~ 719 | } | ~ 720 | | 721 | static int parse_fem3_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | { | ~ 723 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 724 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | &(p->ini1271.dyn_radio_params_2[3].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | | 727 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | return 1; | ~~~~~~~~~ 729 | | 730 | COMPARE_N_ADD2("FEM3_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:730:2: note: in expansion of macro 'COMPARE_N_ADD2' 730 | COMPARE_N_ADD2("FEM3_TXBiPReferencePDvoltage_2_4G", l, val, | ^~~~~~~~~~~~~~ ini.c: In function 'parse_fem3_band2_prms_128x': ini.c:199:32: warning: taking address of packed member of 'struct wl128x_ini_fem_params_2' may result in an unaligned pointer value [-Waddress-of-packed-member] 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | } | ~ 201 | | 202 | static int parse_general_prms(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 204 | { | ~ 205 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 206 | struct wl1271_ini_general_params *gp = &(p->ini1271.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | | 208 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 | return 1; | ~~~~~~~~~ 210 | | 211 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | | 214 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | | 216 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 217 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | | 219 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 220 | | 221 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | | 223 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 225 | | 226 | COMPARE_N_ADD("DC2DCMode", l, val, &gp->dc2dc_mode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | | 228 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 229 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 230 | | 231 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 232 | | 233 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | | 235 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | | 237 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | | 239 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | | 241 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | | 243 | return 1; | ~~~~~~~~~ 244 | } | ~ 245 | | 246 | static int parse_general_prms_128x(char *l, struct wl12xx_common *cmn, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~ 248 | { | ~ 249 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 250 | struct wl128x_ini_general_params *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | &(p->ini128x.general_params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | | 253 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | return 1; | ~~~~~~~~~ 255 | | 256 | | 257 | COMPARE_N_ADD("TXBiPFEMAutoDetect", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 258 | &gp->tx_bip_fem_auto_detect); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | | 260 | COMPARE_N_ADD("TXBiPFEMManufacturer", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 261 | &gp->tx_bip_fem_manufacturer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | | 263 | cmn->auto_fem = gp->tx_bip_fem_auto_detect; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 264 | | 265 | COMPARE_N_ADD("RefClk", l, val, &gp->ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 266 | | 267 | COMPARE_N_ADD("SettlingTime", l, val, &gp->settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 268 | | 269 | COMPARE_N_ADD("ClockValidOnWakeup", l, val, &gp->clk_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 270 | | 271 | COMPARE_N_ADD("TCXO_Clk", l, val, &gp->tcxo_ref_clock); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | | 273 | COMPARE_N_ADD("TCXO_SettlingTime", l, val, &gp->tcxo_settling_time); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | | 275 | COMPARE_N_ADD("TCXO_ClockValidOnWakeup", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 | &gp->tcxo_valid_on_wakeup); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | | 278 | COMPARE_N_ADD("TCXO_LDO_Voltage", l, val, &gp->tcxo_ldo_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | | 280 | COMPARE_N_ADD("Platform_configuration", l, val, &gp->platform_conf); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | | 282 | COMPARE_N_ADD("Single_Dual_Band_Solution", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | &gp->dual_mode_select); | ~~~~~~~~~~~~~~~~~~~~~~~ 284 | | 285 | COMPARE_N_ADD("Settings", l, val, &gp->general_settings); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | | 287 | COMPARE_N_ADD("XTALItrimVal", l, val, &gp->xtal_itrim_val); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | | 289 | COMPARE_N_ADD("SRState", l, val, &gp->sr_state); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | | 291 | COMPARE_N_ADD("SRF1", l, val, &gp->srf1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | | 293 | COMPARE_N_ADD("SRF2", l, val, &gp->srf2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 294 | | 295 | COMPARE_N_ADD("SRF3", l, val, &gp->srf3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 296 | | 297 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | | 299 | return 1; | ~~~~~~~~~ 300 | } | ~ 301 | | 302 | static int parse_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 303 | { | ~ 304 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 305 | struct wl1271_ini_band_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | &(p->ini1271.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | | 308 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | return 1; | ~~~~~~~~~ 310 | | 311 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313 | | 314 | COMPARE_N_ADD("TXTraceLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 315 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 316 | | 317 | COMPARE_N_ADD("RxRssiAndProcessCompensation_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 319 | | 320 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | | 322 | return 1; | ~~~~~~~~~ 323 | } | ~ 324 | | 325 | static int parse_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | { | ~ 327 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 328 | struct wl128x_ini_band_params_2 *gp = &(p->ini128x.stat_radio_params_2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 329 | | 330 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 331 | return 1; | ~~~~~~~~~ 332 | | 333 | COMPARE_N_ADD("RxTraceInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 334 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | | 336 | COMPARE_N_ADD("TxTraceLoss_2_4G", l, val, &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 337 | | 338 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | | 340 | return 1; | ~~~~~~~~~ 341 | } | ~ 342 | | 343 | static int parse_band5_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | { | ~ 345 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 346 | struct wl1271_ini_band_params_5 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 347 | &(p->ini1271.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | | 349 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 350 | return 1; | ~~~~~~~~~ 351 | | 352 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | | 355 | COMPARE_N_ADD("TXTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 357 | | 358 | COMPARE_N_ADD("RxRssiAndProcessCompensation_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | &gp->rx_rssi_process_compens); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | | 361 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | | 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | static int parse_band5_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | { | ~ 368 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 369 | struct wl128x_ini_band_params_5 *gp = &(p->ini128x.stat_radio_params_5); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 370 | | 371 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | return 1; | ~~~~~~~~~ 373 | | 374 | COMPARE_N_ADD("RxTraceInsertionLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 375 | &gp->rx_trace_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | | 377 | COMPARE_N_ADD("TxTraceLoss_5G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 378 | &gp->tx_trace_loss); | ~~~~~~~~~~~~~~~~~~~~ 379 | | 380 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 381 | | 382 | return 1; | ~~~~~~~~~ 383 | } | ~ 384 | | 385 | static int parse_fem0_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | { | ~ 387 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 388 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 389 | &(p->ini1271.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 390 | | 391 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | return 1; | ~~~~~~~~~ 393 | | 394 | COMPARE_N_ADD2("FEM0_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 396 | | 397 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 398 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 399 | | 400 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 401 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 402 | | 403 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 404 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | | 406 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 408 | | 409 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 410 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | | 412 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 413 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | | 415 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | | 418 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 420 | | 421 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 422 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | | 424 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 425 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | | 427 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 428 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 429 | | 430 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | | 433 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | | 435 | return 1; | ~~~~~~~~~ 436 | } | ~ 437 | | 438 | static int parse_fem0_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 439 | { | ~ 440 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 441 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 442 | &(p->ini128x.dyn_radio_params_2[0].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | | 444 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | return 1; | ~~~~~~~~~ 446 | | 447 | COMPARE_N_ADD2("FEM0_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 449 | | 450 | COMPARE_N_ADD("FEM0_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 452 | | 453 | COMPARE_N_ADD("FEM0_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 455 | | 456 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 457 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | | 459 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | | 462 | COMPARE_N_ADD("FEM0_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 464 | | 465 | COMPARE_N_ADD("FEM0_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 467 | | 468 | COMPARE_N_ADD("FEM0_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 470 | | 471 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | | 474 | COMPARE_N_ADD("FEM0_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 476 | | 477 | COMPARE_N_ADD("FEM0_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 479 | | 480 | COMPARE_N_ADD("FEM0_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 482 | | 483 | COMPARE_N_ADD("FEM0_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | | 486 | COMPARE_N_ADD("FEM0_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 487 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 488 | | 489 | COMPARE_N_ADD("FEM0_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 490 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 491 | | 492 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 493 | | 494 | return 1; | ~~~~~~~~~ 495 | } | ~ 496 | | 497 | static int parse_fem1_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | { | ~ 499 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 500 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 501 | &(p->ini1271.dyn_radio_params_2[1].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 502 | | 503 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 504 | return 1; | ~~~~~~~~~ 505 | | 506 | COMPARE_N_ADD2("FEM1_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | | 509 | COMPARE_N_ADD("FEM1_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 511 | | 512 | COMPARE_N_ADD("FEM1_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 513 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 514 | | 515 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 520 | | 521 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 523 | | 524 | COMPARE_N_ADD("FEM1_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 525 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 526 | | 527 | COMPARE_N_ADD("FEM1_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 528 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | | 530 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 532 | | 533 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 534 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 535 | | 536 | COMPARE_N_ADD("FEM1_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 537 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | | 539 | COMPARE_N_ADD("FEM1_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 541 | | 542 | COMPARE_N_ADD("FEM1_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 543 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 544 | | 545 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | | 547 | return 1; | ~~~~~~~~~ 548 | } | ~ 549 | | 550 | static int parse_fem1_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 551 | { | ~ 552 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 553 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 554 | &(p->ini128x.dyn_radio_params_2[1].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 555 | | 556 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 557 | return 1; | ~~~~~~~~~ 558 | | 559 | COMPARE_N_ADD2("FEM1_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 560 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | | 562 | COMPARE_N_ADD("FEM1_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 564 | | 565 | COMPARE_N_ADD("FEM1_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 566 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 567 | | 568 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | | 571 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 573 | | 574 | COMPARE_N_ADD("FEM1_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | | 577 | COMPARE_N_ADD("FEM1_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | | 580 | COMPARE_N_ADD("FEM1_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 582 | | 583 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 584 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 585 | | 586 | COMPARE_N_ADD("FEM1_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 588 | | 589 | COMPARE_N_ADD("FEM1_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 590 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | | 592 | COMPARE_N_ADD("FEM1_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 593 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | | 595 | COMPARE_N_ADD("FEM1_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 597 | | 598 | COMPARE_N_ADD("FEM1_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 600 | | 601 | COMPARE_N_ADD("FEM1_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | | 604 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | | 606 | return 1; | ~~~~~~~~~ 607 | } | ~ 608 | | 609 | static int parse_fem2_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 610 | { | ~ 611 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 612 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | &(p->ini1271.dyn_radio_params_2[2].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 614 | | 615 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | return 1; | ~~~~~~~~~ 617 | | 618 | COMPARE_N_ADD2("FEM2_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 620 | | 621 | COMPARE_N_ADD("FEM2_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 622 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 623 | | 624 | COMPARE_N_ADD("FEM2_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 625 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 626 | | 627 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 631 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | | 636 | COMPARE_N_ADD("FEM2_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 637 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | | 639 | COMPARE_N_ADD("FEM2_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 641 | | 642 | COMPARE_N_ADD("FEM2_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 643 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | | 645 | COMPARE_N_ADD("FEM2_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 646 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | COMPARE_N_ADD("FEM2_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | | 651 | COMPARE_N_ADD("FEM2_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 652 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 653 | | 654 | COMPARE_N_ADD("FEM2_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | | 657 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | | 659 | return 1; | ~~~~~~~~~ 660 | } | ~ 661 | | 662 | static int parse_fem2_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 663 | { | ~ 664 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 665 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 666 | &(p->ini128x.dyn_radio_params_2[2].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 667 | | 668 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | return 1; | ~~~~~~~~~ 670 | | 671 | COMPARE_N_ADD2("FEM2_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 672 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 673 | | 674 | COMPARE_N_ADD("FEM2_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 676 | | 677 | COMPARE_N_ADD("FEM2_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 679 | | 680 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 682 | | 683 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 685 | | 686 | COMPARE_N_ADD("FEM2_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | | 689 | COMPARE_N_ADD("FEM2_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | | 692 | COMPARE_N_ADD("FEM2_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 693 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | | 695 | COMPARE_N_ADD("FEM2_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 697 | | 698 | COMPARE_N_ADD("FEM2_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 699 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 700 | | 701 | COMPARE_N_ADD("FEM2_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | | 704 | COMPARE_N_ADD("FEM2_TxPDVsChannelOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 705 | &gp->tx_pd_vs_chan_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 706 | | 707 | COMPARE_N_ADD("FEM2_TxPDVsTemperature_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 708 | &gp->tx_pd_vs_temperature); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 709 | | 710 | COMPARE_N_ADD("FEM2_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 712 | | 713 | COMPARE_N_ADD("FEM2_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 715 | | 716 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | | 718 | return 1; | ~~~~~~~~~ 719 | } | ~ 720 | | 721 | static int parse_fem3_band2_prms(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | { | ~ 723 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 724 | struct wl1271_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | &(p->ini1271.dyn_radio_params_2[3].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | | 727 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | return 1; | ~~~~~~~~~ 729 | | 730 | COMPARE_N_ADD2("FEM3_TXBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | | 733 | COMPARE_N_ADD("FEM3_TxBiPReferencePower_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 734 | &gp->tx_bip_ref_power); | ~~~~~~~~~~~~~~~~~~~~~~~ 735 | | 736 | COMPARE_N_ADD("FEM3_TxBiPOffsetdB_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 737 | &gp->tx_bip_ref_offset); | ~~~~~~~~~~~~~~~~~~~~~~~~ 738 | | 739 | COMPARE_N_ADD("FEM3_TxPerRatePowerLimits_2_4G_Normal", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | &gp->tx_per_rate_pwr_limits_normal); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 741 | | 742 | COMPARE_N_ADD("FEM3_TxPerRatePowerLimits_2_4G_Degraded", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 743 | &gp->tx_per_rate_pwr_limits_degraded); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | | 745 | COMPARE_N_ADD("FEM3_TxPerRatePowerLimits_2_4G_Extreme", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 746 | &gp->tx_per_rate_pwr_limits_extreme); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | | 748 | COMPARE_N_ADD("FEM3_DegradedLowToNormalThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 749 | &gp->degraded_low_to_normal_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 750 | | 751 | COMPARE_N_ADD("FEM3_NormalToDegradedHighThr_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | &gp->normal_to_degraded_high_thr); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 753 | | 754 | COMPARE_N_ADD("FEM3_TxPerChannelPowerLimits_2_4G_11b", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 755 | &gp->tx_per_chan_pwr_limits_11b); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 756 | | 757 | COMPARE_N_ADD("FEM3_TxPerChannelPowerLimits_2_4G_OFDM", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 758 | &gp->tx_per_chan_pwr_limits_ofdm); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 759 | | 760 | COMPARE_N_ADD("FEM3_TxPDVsRateOffsets_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | &gp->tx_pd_vs_rate_offsets); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | | 763 | COMPARE_N_ADD("FEM3_TxIbiasTable_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | &gp->tx_ibias); | ~~~~~~~~~~~~~~~ 765 | | 766 | COMPARE_N_ADD("FEM3_RxFemInsertionLoss_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | &gp->rx_fem_insertion_loss); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | | 769 | fprintf(stderr, "Unable to parse: (%s)\n", l); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 770 | | 771 | return 1; | ~~~~~~~~~ 772 | } | ~ 773 | | 774 | static int parse_fem3_band2_prms_128x(char *l, struct wl12xx_ini *p) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | { | ~ 776 | char *name, *val; | ~~~~~~~~~~~~~~~~~ 777 | struct wl128x_ini_fem_params_2 *gp = | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 778 | &(p->ini128x.dyn_radio_params_2[3].params); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 779 | | 780 | if (split_line(l, &name, &val)) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 781 | return 1; | ~~~~~~~~~ 782 | | 783 | COMPARE_N_ADD2("FEM3_TxBiPReferencePDvoltage_2_4G", l, val, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 784 | &gp->tx_bip_ref_pd_voltage); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:783:2: note: in expansion of macro 'COMPARE_N_ADD2' 783 | COMPARE_N_ADD2("FEM3_TxBiPReferencePDvoltage_2_4G", l, val, | ^~~~~~~~~~~~~~ ini.c: In function 'parse_fem0_band5_prms': ini.c:843:3: warning: taking address of packed member of 'struct wl1271_ini_fem_params_5' may result in an unaligned pointer value [-Waddress-of-packed-member] 843 | &gp->tx_bip_ref_pd_voltage); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:199:42: note: in definition of macro 'COMPARE_N_ADD2' 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~ ini.c: In function 'parse_fem0_band5_prms_128x': ini.c:893:3: warning: taking address of packed member of 'struct wl128x_ini_fem_params_5' may result in an unaligned pointer value [-Waddress-of-packed-member] 893 | &gp->tx_bip_ref_pd_voltage); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:199:42: note: in definition of macro 'COMPARE_N_ADD2' 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~ ini.c: In function 'parse_fem1_band5_prms': ini.c:949:3: warning: taking address of packed member of 'struct wl1271_ini_fem_params_5' may result in an unaligned pointer value [-Waddress-of-packed-member] 949 | &gp->tx_bip_ref_pd_voltage); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:199:42: note: in definition of macro 'COMPARE_N_ADD2' 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~ ini.c: In function 'parse_fem1_band5_prms_128x': ini.c:999:3: warning: taking address of packed member of 'struct wl128x_ini_fem_params_5' may result in an unaligned pointer value [-Waddress-of-packed-member] 999 | &gp->tx_bip_ref_pd_voltage); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:199:42: note: in definition of macro 'COMPARE_N_ADD2' 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~ ini.c: In function 'parse_fem2_band5_prms': ini.c:1055:3: warning: taking address of packed member of 'struct wl1271_ini_fem_params_5' may result in an unaligned pointer value [-Waddress-of-packed-member] 1055 | &gp->tx_bip_ref_pd_voltage); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:199:42: note: in definition of macro 'COMPARE_N_ADD2' 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~ ini.c: In function 'parse_fem2_band5_prms_128x': ini.c:1105:3: warning: taking address of packed member of 'struct wl128x_ini_fem_params_5' may result in an unaligned pointer value [-Waddress-of-packed-member] 1105 | &gp->tx_bip_ref_pd_voltage); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:199:42: note: in definition of macro 'COMPARE_N_ADD2' 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~ ini.c: In function 'parse_fem3_band5_prms': ini.c:1161:3: warning: taking address of packed member of 'struct wl1271_ini_fem_params_5' may result in an unaligned pointer value [-Waddress-of-packed-member] 1161 | &gp->tx_bip_ref_pd_voltage); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:199:42: note: in definition of macro 'COMPARE_N_ADD2' 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~ ini.c: In function 'parse_fem3_band5_prms_128x': ini.c:1211:3: warning: taking address of packed member of 'struct wl128x_ini_fem_params_5' may result in an unaligned pointer value [-Waddress-of-packed-member] 1211 | &gp->tx_bip_ref_pd_voltage); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ini.c:199:42: note: in definition of macro 'COMPARE_N_ADD2' 199 | return parse_ui_a(temp, val, (__le16*) ptr, sizeof(*ptr)/2); \ | ^~~ /home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -L/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/lib nvs.o misc_cmds.o calibrator.o plt.o wl18xx_plt.o ini.o -lm -lnl-3 -lnl-genl-3 -o calibrator /home/buildroot/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: misc_cmds.o:(.bss+0x0): multiple definition of `EFUSE_PARAMETER_TYPE_ENM'; nvs.o:(.bss+0x0): first defined here /home/buildroot/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: calibrator.o: in function `.LANCHOR0': calibrator.c:(.bss+0xc): multiple definition of `EFUSE_PARAMETER_TYPE_ENM'; nvs.o:(.bss+0x0): first defined here /home/buildroot/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: plt.o: in function `.LANCHOR1': plt.c:(.bss+0x4): multiple definition of `EFUSE_PARAMETER_TYPE_ENM'; nvs.o:(.bss+0x0): first defined here /home/buildroot/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: wl18xx_plt.o:(.bss+0x0): multiple definition of `EFUSE_PARAMETER_TYPE_ENM'; nvs.o:(.bss+0x0): first defined here /home/buildroot/autobuild/run/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: ini.o: in function `.LANCHOR0': ini.c:(.bss+0x8): multiple definition of `EFUSE_PARAMETER_TYPE_ENM'; nvs.o:(.bss+0x0): first defined here collect2: error: ld returned 1 exit status make[1]: *** [all] Error 1 make[1]: Leaving directory `/home/buildroot/autobuild/run/instance-3/output-1/build/18xx-ti-utils-R8.7_SP3' make: *** [/home/buildroot/autobuild/run/instance-3/output-1/build/18xx-ti-utils-R8.7_SP3/.stamp_built] Error 2 make: Leaving directory `/home/buildroot/autobuild/run/instance-3/buildroot'