From patchwork Thu Aug 12 02:00:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 96819 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 76EE6A0C4D; Thu, 12 Aug 2021 04:00:43 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BFA7F411FA; Thu, 12 Aug 2021 04:00:40 +0200 (CEST) Received: from smtpbg501.qq.com (smtpbg501.qq.com [203.205.250.101]) by mails.dpdk.org (Postfix) with ESMTP id 2A040411FC for ; Thu, 12 Aug 2021 04:00:37 +0200 (CEST) X-QQ-mid: bizesmtp31t1628733628tga64ogm Received: from jiawenwu.trustnetic.com (unknown [183.129.236.74]) by esmtp6.qq.com (ESMTP) with id ; Thu, 12 Aug 2021 10:00:27 +0800 (CST) X-QQ-SSF: 01400000002000E0F000B00A0000000 X-QQ-FEAT: ttxN9vkG2OQjSuvoPZrYCcMCLANOv3MRSBLyLEd8n9zd0nUStXj/kGH4kwjgj NAX1RVKFIcpHNV4dJVwUalyY4U33gSR2mjSecBOitXdgp4QncnyjIyfxeKXikLl+tc7/ayZ tvVlTBLr4rCNhHQlSXjO4GkwyJA5VCm1fKEl+HeV2o3rUiLV4aXs6ScWzjHAkoVnS8+OOr/ wS8aQz0DY+ISItP+jhkeZgap06hceOprJ66+amlE/AC+sqZefdIGAbAxcYkE4GKrf7QBdIi p+UdvDLEW1IBlG68IpkXx7diRz4xG7bj7YjnTPNaiEPpAc1KqOECIh9xscBaL4TGLdqhbYg Y+0cEt2Pby8kacb8sXFYMjgccWabQ== X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Date: Thu, 12 Aug 2021 10:00:18 +0800 Message-Id: <20210812020020.12656-2-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.21.0.windows.1 In-Reply-To: <20210812020020.12656-1-jiawenwu@trustnetic.com> References: <20210812020020.12656-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybgforeign:qybgforeign7 X-QQ-Bgrelay: 1 Subject: [dpdk-dev] [PATCH 1/3] net/txgbe: fix link status when device stopped 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 Sender: "dev" When device is stopped, the port status is not changed and only the Tx laser is turned off by hardware design. Fixes: 0c061eadec59 ("net/txgbe: add link status change") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/txgbe/base/txgbe_type.h | 1 + drivers/net/txgbe/txgbe_ethdev.c | 4 ++++ drivers/net/txgbe/txgbe_ethdev_vf.c | 2 ++ 3 files changed, 7 insertions(+) diff --git a/drivers/net/txgbe/base/txgbe_type.h b/drivers/net/txgbe/base/txgbe_type.h index 823c6756e7..d95467f9f8 100644 --- a/drivers/net/txgbe/base/txgbe_type.h +++ b/drivers/net/txgbe/base/txgbe_type.h @@ -781,6 +781,7 @@ struct txgbe_hw { int api_version; bool allow_unsupported_sfp; bool need_crosstalk_fix; + bool dev_start; struct txgbe_devargs devarg; uint64_t isb_dma; diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c index e62675520a..0063994688 100644 --- a/drivers/net/txgbe/txgbe_ethdev.c +++ b/drivers/net/txgbe/txgbe_ethdev.c @@ -1664,6 +1664,7 @@ txgbe_dev_start(struct rte_eth_dev *dev) return -1; hw->mac.start_hw(hw); hw->mac.get_link_status = true; + hw->dev_start = true; /* configure PF module if SRIOV enabled */ txgbe_pf_host_configure(dev); @@ -1933,6 +1934,7 @@ txgbe_dev_stop(struct rte_eth_dev *dev) hw->adapter_stopped = true; dev->data->dev_started = 0; + hw->dev_start = false; return 0; } @@ -2735,6 +2737,8 @@ txgbe_dev_link_update_share(struct rte_eth_dev *dev, txgbe_dev_setup_link_alarm_handler, dev); } return rte_eth_linkstatus_set(dev, &link); + } else if (!hw->dev_start) { + return rte_eth_linkstatus_set(dev, &link); } intr->flags &= ~TXGBE_FLAG_NEED_LINK_CONFIG; diff --git a/drivers/net/txgbe/txgbe_ethdev_vf.c b/drivers/net/txgbe/txgbe_ethdev_vf.c index 0bae6ffd1f..18ed94bd27 100644 --- a/drivers/net/txgbe/txgbe_ethdev_vf.c +++ b/drivers/net/txgbe/txgbe_ethdev_vf.c @@ -628,6 +628,7 @@ txgbevf_dev_start(struct rte_eth_dev *dev) return err; } hw->mac.get_link_status = true; + hw->dev_start = true; /* negotiate mailbox API version to use with the PF. */ txgbevf_negotiate_api(hw); @@ -749,6 +750,7 @@ txgbevf_dev_stop(struct rte_eth_dev *dev) } adapter->rss_reta_updated = 0; + hw->dev_start = false; return 0; } From patchwork Thu Aug 12 02:00:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 96820 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1C37CA0C4D; Thu, 12 Aug 2021 04:00:49 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E5D6741205; Thu, 12 Aug 2021 04:00:41 +0200 (CEST) Received: from smtpbguseast2.qq.com (smtpbguseast2.qq.com [54.204.34.130]) by mails.dpdk.org (Postfix) with ESMTP id CBC76411FC for ; Thu, 12 Aug 2021 04:00:39 +0200 (CEST) X-QQ-mid: bizesmtp31t1628733630tkn2cpgl Received: from jiawenwu.trustnetic.com (unknown [183.129.236.74]) by esmtp6.qq.com (ESMTP) with id ; Thu, 12 Aug 2021 10:00:29 +0800 (CST) X-QQ-SSF: 01400000002000E0F000B00A0000000 X-QQ-FEAT: tSE3IANCkAth1H90zJHD3nKfno1qtcS+ji76fUIM56OlTa6yRxzMr9BFaijHv 3AenfGIvvUYLDmxoDduiDOiKRpyZ5JzFU3Q34uiDHNSVLcEdaOFDU1hFefN3ltucaLN/v5j hVPuUvG+aYx1E1xR//sShvgh4jqGFujkTOLQTygRPU7sIvA13PaQgbtn8AC+Y+VAiIdbvCr rBl0ZimGcpsALmSUR1tU0NyXAFphk4Ov2g8Ve3U0LQ5gNIlQNiKRh9/CcQqvPre8eMbIN/N 007+hkSB8tZ3XSGT16holwescF1Oadupn2vPZlyexTVwo2mLVS++G1sov06vqrfds3ZJ89o tvoCX6+Y3joR7KWO0A= X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Date: Thu, 12 Aug 2021 10:00:19 +0800 Message-Id: <20210812020020.12656-3-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.21.0.windows.1 In-Reply-To: <20210812020020.12656-1-jiawenwu@trustnetic.com> References: <20210812020020.12656-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybgforeign:qybgforeign5 X-QQ-Bgrelay: 1 Subject: [dpdk-dev] [PATCH 2/3] net/txgbe: fix to read SFP module's SFF-8472 data 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 Sender: "dev" Fix the I2C target address selection to read SFP module's SFF-8472 data. Fixes: 8f09fb4642fa ("net/txgbe: add module identify") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/txgbe/base/txgbe_phy.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/drivers/net/txgbe/base/txgbe_phy.c b/drivers/net/txgbe/base/txgbe_phy.c index 3e9f507212..2db87ae0c5 100644 --- a/drivers/net/txgbe/base/txgbe_phy.c +++ b/drivers/net/txgbe/base/txgbe_phy.c @@ -8,7 +8,7 @@ #include "txgbe_mng.h" #include "txgbe_phy.h" -static void txgbe_i2c_start(struct txgbe_hw *hw); +static void txgbe_i2c_start(struct txgbe_hw *hw, u8 dev_addr); static void txgbe_i2c_stop(struct txgbe_hw *hw); static s32 txgbe_handle_bp_flow(u32 link_mode, struct txgbe_hw *hw); static void txgbe_get_bp_ability(struct txgbe_backplane_ability *ability, @@ -1248,11 +1248,9 @@ s32 txgbe_write_i2c_eeprom(struct txgbe_hw *hw, u8 byte_offset, s32 txgbe_read_i2c_byte_unlocked(struct txgbe_hw *hw, u8 byte_offset, u8 dev_addr, u8 *data) { - UNREFERENCED_PARAMETER(dev_addr); - DEBUGFUNC("txgbe_read_i2c_byte"); - txgbe_i2c_start(hw); + txgbe_i2c_start(hw, dev_addr); /* wait tx empty */ if (!po32m(hw, TXGBE_I2CICR, TXGBE_I2CICR_TXEMPTY, @@ -1314,11 +1312,9 @@ s32 txgbe_read_i2c_byte(struct txgbe_hw *hw, u8 byte_offset, s32 txgbe_write_i2c_byte_unlocked(struct txgbe_hw *hw, u8 byte_offset, u8 dev_addr, u8 data) { - UNREFERENCED_PARAMETER(dev_addr); - DEBUGFUNC("txgbe_write_i2c_byte"); - txgbe_i2c_start(hw); + txgbe_i2c_start(hw, dev_addr); /* wait tx empty */ if (!po32m(hw, TXGBE_I2CICR, TXGBE_I2CICR_TXEMPTY, @@ -1369,7 +1365,7 @@ s32 txgbe_write_i2c_byte(struct txgbe_hw *hw, u8 byte_offset, * * Sets I2C start condition (High -> Low on SDA while SCL is High) **/ -static void txgbe_i2c_start(struct txgbe_hw *hw) +static void txgbe_i2c_start(struct txgbe_hw *hw, u8 dev_addr) { DEBUGFUNC("txgbe_i2c_start"); @@ -1380,9 +1376,9 @@ static void txgbe_i2c_start(struct txgbe_hw *hw) TXGBE_I2CCON_SPEED(1) | TXGBE_I2CCON_RESTART | TXGBE_I2CCON_SDIA)); - wr32(hw, TXGBE_I2CTAR, TXGBE_I2C_SLAVEADDR); - wr32(hw, TXGBE_I2CSSSCLHCNT, 600); - wr32(hw, TXGBE_I2CSSSCLLCNT, 600); + wr32(hw, TXGBE_I2CTAR, dev_addr >> 1); + wr32(hw, TXGBE_I2CSSSCLHCNT, 200); + wr32(hw, TXGBE_I2CSSSCLLCNT, 200); wr32(hw, TXGBE_I2CRXTL, 0); /* 1byte for rx full signal */ wr32(hw, TXGBE_I2CTXTL, 4); wr32(hw, TXGBE_I2CSCLTMOUT, 0xFFFFFF); From patchwork Thu Aug 12 02:00:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 96821 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 04ADAA0C4D; Thu, 12 Aug 2021 04:00:55 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 24F324120B; Thu, 12 Aug 2021 04:00:43 +0200 (CEST) Received: from smtpproxy21.qq.com (smtpbg702.qq.com [203.205.195.102]) by mails.dpdk.org (Postfix) with ESMTP id C8260411C0 for ; Thu, 12 Aug 2021 04:00:39 +0200 (CEST) X-QQ-mid: bizesmtp31t1628733631t27o1180 Received: from jiawenwu.trustnetic.com (unknown [183.129.236.74]) by esmtp6.qq.com (ESMTP) with id ; Thu, 12 Aug 2021 10:00:31 +0800 (CST) X-QQ-SSF: 01400000002000E0F000B00A0000000 X-QQ-FEAT: a7KvnLxF6FfzKUbV6o6Mzc1p6Aq9WqcxVTh/y3z6rVrOqfN6UIdTl58ROL0tG YXZdss9nIias0qDo7D+BOxQ1fe11q+kFBr4vfxyb4TiNlZZhtKDWZQKVFn1q3KTZlLUDodD Ogc3leY+0x2J0VGczYIVKB9507+Ggavkyf3Jh8iep+qNl3AoSuyPPk40ibxI1lVmS9vH854 Z5tB5mI9ITFsEdrHvK4rkPxCz/WO/SV688/EnVxcDlNBhZxq6Qc0KmvkbptDerdZjI17u7F t0ZzwtYQmUX5PxsDQ8YqDpsK1o4NqBgS3cY16RnNdfvPQhBH+mZ0NiOAIPBu+qDXb8gSC38 7Dzt5fYPbHr6afKJJQ= X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Date: Thu, 12 Aug 2021 10:00:20 +0800 Message-Id: <20210812020020.12656-4-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.21.0.windows.1 In-Reply-To: <20210812020020.12656-1-jiawenwu@trustnetic.com> References: <20210812020020.12656-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybgforeign:qybgforeign5 X-QQ-Bgrelay: 1 Subject: [dpdk-dev] [PATCH 3/3] net/txgbe: fix L4 port mask in FDIR 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 Sender: "dev" Remove bit reverse for TCP/UDP port mask, since it causes the flows with some TCP/UDP ports to disobey the flow director rules. Fixes: ea230dda16ad ("net/txgbe: configure flow director filter") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/txgbe/txgbe_fdir.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/drivers/net/txgbe/txgbe_fdir.c b/drivers/net/txgbe/txgbe_fdir.c index c8ff4b142c..8abb862286 100644 --- a/drivers/net/txgbe/txgbe_fdir.c +++ b/drivers/net/txgbe/txgbe_fdir.c @@ -165,18 +165,6 @@ configure_fdir_flags(const struct rte_fdir_conf *conf, return 0; } -static inline uint32_t -reverse_fdir_bmks(uint16_t hi_dword, uint16_t lo_dword) -{ - uint32_t mask = hi_dword << 16; - - mask |= lo_dword; - mask = ((mask & 0x55555555) << 1) | ((mask & 0xAAAAAAAA) >> 1); - mask = ((mask & 0x33333333) << 2) | ((mask & 0xCCCCCCCC) >> 2); - mask = ((mask & 0x0F0F0F0F) << 4) | ((mask & 0xF0F0F0F0) >> 4); - return ((mask & 0x00FF00FF) << 8) | ((mask & 0xFF00FF00) >> 8); -} - int txgbe_fdir_set_input_mask(struct rte_eth_dev *dev) { @@ -213,9 +201,9 @@ txgbe_fdir_set_input_mask(struct rte_eth_dev *dev) /* TBD: don't support encapsulation yet */ wr32(hw, TXGBE_FDIRMSK, fdirm); - /* store the TCP/UDP port masks, bit reversed from port layout */ - fdirtcpm = reverse_fdir_bmks(rte_be_to_cpu_16(info->mask.dst_port_mask), - rte_be_to_cpu_16(info->mask.src_port_mask)); + /* store the TCP/UDP port masks */ + fdirtcpm = rte_be_to_cpu_16(info->mask.dst_port_mask) << 16; + fdirtcpm |= rte_be_to_cpu_16(info->mask.src_port_mask); /* write all the same so that UDP, TCP and SCTP use the same mask * (little-endian)