Skip to contentSkip to conversation

sfc: Add 40G support

PATCH Applied Shradha Shah 2 participants 4 messages Jul 14, 2014 – Jul 15, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover sfc: Add 40G support

This patch series adds support for Solarflare 7000 series 40G Solarflare network adapters starting with the SFN7X42Q.

Edward Cree (1):
sfc: Add 40G link capability decoding

Mateusz Wrzesinski (1):
sfc: Adding PCI ID for Solarflare 7000 series 40G network adapter.

 drivers/net/ethernet/sfc/efx.c       |  2 ++
 drivers/net/ethernet/sfc/mcdi_port.c | 11 +++++++++++
 2 files changed, 13 insertions(+)
#1 lore raw

PATCH 1/2 sfc: Adding PCI ID for Solarflare 7000 series 40G network adapter.

From: Mateusz Wrzesinski <[email protected]>

---
 drivers/net/ethernet/sfc/efx.c | 2 ++
 1 file changed, 2 insertions(+)
drivers/net/ethernet/sfc/efx.c +2 -0
index 1e27404..2d86224 100644
@@ -2607,6 +2607,8 @@ static DEFINE_PCI_DEVICE_TABLE(efx_pci_table) = {
 	 .driver_data = (unsigned long) &siena_a0_nic_type},
 	{PCI_DEVICE(PCI_VENDOR_ID_SOLARFLARE, 0x0903),  /* SFC9120 PF */
 	 .driver_data = (unsigned long) &efx_hunt_a0_nic_type},
+	{PCI_DEVICE(PCI_VENDOR_ID_SOLARFLARE, 0x0923),  /* SFC9140 PF */
+	 .driver_data = (unsigned long) &efx_hunt_a0_nic_type},
 	{0}			/* end of list */
 };
 
#2 lore raw

PATCH 2/2 sfc: Add 40G link capability decoding

In reply to Shradha Shah

From: Edward Cree <[email protected]>

Needed to select 40G mode on a 10G/40G capable card.

---
 drivers/net/ethernet/sfc/mcdi_port.c | 11 +++++++++++
 1 file changed, 11 insertions(+)
drivers/net/ethernet/sfc/mcdi_port.c +11 -0
index e5fc4e1..fb19b70 100644
@@ -183,6 +183,8 @@ static u32 mcdi_to_ethtool_cap(u32 media, u32 cap)
 			result |= SUPPORTED_1000baseKX_Full;
 		if (cap & (1 << MC_CMD_PHY_CAP_10000FDX_LBN))
 			result |= SUPPORTED_10000baseKX4_Full;
+		if (cap & (1 << MC_CMD_PHY_CAP_40000FDX_LBN))
+			result |= SUPPORTED_40000baseKR4_Full;
 		break;
 
 	case MC_CMD_MEDIA_XFP:
@@ -190,6 +192,12 @@ static u32 mcdi_to_ethtool_cap(u32 media, u32 cap)
 		result |= SUPPORTED_FIBRE;
 		break;
 
+	case MC_CMD_MEDIA_QSFP_PLUS:
+		result |= SUPPORTED_FIBRE;
+		if (cap & (1 << MC_CMD_PHY_CAP_40000FDX_LBN))
+			result |= SUPPORTED_40000baseCR4_Full;
+		break;
+
 	case MC_CMD_MEDIA_BASE_T:
 		result |= SUPPORTED_TP;
 		if (cap & (1 << MC_CMD_PHY_CAP_10HDX_LBN))
@@ -237,6 +245,8 @@ static u32 ethtool_to_mcdi_cap(u32 cap)
 		result |= (1 << MC_CMD_PHY_CAP_1000FDX_LBN);
 	if (cap & (SUPPORTED_10000baseT_Full | SUPPORTED_10000baseKX4_Full))
 		result |= (1 << MC_CMD_PHY_CAP_10000FDX_LBN);
+	if (cap & (SUPPORTED_40000baseCR4_Full | SUPPORTED_40000baseKR4_Full))
+		result |= (1 << MC_CMD_PHY_CAP_40000FDX_LBN);
 	if (cap & SUPPORTED_Pause)
 		result |= (1 << MC_CMD_PHY_CAP_PAUSE_LBN);
 	if (cap & SUPPORTED_Asym_Pause)
@@ -285,6 +295,7 @@ static u32 mcdi_to_ethtool_media(u32 media)
 
 	case MC_CMD_MEDIA_XFP:
 	case MC_CMD_MEDIA_SFP_PLUS:
+	case MC_CMD_MEDIA_QSFP_PLUS:
 		return PORT_FIBRE;
 
 	case MC_CMD_MEDIA_BASE_T:
maintainer Applied
#3 lore raw
In reply to Shradha Shah

From: Shradha Shah <[email protected]>
Date: Mon, 14 Jul 2014 08:37:06 +0100

Quoted 2 lines

This patch series adds support for Solarflare 7000 series 40G Solarflare network adapters starting with the SFN7X42Q.

Applied, thanks.