@@ -261,4 +261,14 @@ enum {
#define bfa_asic_id_ctc(device) \
(bfa_asic_id_ct(device) || bfa_asic_id_ct2(device))
+/**
+ * PCI sub-system device and vendor ID information
+ */
+enum {
+ BFA_PCI_FCOE_SSDEVICE_ID = 0x14,
+ BFA_PCI_CT2_SSID_FCoE = 0x22,
+ BFA_PCI_CT2_SSID_ETH = 0x23,
+ BFA_PCI_CT2_SSID_FC = 0x24,
+};
+
#endif /* __BFA_DEFS_H__ */
@@ -1987,7 +1987,8 @@ bfa_nw_ioc_pci_init(struct bfa_ioc *ioc, struct bfa_pcidev *pcidev,
case BFA_PCI_DEVICE_ID_CT2:
ioc->asic_gen = BFI_ASIC_GEN_CT2;
- if (clscode == BFI_PCIFN_CLASS_FC) {
+ if (clscode == BFI_PCIFN_CLASS_FC &&
+ pcidev->ssid == BFA_PCI_CT2_SSID_FC) {
ioc->asic_mode = BFI_ASIC_MODE_FC16;
ioc->fcmode = true;
} else {
@@ -35,6 +35,7 @@ struct bfa_pcidev {
int pci_slot;
u8 pci_func;
u16 device_id;
+ u16 ssid;
void __iomem *pci_bar_kva;
};
Change details: - 1860 has CNA personality with SSID 22 for PCI functions. - Preserve the same SSID numbering so that FCoE drivers claim adapters with no-asic block (default personality). Can we get this out? Signed-off-by: Rasesh Mody <rmody@brocade.com> --- drivers/net/bna/bfa_defs.h | 10 ++++++++++ drivers/net/bna/bfa_ioc.c | 3 ++- drivers/net/bna/bfa_ioc.h | 1 + 3 files changed, 13 insertions(+), 1 deletions(-)