>>> 18xx-ti-utils 8.8 Extracting xzcat /home/buildroot/autobuild/instance-2/dl/18xx-ti-utils/18xx-ti-utils-R8.8.tar.xz | tar --strip-components=1 -C /home/buildroot/autobuild/instance-2/output-1/build/18xx-ti-utils-8.8 -xf - >>> 18xx-ti-utils 8.8 Patching Applying 0001-plt.h-fix-build-with-gcc-10.patch using patch: patching file plt.h >>> 18xx-ti-utils 8.8 Configuring >>> 18xx-ti-utils 8.8 Building PATH="/home/buildroot/autobuild/instance-2/output-1/host/bin:/home/buildroot/autobuild/instance-2/output-1/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" CROSS_COMPILE=/home/buildroot/autobuild/instance-2/output-1/host/bin/m68k-buildroot-uclinux-uclibc- NFSROOT="/home/buildroot/autobuild/instance-2/output-1/host/m68k-buildroot-uclinux-uclibc/sysroot" NLVER=3 /usr/bin/make -j4 -C /home/buildroot/autobuild/instance-2/output-1/build/18xx-ti-utils-8.8 CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -fno-dwarf2-cfi-asm -Wl,-elf2flt=-r -static -I/home/buildroot/autobuild/instance-2/output-1/host/m68k-buildroot-uclinux-uclibc/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32" static make[1]: Entering directory '/home/buildroot/autobuild/instance-2/output-1/build/18xx-ti-utils-8.8' /home/buildroot/autobuild/instance-2/output-1/host/bin/m68k-buildroot-uclinux-uclibc-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -fno-dwarf2-cfi-asm -Wl,-elf2flt=-r -static -I/home/buildroot/autobuild/instance-2/output-1/host/m68k-buildroot-uclinux-uclibc/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32 -c -o nvs.o nvs.c /home/buildroot/autobuild/instance-2/output-1/host/bin/m68k-buildroot-uclinux-uclibc-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -fno-dwarf2-cfi-asm -Wl,-elf2flt=-r -static -I/home/buildroot/autobuild/instance-2/output-1/host/m68k-buildroot-uclinux-uclibc/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32 -c -o misc_cmds.o misc_cmds.c /home/buildroot/autobuild/instance-2/output-1/host/bin/m68k-buildroot-uclinux-uclibc-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -fno-dwarf2-cfi-asm -Wl,-elf2flt=-r -static -I/home/buildroot/autobuild/instance-2/output-1/host/m68k-buildroot-uclinux-uclibc/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32 -c -o calibrator.o calibrator.c /home/buildroot/autobuild/instance-2/output-1/host/bin/m68k-buildroot-uclinux-uclibc-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -fno-dwarf2-cfi-asm -Wl,-elf2flt=-r -static -I/home/buildroot/autobuild/instance-2/output-1/host/m68k-buildroot-uclinux-uclibc/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32 -c -o plt.o plt.c 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) | ^~~~ /home/buildroot/autobuild/instance-2/output-1/host/bin/m68k-buildroot-uclinux-uclibc-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -fno-dwarf2-cfi-asm -Wl,-elf2flt=-r -static -I/home/buildroot/autobuild/instance-2/output-1/host/m68k-buildroot-uclinux-uclibc/sysroot/usr/include/libnl3 -DCONFIG_LIBNL32 -c -o wl18xx_plt.o wl18xx_plt.c /home/buildroot/autobuild/instance-2/output-1/host/bin/m68k-buildroot-uclinux-uclibc-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -fno-dwarf2-cfi-asm -Wl,-elf2flt=-r -static -I/home/buildroot/autobuild/instance-2/output-1/host/m68k-buildroot-uclinux-uclibc/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/instance-2/output-1/host/bin/m68k-buildroot-uclinux-uclibc-gcc -L/home/buildroot/autobuild/instance-2/output-1/host/m68k-buildroot-uclinux-uclibc/sysroot/lib --static 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/instance-2/output-1/host/m68k-buildroot-uclinux-uclibc/bin/elf2flt: ERROR: text=0x399b0 overlaps data=0x2bae0 ? collect2: error: ld returned 1 exit status Makefile:32: recipe for target 'static' failed make[1]: *** [static] Error 1 make[1]: Leaving directory '/home/buildroot/autobuild/instance-2/output-1/build/18xx-ti-utils-8.8' package/pkg-generic.mk:290: recipe for target '/home/buildroot/autobuild/instance-2/output-1/build/18xx-ti-utils-8.8/.stamp_built' failed make: *** [/home/buildroot/autobuild/instance-2/output-1/build/18xx-ti-utils-8.8/.stamp_built] Error 2 make: Leaving directory '/home/buildroot/autobuild/instance-2/buildroot'