--- /dev/null
+diff -uNr atmelwlandriver/src/usb.orig/reset_device.c atmelwlandriver/src/usb/reset_device.c
+--- atmelwlandriver/src/usb.orig/reset_device.c 2004-06-05 06:11:18.000000000 +0200
++++ atmelwlandriver/src/usb/reset_device.c 2004-07-18 23:50:44.597568680 +0200
+@@ -21,6 +21,7 @@
+ #include "vnetusba.h"
+ #include "hub.h"
+ #include "hcd.h"
++#include <linux/delay.h>
+ #include "linux/device.h"
+
+ static DECLARE_MUTEX(usb_address0_sem);
+@@ -551,7 +552,7 @@
+ delay_time < HUB_RESET_TIMEOUT;
+ delay_time += delay) {
+ /* wait to give the device a chance to reset */
+- wait_ms(delay);
++ mdelay(delay);
+
+ /* read and decode port status */
+ ret = __hub_port_status(hub, port, &portstatus, &portchange);
+@@ -1057,7 +1058,7 @@
+ if (retval >= 0)
+ break;
+ printk(KERN_INFO "TON PINOUME EDW1\n");
+- wait_ms(200);
++ mdelay(200);
+ }
+ if (retval < 0) {
+ printk(KERN_INFO "TON PINOUME EDW2\n");
+@@ -1080,14 +1081,14 @@
+ * FIXME assumes device->descriptor cacheline is dma-coherent
+ * and so does usb_get_device_descriptor
+ */
+- wait_ms(10);
++ mdelay(10);
+ printk(KERN_INFO "TON PINOUME EDW4\n");
+ retval = usb_get_descriptor(dev, USB_DT_DEVICE, 0,
+ &dev->descriptor, 8);
+ printk(KERN_INFO "TON PINOUME EDW5\n");
+ if (retval >= 8)
+ break;
+- wait_ms(100);
++ mdelay(100);
+ }
+ if (retval != 8) {
+ dev_err(&dev->dev, "device descriptor read/%s, error %d\n",
+@@ -1213,7 +1214,7 @@
+ }
+
+ /* Let the SET_ADDRESS settle */
+- wait_ms(10);
++ mdelay(10);
+
+ up(&usb_address0_sem);
+
+diff -uNr atmelwlandriver/src/usb.orig/vnet.c atmelwlandriver/src/usb/vnet.c
+--- atmelwlandriver/src/usb.orig/vnet.c 2004-06-05 06:11:18.000000000 +0200
++++ atmelwlandriver/src/usb/vnet.c 2004-07-18 23:50:29.620845488 +0200
+@@ -20,6 +20,7 @@
+
+ **************************************************************************************/
+ #include "vnetusba.h"
++#include <linux/delay.h>
+ #include <linux/wireless.h>
+ #include "command.h"
+ #include "rx.h"
+@@ -622,7 +623,7 @@
+
+ if (pTxList->status & UNDER_SUBMIT) {
+ dbgcond(DBG_TX, "tx packet %p dropped\n", pTxList);
+- wait_ms(10);
++ mdelay(10);
+ pTxList->status &= ~UNDER_SUBMIT; /* jal: shall we inform USB somehow ??? */
+ }
+
+diff -uNr atmelwlandriver/src/usb.orig/vnetusba.c atmelwlandriver/src/usb/vnetusba.c
+--- atmelwlandriver/src/usb.orig/vnetusba.c 2004-07-18 23:27:40.000000000 +0200
++++ atmelwlandriver/src/usb/vnetusba.c 2004-07-18 23:49:34.409238928 +0200
+@@ -1320,9 +1320,6 @@
+
+ static void __exit usb_vnet_exit(void)
+ {
+-#if (LINUX_VERSION_CODE < 0x020500)
+- wait_ms(250); //wait for call_usermodehelper to finish.
+-#endif
+ //printk("AtmelWlanDriver Is deregistered!\n");
+ usb_deregister(&vnet_driver);
+ }