net: add rte prefix to ether structures
[dpdk.git] / drivers / net / cxgbe / cxgbe_ethdev.c
index f1ca89c..e369369 100644 (file)
 /*
  *... and the PCI ID Table itself ...
  */
-#include "t4_pci_id_tbl.h"
-
-#define CXGBE_TX_OFFLOADS (DEV_TX_OFFLOAD_VLAN_INSERT |\
-                          DEV_TX_OFFLOAD_IPV4_CKSUM |\
-                          DEV_TX_OFFLOAD_UDP_CKSUM |\
-                          DEV_TX_OFFLOAD_TCP_CKSUM |\
-                          DEV_TX_OFFLOAD_TCP_TSO)
-
-#define CXGBE_RX_OFFLOADS (DEV_RX_OFFLOAD_VLAN_STRIP |\
-                          DEV_RX_OFFLOAD_CRC_STRIP |\
-                          DEV_RX_OFFLOAD_IPV4_CKSUM |\
-                          DEV_RX_OFFLOAD_JUMBO_FRAME |\
-                          DEV_RX_OFFLOAD_UDP_CKSUM |\
-                          DEV_RX_OFFLOAD_TCP_CKSUM)
+#include "base/t4_pci_id_tbl.h"
 
 uint16_t cxgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
                         uint16_t nb_pkts)
@@ -213,7 +200,8 @@ int cxgbe_dev_link_update(struct rte_eth_dev *eth_dev,
                cxgbe_poll(&s->fw_evtq, NULL, budget, &work_done);
 
                /* Exit if link status changed or always forced up */
-               if (pi->link_cfg.link_ok != old_link || force_linkup(adapter))
+               if (pi->link_cfg.link_ok != old_link ||
+                   cxgbe_force_linkup(adapter))
                        break;
 
                if (!wait_to_complete)
@@ -222,7 +210,7 @@ int cxgbe_dev_link_update(struct rte_eth_dev *eth_dev,
                rte_delay_ms(CXGBE_LINK_STATUS_POLL_MS);
        }
 
-       new_link.link_status = force_linkup(adapter) ?
+       new_link.link_status = cxgbe_force_linkup(adapter) ?
                               ETH_LINK_UP : pi->link_cfg.link_ok;
        new_link.link_autoneg = pi->link_cfg.autoneg;
        new_link.link_duplex = ETH_LINK_FULL_DUPLEX;
@@ -341,6 +329,7 @@ void cxgbe_dev_close(struct rte_eth_dev *eth_dev)
 int cxgbe_dev_start(struct rte_eth_dev *eth_dev)
 {
        struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
+       struct rte_eth_rxmode *rx_conf = &eth_dev->data->dev_conf.rxmode;
        struct adapter *adapter = pi->adapter;
        int err = 0, i;
 
@@ -361,9 +350,14 @@ int cxgbe_dev_start(struct rte_eth_dev *eth_dev)
                        goto out;
        }
 
+       if (rx_conf->offloads & DEV_RX_OFFLOAD_SCATTER)
+               eth_dev->data->scattered_rx = 1;
+       else
+               eth_dev->data->scattered_rx = 0;
+
        cxgbe_enable_rx_queues(pi);
 
-       err = setup_rss(pi);
+       err = cxgbe_setup_rss(pi);
        if (err)
                goto out;
 
@@ -379,7 +373,7 @@ int cxgbe_dev_start(struct rte_eth_dev *eth_dev)
                        goto out;
        }
 
-       err = link_start(pi);
+       err = cxgbe_link_start(pi);
        if (err)
                goto out;
 
@@ -407,38 +401,30 @@ void cxgbe_dev_stop(struct rte_eth_dev *eth_dev)
         *  have been disabled
         */
        t4_sge_eth_clear_queues(pi);
+       eth_dev->data->scattered_rx = 0;
 }
 
 int cxgbe_dev_configure(struct rte_eth_dev *eth_dev)
 {
        struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private);
        struct adapter *adapter = pi->adapter;
-       uint64_t configured_offloads;
        int err;
 
        CXGBE_FUNC_TRACE();
-       configured_offloads = eth_dev->data->dev_conf.rxmode.offloads;
-
-       /* KEEP_CRC offload flag is not supported by PMD
-        * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed
-        */
-       if (rte_eth_dev_must_keep_crc(configured_offloads)) {
-               dev_info(adapter, "can't disable hw crc strip\n");
-               eth_dev->data->dev_conf.rxmode.offloads |=
-                       DEV_RX_OFFLOAD_CRC_STRIP;
-       }
 
        if (!(adapter->flags & FW_QUEUE_BOUND)) {
-               err = setup_sge_fwevtq(adapter);
+               err = cxgbe_setup_sge_fwevtq(adapter);
                if (err)
                        return err;
                adapter->flags |= FW_QUEUE_BOUND;
-               err = setup_sge_ctrl_txq(adapter);
-               if (err)
-                       return err;
+               if (is_pf4(adapter)) {
+                       err = cxgbe_setup_sge_ctrl_txq(adapter);
+                       if (err)
+                               return err;
+               }
        }
 
-       err = cfg_queue_count(eth_dev);
+       err = cxgbe_cfg_queue_count(eth_dev);
        if (err)
                return err;
 
@@ -648,7 +634,7 @@ int cxgbe_dev_rx_queue_setup(struct rte_eth_dev *eth_dev,
                        ~DEV_RX_OFFLOAD_JUMBO_FRAME;
 
        err = t4_sge_alloc_rxq(adapter, &rxq->rspq, false, eth_dev, msi_idx,
-                              &rxq->fl, t4_ethrx_handler,
+                              &rxq->fl, NULL,
                               is_pf4(adapter) ?
                               t4_get_tp_ch_map(adapter, pi->tx_chan) : 0, mp,
                               queue_idx, socket_id);
@@ -1070,14 +1056,12 @@ static int cxgbe_get_regs(struct rte_eth_dev *eth_dev,
        return 0;
 }
 
-int cxgbe_mac_addr_set(struct rte_eth_dev *dev, struct ether_addr *addr)
+int cxgbe_mac_addr_set(struct rte_eth_dev *dev, struct rte_ether_addr *addr)
 {
        struct port_info *pi = (struct port_info *)(dev->data->dev_private);
-       struct adapter *adapter = pi->adapter;
        int ret;
 
-       ret = t4_change_mac(adapter, adapter->mbox, pi->viid,
-                           pi->xact_addr_filt, (u8 *)addr, true, true);
+       ret = cxgbe_mpstcam_modify(pi, (int)pi->xact_addr_filt, (u8 *)addr);
        if (ret < 0) {
                dev_err(adapter, "failed to set mac addr; err = %d\n",
                        ret);