Re: [PATCH net-next 12/12] be2net: query max_tx_qs for BE3 super-nic profile from FW
From: Sergei Shtylyov <hidden>
Date: 2014-09-01 13:10:29
Hello. On 9/1/2014 10:24 AM, Sathya Perla wrote:
From: Suresh Reddy <redacted>
In the BE3 super-nic profile, the max_tx_qs value can vary for each function. So the driver needs to query this value from FW instead of using the pre-defined constant BE3_MAX_TX_QS.
Signed-off-by: Suresh Reddy <redacted> Signed-off-by: Sathya Perla <redacted> --- drivers/net/ethernet/emulex/benet/be_main.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-)
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index f3235d1..a30156b 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c@@ -3324,10 +3324,19 @@ static void BEx_get_resources(struct be_adapter *adapter, */ if (BE2_chip(adapter) || use_sriov || (adapter->port_num > 1) || !be_physfn(adapter) || (be_is_mc(adapter) && - !(adapter->function_caps & BE_FUNCTION_CAPS_RSS))) + !(adapter->function_caps & BE_FUNCTION_CAPS_RSS))) { res->max_tx_qs = 1; - else + } else if (adapter->function_caps & BE_FUNCTION_CAPS_SUPER_NIC) { + struct be_resources super_nic_res = {0};
Empty line is needed after declaration.
+ /* On a SuperNIC profile, the driver needs to use the
+ * GET_PROFILE_CONFIG cmd to query the per-function TXQ limits
+ */
+ be_cmd_get_profile_config(adapter, &super_nic_res, 0);
+ /* Some old versions of BE3 FW don't report max_tx_qs value */
+ res->max_tx_qs = super_nic_res.max_tx_qs ? : BE3_MAX_TX_QS;
+ } else {
res->max_tx_qs = BE3_MAX_TX_QS;
+ }WBR, Sergei