liquidio: moved liquidio_legacy_intr_handler to lio_core.c
authorIntiyaz Basha <intiyaz.basha@cavium.com>
Tue, 15 Aug 2017 19:46:11 +0000 (12:46 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Aug 2017 04:05:31 +0000 (21:05 -0700)
Moving liquidio_legacy_intr_handler to lio_core.c

Signed-off-by: Intiyaz Basha <intiyaz.basha@cavium.com>
Signed-off-by: Raghu Vatsavayi <raghu.vatsavayi@cavium.com>
Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/liquidio/lio_core.c
drivers/net/ethernet/cavium/liquidio/lio_main.c
drivers/net/ethernet/cavium/liquidio/octeon_network.h

index 03746d8f2778dda75e6449ca14247a81d816f0ca..5c5f957f9d406eb83e9a7a02549d349a9e0d0376 100644 (file)
@@ -829,3 +829,58 @@ liquidio_msix_intr_handler(int irq __attribute__((unused)), void *dev)
 
        return IRQ_HANDLED;
 }
+
+/**
+ * \brief Droq packet processor sceduler
+ * @param oct octeon device
+ */
+static void liquidio_schedule_droq_pkt_handlers(struct octeon_device *oct)
+{
+       struct octeon_device_priv *oct_priv =
+               (struct octeon_device_priv *)oct->priv;
+       struct octeon_droq *droq;
+       u64 oq_no;
+
+       if (oct->int_status & OCT_DEV_INTR_PKT_DATA) {
+               for (oq_no = 0; oq_no < MAX_OCTEON_OUTPUT_QUEUES(oct);
+                    oq_no++) {
+                       if (!(oct->droq_intr & BIT_ULL(oq_no)))
+                               continue;
+
+                       droq = oct->droq[oq_no];
+
+                       if (droq->ops.poll_mode) {
+                               droq->ops.napi_fn(droq);
+                               oct_priv->napi_mask |= (1 << oq_no);
+                       } else {
+                               tasklet_schedule(&oct_priv->droq_tasklet);
+                       }
+               }
+       }
+}
+
+/**
+ * \brief Interrupt handler for octeon
+ * @param irq unused
+ * @param dev octeon device
+ */
+irqreturn_t liquidio_legacy_intr_handler(int irq __attribute__((unused)),
+                                        void *dev)
+{
+       struct octeon_device *oct = (struct octeon_device *)dev;
+       irqreturn_t ret;
+
+       /* Disable our interrupts for the duration of ISR */
+       oct->fn_list.disable_interrupt(oct, OCTEON_ALL_INTR);
+
+       ret = oct->fn_list.process_interrupt_regs(oct);
+
+       if (ret == IRQ_HANDLED)
+               liquidio_schedule_droq_pkt_handlers(oct);
+
+       /* Re-enable our interrupts  */
+       if (!(atomic_read(&oct->status) == OCT_DEV_IN_RESET))
+               oct->fn_list.enable_interrupt(oct, OCTEON_ALL_INTR);
+
+       return ret;
+}
index 96ba5ec756ad65fb6a3fe30bdf1cd89b65a52a70..478144ddebe27b077a1c76533a003353696cab17 100644 (file)
@@ -901,62 +901,6 @@ static inline void update_link_status(struct net_device *netdev,
        }
 }
 
-/**
- * \brief Droq packet processor sceduler
- * @param oct octeon device
- */
-static void liquidio_schedule_droq_pkt_handlers(struct octeon_device *oct)
-{
-       struct octeon_device_priv *oct_priv =
-               (struct octeon_device_priv *)oct->priv;
-       u64 oq_no;
-       struct octeon_droq *droq;
-
-       if (oct->int_status & OCT_DEV_INTR_PKT_DATA) {
-               for (oq_no = 0; oq_no < MAX_OCTEON_OUTPUT_QUEUES(oct);
-                    oq_no++) {
-                       if (!(oct->droq_intr & BIT_ULL(oq_no)))
-                               continue;
-
-                       droq = oct->droq[oq_no];
-
-                       if (droq->ops.poll_mode) {
-                               droq->ops.napi_fn(droq);
-                               oct_priv->napi_mask |= (1 << oq_no);
-                       } else {
-                               tasklet_schedule(&oct_priv->droq_tasklet);
-                       }
-               }
-       }
-}
-
-/**
- * \brief Interrupt handler for octeon
- * @param irq unused
- * @param dev octeon device
- */
-static
-irqreturn_t liquidio_legacy_intr_handler(int irq __attribute__((unused)),
-                                        void *dev)
-{
-       struct octeon_device *oct = (struct octeon_device *)dev;
-       irqreturn_t ret;
-
-       /* Disable our interrupts for the duration of ISR */
-       oct->fn_list.disable_interrupt(oct, OCTEON_ALL_INTR);
-
-       ret = oct->fn_list.process_interrupt_regs(oct);
-
-       if (ret == IRQ_HANDLED)
-               liquidio_schedule_droq_pkt_handlers(oct);
-
-       /* Re-enable our interrupts  */
-       if (!(atomic_read(&oct->status) == OCT_DEV_IN_RESET))
-               oct->fn_list.enable_interrupt(oct, OCTEON_ALL_INTR);
-
-       return ret;
-}
-
 /**
  * \brief Setup interrupt for octeon device
  * @param oct octeon device
index 7454d711dd867a201587305998c902e6c3cc3533..de5eecb56a158e9badcf9f161b4c9c9c9c7effae 100644 (file)
@@ -172,6 +172,8 @@ int liquidio_setup_io_queues(struct octeon_device *octeon_dev, int ifidx);
 irqreturn_t liquidio_msix_intr_handler(int irq __attribute__((unused)),
                                       void *dev);
 
+irqreturn_t liquidio_legacy_intr_handler(int irq __attribute__((unused)),
+                                        void *dev);
 /**
  * \brief Register ethtool operations
  * @param netdev    pointer to network device