N PHY Save Cal
If phyhang_avoid
Call N PHY Stay in Carrier Search with 1 as argument
- If the band is 2 GHz
Call N PHY RX IQ Coeffs with 0, calibration_cache.rxcal_coeffs_2G as arguments
If PHY Revision >= 3
Read Radio Register 0x2021 and store in calibration_cache.txcal_radio_regs_2G[0]
Read Radio Register 0x2022 and store in calibration_cache.txcal_radio_regs_2G[1]
Read Radio Register 0x3021 and store in calibration_cache.txcal_radio_regs_2G[2]
Read Radio Register 0x3022 and store in calibration_cache.txcal_radio_regs_2G[3]
Read Radio Register 0x2023 and store in calibration_cache.txcal_radio_regs_2G[4]
Read Radio Register 0x2024 and store in calibration_cache.txcal_radio_regs_2G[5]
Read Radio Register 0x3023 and store in calibration_cache.txcal_radio_regs_2G[6]
Read Radio Register 0x3024 and store in calibration_cache.txcal_radio_regs_2G[7]
- Otherwise
Read Radio Register 0x8B and store in calibration_cache.txcal_radio_regs_2G[0]
Read Radio Register 0xBA and store in calibration_cache.txcal_radio_regs_2G[1]
Read Radio Register 0x8D and store in calibration_cache.txcal_radio_regs_2G[2]
Read Radio Register 0xBC and store in calibration_cache.txcal_radio_regs_2G[3]
Set nphy_iqcal_chanspec_2G to radio_chanspec Note: b43 does not implement chanspecs.
Set a table data pointer to calibration_cache.txcal_coeffs_2G
- Otherwise
Call N PHY RX IQ Coeffs with 0, calibration_cache.rxcal_coeffs_5G as arguments
If PHY Revision >= 3
Read Radio Register 0x2021 and store in calibration_cache.txcal_radio_regs_5G[0]
Read Radio Register 0x2022 and store in calibration_cache.txcal_radio_regs_5G[1]
Read Radio Register 0x3021 and store in calibration_cache.txcal_radio_regs_5G[2]
Read Radio Register 0x3022 and store in calibration_cache.txcal_radio_regs_5G[3]
Read Radio Register 0x2023 and store in calibration_cache.txcal_radio_regs_5G[4]
Read Radio Register 0x2024 and store in calibration_cache.txcal_radio_regs_5G[5]
Read Radio Register 0x3023 and store in calibration_cache.txcal_radio_regs_5G[6]
Read Radio Register 0x3024 and store in calibration_cache.txcal_radio_regs_5G[7]
- Otherwise
Read Radio Register 0x8B and store in calibration_cache.txcal_radio_regs_5G[0]
Read Radio Register 0xBA and store in calibration_cache.txcal_radio_regs_5G[1]
Read Radio Register 0x8D and store in calibration_cache.txcal_radio_regs_5G[2]
Read Radio Register 0xBC and store in calibration_cache.txcal_radio_regs_5G[3]
Set nphy_iqcal_chanspec_5G to radio_chanspec Same note as above.
Set a table data pointer to calibration_cache.txcal_coeffs_5G
- Read an N PHY Table with ID 15, length 8, offset 80, width 16, and the data pointer from above
If phyhang_avoid
Call N PHY Stay in Carrier Search with 0 as argument