diff options
Diffstat (limited to 'recipes/ixp425-eth/files/intdriven.patch')
-rw-r--r-- | recipes/ixp425-eth/files/intdriven.patch | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/recipes/ixp425-eth/files/intdriven.patch b/recipes/ixp425-eth/files/intdriven.patch new file mode 100644 index 0000000000..88b2444b5e --- /dev/null +++ b/recipes/ixp425-eth/files/intdriven.patch @@ -0,0 +1,98 @@ +--- ixp425-eth-1.1-r4/ixp425_eth.c 2005-06-16 00:47:55.360598896 -0700 ++++ ixp425-eth-1.1-r4/ixp425_eth.c 2005-06-16 18:42:09.840377651 -0700 +@@ -1028,6 +1030,7 @@ + */ + + /* PMU Timer reload : this should be done at each interrupt */ ++#if 0 /* UNUSED - used for polling */ + static void dev_pmu_timer_restart(void) + { + __asm__(" mcr p14,0,%0,c1,c1,0\n" /* write current counter */ +@@ -1039,6 +1042,7 @@ + " mcr p14,0,r1,c4,c1,0\n" /* enable interrupts */ + : : : "r1"); + } ++#endif + + /* Internal ISR : run a few thousand times per second and calls + * the queue manager dispatcher entry point. +@@ -1086,6 +1088,7 @@ + /* Internal ISR : run a few thousand times per second and calls + * the ethernet entry point. + */ ++#if 0 /* UNUSED - used for polling */ + static irqreturn_t dev_poll_os_isr(int irg, void *dev_id, struct pt_regs *regs) + { + int qlevel = __get_cpu_var(softnet_data).input_pkt_queue.qlen; +@@ -1127,8 +1130,10 @@ + ixEthTxFrameDoneQMCallback(0,0); + return IRQ_HANDLED; + } ++#endif + + /* initialize the PMU timer */ ++#if 0 /* UNUSED - used for polling */ + static int dev_pmu_timer_init(void) + { + UINT32 controlRegisterMask = +@@ -1164,6 +1169,7 @@ + + return 0; + } ++#endif + + /* stops the timer when the module terminates */ + static void dev_pmu_timer_disable(void) +@@ -1636,6 +1636,7 @@ + return 0; + } + ++#if 0 /* UNUSED - used for polling */ + /* The QMgr dispatch entry point can be called from the + * IXP425_INT_LVL_QM1 irq (which will trigger + * an interrupt for every packet) or a timer (which will +@@ -1686,7 +1687,7 @@ + */ + if (request_irq(IXP425_INT_LVL_QM1, + dev_qmgr_os_isr, +- SA_SHIRQ, ++ SA_SHIRQ | SA_SAMPLE_RANDOM, + DRV_NAME, + (void *)IRQ_ANY_PARAMETER)) + { +@@ -1710,6 +1711,7 @@ + } + return 0; + } ++#endif + + /* Enable the MAC port. + * Called on do_dev_open, dev_tx_timeout and mtu size changes +@@ -2234,7 +2236,7 @@ + */ + if (request_irq(IXP425_INT_LVL_QM1, + dev_qmgr_os_isr, +- SA_SHIRQ, ++ SA_SHIRQ | SA_SAMPLE_RANDOM, + DRV_NAME, + (void *)IRQ_ANY_PARAMETER)) + { +@@ -2669,6 +2671,10 @@ + + TRACE; + ++#if 0 /* DISABLE polling */ ++ /* Enable Interrupt driven driver ++ * see http://www.nslu2-linux.org/wiki/OpenSlug/StabilizeEthernetDriver ++ */ + if (no_csr_init == 0) /* module parameter */ + { + /* The QMgr dispatch entry point is called from the IXP425_INT_LVL_QM1 irq +@@ -2681,6 +2687,7 @@ + return res; + } + } ++#endif + + TRACE; + |