X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fcxgbe%2Fcxgbevf_main.c;h=f639612ae45ad3c45600fd2ebca822ed2073f7ac;hb=d566bfcff0c7bfe167f6c520d4fd5b0104130af6;hp=61bd85193aeddf472ee54a786671fc11decda6f8;hpb=27e5d9000c55d9e7c0257ff284159a642d269b40;p=dpdk.git diff --git a/drivers/net/cxgbe/cxgbevf_main.c b/drivers/net/cxgbe/cxgbevf_main.c index 61bd85193a..f639612ae4 100644 --- a/drivers/net/cxgbe/cxgbevf_main.c +++ b/drivers/net/cxgbe/cxgbevf_main.c @@ -3,14 +3,15 @@ * All rights reserved. */ -#include -#include +#include +#include #include -#include "common.h" -#include "t4_regs.h" -#include "t4_msg.h" +#include "base/common.h" +#include "base/t4_regs.h" +#include "base/t4_msg.h" #include "cxgbe.h" +#include "cxgbe_pfvf.h" #include "mps_tcam.h" /* @@ -50,7 +51,7 @@ static void size_nports_qsets(struct adapter *adapter) adapter->params.nports = pmask_nports; } - configure_max_ethqsets(adapter); + cxgbe_configure_max_ethqsets(adapter); if (adapter->sge.max_ethqsets < adapter->params.nports) { dev_warn(adapter->pdev_dev, "only using %d of %d available" " virtual interfaces (too few Queue Sets)\n", @@ -122,11 +123,18 @@ static int adap_init0vf(struct adapter *adapter) * firmware won't understand this and we'll just get * unencapsulated messages ... */ - param = V_FW_PARAMS_MNEM(FW_PARAMS_MNEM_PFVF) | - V_FW_PARAMS_PARAM_X(FW_PARAMS_PARAM_PFVF_CPLFW4MSG_ENCAP); + param = CXGBE_FW_PARAM_PFVF(CPLFW4MSG_ENCAP); val = 1; t4vf_set_params(adapter, 1, ¶m, &val); + /* Query for max number of packets that can be coalesced for Tx */ + param = CXGBE_FW_PARAM_PFVF(MAX_PKTS_PER_ETH_TX_PKTS_WR); + err = t4vf_query_params(adapter, 1, ¶m, &val); + if (!err && val > 0) + adapter->params.max_tx_coalesce_num = val; + else + adapter->params.max_tx_coalesce_num = ETH_COALESCE_VF_PKT_NUM; + /* * Grab our Virtual Interface resource allocation, extract the * features that we're interested in and do a bit of sanity testing on @@ -230,7 +238,7 @@ int cxgbevf_probe(struct adapter *adapter) goto out_free; allocate_mac: - pi = (struct port_info *)eth_dev->data->dev_private; + pi = eth_dev->data->dev_private; adapter->port[i] = pi; pi->eth_dev = eth_dev; pi->adapter = adapter; @@ -245,7 +253,7 @@ allocate_mac: rte_eth_copy_pci_info(pi->eth_dev, adapter->pdev); pi->eth_dev->data->mac_addrs = rte_zmalloc(name, - ETHER_ADDR_LEN, 0); + RTE_ETHER_ADDR_LEN, 0); if (!pi->eth_dev->data->mac_addrs) { dev_err(adapter, "%s: Mem allocation failed for storing mac addr, aborting\n", __func__); @@ -268,21 +276,26 @@ allocate_mac: } } - cfg_queues(adapter->eth_dev); - print_adapter_info(adapter); - print_port_info(adapter); + err = cxgbe_cfg_queues(adapter->eth_dev); + if (err) + goto out_free; + + cxgbe_print_adapter_info(adapter); + cxgbe_print_port_info(adapter); adapter->mpstcam = t4_init_mpstcam(adapter); if (!adapter->mpstcam) dev_warn(adapter, "VF could not allocate mps tcam table. Continuing\n"); - err = init_rss(adapter); + err = cxgbe_init_rss(adapter); if (err) goto out_free; return 0; out_free: + cxgbe_cfg_queues_free(adapter); + for_each_port(adapter, i) { pi = adap2pinfo(adapter, i); if (pi->viid != 0)