Skip to content

Commit 1664f5d

Browse files
stemerkSasha Levin
authored andcommitted
ice: Initial support for E825C hardware in ice_adapter
[ Upstream commit fdb7f54 ] Address E825C devices by PCI ID since dual IP core configurations need 1 ice_adapter for both devices. Signed-off-by: Sergey Temerkhanov <sergey.temerkhanov@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> Stable-dep-of: 0093cb1 ("ice: use DSN instead of PCI BDF for ice_adapter index") Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent a18d4d7 commit 1664f5d

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

drivers/net/ethernet/intel/ice/ice_adapter.c

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@
99
#include <linux/spinlock.h>
1010
#include <linux/xarray.h>
1111
#include "ice_adapter.h"
12+
#include "ice.h"
1213

1314
static DEFINE_XARRAY(ice_adapters);
1415
static DEFINE_MUTEX(ice_adapters_mutex);
1516

1617
/* PCI bus number is 8 bits. Slot is 5 bits. Domain can have the rest. */
1718
#define INDEX_FIELD_DOMAIN GENMASK(BITS_PER_LONG - 1, 13)
19+
#define INDEX_FIELD_DEV GENMASK(31, 16)
1820
#define INDEX_FIELD_BUS GENMASK(12, 5)
1921
#define INDEX_FIELD_SLOT GENMASK(4, 0)
2022

@@ -24,9 +26,17 @@ static unsigned long ice_adapter_index(const struct pci_dev *pdev)
2426

2527
WARN_ON(domain > FIELD_MAX(INDEX_FIELD_DOMAIN));
2628

27-
return FIELD_PREP(INDEX_FIELD_DOMAIN, domain) |
28-
FIELD_PREP(INDEX_FIELD_BUS, pdev->bus->number) |
29-
FIELD_PREP(INDEX_FIELD_SLOT, PCI_SLOT(pdev->devfn));
29+
switch (pdev->device) {
30+
case ICE_DEV_ID_E825C_BACKPLANE:
31+
case ICE_DEV_ID_E825C_QSFP:
32+
case ICE_DEV_ID_E825C_SFP:
33+
case ICE_DEV_ID_E825C_SGMII:
34+
return FIELD_PREP(INDEX_FIELD_DEV, pdev->device);
35+
default:
36+
return FIELD_PREP(INDEX_FIELD_DOMAIN, domain) |
37+
FIELD_PREP(INDEX_FIELD_BUS, pdev->bus->number) |
38+
FIELD_PREP(INDEX_FIELD_SLOT, PCI_SLOT(pdev->devfn));
39+
}
3040
}
3141

3242
static struct ice_adapter *ice_adapter_new(void)

0 commit comments

Comments
 (0)