svn commit: r216912 - projects/ofed/base/sys/ofed/include/linux/mlx4
Jeff Roberson
jeff at FreeBSD.org
Mon Jan 3 05:54:50 UTC 2011
Author: jeff
Date: Mon Jan 3 05:54:49 2011
New Revision: 216912
URL: http://svn.freebsd.org/changeset/base/216912
Log:
- Merge new mlx4 includes.
Sponsored by: Isilon Systems, iX Systems, and Panasas.
Modified:
projects/ofed/base/sys/ofed/include/linux/mlx4/cmd.h
projects/ofed/base/sys/ofed/include/linux/mlx4/device.h
projects/ofed/base/sys/ofed/include/linux/mlx4/driver.h
projects/ofed/base/sys/ofed/include/linux/mlx4/qp.h
Modified: projects/ofed/base/sys/ofed/include/linux/mlx4/cmd.h
==============================================================================
--- projects/ofed/base/sys/ofed/include/linux/mlx4/cmd.h Mon Jan 3 05:37:14 2011 (r216911)
+++ projects/ofed/base/sys/ofed/include/linux/mlx4/cmd.h Mon Jan 3 05:54:49 2011 (r216912)
@@ -58,6 +58,7 @@ enum {
MLX4_CMD_SENSE_PORT = 0x4d,
MLX4_CMD_HW_HEALTH_CHECK = 0x50,
MLX4_CMD_SET_PORT = 0xc,
+ MLX4_CMD_SET_NODE = 0x5a,
MLX4_CMD_ACCESS_DDR = 0x2e,
MLX4_CMD_MAP_ICM = 0xffa,
MLX4_CMD_UNMAP_ICM = 0xff9,
Modified: projects/ofed/base/sys/ofed/include/linux/mlx4/device.h
==============================================================================
--- projects/ofed/base/sys/ofed/include/linux/mlx4/device.h Mon Jan 3 05:37:14 2011 (r216911)
+++ projects/ofed/base/sys/ofed/include/linux/mlx4/device.h Mon Jan 3 05:54:49 2011 (r216912)
@@ -39,6 +39,8 @@
#include <asm/atomic.h>
+#include <linux/mlx4/driver.h>
+
enum {
MLX4_FLAG_MSI_X = 1 << 0,
MLX4_FLAG_OLD_PORT_CMDS = 1 << 1,
@@ -179,6 +181,10 @@ enum {
MLX4_CUNTERS_EXT
};
+enum {
+ MAX_FAST_REG_PAGES = 511,
+};
+
static inline u64 mlx4_fw_ver(u64 major, u64 minor, u64 subminor)
{
return (major << 32) | (minor << 16) | subminor;
@@ -338,6 +344,17 @@ struct mlx4_fmr {
struct mlx4_uar {
unsigned long pfn;
int index;
+ struct list_head bf_list;
+ unsigned free_bf_bmap;
+ void __iomem *map;
+ void __iomem *bf_map;
+};
+
+struct mlx4_bf {
+ unsigned long offset;
+ int buf_size;
+ struct mlx4_uar *uar;
+ void __iomem *reg;
};
struct mlx4_cq {
@@ -406,8 +423,7 @@ struct mlx4_eth_av {
u8 dgid[16];
u32 reserved4[2];
__be16 vlan;
- u8 mac_0_1[2];
- u8 mac_2_5[4];
+ u8 mac[6];
};
union mlx4_ext_av {
@@ -512,6 +528,8 @@ void mlx4_xrcd_free(struct mlx4_dev *dev
int mlx4_uar_alloc(struct mlx4_dev *dev, struct mlx4_uar *uar);
void mlx4_uar_free(struct mlx4_dev *dev, struct mlx4_uar *uar);
+int mlx4_bf_alloc(struct mlx4_dev *dev, struct mlx4_bf *bf);
+void mlx4_bf_free(struct mlx4_dev *dev, struct mlx4_bf *bf);
int mlx4_mtt_init(struct mlx4_dev *dev, int npages, int page_shift,
struct mlx4_mtt *mtt);
@@ -562,8 +580,9 @@ int mlx4_INIT_PORT(struct mlx4_dev *dev,
int mlx4_CLOSE_PORT(struct mlx4_dev *dev, int port);
int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
- int block_mcast_loopback);
-int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16]);
+ int block_mcast_loopback, enum mlx4_mcast_prot prot);
+int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
+ enum mlx4_mcast_prot prot);
int mlx4_register_mac(struct mlx4_dev *dev, u8 port, u64 mac, int *index);
void mlx4_unregister_mac(struct mlx4_dev *dev, u8 port, int index);
Modified: projects/ofed/base/sys/ofed/include/linux/mlx4/driver.h
==============================================================================
--- projects/ofed/base/sys/ofed/include/linux/mlx4/driver.h Mon Jan 3 05:37:14 2011 (r216911)
+++ projects/ofed/base/sys/ofed/include/linux/mlx4/driver.h Mon Jan 3 05:54:49 2011 (r216912)
@@ -54,6 +54,11 @@ enum mlx4_prot {
MLX4_PROT_EN,
};
+enum mlx4_mcast_prot {
+ MLX4_MCAST_PROT_IB = 0,
+ MLX4_MCAST_PROT_EN = 1,
+};
+
struct mlx4_interface {
void * (*add) (struct mlx4_dev *dev);
void (*remove)(struct mlx4_dev *dev, void *context);
@@ -71,5 +76,7 @@ void mlx4_unregister_interface(struct ml
void *mlx4_get_prot_dev(struct mlx4_dev *dev, enum mlx4_prot proto, int port);
struct mlx4_dev *mlx4_query_interface(void *, int *port);
+void mlx4_set_iboe_counter(struct mlx4_dev *dev, int index, u8 port);
+int mlx4_get_iboe_counter(struct mlx4_dev *dev, u8 port);
#endif /* MLX4_DRIVER_H */
Modified: projects/ofed/base/sys/ofed/include/linux/mlx4/qp.h
==============================================================================
--- projects/ofed/base/sys/ofed/include/linux/mlx4/qp.h Mon Jan 3 05:37:14 2011 (r216911)
+++ projects/ofed/base/sys/ofed/include/linux/mlx4/qp.h Mon Jan 3 05:54:49 2011 (r216912)
@@ -314,6 +314,7 @@ struct mlx4_wqe_data_seg {
enum {
MLX4_INLINE_ALIGN = 64,
+ MLX4_INLINE_SEG = 1 << 31,
};
struct mlx4_wqe_inline_seg {
@@ -337,6 +338,7 @@ static inline struct mlx4_qp *__mlx4_qp_
return radix_tree_lookup(&dev->qp_table_tree, qpn & (dev->caps.num_qps - 1));
}
+struct mlx4_qp *mlx4_qp_lookup_lock(struct mlx4_dev *dev, u32 qpn);
void mlx4_qp_remove(struct mlx4_dev *dev, struct mlx4_qp *qp);
int mlx4_qp_get_region(struct mlx4_dev *dev, enum mlx4_qp_region region,
int *base_qpn, int *cnt);
More information about the svn-src-projects
mailing list