aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVasundhara Volam <vasundhara.volam@emulex.com>2014-01-15 02:53:33 -0500
committerDavid S. Miller <davem@davemloft.net>2014-01-15 18:52:02 -0500
commit542963b7d7e9acadde5e2f3ce85f4919e7c4a24a (patch)
tree8a92a983405159fdc8b64df7cd266e423433d303
parent2c07c1d7dadcc0025c56351be8e81d74e4feb5af (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.c34
-rw-r--r--drivers/net/ethernet/emulex/benet/be_cmds.h13
-rw-r--r--drivers/net/ethernet/emulex/benet/be_main.c8
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 */
3612int 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
3640err:
3641 mutex_unlock(&adapter->mbox_lock);
3642 return status;
3643}
3644
3611int be_roce_mcc_cmd(void *netdev_handle, void *wrb_payload, 3645int 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
1921struct be_cmd_req_get_active_profile {
1922 struct be_cmd_req_hdr hdr;
1923 u32 rsvd;
1924} __packed;
1925
1926struct 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
1920struct be_cmd_enable_disable_vf { 1932struct 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,
2063int be_cmd_get_profile_config(struct be_adapter *adapter, 2075int be_cmd_get_profile_config(struct be_adapter *adapter,
2064 struct be_resources *res, u8 domain); 2076 struct be_resources *res, u8 domain);
2065int be_cmd_set_profile_config(struct be_adapter *adapter, u32 bps, u8 domain); 2077int be_cmd_set_profile_config(struct be_adapter *adapter, u32 bps, u8 domain);
2078int be_cmd_get_active_profile(struct be_adapter *adapter, u16 *profile);
2066int be_cmd_get_if_id(struct be_adapter *adapter, struct be_vf_cfg *vf_cfg, 2079int be_cmd_get_if_id(struct be_adapter *adapter, struct be_vf_cfg *vf_cfg,
2067 int vf_num); 2080 int vf_num);
2068int be_cmd_enable_vf(struct be_adapter *adapter, u8 domain); 2081int 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 */
3234static int be_get_config(struct be_adapter *adapter) 3234static 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;