.. | .. |
---|
47 | 47 | #define DEFAULT_UAR_PAGE_SHIFT 12 |
---|
48 | 48 | |
---|
49 | 49 | #define MAX_MSIX_P_PORT 17 |
---|
50 | | -#define MAX_MSIX 64 |
---|
| 50 | +#define MAX_MSIX 128 |
---|
51 | 51 | #define MIN_MSIX_P_PORT 5 |
---|
52 | 52 | #define MLX4_IS_LEGACY_EQ_MODE(dev_cap) ((dev_cap).num_comp_vectors < \ |
---|
53 | 53 | (dev_cap).num_ports * MIN_MSIX_P_PORT) |
---|
.. | .. |
---|
226 | 226 | MLX4_DEV_CAP_FLAG2_SL_TO_VL_CHANGE_EVENT = 1ULL << 37, |
---|
227 | 227 | MLX4_DEV_CAP_FLAG2_USER_MAC_EN = 1ULL << 38, |
---|
228 | 228 | MLX4_DEV_CAP_FLAG2_DRIVER_VERSION_TO_FW = 1ULL << 39, |
---|
| 229 | + MLX4_DEV_CAP_FLAG2_SW_CQ_INIT = 1ULL << 40, |
---|
229 | 230 | }; |
---|
230 | 231 | |
---|
231 | 232 | enum { |
---|
.. | .. |
---|
572 | 573 | int reserved_eqs; |
---|
573 | 574 | int num_comp_vectors; |
---|
574 | 575 | int num_mpts; |
---|
575 | | - int max_fmr_maps; |
---|
576 | 576 | int num_mtts; |
---|
577 | 577 | int fmr_reserved_mtts; |
---|
578 | 578 | int reserved_mtts; |
---|
.. | .. |
---|
705 | 705 | u32 pd; |
---|
706 | 706 | enum mlx4_mw_type type; |
---|
707 | 707 | int enabled; |
---|
708 | | -}; |
---|
709 | | - |
---|
710 | | -struct mlx4_fmr { |
---|
711 | | - struct mlx4_mr mr; |
---|
712 | | - struct mlx4_mpt_entry *mpt; |
---|
713 | | - __be64 *mtts; |
---|
714 | | - dma_addr_t dma_handle; |
---|
715 | | - int max_pages; |
---|
716 | | - int max_maps; |
---|
717 | | - int maps; |
---|
718 | | - u8 page_shift; |
---|
719 | 708 | }; |
---|
720 | 709 | |
---|
721 | 710 | struct mlx4_uar { |
---|
.. | .. |
---|
1137 | 1126 | |
---|
1138 | 1127 | int mlx4_cq_alloc(struct mlx4_dev *dev, int nent, struct mlx4_mtt *mtt, |
---|
1139 | 1128 | struct mlx4_uar *uar, u64 db_rec, struct mlx4_cq *cq, |
---|
1140 | | - unsigned vector, int collapsed, int timestamp_en); |
---|
| 1129 | + unsigned int vector, int collapsed, int timestamp_en, |
---|
| 1130 | + void *buf_addr, bool user_cq); |
---|
1141 | 1131 | void mlx4_cq_free(struct mlx4_dev *dev, struct mlx4_cq *cq); |
---|
1142 | 1132 | int mlx4_qp_reserve_range(struct mlx4_dev *dev, int cnt, int align, |
---|
1143 | 1133 | int *base, u8 flags, u8 usage); |
---|
.. | .. |
---|
1411 | 1401 | int mlx4_register_vlan(struct mlx4_dev *dev, u8 port, u16 vlan, int *index); |
---|
1412 | 1402 | void mlx4_unregister_vlan(struct mlx4_dev *dev, u8 port, u16 vlan); |
---|
1413 | 1403 | |
---|
1414 | | -int mlx4_map_phys_fmr(struct mlx4_dev *dev, struct mlx4_fmr *fmr, u64 *page_list, |
---|
1415 | | - int npages, u64 iova, u32 *lkey, u32 *rkey); |
---|
1416 | | -int mlx4_fmr_alloc(struct mlx4_dev *dev, u32 pd, u32 access, int max_pages, |
---|
1417 | | - int max_maps, u8 page_shift, struct mlx4_fmr *fmr); |
---|
1418 | | -int mlx4_fmr_enable(struct mlx4_dev *dev, struct mlx4_fmr *fmr); |
---|
1419 | | -void mlx4_fmr_unmap(struct mlx4_dev *dev, struct mlx4_fmr *fmr, |
---|
1420 | | - u32 *lkey, u32 *rkey); |
---|
1421 | | -int mlx4_fmr_free(struct mlx4_dev *dev, struct mlx4_fmr *fmr); |
---|
1422 | 1404 | int mlx4_SYNC_TPT(struct mlx4_dev *dev); |
---|
1423 | 1405 | int mlx4_test_interrupt(struct mlx4_dev *dev, int vector); |
---|
1424 | 1406 | int mlx4_test_async(struct mlx4_dev *dev); |
---|
.. | .. |
---|
1521 | 1503 | int mlx4_vf_get_enable_smi_admin(struct mlx4_dev *dev, int slave, int port); |
---|
1522 | 1504 | int mlx4_vf_set_enable_smi_admin(struct mlx4_dev *dev, int slave, int port, |
---|
1523 | 1505 | int enable); |
---|
| 1506 | + |
---|
| 1507 | +struct mlx4_mpt_entry; |
---|
1524 | 1508 | int mlx4_mr_hw_get_mpt(struct mlx4_dev *dev, struct mlx4_mr *mmr, |
---|
1525 | 1509 | struct mlx4_mpt_entry ***mpt_entry); |
---|
1526 | 1510 | int mlx4_mr_hw_write_mpt(struct mlx4_dev *dev, struct mlx4_mr *mmr, |
---|