From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2D48945BD5; Fri, 25 Oct 2024 13:30:13 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1A20B40294; Fri, 25 Oct 2024 13:30:13 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21]) by mails.dpdk.org (Postfix) with ESMTP id C807A400D5; Fri, 25 Oct 2024 13:30:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1729855811; x=1761391811; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=RaDSkxnjsLnlRGNdI/znypoUeOrSXSJZZJ3shGXFT1M=; b=aB0oBzwKy7Z6Wa37zKMsjRlHcWjYXKKx0LevSz3VdFoGCQWZ5fIpZFrk ilzXdfCY0tjSjzF5MY1sfjV5qYlZUGOMH4rLYNlc2jGBPFNttXikUaLz4 pqS++y0fbfIo0KoE26U31gEyq4gmzuLbN/Zn/JlWcoUMr2WTkJefoQ6kE z94NOPphGuJ+mk9hYcSLL9yXej4PnQ44bZG7n916WETkL5SjXjQGTIIDD vkErv5FvV4j4HCDbyDh0u9ga3F0yidRP4ffwCDaZI4FUqO9IlDNreLZdO F5jhL1d+Oh8S3xeJgVlUhCJph6MF1HwrvbCK2X+PeGdLiVp7uMJKwxXox A==; X-CSE-ConnectionGUID: PAXzvLO0T7SzTQYAKZfYGA== X-CSE-MsgGUID: 9sZ4i5vyQ0WX0qR6bVZMjw== X-IronPort-AV: E=McAfee;i="6700,10204,11222"; a="29465097" X-IronPort-AV: E=Sophos;i="6.11,199,1725346800"; d="scan'208";a="29465097" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Oct 2024 04:30:10 -0700 X-CSE-ConnectionGUID: qBbZxnShT/6PCQBhNsrFqg== X-CSE-MsgGUID: a8YHjQIoSVOqQ4JVoAOhag== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,231,1725346800"; d="scan'208";a="111724207" Received: from unknown (HELO npf-hyd-clx-03..) ([10.145.170.182]) by orviesa002.jf.intel.com with ESMTP; 25 Oct 2024 04:30:08 -0700 From: Soumyadeep Hore To: bruce.richardson@intel.com, aman.deep.singh@intel.com Cc: dev@dpdk.org, shaiq.wani@intel.com, stable@dpdk.org Subject: [PATCH v1] net/ice: fix incorrect reading of PHY timestamp Date: Fri, 25 Oct 2024 10:26:25 +0000 Message-ID: <20241025102625.801994-1-soumyadeep.hore@intel.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org In ICE PMD, previously the ready bitmap checking before reading PHY timestamp was not present. This caused incorrect Tx timestamping. The ready bitmap checking is enabled and PHY timestamp is read once the ready bitmap gives positive value. Fixes: 881169950d80 ("net/ice/base: implement initial PTP support for E830") Cc: stable@dpdk.org Signed-off-by: Soumyadeep Hore --- drivers/net/ice/ice_ethdev.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index 70298ac330..efc6db4346 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -6597,10 +6597,26 @@ ice_timesync_read_tx_timestamp(struct rte_eth_dev *dev, struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data->dev_private); struct ice_adapter *ad = ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); - uint64_t ts_ns, tstamp; + uint64_t ts_ns, tstamp, tstamp_ready = 0; + uint64_t start_time, curr_time; const uint64_t mask = 0xFFFFFFFF; int ret; + start_time = rte_get_timer_cycles() / (rte_get_timer_hz() / 1000); + + while (!(tstamp_ready & BIT_ULL(0))) { + ret = ice_get_phy_tx_tstamp_ready(hw, ad->ptp_tx_block, &tstamp_ready); + if (ret) { + PMD_DRV_LOG(ERR, "Failed to get phy ready for timestamp"); + return -1; + } + curr_time = rte_get_timer_cycles() / (rte_get_timer_hz() / 1000); + if (curr_time - start_time > 1000) { + PMD_DRV_LOG(ERR, "Timeout to get phy ready for timestamp"); + return -1; + } + } + ret = ice_read_phy_tstamp(hw, ad->ptp_tx_block, ad->ptp_tx_index, &tstamp); if (ret || tstamp == 0) { PMD_DRV_LOG(ERR, "Failed to read phy timestamp"); -- 2.43.0