[PATCH v3 078/129] net/ice/base: fix for preparing PHY for timesync command

Anatoly Burakov anatoly.burakov at intel.com
Tue Jun 25 13:13:23 CEST 2024


From: Tomaszx Wakula <tomaszx.wakula at intel.com>

Preparing a port for timesync command procedure shall provide Rx type which
indicates the type for the Rx metadata in the ONPI interface. According to the
documentation, Rx type should always equal 0x18.

Signed-off-by: Tomaszx Wakula <tomaszx.wakula at intel.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>
---
 drivers/net/ice/base/ice_ptp_hw.c | 4 ++--
 drivers/net/ice/base/ice_ptp_hw.h | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ice/base/ice_ptp_hw.c b/drivers/net/ice/base/ice_ptp_hw.c
index c1c3c77469..9d77ae4c25 100644
--- a/drivers/net/ice/base/ice_ptp_hw.c
+++ b/drivers/net/ice/base/ice_ptp_hw.c
@@ -3242,8 +3242,8 @@ ice_ptp_write_port_cmd_e822(struct ice_hw *hw, u8 port,
 	}
 
 	/* Rx case */
-	err = ice_write_phy_reg_e822_lp(hw, port, P_REG_RX_TMR_CMD, val,
-					lock_sbq);
+	err = ice_write_phy_reg_e822_lp(hw, port, P_REG_RX_TMR_CMD,
+					val | TS_CMD_RX_TYPE, lock_sbq);
 	if (err) {
 		ice_debug(hw, ICE_DBG_PTP, "Failed to write back RX_TMR_CMD, err %d\n",
 			  err);
diff --git a/drivers/net/ice/base/ice_ptp_hw.h b/drivers/net/ice/base/ice_ptp_hw.h
index 468507382d..0914bf4cf7 100644
--- a/drivers/net/ice/base/ice_ptp_hw.h
+++ b/drivers/net/ice/base/ice_ptp_hw.h
@@ -330,6 +330,9 @@ int ice_ptp_init_phy_cfg(struct ice_hw *hw);
 #define TS_CMD_MASK_E810		0xFF
 #define TS_CMD_MASK			0xF
 #define SYNC_EXEC_CMD			0x3
+#define TS_CMD_RX_TYPE_S		0x4
+#define TS_CMD_RX_TYPE			MAKEMASK(0x18, TS_CMD_RX_TYPE_S)
+
 
 /* Macros to derive port low and high addresses on both quads */
 #define P_Q0_L(a, p) ((((a) + (0x2000 * (p)))) & 0xFFFF)
-- 
2.43.0



More information about the dev mailing list