drivers/net: add generic ethdev macro to get PCI device
[dpdk.git] / drivers / net / sfc / sfc.c
index 181d87a..6cecfc0 100644 (file)
@@ -398,50 +398,44 @@ sfc_configure(struct sfc_adapter *sa)
 
        SFC_ASSERT(sfc_adapter_is_locked(sa));
 
-       SFC_ASSERT(sa->state == SFC_ADAPTER_INITIALIZED);
+       SFC_ASSERT(sa->state == SFC_ADAPTER_INITIALIZED ||
+                  sa->state == SFC_ADAPTER_CONFIGURED);
        sa->state = SFC_ADAPTER_CONFIGURING;
 
        rc = sfc_check_conf(sa);
        if (rc != 0)
                goto fail_check_conf;
 
-       rc = sfc_intr_init(sa);
+       rc = sfc_intr_configure(sa);
        if (rc != 0)
-               goto fail_intr_init;
-
-       rc = sfc_ev_init(sa);
-       if (rc != 0)
-               goto fail_ev_init;
+               goto fail_intr_configure;
 
-       rc = sfc_port_init(sa);
+       rc = sfc_port_configure(sa);
        if (rc != 0)
-               goto fail_port_init;
+               goto fail_port_configure;
 
-       rc = sfc_rx_init(sa);
+       rc = sfc_rx_configure(sa);
        if (rc != 0)
-               goto fail_rx_init;
+               goto fail_rx_configure;
 
-       rc = sfc_tx_init(sa);
+       rc = sfc_tx_configure(sa);
        if (rc != 0)
-               goto fail_tx_init;
+               goto fail_tx_configure;
 
        sa->state = SFC_ADAPTER_CONFIGURED;
        sfc_log_init(sa, "done");
        return 0;
 
-fail_tx_init:
-       sfc_rx_fini(sa);
-
-fail_rx_init:
-       sfc_port_fini(sa);
+fail_tx_configure:
+       sfc_rx_close(sa);
 
-fail_port_init:
-       sfc_ev_fini(sa);
+fail_rx_configure:
+       sfc_port_close(sa);
 
-fail_ev_init:
-       sfc_intr_fini(sa);
+fail_port_configure:
+       sfc_intr_close(sa);
 
-fail_intr_init:
+fail_intr_configure:
 fail_check_conf:
        sa->state = SFC_ADAPTER_INITIALIZED;
        sfc_log_init(sa, "failed %d", rc);
@@ -458,11 +452,10 @@ sfc_close(struct sfc_adapter *sa)
        SFC_ASSERT(sa->state == SFC_ADAPTER_CONFIGURED);
        sa->state = SFC_ADAPTER_CLOSING;
 
-       sfc_tx_fini(sa);
-       sfc_rx_fini(sa);
-       sfc_port_fini(sa);
-       sfc_ev_fini(sa);
-       sfc_intr_fini(sa);
+       sfc_tx_close(sa);
+       sfc_rx_close(sa);
+       sfc_port_close(sa);
+       sfc_intr_close(sa);
 
        sa->state = SFC_ADAPTER_INITIALIZED;
        sfc_log_init(sa, "done");
@@ -472,7 +465,7 @@ static int
 sfc_mem_bar_init(struct sfc_adapter *sa)
 {
        struct rte_eth_dev *eth_dev = sa->eth_dev;
-       struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(eth_dev);
+       struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
        efsys_bar_t *ebp = &sa->mem_bar;
        unsigned int i;
        struct rte_mem_resource *res;
@@ -607,8 +600,13 @@ sfc_attach(struct sfc_adapter *sa)
        if (rc != 0)
                goto fail_intr_attach;
 
-       efx_phy_adv_cap_get(sa->nic, EFX_PHY_CAP_PERM,
-                           &sa->port.phy_adv_cap_mask);
+       rc = sfc_ev_attach(sa);
+       if (rc != 0)
+               goto fail_ev_attach;
+
+       rc = sfc_port_attach(sa);
+       if (rc != 0)
+               goto fail_port_attach;
 
        rc = sfc_set_rss_defaults(sa);
        if (rc != 0)
@@ -630,6 +628,12 @@ sfc_attach(struct sfc_adapter *sa)
 
 fail_filter_attach:
 fail_set_rss_defaults:
+       sfc_port_detach(sa);
+
+fail_port_attach:
+       sfc_ev_detach(sa);
+
+fail_ev_attach:
        sfc_intr_detach(sa);
 
 fail_intr_attach:
@@ -652,7 +656,8 @@ sfc_detach(struct sfc_adapter *sa)
        sfc_flow_fini(sa);
 
        sfc_filter_detach(sa);
-
+       sfc_port_detach(sa);
+       sfc_ev_detach(sa);
        sfc_intr_detach(sa);
 
        sa->state = SFC_ADAPTER_UNINITIALIZED;
@@ -661,7 +666,7 @@ sfc_detach(struct sfc_adapter *sa)
 int
 sfc_probe(struct sfc_adapter *sa)
 {
-       struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+       struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
        efx_nic_t *enp;
        int rc;