diff options
author | Vasundhara Volam <vasundhara.volam@emulex.com> | 2014-01-15 02:53:33 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-01-15 18:52:02 -0500 |
commit | 542963b7d7e9acadde5e2f3ce85f4919e7c4a24a (patch) | |
tree | 8a92a983405159fdc8b64df7cd266e423433d303 | |
parent | 2c07c1d7dadcc0025c56351be8e81d74e4feb5af (diff) |
be2net: Log the profile-id used by FW during driver initialization
Signed-off-by: Vasundhara Volam <vasundhara.volam@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.c | 34 | ||||
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.h | 13 | ||||
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_main.c | 8 |
3 files changed, 55 insertions, 0 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c index d9bdeba79aa4..1c626e1c3847 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.c +++ b/drivers/net/ethernet/emulex/benet/be_cmds.c | |||
@@ -3608,6 +3608,40 @@ int be_cmd_intr_set(struct be_adapter *adapter, bool intr_enable) | |||
3608 | return status; | 3608 | return status; |
3609 | } | 3609 | } |
3610 | 3610 | ||
3611 | /* Uses MBOX */ | ||
3612 | int be_cmd_get_active_profile(struct be_adapter *adapter, u16 *profile_id) | ||
3613 | { | ||
3614 | struct be_cmd_req_get_active_profile *req; | ||
3615 | struct be_mcc_wrb *wrb; | ||
3616 | int status; | ||
3617 | |||
3618 | if (mutex_lock_interruptible(&adapter->mbox_lock)) | ||
3619 | return -1; | ||
3620 | |||
3621 | wrb = wrb_from_mbox(adapter); | ||
3622 | if (!wrb) { | ||
3623 | status = -EBUSY; | ||
3624 | goto err; | ||
3625 | } | ||
3626 | |||
3627 | req = embedded_payload(wrb); | ||
3628 | |||
3629 | be_wrb_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON, | ||
3630 | OPCODE_COMMON_GET_ACTIVE_PROFILE, sizeof(*req), | ||
3631 | wrb, NULL); | ||
3632 | |||
3633 | status = be_mbox_notify_wait(adapter); | ||
3634 | if (!status) { | ||
3635 | struct be_cmd_resp_get_active_profile *resp = | ||
3636 | embedded_payload(wrb); | ||
3637 | *profile_id = le16_to_cpu(resp->active_profile_id); | ||
3638 | } | ||
3639 | |||
3640 | err: | ||
3641 | mutex_unlock(&adapter->mbox_lock); | ||
3642 | return status; | ||
3643 | } | ||
3644 | |||
3611 | int be_roce_mcc_cmd(void *netdev_handle, void *wrb_payload, | 3645 | int be_roce_mcc_cmd(void *netdev_handle, void *wrb_payload, |
3612 | int wrb_payload_size, u16 *cmd_status, u16 *ext_status) | 3646 | int wrb_payload_size, u16 *cmd_status, u16 *ext_status) |
3613 | { | 3647 | { |
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.h b/drivers/net/ethernet/emulex/benet/be_cmds.h index ed1daedd896d..8054b84d9bf3 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.h +++ b/drivers/net/ethernet/emulex/benet/be_cmds.h | |||
@@ -216,6 +216,7 @@ struct be_mcc_mailbox { | |||
216 | #define OPCODE_COMMON_GET_FUNC_CONFIG 160 | 216 | #define OPCODE_COMMON_GET_FUNC_CONFIG 160 |
217 | #define OPCODE_COMMON_GET_PROFILE_CONFIG 164 | 217 | #define OPCODE_COMMON_GET_PROFILE_CONFIG 164 |
218 | #define OPCODE_COMMON_SET_PROFILE_CONFIG 165 | 218 | #define OPCODE_COMMON_SET_PROFILE_CONFIG 165 |
219 | #define OPCODE_COMMON_GET_ACTIVE_PROFILE 167 | ||
219 | #define OPCODE_COMMON_SET_HSW_CONFIG 153 | 220 | #define OPCODE_COMMON_SET_HSW_CONFIG 153 |
220 | #define OPCODE_COMMON_GET_FN_PRIVILEGES 170 | 221 | #define OPCODE_COMMON_GET_FN_PRIVILEGES 170 |
221 | #define OPCODE_COMMON_READ_OBJECT 171 | 222 | #define OPCODE_COMMON_READ_OBJECT 171 |
@@ -1917,6 +1918,17 @@ struct be_cmd_resp_set_profile_config { | |||
1917 | struct be_cmd_resp_hdr hdr; | 1918 | struct be_cmd_resp_hdr hdr; |
1918 | }; | 1919 | }; |
1919 | 1920 | ||
1921 | struct be_cmd_req_get_active_profile { | ||
1922 | struct be_cmd_req_hdr hdr; | ||
1923 | u32 rsvd; | ||
1924 | } __packed; | ||
1925 | |||
1926 | struct be_cmd_resp_get_active_profile { | ||
1927 | struct be_cmd_resp_hdr hdr; | ||
1928 | u16 active_profile_id; | ||
1929 | u16 next_profile_id; | ||
1930 | } __packed; | ||
1931 | |||
1920 | struct be_cmd_enable_disable_vf { | 1932 | struct be_cmd_enable_disable_vf { |
1921 | struct be_cmd_req_hdr hdr; | 1933 | struct be_cmd_req_hdr hdr; |
1922 | u8 enable; | 1934 | u8 enable; |
@@ -2063,6 +2075,7 @@ int be_cmd_get_func_config(struct be_adapter *adapter, | |||
2063 | int be_cmd_get_profile_config(struct be_adapter *adapter, | 2075 | int be_cmd_get_profile_config(struct be_adapter *adapter, |
2064 | struct be_resources *res, u8 domain); | 2076 | struct be_resources *res, u8 domain); |
2065 | int be_cmd_set_profile_config(struct be_adapter *adapter, u32 bps, u8 domain); | 2077 | int be_cmd_set_profile_config(struct be_adapter *adapter, u32 bps, u8 domain); |
2078 | int be_cmd_get_active_profile(struct be_adapter *adapter, u16 *profile); | ||
2066 | int be_cmd_get_if_id(struct be_adapter *adapter, struct be_vf_cfg *vf_cfg, | 2079 | int be_cmd_get_if_id(struct be_adapter *adapter, struct be_vf_cfg *vf_cfg, |
2067 | int vf_num); | 2080 | int vf_num); |
2068 | int be_cmd_enable_vf(struct be_adapter *adapter, u8 domain); | 2081 | int be_cmd_enable_vf(struct be_adapter *adapter, u8 domain); |
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 3acf137b5784..1f670d3f77e5 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c | |||
@@ -3233,6 +3233,7 @@ static int be_get_resources(struct be_adapter *adapter) | |||
3233 | /* Routine to query per function resource limits */ | 3233 | /* Routine to query per function resource limits */ |
3234 | static int be_get_config(struct be_adapter *adapter) | 3234 | static int be_get_config(struct be_adapter *adapter) |
3235 | { | 3235 | { |
3236 | u16 profile_id; | ||
3236 | int status; | 3237 | int status; |
3237 | 3238 | ||
3238 | status = be_cmd_query_fw_cfg(adapter, &adapter->port_num, | 3239 | status = be_cmd_query_fw_cfg(adapter, &adapter->port_num, |
@@ -3242,6 +3243,13 @@ static int be_get_config(struct be_adapter *adapter) | |||
3242 | if (status) | 3243 | if (status) |
3243 | return status; | 3244 | return status; |
3244 | 3245 | ||
3246 | if (be_physfn(adapter)) { | ||
3247 | status = be_cmd_get_active_profile(adapter, &profile_id); | ||
3248 | if (!status) | ||
3249 | dev_info(&adapter->pdev->dev, | ||
3250 | "Using profile 0x%x\n", profile_id); | ||
3251 | } | ||
3252 | |||
3245 | status = be_get_resources(adapter); | 3253 | status = be_get_resources(adapter); |
3246 | if (status) | 3254 | if (status) |
3247 | return status; | 3255 | return status; |