diff --git a/drivers/staging/line6/pod.h b/drivers/staging/line6/pod.h
index 7051ca6..d8e38a9 100644
--- a/drivers/staging/line6/pod.h
+++ b/drivers/staging/line6/pod.h
@@ -1,7 +1,7 @@
 /*
- * Line6 Linux USB driver - 0.8.0
+ * Line6 Linux USB driver - 0.9.0
  *
- * Copyright (C) 2004-2009 Markus Grabner (grabner@icg.tugraz.at)
+ * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at)
  *
  *	This program is free software; you can redistribute it and/or
  *	modify it under the terms of the GNU General Public License as
@@ -13,15 +13,14 @@
 #define POD_H
 
 
-#include "driver.h"
-
+#include <linux/interrupt.h>
 #include <linux/spinlock.h>
 #include <linux/usb.h>
 #include <linux/wait.h>
-#include <linux/workqueue.h>
 
 #include <sound/core.h>
 
+#include "driver.h"
 #include "dumprequest.h"
 
 
@@ -42,163 +41,156 @@
 */
 #define POD_CONTROL_SIZE 0x80
 #define POD_BUFSIZE_DUMPREQ 7
-#define POD_STARTUP_DELAY 3
-
+#define POD_STARTUP_DELAY 3000
 
 /**
-	 Data structure for values that need to be requested explicitly.
-	 This is the case for system and tuner settings.
+	Data structure for values that need to be requested explicitly.
+	This is the case for system and tuner settings.
 */
 struct ValueWait {
-	unsigned short value;
+	int value;
 	wait_queue_head_t wait;
 };
 
 /**
-	 Binary PodXT Pro program dump
+	Binary PODxt Pro program dump
 */
 struct pod_program {
 	/**
-		 Header information (including program name).
+		Header information (including program name).
 	*/
 	unsigned char header[0x20];
 
 	/**
-		 Program parameters.
+		Program parameters.
 	*/
 	unsigned char control[POD_CONTROL_SIZE];
 };
 
 struct usb_line6_pod {
 	/**
-		 Generic Line6 USB data.
+		Generic Line6 USB data.
 	*/
 	struct usb_line6 line6;
 
 	/**
-		 Dump request structure.
+		Dump request structure.
 	*/
 	struct line6_dump_request dumpreq;
 
 	/**
-		 Current program number.
+		Current program number.
 	*/
 	unsigned char channel_num;
 
 	/**
-		 Current program settings.
+		Current program settings.
 	*/
 	struct pod_program prog_data;
 
 	/**
-		 Buffer for data retrieved from or to be stored on PODxt Pro.
+		Buffer for data retrieved from or to be stored on PODxt Pro.
 	*/
 	struct pod_program prog_data_buf;
 
 	/**
-		 Buffer for requesting version number.
-	*/
-	unsigned char *buffer_versionreq;
-
-	/**
-		 Tuner mute mode.
+		Tuner mute mode.
 	*/
 	struct ValueWait tuner_mute;
 
 	/**
-		 Tuner base frequency (typically 440Hz).
+		Tuner base frequency (typically 440Hz).
 	*/
 	struct ValueWait tuner_freq;
 
 	/**
-		 Note received from tuner.
+		Note received from tuner.
 	*/
 	struct ValueWait tuner_note;
 
 	/**
-		 Pitch value received from tuner.
+		Pitch value received from tuner.
 	*/
 	struct ValueWait tuner_pitch;
 
 	/**
-		 Instrument monitor level.
+		Instrument monitor level.
 	*/
 	struct ValueWait monitor_level;
 
 	/**
-		 Audio routing mode.
-		 0: send processed guitar
-		 1: send clean guitar
-		 2: send clean guitar re-amp playback
-		 3: send re-amp playback
+		Audio routing mode.
+		0: send processed guitar
+		1: send clean guitar
+		2: send clean guitar re-amp playback
+		3: send re-amp playback
 	*/
 	struct ValueWait routing;
 
 	/**
-		 Wait for audio clipping event.
+		Wait for audio clipping event.
 	*/
 	struct ValueWait clipping;
 
 	/**
-		 Bottom-half for creation of sysfs special files.
+		Timer for device initializaton.
 	*/
-	struct work_struct create_files_work;
+	struct timer_list startup_timer;
 
 	/**
-		 Dirty flags for access to parameter data.
+		Work handler for device initializaton.
+	*/
+	struct work_struct startup_work;
+
+	/**
+		Current progress in startup procedure.
+	*/
+	int startup_progress;
+
+	/**
+		Dirty flags for access to parameter data.
 	*/
 	unsigned long param_dirty[POD_CONTROL_SIZE / sizeof(unsigned long)];
 
 	/**
-		 Some atomic flags.
+		Some atomic flags.
 	*/
 	unsigned long atomic_flags;
 
 	/**
-		 Counter for startup process.
-	*/
-	int startup_count;
-
-	/**
-		 Serial number of device.
+		Serial number of device.
 	*/
 	int serial_number;
 
 	/**
-		 Firmware version (x 100).
+		Firmware version (x 100).
 	*/
 	int firmware_version;
 
 	/**
-		 Device ID.
+		Device ID.
 	*/
 	int device_id;
 
 	/**
-		 Flag to indicate modification of current program settings.
+		Flag to indicate modification of current program settings.
 	*/
 	char dirty;
 
 	/**
-		 Flag if initial firmware version request has been successful.
-	*/
-	char versionreq_ok;
-
-	/**
-		 Flag to enable MIDI postprocessing.
+		Flag to enable MIDI postprocessing.
 	*/
 	char midi_postprocess;
 };
 
 
-extern void pod_disconnect(struct usb_interface *interface);
-extern int pod_init(struct usb_interface *interface, struct usb_line6_pod *pod);
-extern void pod_midi_postprocess(struct usb_line6_pod *pod,
-				 unsigned char *data, int length);
-extern void pod_process_message(struct usb_line6_pod *pod);
-extern void pod_receive_parameter(struct usb_line6_pod *pod, int param);
-extern void pod_transmit_parameter(struct usb_line6_pod *pod, int param,
-				   int value);
+extern void line6_pod_disconnect(struct usb_interface *interface);
+extern int line6_pod_init(struct usb_interface *interface, struct usb_line6_pod *pod);
+extern void line6_pod_midi_postprocess(struct usb_line6_pod *pod,
+				       unsigned char *data, int length);
+extern void line6_pod_process_message(struct usb_line6_pod *pod);
+extern void line6_pod_transmit_parameter(struct usb_line6_pod *pod, int param,
+					 int value);
 
 
 #endif
