add support for target 3c24xx (more known as Openmoko GTA02 "Freerunner") and merge...
[openwrt/staging/florian.git] / target / linux / s3c24xx / patches / 0205-From-cede5c6c9b06ecbb0f7f2df7b7070092b87ddaf8-Mon-Se.patch
diff --git a/target/linux/s3c24xx/patches/0205-From-cede5c6c9b06ecbb0f7f2df7b7070092b87ddaf8-Mon-Se.patch b/target/linux/s3c24xx/patches/0205-From-cede5c6c9b06ecbb0f7f2df7b7070092b87ddaf8-Mon-Se.patch
new file mode 100755 (executable)
index 0000000..7697510
--- /dev/null
@@ -0,0 +1,47 @@
+From 589ebad15051f452feb95719db6b219dc221af40 Mon Sep 17 00:00:00 2001
+From: Holger Freyther <zecke@openmoko.org>
+Date: Fri, 25 Jul 2008 23:06:18 +0100
+Subject: [PATCH] From cede5c6c9b06ecbb0f7f2df7b7070092b87ddaf8 Mon Sep 17 00:00:00 2001
+ Subject: [PATCH] [pcf50633] Avoid ooops on start with inserted usb cable
+     The pcf50633_global might not be initialized when we get the first
+     usb interrupt. We would oops inside the dev_err because we made up
+     a struct device.
+
+Signed-Off-By: Holger Freyther <zecke@openmoko.org>
+---
+ arch/arm/mach-s3c2440/mach-gta02.c |    3 +++
+ drivers/i2c/chips/pcf50633.c       |    4 +---
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c
+index 7118332..b3d3797 100644
+--- a/arch/arm/mach-s3c2440/mach-gta02.c
++++ b/arch/arm/mach-s3c2440/mach-gta02.c
+@@ -883,6 +883,9 @@ static void gta02_udc_command(enum s3c2410_udc_cmd_e cmd)
+ static void gta02_udc_vbus_draw(unsigned int ma)
+ {
++        if (!pcf50633_global)
++              return;
++
+       pcf50633_notify_usb_current_limit_change(pcf50633_global, ma);
+ }
+diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c
+index ead4273..76bb886 100644
+--- a/drivers/i2c/chips/pcf50633.c
++++ b/drivers/i2c/chips/pcf50633.c
+@@ -690,9 +690,7 @@ int pcf50633_notify_usb_current_limit_change(struct pcf50633_data *pcf,
+        * have to bail with error since we can't even schedule the work
+        */
+       if (!pcf) {
+-              dev_err(&pcf->client.dev,
+-                      "pcf50633_notify_usb_current_limit_change "
+-                      "called with NULL pcf\n");
++              printk(KERN_ERR "pcf50633_notify_usb_current_limit called with NULL pcf\n");
+               return -EBUSY;
+       }
+-- 
+1.5.6.3
+