
Intel listed total 28 commits that need us to back port. There are 9 commits that are already included in our code base. The commit "ice: Add support for E825-C TS PLL handling" will not be back ported since we're not dealing with E825 for 24.09. So we need back port 18 commits. These commits were introduced in linux-6.9.y and linux-6.10.y. To back port these 18 commits successfully, we totally back ported 37 upstream commits. 1) The patches 1-15 are cherry picked to fix the conflicts for patch 16 ("ice: introduce PTP state machine") and patch 36 "ice: Introduce ice_ptp_hw struct". Also will be helpful for the subsequent commits back porting. 2) The patches 24-27 are cherry picked to fix the conflicts for patch 28 ("ice: Fix debugfs with devlink reload") 3) The minor adjust was done for the patches 17, 21, 23 and 33 to fit with the context change. Verification: - installs from iso succeed on servers with ice(Intel Ethernet Controller E810-XXVDA4T Westport Channel) and i40e hw(Intel Ethernet Controller X710) for rt and std. - interfaces are up and pass packets for rt and std. - create vfs, ensure that they are picked up by the new iavf driver and that the interface can come up and pass packets on rt and std system. - Check dmesg to see DDP package is loaded successfully and the version is 1.3.36.0 for rt and std. Story: 2011056 Task: 50950 Change-Id: I9aef0378ea01451684341093a167eaead3edc458 Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
78 lines
3.0 KiB
Diff
78 lines
3.0 KiB
Diff
From 375bced6b51243a8c8708204dd32960d076d5b83 Mon Sep 17 00:00:00 2001
|
|
From: Jacob Keller <jacob.e.keller@intel.com>
|
|
Date: Thu, 25 Jan 2024 13:57:52 -0800
|
|
Subject: [PATCH 19/36] ice: don't check has_ready_bitmap in E810 functions
|
|
|
|
E810 hardware does not have a Tx timestamp ready bitmap. Don't check
|
|
has_ready_bitmap in E810-specific functions.
|
|
Add has_ready_bitmap check in ice_ptp_process_tx_tstamp() to stop
|
|
relying on the fact that ice_get_phy_tx_tstamp_ready() returns all 1s.
|
|
|
|
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
|
|
Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com>
|
|
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
|
|
Reviewed-by: Simon Horman <horms@kernel.org>
|
|
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
|
|
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
|
|
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|
(cherry picked from commit fea82915fca626eaa83f36d8a23194e8593ef4b4)
|
|
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
|
|
---
|
|
drivers/net/ethernet/intel/ice/ice_ptp.c | 23 +++++++++++------------
|
|
1 file changed, 11 insertions(+), 12 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c
|
|
index a8c6b83579e6..ddc2dd0b2a28 100644
|
|
--- a/drivers/net/ethernet/intel/ice/ice_ptp.c
|
|
+++ b/drivers/net/ethernet/intel/ice/ice_ptp.c
|
|
@@ -601,17 +601,13 @@ void ice_ptp_complete_tx_single_tstamp(struct ice_ptp_tx *tx)
|
|
/* Read the low 32 bit value */
|
|
raw_tstamp |= (u64)rd32(&pf->hw, PF_SB_ATQBAH);
|
|
|
|
- /* For PHYs which don't implement a proper timestamp ready bitmap,
|
|
- * verify that the timestamp value is different from the last cached
|
|
- * timestamp. If it is not, skip this for now assuming it hasn't yet
|
|
- * been captured by hardware.
|
|
+ /* Devices using this interface always verify the timestamp differs
|
|
+ * relative to the last cached timestamp value.
|
|
*/
|
|
- if (!drop_ts && !tx->has_ready_bitmap &&
|
|
- raw_tstamp == tx->tstamps[idx].cached_tstamp)
|
|
+ if (raw_tstamp == tx->tstamps[idx].cached_tstamp)
|
|
return;
|
|
|
|
- if (!tx->has_ready_bitmap && raw_tstamp)
|
|
- tx->tstamps[idx].cached_tstamp = raw_tstamp;
|
|
+ tx->tstamps[idx].cached_tstamp = raw_tstamp;
|
|
clear_bit(idx, tx->in_use);
|
|
skb = tx->tstamps[idx].skb;
|
|
tx->tstamps[idx].skb = NULL;
|
|
@@ -701,9 +697,11 @@ static void ice_ptp_process_tx_tstamp(struct ice_ptp_tx *tx)
|
|
hw = &pf->hw;
|
|
|
|
/* Read the Tx ready status first */
|
|
- err = ice_get_phy_tx_tstamp_ready(hw, tx->block, &tstamp_ready);
|
|
- if (err)
|
|
- return;
|
|
+ if (tx->has_ready_bitmap) {
|
|
+ err = ice_get_phy_tx_tstamp_ready(hw, tx->block, &tstamp_ready);
|
|
+ if (err)
|
|
+ return;
|
|
+ }
|
|
|
|
/* Drop packets if the link went down */
|
|
link_up = ptp_port->link_up;
|
|
@@ -731,7 +729,8 @@ static void ice_ptp_process_tx_tstamp(struct ice_ptp_tx *tx)
|
|
* If we do not, the hardware logic for generating a new
|
|
* interrupt can get stuck on some devices.
|
|
*/
|
|
- if (!(tstamp_ready & BIT_ULL(phy_idx))) {
|
|
+ if (tx->has_ready_bitmap &&
|
|
+ !(tstamp_ready & BIT_ULL(phy_idx))) {
|
|
if (drop_ts)
|
|
goto skip_ts_read;
|
|
|
|
--
|
|
2.43.0
|
|
|