All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] bnxt patchset
@ 2018-02-07  1:16 Ajit Khaparde
  2018-02-07  1:16 ` [PATCH 1/4] net/bnxt: update bnxt feature list Ajit Khaparde
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Ajit Khaparde @ 2018-02-07  1:16 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit

Patchset against dpdk-next-net.
Please apply.

Ajit Khaparde (4):
  net/bnxt: update bnxt feature list
  net/bnxt: fix link speed setting with autoneg off
  net/bnxt: add 100G speed config capability
  net/bnxt: fix an incorrect return in mac_addr_add

 doc/guides/nics/features/bnxt.ini |  6 ++++++
 drivers/net/bnxt/bnxt.h           |  1 +
 drivers/net/bnxt/bnxt_ethdev.c    |  2 +-
 drivers/net/bnxt/bnxt_hwrm.c      | 30 +++++++++++++++++++++++++++---
 4 files changed, 35 insertions(+), 4 deletions(-)

-- 
2.14.3 (Apple Git-98)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/4] net/bnxt: update bnxt feature list
  2018-02-07  1:16 [PATCH 0/4] bnxt patchset Ajit Khaparde
@ 2018-02-07  1:16 ` Ajit Khaparde
  2018-02-07  1:16 ` [PATCH 2/4] net/bnxt: fix link speed setting with autoneg off Ajit Khaparde
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ajit Khaparde @ 2018-02-07  1:16 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit

Updating bnxt.ini file.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 doc/guides/nics/features/bnxt.ini | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini
index 9ddce0d4a..a534e3063 100644
--- a/doc/guides/nics/features/bnxt.ini
+++ b/doc/guides/nics/features/bnxt.ini
@@ -4,7 +4,9 @@
 ; Refer to default.ini for the full list of available PMD features.
 ;
 [Features]
+Speed capabilities   = Y
 Link status          = Y
+Link status event    = Y
 Rx interrupt         = Y
 Queue start/stop     = Y
 MTU update           = Y
@@ -23,8 +25,10 @@ SR-IOV               = Y
 VLAN filter          = Y
 Ethertype filter     = Y
 N-tuple filter       = Y
+Flow director        = Y
 Flow control         = Y
 Flow API             = Y
+CRC offload          = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
 Inner L3 checksum    = Y
@@ -41,4 +45,6 @@ EEPROM dump          = Y
 LED                  = Y
 Linux UIO            = Y
 Linux VFIO           = Y
+ARMv8                = Y
+x86-32               = Y
 x86-64               = Y
-- 
2.14.3 (Apple Git-98)

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/4] net/bnxt: fix link speed setting with autoneg off
  2018-02-07  1:16 [PATCH 0/4] bnxt patchset Ajit Khaparde
  2018-02-07  1:16 ` [PATCH 1/4] net/bnxt: update bnxt feature list Ajit Khaparde
@ 2018-02-07  1:16 ` Ajit Khaparde
  2018-02-07  1:16 ` [PATCH 3/4] net/bnxt: add 100G speed config capability Ajit Khaparde
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ajit Khaparde @ 2018-02-07  1:16 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, stable

When Autoneg is turned off especially on remote side,
link does not come up. This patch fixes that.

Fixes: 7bc8e9a227cc ("net/bnxt: support async link notification")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt.h      |  1 +
 drivers/net/bnxt/bnxt_hwrm.c | 22 ++++++++++++++++++++--
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h
index 6776c64a5..b5a0badfc 100644
--- a/drivers/net/bnxt/bnxt.h
+++ b/drivers/net/bnxt/bnxt.h
@@ -163,6 +163,7 @@ struct bnxt_link_info {
 	uint16_t		link_speed;
 	uint16_t		support_speeds;
 	uint16_t		auto_link_speed;
+	uint16_t		force_link_speed;
 	uint16_t		auto_link_speed_mask;
 	uint32_t		preemphasis;
 	uint8_t			phy_type;
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 4987cf0a9..5450a0253 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -894,12 +894,22 @@ static int bnxt_hwrm_port_phy_qcfg(struct bnxt *bp,
 	link_info->support_speeds = rte_le_to_cpu_16(resp->support_speeds);
 	link_info->auto_link_speed = rte_le_to_cpu_16(resp->auto_link_speed);
 	link_info->preemphasis = rte_le_to_cpu_32(resp->preemphasis);
+	link_info->force_link_speed = rte_le_to_cpu_16(resp->force_link_speed);
 	link_info->phy_ver[0] = resp->phy_maj;
 	link_info->phy_ver[1] = resp->phy_min;
 	link_info->phy_ver[2] = resp->phy_bld;
 
 	HWRM_UNLOCK();
 
+	PMD_DRV_LOG(DEBUG, "Link Speed %d\n", link_info->link_speed);
+	PMD_DRV_LOG(DEBUG, "Auto Mode %d\n", link_info->auto_mode);
+	PMD_DRV_LOG(DEBUG, "Support Speeds %x\n", link_info->support_speeds);
+	PMD_DRV_LOG(DEBUG, "Auto Link Speed %x\n", link_info->auto_link_speed);
+	PMD_DRV_LOG(DEBUG, "Auto Link Speed Mask %x\n",
+		    link_info->auto_link_speed_mask);
+	PMD_DRV_LOG(DEBUG, "Forced Link Speed %x\n",
+		    link_info->force_link_speed);
+
 	return rc;
 }
 
@@ -2220,7 +2230,9 @@ int bnxt_set_hwrm_link_config(struct bnxt *bp, bool link_up)
 	autoneg = bnxt_check_eth_link_autoneg(dev_conf->link_speeds);
 	speed = bnxt_parse_eth_link_speed(dev_conf->link_speeds);
 	link_req.phy_flags = HWRM_PORT_PHY_CFG_INPUT_FLAGS_RESET_PHY;
-	if (autoneg == 1) {
+	/* Autoneg can be done only when the FW allows */
+	if (autoneg == 1 && !(bp->link_info.auto_link_speed ||
+				bp->link_info.force_link_speed)) {
 		link_req.phy_flags |=
 				HWRM_PORT_PHY_CFG_INPUT_FLAGS_RESTART_AUTONEG;
 		link_req.auto_link_speed_mask =
@@ -2238,7 +2250,13 @@ int bnxt_set_hwrm_link_config(struct bnxt *bp, bool link_up)
 		}
 
 		link_req.phy_flags |= HWRM_PORT_PHY_CFG_INPUT_FLAGS_FORCE;
-		link_req.link_speed = speed;
+		/* If user wants a particular speed try that first. */
+		if (speed)
+			link_req.link_speed = speed;
+		else if (bp->link_info.force_link_speed)
+			link_req.link_speed = bp->link_info.force_link_speed;
+		else
+			link_req.link_speed = bp->link_info.auto_link_speed;
 	}
 	link_req.duplex = bnxt_parse_eth_link_duplex(dev_conf->link_speeds);
 	link_req.auto_pause = bp->link_info.auto_pause;
-- 
2.14.3 (Apple Git-98)

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/4] net/bnxt: add 100G speed config capability
  2018-02-07  1:16 [PATCH 0/4] bnxt patchset Ajit Khaparde
  2018-02-07  1:16 ` [PATCH 1/4] net/bnxt: update bnxt feature list Ajit Khaparde
  2018-02-07  1:16 ` [PATCH 2/4] net/bnxt: fix link speed setting with autoneg off Ajit Khaparde
@ 2018-02-07  1:16 ` Ajit Khaparde
  2018-02-07  1:16 ` [PATCH 4/4] net/bnxt: fix an incorrect return in mac_addr_add Ajit Khaparde
  2018-02-08 13:21 ` [PATCH 0/4] bnxt patchset Ferruh Yigit
  4 siblings, 0 replies; 6+ messages in thread
From: Ajit Khaparde @ 2018-02-07  1:16 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, stable

We are not parsing for 100G speed correctly.
With this patch we should be able to configure 100G link.

Fixes 710d3bd5568d: ("net/bnxt: add 100G speed detection")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 5450a0253..4dcdf36a5 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -2042,6 +2042,10 @@ static uint16_t bnxt_parse_eth_link_speed(uint32_t conf_link_speed)
 		eth_link_speed =
 			HWRM_PORT_PHY_CFG_INPUT_FORCE_LINK_SPEED_50GB;
 		break;
+	case ETH_LINK_SPEED_100G:
+		eth_link_speed =
+			HWRM_PORT_PHY_CFG_INPUT_FORCE_LINK_SPEED_100GB;
+		break;
 	default:
 		PMD_DRV_LOG(ERR,
 			"Unsupported link speed %d; default to AUTO\n",
@@ -2054,7 +2058,7 @@ static uint16_t bnxt_parse_eth_link_speed(uint32_t conf_link_speed)
 #define BNXT_SUPPORTED_SPEEDS (ETH_LINK_SPEED_100M | ETH_LINK_SPEED_100M_HD | \
 		ETH_LINK_SPEED_1G | ETH_LINK_SPEED_2_5G | \
 		ETH_LINK_SPEED_10G | ETH_LINK_SPEED_20G | ETH_LINK_SPEED_25G | \
-		ETH_LINK_SPEED_40G | ETH_LINK_SPEED_50G)
+		ETH_LINK_SPEED_40G | ETH_LINK_SPEED_50G | ETH_LINK_SPEED_100G)
 
 static int bnxt_valid_link_speed(uint32_t link_speed, uint16_t port_id)
 {
@@ -2118,6 +2122,8 @@ bnxt_parse_eth_link_speed_mask(struct bnxt *bp, uint32_t link_speed)
 		ret |= HWRM_PORT_PHY_CFG_INPUT_AUTO_LINK_SPEED_MASK_40GB;
 	if (link_speed & ETH_LINK_SPEED_50G)
 		ret |= HWRM_PORT_PHY_CFG_INPUT_AUTO_LINK_SPEED_MASK_50GB;
+	if (link_speed & ETH_LINK_SPEED_100G)
+		ret |= HWRM_PORT_PHY_CFG_INPUT_AUTO_LINK_SPEED_MASK_100GB;
 	return ret;
 }
 
-- 
2.14.3 (Apple Git-98)

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 4/4] net/bnxt: fix an incorrect return in mac_addr_add
  2018-02-07  1:16 [PATCH 0/4] bnxt patchset Ajit Khaparde
                   ` (2 preceding siblings ...)
  2018-02-07  1:16 ` [PATCH 3/4] net/bnxt: add 100G speed config capability Ajit Khaparde
@ 2018-02-07  1:16 ` Ajit Khaparde
  2018-02-08 13:21 ` [PATCH 0/4] bnxt patchset Ferruh Yigit
  4 siblings, 0 replies; 6+ messages in thread
From: Ajit Khaparde @ 2018-02-07  1:16 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, stable

There is no need to return an error if an existing MAC is added.
Fixes: 778b759ba10e ("net/bnxt: add MAC address")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 2268aba2a..21c46f833 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -727,7 +727,7 @@ static int bnxt_mac_addr_add_op(struct rte_eth_dev *eth_dev,
 		if (filter->mac_index == index) {
 			PMD_DRV_LOG(ERR,
 				"MAC addr already existed for pool %d\n", pool);
-			return -EINVAL;
+			return 0;
 		}
 	}
 	filter = bnxt_alloc_filter(bp);
-- 
2.14.3 (Apple Git-98)

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/4] bnxt patchset
  2018-02-07  1:16 [PATCH 0/4] bnxt patchset Ajit Khaparde
                   ` (3 preceding siblings ...)
  2018-02-07  1:16 ` [PATCH 4/4] net/bnxt: fix an incorrect return in mac_addr_add Ajit Khaparde
@ 2018-02-08 13:21 ` Ferruh Yigit
  4 siblings, 0 replies; 6+ messages in thread
From: Ferruh Yigit @ 2018-02-08 13:21 UTC (permalink / raw)
  To: Ajit Khaparde, dev

On 2/7/2018 1:16 AM, Ajit Khaparde wrote:
> Patchset against dpdk-next-net.
> Please apply.
> 
> Ajit Khaparde (4):
>   net/bnxt: update bnxt feature list
>   net/bnxt: fix link speed setting with autoneg off
>   net/bnxt: add 100G speed config capability
>   net/bnxt: fix an incorrect return in mac_addr_add

Series applied to dpdk-next-net/master, thanks.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-02-08 13:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-07  1:16 [PATCH 0/4] bnxt patchset Ajit Khaparde
2018-02-07  1:16 ` [PATCH 1/4] net/bnxt: update bnxt feature list Ajit Khaparde
2018-02-07  1:16 ` [PATCH 2/4] net/bnxt: fix link speed setting with autoneg off Ajit Khaparde
2018-02-07  1:16 ` [PATCH 3/4] net/bnxt: add 100G speed config capability Ajit Khaparde
2018-02-07  1:16 ` [PATCH 4/4] net/bnxt: fix an incorrect return in mac_addr_add Ajit Khaparde
2018-02-08 13:21 ` [PATCH 0/4] bnxt patchset Ferruh Yigit

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.