aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/aruba-2.6/patches
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2006-12-14 16:41:33 +0000
committerFelix Fietkau <nbd@openwrt.org>2006-12-14 16:41:33 +0000
commitbff468813f78f81e36ebb2a3f4354de7365e640f (patch)
treee0144a8d723cac2fd84505ec140dd0011541430a /target/linux/aruba-2.6/patches
parent7ca328b65927e12b4bb65a6d752f43b674498908 (diff)
downloadupstream-bff468813f78f81e36ebb2a3f4354de7365e640f.tar.gz
upstream-bff468813f78f81e36ebb2a3f4354de7365e640f.tar.bz2
upstream-bff468813f78f81e36ebb2a3f4354de7365e640f.zip
Upgrade to Linux 2.6.19
- Includes large parts of the patch from #1021 by dpalffy - Includes RB532 NAND driver changes by n0-1 SVN-Revision: 5789
Diffstat (limited to 'target/linux/aruba-2.6/patches')
-rw-r--r--target/linux/aruba-2.6/patches/000-aruba.patch49
-rw-r--r--target/linux/aruba-2.6/patches/001-flash.patch40
-rw-r--r--target/linux/aruba-2.6/patches/002-irq.patch8
-rw-r--r--target/linux/aruba-2.6/patches/003-pci.patch10
-rw-r--r--target/linux/aruba-2.6/patches/004-wdt.patch2
-rw-r--r--target/linux/aruba-2.6/patches/010-ar2313_enet.patch8
-rw-r--r--target/linux/aruba-2.6/patches/012-ehci_softirq.patch6
7 files changed, 41 insertions, 82 deletions
diff --git a/target/linux/aruba-2.6/patches/000-aruba.patch b/target/linux/aruba-2.6/patches/000-aruba.patch
index 1db6831f4c..2b5fb34d15 100644
--- a/target/linux/aruba-2.6/patches/000-aruba.patch
+++ b/target/linux/aruba-2.6/patches/000-aruba.patch
@@ -570,7 +570,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/nvram/nvram434.h linux-2.6.17-owrt/arch/m
diff -Nur linux-2.6.17/arch/mips/aruba/prom.c linux-2.6.17-owrt/arch/mips/aruba/prom.c
--- linux-2.6.17/arch/mips/aruba/prom.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.17-owrt/arch/mips/aruba/prom.c 2006-06-18 12:44:28.000000000 +0200
-@@ -0,0 +1,111 @@
+@@ -0,0 +1,114 @@
+/**************************************************************************
+ *
+ * BRIEF MODULE DESCRIPTION
@@ -609,7 +609,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/prom.c linux-2.6.17-owrt/arch/mips/aruba/
+ **************************************************************************
+ */
+
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <linux/init.h>
+#include <linux/mm.h>
+#include <linux/module.h>
@@ -629,7 +629,10 @@ diff -Nur linux-2.6.17/arch/mips/aruba/prom.c linux-2.6.17-owrt/arch/mips/aruba/
+unsigned int arch_has_pci=0;
+
+/* Kernel Boot parameters */
-+static unsigned char bootparm[] = "console=ttyS0,9600 root=/dev/mtdblock1 rootfstype=jffs2";
++static unsigned char bootparm[] =
++ "mtdparts=physmap-flash.0:3520k@0x080000(zImage),2880k@0x120000(JFFS2),8k@0x3f8000(NVRAM) "
++ "console=ttyS0,9600 root=/dev/mtdblock1 rootfstype=jffs2 ";
++
+
+extern unsigned long mips_machgroup;
+extern unsigned long mips_machtype;
@@ -725,7 +728,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/serial.c linux-2.6.17-owrt/arch/mips/arub
+ */
+
+
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <linux/init.h>
+#include <linux/sched.h>
+#include <linux/pci.h>
@@ -783,7 +786,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/serial.c linux-2.6.17-owrt/arch/mips/arub
diff -Nur linux-2.6.17/arch/mips/aruba/setup.c linux-2.6.17-owrt/arch/mips/aruba/setup.c
--- linux-2.6.17/arch/mips/aruba/setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.17-owrt/arch/mips/aruba/setup.c 2006-06-18 12:44:28.000000000 +0200
-@@ -0,0 +1,134 @@
+@@ -0,0 +1,128 @@
+/**************************************************************************
+ *
+ * BRIEF MODULE DESCRIPTION
@@ -840,9 +843,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/setup.c linux-2.6.17-owrt/arch/mips/aruba
+extern char *__init prom_getcmdline(void);
+
+extern void (*board_time_init) (void);
-+extern void (*board_timer_setup) (struct irqaction * irq);
+extern void aruba_time_init(void);
-+extern void aruba_timer_setup(struct irqaction *irq);
+extern void aruba_reset(void);
+
+#define epldMask ((volatile unsigned char *)0xB900000d)
@@ -874,12 +875,10 @@ diff -Nur linux-2.6.17/arch/mips/aruba/setup.c linux-2.6.17-owrt/arch/mips/aruba
+extern char * getenv(char *e);
+extern void unlock_ap60_70_flash(void);
+
-+void __init plat_setup(void)
++void __init plat_mem_setup(void)
+{
+ board_time_init = aruba_time_init;
+
-+ board_timer_setup = aruba_timer_setup;
-+
+ _machine_restart = aruba_machine_restart;
+ _machine_halt = aruba_machine_halt;
+ pm_power_off = aruba_machine_halt;
@@ -894,8 +893,6 @@ diff -Nur linux-2.6.17/arch/mips/aruba/setup.c linux-2.6.17-owrt/arch/mips/aruba
+ unlock_ap60_70_flash();
+
+ printk("BOARD - %s\n",getenv("boardname"));
-+
-+ return 0;
+}
+
+int page_is_ram(unsigned long pagenr)
@@ -960,7 +957,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/time.c linux-2.6.17-owrt/arch/mips/aruba/
+ **************************************************************************
+ */
+
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <linux/init.h>
+#include <linux/kernel_stat.h>
+#include <linux/sched.h>
@@ -1011,7 +1008,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/time.c linux-2.6.17-owrt/arch/mips/aruba/
+
+}
+
-+void __init aruba_timer_setup(struct irqaction *irq)
++void __init plat_timer_setup(struct irqaction *irq)
+{
+ /* we are using the cpu counter for timer interrupts */
+ setup_irq(MIPS_CPU_TIMER_IRQ, irq);
@@ -1029,7 +1026,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/time.c linux-2.6.17-owrt/arch/mips/aruba/
+ irq_enter();
+ kstat_this_cpu.irqs[irq]++;
+
-+ timer_interrupt(irq, NULL, regs);
++ timer_interrupt(irq, NULL);
+ irq_exit();
+}
diff -Nur linux-2.6.17/arch/mips/Kconfig linux-2.6.17-owrt/arch/mips/Kconfig
@@ -1243,7 +1240,7 @@ diff -Nur linux-2.6.17/drivers/net/rc32434_eth.c linux-2.6.17-owrt/drivers/net/r
+ **************************************************************************
+ */
+
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <linux/version.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
@@ -1849,7 +1846,7 @@ diff -Nur linux-2.6.17/drivers/net/rc32434_eth.c linux-2.6.17-owrt/drivers/net/r
+#ifdef RC32434_REVISION
+/* Ethernet Rx Overflow interrupt */
+static irqreturn_t
-+rc32434_ovr_interrupt(int irq, void *dev_id, struct pt_regs * regs)
++rc32434_ovr_interrupt(int irq, void *dev_id)
+{
+ struct net_device *dev = (struct net_device *)dev_id;
+ struct rc32434_local *lp;
@@ -1882,7 +1879,7 @@ diff -Nur linux-2.6.17/drivers/net/rc32434_eth.c linux-2.6.17-owrt/drivers/net/r
+
+/* Ethernet Tx Underflow interrupt */
+static irqreturn_t
-+rc32434_und_interrupt(int irq, void *dev_id, struct pt_regs * regs)
++rc32434_und_interrupt(int irq, void *dev_id)
+{
+ struct net_device *dev = (struct net_device *)dev_id;
+ struct rc32434_local *lp;
@@ -1915,7 +1912,7 @@ diff -Nur linux-2.6.17/drivers/net/rc32434_eth.c linux-2.6.17-owrt/drivers/net/r
+
+/* Ethernet Rx DMA interrupt */
+static irqreturn_t
-+rc32434_rx_dma_interrupt(int irq, void *dev_id, struct pt_regs * regs)
++rc32434_rx_dma_interrupt(int irq, void *dev_id)
+{
+ struct net_device *dev = (struct net_device *)dev_id;
+ struct rc32434_local* lp;
@@ -2129,7 +2126,7 @@ diff -Nur linux-2.6.17/drivers/net/rc32434_eth.c linux-2.6.17-owrt/drivers/net/r
+
+/* Ethernet Tx DMA interrupt */
+static irqreturn_t
-+rc32434_tx_dma_interrupt(int irq, void *dev_id, struct pt_regs * regs)
++rc32434_tx_dma_interrupt(int irq, void *dev_id)
+{
+ struct net_device *dev = (struct net_device *)dev_id;
+ struct rc32434_local *lp;
@@ -2630,11 +2627,11 @@ diff -Nur linux-2.6.17/drivers/net/rc32434_eth.h linux-2.6.17-owrt/drivers/net/r
+static int rc32434_open(struct net_device *dev);
+static int rc32434_send_packet(struct sk_buff *skb, struct net_device *dev);
+static void rc32434_mii_handler(unsigned long data);
-+static irqreturn_t rc32434_und_interrupt(int irq, void *dev_id, struct pt_regs * regs);
-+static irqreturn_t rc32434_rx_dma_interrupt(int irq, void *dev_id, struct pt_regs * regs);
-+static irqreturn_t rc32434_tx_dma_interrupt(int irq, void *dev_id, struct pt_regs * regs);
++static irqreturn_t rc32434_und_interrupt(int irq, void *dev_id);
++static irqreturn_t rc32434_rx_dma_interrupt(int irq, void *dev_id);
++static irqreturn_t rc32434_tx_dma_interrupt(int irq, void *dev_id);
+#ifdef RC32434_REVISION
-+static irqreturn_t rc32434_ovr_interrupt(int irq, void *dev_id, struct pt_regs * regs);
++static irqreturn_t rc32434_ovr_interrupt(int irq, void *dev_id);
+#endif
+static int rc32434_close(struct net_device *dev);
+static struct net_device_stats *rc32434_get_stats(struct net_device *dev);
@@ -6769,7 +6766,7 @@ diff -Nur linux-2.6.17/include/asm-mips/idt-boards/rc32434/rc32434.h linux-2.6.1
+#ifndef _RC32434_H_
+#define _RC32434_H_
+
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <linux/delay.h>
+#include <asm/io.h>
+#include <asm/idt-boards/rc32434/rc32434_timer.h>
@@ -9582,7 +9579,7 @@ diff -Nur linux-2.6.17/include/asm-mips/idt-boards/rc32438/rc32438.h linux-2.6.1
+
+#ifndef __IDT_RC32438_H__
+#define __IDT_RC32438_H__
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <linux/delay.h>
+#include <asm/io.h>
+#include <asm/idt-boards/rc32438/rc32438_timer.h>
diff --git a/target/linux/aruba-2.6/patches/001-flash.patch b/target/linux/aruba-2.6/patches/001-flash.patch
index f0b951370d..78bfd3df32 100644
--- a/target/linux/aruba-2.6/patches/001-flash.patch
+++ b/target/linux/aruba-2.6/patches/001-flash.patch
@@ -118,42 +118,4 @@ diff -Nur linux-2.6.15/drivers/mtd/chips/cfi_probe.c linux-2.6.15-openwrt/driver
cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL);
cfi_send_gen_cmd(0xFF, 0, base, map, cfi, cfi->device_type, NULL);
cfi_send_gen_cmd(0x98, 0x55, base, map, cfi, cfi->device_type, NULL);
-diff -Nur linux-2.6.15/drivers/mtd/maps/physmap.c linux-2.6.15-openwrt/drivers/mtd/maps/physmap.c
---- linux-2.6.15/drivers/mtd/maps/physmap.c 2006-01-03 04:21:10.000000000 +0100
-+++ linux-2.6.15-openwrt/drivers/mtd/maps/physmap.c 2006-01-10 00:32:32.000000000 +0100
-@@ -34,15 +34,31 @@
- static struct mtd_partition *mtd_parts;
- static int mtd_parts_nb;
-
--static int num_physmap_partitions;
--static struct mtd_partition *physmap_partitions;
-+static int num_physmap_partitions = 3;
-+static struct mtd_partition physmap_partitions[] = {
-+ {
-+ name: "zImage",
-+ size: 0x3f0000-0x80000,
-+ offset: 0x80000,
-+ },
-+ {
-+ name: "JFFS2",
-+ size: 0x3f0000-0x120000,
-+ offset: 0x120000,
-+ },
-+ {
-+ name: "NVRAM",
-+ size: 0x2000,
-+ offset: 0x3f8000,
-+ }
-+};
-
- static const char *part_probes[] __initdata = {"cmdlinepart", "RedBoot", NULL};
-
- void physmap_set_partitions(struct mtd_partition *parts, int num_parts)
- {
-- physmap_partitions=parts;
-- num_physmap_partitions=num_parts;
-+// physmap_partitions=parts;
-+// num_physmap_partitions=num_parts;
- }
- #endif /* CONFIG_MTD_PARTITIONS */
-
+
diff --git a/target/linux/aruba-2.6/patches/002-irq.patch b/target/linux/aruba-2.6/patches/002-irq.patch
index 137f18d588..cc5ea84c42 100644
--- a/target/linux/aruba-2.6/patches/002-irq.patch
+++ b/target/linux/aruba-2.6/patches/002-irq.patch
@@ -220,7 +220,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/irq.c linux-2.6.17-openwrt/arch/mips/arub
+ irq_desc[i].status = IRQ_DISABLED;
+ irq_desc[i].action = NULL;
+ irq_desc[i].depth = 1;
-+ irq_desc[i].handler = &aruba_irq_type;
++ irq_desc[i].chip = &aruba_irq_type;
+ spin_lock_init(&irq_desc[i].lock);
+ }
+}
@@ -263,7 +263,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/irq.c linux-2.6.17-openwrt/arch/mips/arub
+ pend = READ_PEND_MUSCAT(addr);
+ pend &= ~READ_MASK_MUSCAT(addr); // only unmasked interrupts
+ pend = 39 - rc32434_clz(pend);
-+ do_IRQ(pend + (group << 5), regs);
++ do_IRQ(pend + (group << 5));
+ }
+ break;
+ case MACH_ARUBA_AP65:
@@ -278,11 +278,11 @@ diff -Nur linux-2.6.17/arch/mips/aruba/irq.c linux-2.6.17-openwrt/arch/mips/arub
+ pend = READ_PEND_MERLOT(addr);
+ pend &= READ_MASK_MERLOT(addr); // only unmasked interrupts
+ pend = 31 - rc32434_clz(pend);
-+ do_IRQ(pend + GROUP0_IRQ_BASE, regs);
++ do_IRQ(pend + GROUP0_IRQ_BASE);
+ }
+ if ((ip = (cp0_cause & 0x3c00))) { // irq 2-5
+ pend = 31 - rc32434_clz(ip);
-+ do_IRQ(pend - GROUP0_IRQ_BASE, regs);
++ do_IRQ(pend - GROUP0_IRQ_BASE);
+ }
+ break;
+ }
diff --git a/target/linux/aruba-2.6/patches/003-pci.patch b/target/linux/aruba-2.6/patches/003-pci.patch
index 0cad12a087..1ab5da2d09 100644
--- a/target/linux/aruba-2.6/patches/003-pci.patch
+++ b/target/linux/aruba-2.6/patches/003-pci.patch
@@ -40,7 +40,7 @@ diff -Nur linux-2.6.15/arch/mips/pci/fixup-aruba.c linux-2.6.15-openwrt/arch/mip
+ **************************************************************************
+ */
+
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <linux/types.h>
+#include <linux/pci.h>
+#include <linux/kernel.h>
@@ -120,10 +120,10 @@ diff -Nur linux-2.6.15/arch/mips/pci/fixup-aruba.c linux-2.6.15-openwrt/arch/mip
diff -Nur linux-2.6.15/arch/mips/pci/Makefile linux-2.6.15-openwrt/arch/mips/pci/Makefile
--- linux-2.6.15/arch/mips/pci/Makefile 2006-01-03 04:21:10.000000000 +0100
+++ linux-2.6.15-openwrt/arch/mips/pci/Makefile 2006-01-10 00:32:32.000000000 +0100
-@@ -56,3 +56,4 @@
- obj-$(CONFIG_TOSHIBA_RBTX4938) += fixup-tx4938.o ops-tx4938.o
+@@ -53,3 +53,4 @@
obj-$(CONFIG_VICTOR_MPC30X) += fixup-mpc30x.o
obj-$(CONFIG_ZAO_CAPCELLA) += fixup-capcella.o
+ obj-$(CONFIG_WR_PPMC) += fixup-wrppmc.o
+obj-$(CONFIG_MACH_ARUBA) += fixup-aruba.o ops-aruba.o pci-aruba.o
diff -Nur linux-2.6.15/arch/mips/pci/ops-aruba.c linux-2.6.15-openwrt/arch/mips/pci/ops-aruba.c
--- linux-2.6.15/arch/mips/pci/ops-aruba.c 1970-01-01 01:00:00.000000000 +0100
@@ -167,7 +167,7 @@ diff -Nur linux-2.6.15/arch/mips/pci/ops-aruba.c linux-2.6.15-openwrt/arch/mips/
+ **************************************************************************
+ */
+
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <linux/init.h>
+#include <linux/pci.h>
+#include <linux/types.h>
@@ -375,7 +375,7 @@ diff -Nur linux-2.6.15/arch/mips/pci/pci-aruba.c linux-2.6.15-openwrt/arch/mips/
+ **************************************************************************
+ */
+
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <linux/types.h>
+#include <linux/pci.h>
+#include <linux/kernel.h>
diff --git a/target/linux/aruba-2.6/patches/004-wdt.patch b/target/linux/aruba-2.6/patches/004-wdt.patch
index 15fbffa043..2f034afbef 100644
--- a/target/linux/aruba-2.6/patches/004-wdt.patch
+++ b/target/linux/aruba-2.6/patches/004-wdt.patch
@@ -2,7 +2,7 @@ diff -Nur linux-2.6.15.1/drivers/char/watchdog/wdt_merlot.c linux-2.6.15.1-openw
--- linux-2.6.15.1/drivers/char/watchdog/wdt_merlot.c 2006-01-26 21:14:02.204626250 -0800
+++ linux-2.6.15.1-openwrt/drivers/char/watchdog/wdt_merlot.c 2006-02-02 20:31:43.000000000 -0800
@@ -0,0 +1,110 @@
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <linux/module.h>
+#include <linux/types.h>
+#include <linux/miscdevice.h>
diff --git a/target/linux/aruba-2.6/patches/010-ar2313_enet.patch b/target/linux/aruba-2.6/patches/010-ar2313_enet.patch
index d71d96f452..0488bd4548 100644
--- a/target/linux/aruba-2.6/patches/010-ar2313_enet.patch
+++ b/target/linux/aruba-2.6/patches/010-ar2313_enet.patch
@@ -21,7 +21,7 @@ diff -Nur linux-2.6.17/drivers/net/ar2313/ar2313.c linux-2.6.17-owrt/drivers/net
+ * modified for the AR2313.
+ */
+
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <linux/module.h>
+#include <linux/version.h>
+#include <linux/types.h>
@@ -1188,7 +1188,7 @@ diff -Nur linux-2.6.17/drivers/net/ar2313/ar2313.c linux-2.6.17-owrt/drivers/net
+ tasklet_hi_schedule(&sp->rx_tasklet);
+}
+
-+static irqreturn_t ar2313_interrupt(int irq, void *dev_id, struct pt_regs *ptregs)
++static irqreturn_t ar2313_interrupt(int irq, void *dev_id)
+{
+ struct net_device *dev = (struct net_device *)dev_id;
+ struct ar2313_private *sp = dev->priv;
@@ -1658,7 +1658,7 @@ diff -Nur linux-2.6.17/drivers/net/ar2313/ar2313.h linux-2.6.17-owrt/drivers/net
+#ifndef _AR2313_H_
+#define _AR2313_H_
+
-+#include <linux/config.h>
++#include <linux/autoconf.h>
+#include <asm/bootinfo.h>
+#include "platform.h"
+
@@ -1834,7 +1834,7 @@ diff -Nur linux-2.6.17/drivers/net/ar2313/ar2313.h linux-2.6.17-owrt/drivers/net
+static void ar2313_dump_regs(struct net_device *dev);
+#endif
+static void ar2313_load_rx_ring(struct net_device *dev, int bufs);
-+static irqreturn_t ar2313_interrupt(int irq, void *dev_id, struct pt_regs *regs);
++static irqreturn_t ar2313_interrupt(int irq, void *dev_id);
+static int ar2313_open(struct net_device *dev);
+static int ar2313_start_xmit(struct sk_buff *skb, struct net_device *dev);
+static int ar2313_close(struct net_device *dev);
diff --git a/target/linux/aruba-2.6/patches/012-ehci_softirq.patch b/target/linux/aruba-2.6/patches/012-ehci_softirq.patch
index ae7f9f26c8..4c187d12b1 100644
--- a/target/linux/aruba-2.6/patches/012-ehci_softirq.patch
+++ b/target/linux/aruba-2.6/patches/012-ehci_softirq.patch
@@ -6,9 +6,9 @@ diff -Nurb linux-2.6.16.1/drivers/usb/host/ehci.h linux-patched/drivers/usb/host
struct timer_list watchdog;
+ struct timer_list softirq;
- struct notifier_block reboot_notifier;
unsigned long actions;
unsigned stamp;
+ unsigned long next_statechange;
diff -Nurb linux-2.6.16.1/drivers/usb/host/ehci-hcd.c linux-patched/drivers/usb/host/ehci-hcd.c
--- linux-2.6.16.1/drivers/usb/host/ehci-hcd.c 2006-03-27 22:49:02.000000000 -0800
+++ linux-patched/drivers/usb/host/ehci-hcd.c 2006-04-07 13:20:13.000000000 -0700
@@ -24,13 +24,13 @@ diff -Nurb linux-2.6.16.1/drivers/usb/host/ehci-hcd.c linux-patched/drivers/usb/
#include "ehci-sched.c"
/*-------------------------------------------------------------------------*/
-+static irqreturn_t ehci_irq (struct usb_hcd *hcd, struct pt_regs *regs);
++static irqreturn_t ehci_irq (struct usb_hcd *hcd);
+
+static void ehci_softirq (unsigned long param)
+{
+ struct ehci_hcd *ehci = (struct ehci_hcd *) param;
+
-+ if (ehci_irq(ehci_to_hcd(ehci),0) != IRQ_NONE)
++ if (ehci_irq(ehci_to_hcd(ehci)) != IRQ_NONE)
+ set_bit(HCD_FLAG_SAW_IRQ, &(ehci_to_hcd(ehci))->flags);
+ mod_timer (&ehci->softirq, jiffies + EHCI_SOFTIRQ);
+}