diff options
author | Eli Cohen <eli@dev.mellanox.co.il> | 2013-07-18 08:31:08 -0400 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2013-07-31 17:12:24 -0400 |
commit | cd23b14b654769db83c9684ae1ba32c0e066670f (patch) | |
tree | 60270d1f4313fa4938f05ec9773b7994c81be676 /include/linux/mlx5 | |
parent | 11940c8728b8e4bd67d0afacefbb9391ff8f4201 (diff) |
mlx5_core: Implement new initialization sequence
Introduce enbale_hca and disable_hca commands to signify when the
driver starts or ceases to operate on the device.
In addition the driver will use boot and init pages count; boot pages
is required to allow firmware to complete boot commands and the other
to complete init hca. Command interface revision is bumped to 4 to
enforce using supported firmware.
This patch breaks compatibility with old versions of firmware (< 4);
however, the first GA firmware we will publish will support version 4
so this should not be a problem.
Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'include/linux/mlx5')
-rw-r--r-- | include/linux/mlx5/device.h | 20 | ||||
-rw-r--r-- | include/linux/mlx5/driver.h | 4 |
2 files changed, 23 insertions, 1 deletions
diff --git a/include/linux/mlx5/device.h b/include/linux/mlx5/device.h index 8de8d8f22384..737685e9e852 100644 --- a/include/linux/mlx5/device.h +++ b/include/linux/mlx5/device.h | |||
@@ -690,6 +690,26 @@ struct mlx5_query_cq_mbox_out { | |||
690 | __be64 pas[0]; | 690 | __be64 pas[0]; |
691 | }; | 691 | }; |
692 | 692 | ||
693 | struct mlx5_enable_hca_mbox_in { | ||
694 | struct mlx5_inbox_hdr hdr; | ||
695 | u8 rsvd[8]; | ||
696 | }; | ||
697 | |||
698 | struct mlx5_enable_hca_mbox_out { | ||
699 | struct mlx5_outbox_hdr hdr; | ||
700 | u8 rsvd[8]; | ||
701 | }; | ||
702 | |||
703 | struct mlx5_disable_hca_mbox_in { | ||
704 | struct mlx5_inbox_hdr hdr; | ||
705 | u8 rsvd[8]; | ||
706 | }; | ||
707 | |||
708 | struct mlx5_disable_hca_mbox_out { | ||
709 | struct mlx5_outbox_hdr hdr; | ||
710 | u8 rsvd[8]; | ||
711 | }; | ||
712 | |||
693 | struct mlx5_eq_context { | 713 | struct mlx5_eq_context { |
694 | u8 status; | 714 | u8 status; |
695 | u8 ec_oi; | 715 | u8 ec_oi; |
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index f22e4419839b..2aa258b0ced1 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h | |||
@@ -101,6 +101,8 @@ enum { | |||
101 | MLX5_CMD_OP_QUERY_ADAPTER = 0x101, | 101 | MLX5_CMD_OP_QUERY_ADAPTER = 0x101, |
102 | MLX5_CMD_OP_INIT_HCA = 0x102, | 102 | MLX5_CMD_OP_INIT_HCA = 0x102, |
103 | MLX5_CMD_OP_TEARDOWN_HCA = 0x103, | 103 | MLX5_CMD_OP_TEARDOWN_HCA = 0x103, |
104 | MLX5_CMD_OP_ENABLE_HCA = 0x104, | ||
105 | MLX5_CMD_OP_DISABLE_HCA = 0x105, | ||
104 | MLX5_CMD_OP_QUERY_PAGES = 0x107, | 106 | MLX5_CMD_OP_QUERY_PAGES = 0x107, |
105 | MLX5_CMD_OP_MANAGE_PAGES = 0x108, | 107 | MLX5_CMD_OP_MANAGE_PAGES = 0x108, |
106 | MLX5_CMD_OP_SET_HCA_CAP = 0x109, | 108 | MLX5_CMD_OP_SET_HCA_CAP = 0x109, |
@@ -690,7 +692,7 @@ int mlx5_pagealloc_start(struct mlx5_core_dev *dev); | |||
690 | void mlx5_pagealloc_stop(struct mlx5_core_dev *dev); | 692 | void mlx5_pagealloc_stop(struct mlx5_core_dev *dev); |
691 | void mlx5_core_req_pages_handler(struct mlx5_core_dev *dev, u16 func_id, | 693 | void mlx5_core_req_pages_handler(struct mlx5_core_dev *dev, u16 func_id, |
692 | s16 npages); | 694 | s16 npages); |
693 | int mlx5_satisfy_startup_pages(struct mlx5_core_dev *dev); | 695 | int mlx5_satisfy_startup_pages(struct mlx5_core_dev *dev, int boot); |
694 | int mlx5_reclaim_startup_pages(struct mlx5_core_dev *dev); | 696 | int mlx5_reclaim_startup_pages(struct mlx5_core_dev *dev); |
695 | void mlx5_register_debugfs(void); | 697 | void mlx5_register_debugfs(void); |
696 | void mlx5_unregister_debugfs(void); | 698 | void mlx5_unregister_debugfs(void); |