drivers/net: add generic ethdev macro to get PCI device
[dpdk.git] / drivers / net / sfc / sfc_intr.c
index c57cdae..dfa453a 100644 (file)
@@ -55,7 +55,7 @@ sfc_intr_handle_mgmt_evq(struct sfc_adapter *sa)
 
        rte_spinlock_lock(&sa->mgmt_evq_lock);
 
-       evq = sa->evq_info[sa->mgmt_evq_index].evq;
+       evq = sa->mgmt_evq;
 
        if (evq->init_state != SFC_EVQ_STARTED) {
                sfc_log_init(sa, "interrupt on stopped EVQ %u", evq->evq_index);
@@ -70,13 +70,14 @@ sfc_intr_handle_mgmt_evq(struct sfc_adapter *sa)
 }
 
 static void
-sfc_intr_line_handler(struct rte_intr_handle *intr_handle, void *cb_arg)
+sfc_intr_line_handler(void *cb_arg)
 {
        struct sfc_adapter *sa = (struct sfc_adapter *)cb_arg;
        efx_nic_t *enp = sa->nic;
        boolean_t fatal;
        uint32_t qmask;
        unsigned int lsc_seq = sa->port.lsc_seq;
+       struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
        sfc_log_init(sa, "entry");
 
@@ -99,7 +100,7 @@ sfc_intr_line_handler(struct rte_intr_handle *intr_handle, void *cb_arg)
        if (qmask & (1 << sa->mgmt_evq_index))
                sfc_intr_handle_mgmt_evq(sa);
 
-       if (rte_intr_enable(intr_handle) != 0)
+       if (rte_intr_enable(&pci_dev->intr_handle) != 0)
                sfc_err(sa, "cannot reenable interrupts");
 
        sfc_log_init(sa, "done");
@@ -115,12 +116,13 @@ exit:
 }
 
 static void
-sfc_intr_message_handler(struct rte_intr_handle *intr_handle, void *cb_arg)
+sfc_intr_message_handler(void *cb_arg)
 {
        struct sfc_adapter *sa = (struct sfc_adapter *)cb_arg;
        efx_nic_t *enp = sa->nic;
        boolean_t fatal;
        unsigned int lsc_seq = sa->port.lsc_seq;
+       struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
        sfc_log_init(sa, "entry");
 
@@ -141,7 +143,7 @@ sfc_intr_message_handler(struct rte_intr_handle *intr_handle, void *cb_arg)
 
        sfc_intr_handle_mgmt_evq(sa);
 
-       if (rte_intr_enable(intr_handle) != 0)
+       if (rte_intr_enable(&pci_dev->intr_handle) != 0)
                sfc_err(sa, "cannot reenable interrupts");
 
        sfc_log_init(sa, "done");
@@ -175,7 +177,7 @@ sfc_intr_start(struct sfc_adapter *sa)
        if (rc != 0)
                goto fail_intr_init;
 
-       pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+       pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
        intr_handle = &pci_dev->intr_handle;
 
        if (intr->handler != NULL) {
@@ -230,7 +232,7 @@ void
 sfc_intr_stop(struct sfc_adapter *sa)
 {
        struct sfc_intr *intr = &sa->intr;
-       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);
 
        sfc_log_init(sa, "entry");
 
@@ -259,7 +261,7 @@ sfc_intr_stop(struct sfc_adapter *sa)
 }
 
 int
-sfc_intr_init(struct sfc_adapter *sa)
+sfc_intr_configure(struct sfc_adapter *sa)
 {
        struct sfc_intr *intr = &sa->intr;
 
@@ -293,7 +295,7 @@ done:
 }
 
 void
-sfc_intr_fini(struct sfc_adapter *sa)
+sfc_intr_close(struct sfc_adapter *sa)
 {
        sfc_log_init(sa, "entry");
 
@@ -304,15 +306,17 @@ int
 sfc_intr_attach(struct sfc_adapter *sa)
 {
        struct sfc_intr *intr = &sa->intr;
-       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);
 
        sfc_log_init(sa, "entry");
 
        switch (pci_dev->intr_handle.type) {
 #ifdef RTE_EXEC_ENV_LINUXAPP
+       case RTE_INTR_HANDLE_UIO_INTX:
        case RTE_INTR_HANDLE_VFIO_LEGACY:
                intr->type = EFX_INTR_LINE;
                break;
+       case RTE_INTR_HANDLE_UIO:
        case RTE_INTR_HANDLE_VFIO_MSI:
        case RTE_INTR_HANDLE_VFIO_MSIX:
                intr->type = EFX_INTR_MESSAGE;