Skip to content

Commit 9c79dda

Browse files
Mintz, Yuvaldavem330
authored andcommitted
qed*: Add support for QL41xxx adapters
This adds the necessary infrastructure changes for initializing and working with the new series of QL41xxx adapaters. It also adds 2 new PCI device-IDs to qede: - 0x8070 for QL41xxx PFs - 0x8090 for VFs spawning from QL41xxx PFs Signed-off-by: Tomer Tayar <[email protected]> Signed-off-by: Yuval Mintz <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 942c56a commit 9c79dda

File tree

15 files changed

+630
-308
lines changed

15 files changed

+630
-308
lines changed

drivers/net/ethernet/qlogic/qed/qed.h

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,9 @@ enum QED_PORT_MODE {
219219
QED_PORT_MODE_DE_4X20G,
220220
QED_PORT_MODE_DE_1X40G,
221221
QED_PORT_MODE_DE_2X25G,
222-
QED_PORT_MODE_DE_1X25G
222+
QED_PORT_MODE_DE_1X25G,
223+
QED_PORT_MODE_DE_4X25G,
224+
QED_PORT_MODE_DE_2X10G,
223225
};
224226

225227
enum qed_dev_cap {
@@ -364,7 +366,8 @@ struct qed_hwfn {
364366
#define IS_LEAD_HWFN(edev) (!((edev)->my_id))
365367
u8 rel_pf_id; /* Relative to engine*/
366368
u8 abs_pf_id;
367-
#define QED_PATH_ID(_p_hwfn) ((_p_hwfn)->abs_pf_id & 1)
369+
#define QED_PATH_ID(_p_hwfn) \
370+
(QED_IS_K2((_p_hwfn)->cdev) ? 0 : ((_p_hwfn)->abs_pf_id & 1))
368371
u8 port_id;
369372
bool b_active;
370373

@@ -523,9 +526,7 @@ struct qed_dev {
523526
u8 dp_level;
524527
char name[NAME_SIZE];
525528

526-
u8 type;
527-
#define QED_DEV_TYPE_BB (0 << 0)
528-
#define QED_DEV_TYPE_AH BIT(0)
529+
enum qed_dev_type type;
529530
/* Translate type/revision combo into the proper conditions */
530531
#define QED_IS_BB(dev) ((dev)->type == QED_DEV_TYPE_BB)
531532
#define QED_IS_BB_A0(dev) (QED_IS_BB(dev) && \
@@ -540,6 +541,9 @@ struct qed_dev {
540541

541542
u16 vendor_id;
542543
u16 device_id;
544+
#define QED_DEV_ID_MASK 0xff00
545+
#define QED_DEV_ID_MASK_BB 0x1600
546+
#define QED_DEV_ID_MASK_AH 0x8000
543547

544548
u16 chip_num;
545549
#define CHIP_NUM_MASK 0xffff
@@ -654,10 +658,16 @@ struct qed_dev {
654658
u32 rdma_max_srq_sge;
655659
};
656660

657-
#define NUM_OF_VFS(dev) MAX_NUM_VFS_BB
658-
#define NUM_OF_L2_QUEUES(dev) MAX_NUM_L2_QUEUES_BB
659-
#define NUM_OF_SBS(dev) MAX_SB_PER_PATH_BB
660-
#define NUM_OF_ENG_PFS(dev) MAX_NUM_PFS_BB
661+
#define NUM_OF_VFS(dev) (QED_IS_BB(dev) ? MAX_NUM_VFS_BB \
662+
: MAX_NUM_VFS_K2)
663+
#define NUM_OF_L2_QUEUES(dev) (QED_IS_BB(dev) ? MAX_NUM_L2_QUEUES_BB \
664+
: MAX_NUM_L2_QUEUES_K2)
665+
#define NUM_OF_PORTS(dev) (QED_IS_BB(dev) ? MAX_NUM_PORTS_BB \
666+
: MAX_NUM_PORTS_K2)
667+
#define NUM_OF_SBS(dev) (QED_IS_BB(dev) ? MAX_SB_PER_PATH_BB \
668+
: MAX_SB_PER_PATH_K2)
669+
#define NUM_OF_ENG_PFS(dev) (QED_IS_BB(dev) ? MAX_NUM_PFS_BB \
670+
: MAX_NUM_PFS_K2)
661671

662672
/**
663673
* @brief qed_concrete_to_sw_fid - get the sw function id from
@@ -694,6 +704,7 @@ void qed_configure_vp_wfq_on_link_change(struct qed_dev *cdev,
694704

695705
void qed_clean_wfq_db(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
696706
#define QED_LEADING_HWFN(dev) (&dev->hwfns[0])
707+
int qed_device_num_engines(struct qed_dev *cdev);
697708

698709
/* Other Linux specific common definitions */
699710
#define DP_NAME(cdev) ((cdev)->name)

drivers/net/ethernet/qlogic/qed/qed_debug.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1557,7 +1557,7 @@ static enum dbg_status qed_dbg_dev_init(struct qed_hwfn *p_hwfn,
15571557
dev_data->mode_enable[MODE_K2] = 1;
15581558
} else if (QED_IS_BB_B0(p_hwfn->cdev)) {
15591559
dev_data->chip_id = CHIP_BB_B0;
1560-
dev_data->mode_enable[MODE_BB_B0] = 1;
1560+
dev_data->mode_enable[MODE_BB] = 1;
15611561
} else {
15621562
return DBG_STATUS_UNKNOWN_CHIP;
15631563
}

0 commit comments

Comments
 (0)