diff --git a/.config b/.config
index aa04636..26fe54c 100644
--- a/.config
+++ b/.config
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.34.2
-# Sat Aug  7 23:04:24 2010
+# Thu Sep  9 13:32:04 2010
 #
 CONFIG_ARM=y
 CONFIG_HAVE_PWM=y
@@ -411,9 +411,13 @@ CONFIG_HAVE_AOUT=y
 # Power management options
 #
 CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_ADVANCED_DEBUG is not set
+CONFIG_PM_VERBOSE=y
+CONFIG_CAN_PM_TRACE=y
 CONFIG_PM_SLEEP=y
 CONFIG_SUSPEND=y
+# CONFIG_PM_TEST_SUSPEND is not set
 CONFIG_SUSPEND_FREEZER=y
 # CONFIG_APM_EMULATION is not set
 # CONFIG_PM_RUNTIME is not set
@@ -1394,7 +1398,6 @@ CONFIG_SOUND_OSS_CORE_PRECLAIM=y
 CONFIG_SND=y
 CONFIG_SND_TIMER=y
 CONFIG_SND_PCM=y
-CONFIG_SND_RAWMIDI=m
 CONFIG_SND_JACK=y
 CONFIG_SND_SEQUENCER=y
 CONFIG_SND_SEQ_DUMMY=y
@@ -1408,7 +1411,7 @@ CONFIG_SND_SEQUENCER_OSS=y
 # CONFIG_SND_VERBOSE_PROCFS is not set
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
-CONFIG_SND_RAWMIDI_SEQ=m
+# CONFIG_SND_RAWMIDI_SEQ is not set
 # CONFIG_SND_OPL3_LIB_SEQ is not set
 # CONFIG_SND_OPL4_LIB_SEQ is not set
 # CONFIG_SND_SBAWE_SEQ is not set
@@ -1633,7 +1636,7 @@ CONFIG_USB_TRANCEVIBRATOR=m
 CONFIG_USB_IOWARRIOR=m
 # CONFIG_USB_TEST is not set
 # CONFIG_USB_ISIGHTFW is not set
-CONFIG_USB_GADGET=m
+CONFIG_USB_GADGET=y
 # CONFIG_USB_GADGET_DEBUG_FILES is not set
 CONFIG_USB_GADGET_VBUS_DRAW=500
 CONFIG_USB_GADGET_SELECTED=y
@@ -1648,7 +1651,7 @@ CONFIG_USB_GADGET_SELECTED=y
 # CONFIG_USB_GADGET_S3C_HSOTG is not set
 # CONFIG_USB_GADGET_IMX is not set
 CONFIG_USB_GADGET_S3C2410=y
-CONFIG_USB_S3C2410=m
+CONFIG_USB_S3C2410=y
 # CONFIG_USB_S3C2410_DEBUG is not set
 # CONFIG_USB_GADGET_M66592 is not set
 # CONFIG_USB_GADGET_AMD5536UDC is not set
@@ -1659,23 +1662,20 @@ CONFIG_USB_S3C2410=m
 # CONFIG_USB_GADGET_LANGWELL is not set
 # CONFIG_USB_GADGET_DUMMY_HCD is not set
 # CONFIG_USB_GADGET_DUALSPEED is not set
-CONFIG_USB_ZERO=m
-CONFIG_USB_AUDIO=m
-CONFIG_USB_ETH=m
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_AUDIO is not set
+CONFIG_USB_ETH=y
 CONFIG_USB_ETH_RNDIS=y
 # CONFIG_USB_ETH_EEM is not set
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FILE_STORAGE=m
-# CONFIG_USB_FILE_STORAGE_TEST is not set
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_MIDI_GADGET=m
-CONFIG_USB_G_PRINTER=m
-CONFIG_USB_CDC_COMPOSITE=m
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_MASS_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_CDC_COMPOSITE is not set
 # CONFIG_USB_G_NOKIA is not set
-CONFIG_USB_G_MULTI=m
-CONFIG_USB_G_MULTI_RNDIS=y
-CONFIG_USB_G_MULTI_CDC=y
+# CONFIG_USB_G_MULTI is not set
 
 #
 # OTG and related infrastructure
diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c
index 08e9dcc..76a9f4d 100644
--- a/arch/arm/mach-s3c2440/mach-gta02.c
+++ b/arch/arm/mach-s3c2440/mach-gta02.c
@@ -1533,6 +1533,28 @@ static void __init gta02_machine_init(void)
 	pm_power_off = gta02_poweroff;
 }
 
+void DEBUG_LED(int n)
+{
+//	int *p = NULL;
+	switch (n) {
+	case 0:
+		gpio_direction_output(GTA02_GPIO_PWR_LED1, 0);
+		gpio_direction_output(GTA02_GPIO_PWR_LED2, 0);
+		gpio_direction_output(GTA02_GPIO_AUX_LED, 0);
+		break;
+	case 1:
+		gpio_direction_output(GTA02_GPIO_PWR_LED1, 1);
+		break;
+	case 2:
+		gpio_direction_output(GTA02_GPIO_PWR_LED2, 1);
+		break;
+	default:
+		gpio_direction_output(GTA02_GPIO_AUX_LED, 1);
+		break;
+	}
+//	printk(KERN_ERR"die %d\n", *p);
+}
+EXPORT_SYMBOL_GPL(DEBUG_LED);
 
 MACHINE_START(NEO1973_GTA02, "GTA02")
 	/* Maintainer: Nelson Castillo <arhuaco@freaks-unidos.net> */
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index 941fcb8..c9887fc 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -388,8 +388,11 @@ static char *pm_verb(int event)
 	}
 }
 
+extern int pm_counter;
+
 static void pm_dev_dbg(struct device *dev, pm_message_t state, char *info)
 {
+	printk(KERN_ERR "pm_counter %d\n", pm_counter);
 	dev_dbg(dev, "%s%s%s\n", info, pm_verb(state.event),
 		((state.event & PM_EVENT_SLEEP) && device_may_wakeup(dev)) ?
 		", may wakeup" : "");
diff --git a/kernel/printk.c b/kernel/printk.c
index 75077ad..bb9605f 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -662,6 +662,17 @@ static inline void printk_delay(void)
 	}
 }
 
+static inline void debug_delay(int m)
+{
+	while (m--) {
+		mdelay(1);
+		touch_nmi_watchdog();
+	}
+}
+
+extern void DEBUG_LED(int n);
+int pm_counter;
+
 asmlinkage int vprintk(const char *fmt, va_list args)
 {
 	int printed_len = 0;
@@ -669,10 +680,39 @@ asmlinkage int vprintk(const char *fmt, va_list args)
 	unsigned long flags;
 	int this_cpu;
 	char *p;
+	int i;
+	int led;
 
 	boot_delay_msec();
 	printk_delay();
 
+	if(strstr(fmt, "PM: Entering")) {
+		pm_counter = 10;
+	}
+
+	if(strstr(fmt, "pm_counter")) {
+	  debug_delay(2000);
+	  for(i = 0; i < ((pm_counter / 100) % 10); i++) {
+		  DEBUG_LED(3);
+		  debug_delay(100);
+		  DEBUG_LED(0);
+		  debug_delay(100);
+	  }
+	  for(i = 0; i < ((pm_counter / 10) % 10); i++) {
+		  DEBUG_LED(2);
+		  debug_delay(100);
+		  DEBUG_LED(0);
+		  debug_delay(100);
+	  }
+	  for(i = 0; i < (pm_counter % 10); i++) {
+		  DEBUG_LED(1);
+		  debug_delay(100);
+		  DEBUG_LED(0);
+		  debug_delay(100);
+	  }
+	  pm_counter++;
+	}
+
 	preempt_disable();
 	/* This stops the holder of console_sem just where we want him */
 	raw_local_irq_save(flags);

