On 6/26/2024 1:42 PM, Anatoly Burakov wrote:
The Tx and Rx calibration and timestamp generation blocks are independent. It is
not required to wait for both to complete before programming the offsets.
Instead, we can program the offset for each independently as soon as they are
ready.
Modify the ice_phy_cfg_tx_offset_e822 and ice_phy_cfg_rx_offset_e822 functions
with the following additions:
a) Check the relevant P_REG_*_OR bit first and do nothing if the offset has
already been programmed
b) Check the P_REG_*_OV_STATUS bit to determine if the offset status is ready,
meaning that the hardware vernier calibration steps have completed. Return
ICE_ERR_NOT_READY if the offset is not yet read.
The driver can now simply call ice_phy_cfg_rx_offset_e822 and
ice_phy_cfg_tx_offset_e822 periodically until the offsets have been programmed.
In this way, the Tx and Rx blocks will be enabled independently without each
waiting on the other block to complete. This can enable faster calibration on
some setups which have a low rate of either Tx or Rx traffic.
Signed-off-by: Siddaraju DH <siddaraju...@intel.com>
Signed-off-by: Jacob Keller <jacob.e.kel...@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com>
---
The patch has accidentally been submitted with incorrect authorship
information, please amend on apply to being authored by Siddaraju DH
(from first signoff line).
--
Thanks,
Anatoly