changed Makefile and profiles, added patches for kernel 2.6.24 (stable-branch of...
[openwrt/staging/florian.git] / target / linux / s3c24xx / patches-2.6.26 / 0128-gta01-fix-jbt-platform-missing-members.patch.patch
diff --git a/target/linux/s3c24xx/patches-2.6.26/0128-gta01-fix-jbt-platform-missing-members.patch.patch b/target/linux/s3c24xx/patches-2.6.26/0128-gta01-fix-jbt-platform-missing-members.patch.patch
new file mode 100755 (executable)
index 0000000..5887cf7
--- /dev/null
@@ -0,0 +1,84 @@
+From a471ebdb87d610c8e0b85c01b7a2b95c13a869cc Mon Sep 17 00:00:00 2001
+From: Mike Westerhof <mwester@dls.net>
+Date: Fri, 25 Jul 2008 23:06:07 +0100
+Subject: [PATCH] gta01-fix-jbt-platform-missing-members.patch
+
+Created an attachment (id=594) / BZ#79
+Add missing platform_data that caused the GTA01 to crash on suspend/resume
+
+The interface to the jbt6k74 driver changed slightly; this patch adds the
+missing platform_data for the GTA01.  This prevents a crash while suspending.
+This patch also makes some minor changes to cleanup and clarify some debug
+messages.
+Signed-off-by: Mike Westerhof <mwester@dls.net>
+---
+ arch/arm/mach-s3c2410/mach-gta01.c |   21 ++++++++++++++++-----
+ 1 files changed, 16 insertions(+), 5 deletions(-)
+
+diff --git a/arch/arm/mach-s3c2410/mach-gta01.c b/arch/arm/mach-s3c2410/mach-gta01.c
+index ff08449..a77ed3d 100644
+--- a/arch/arm/mach-s3c2410/mach-gta01.c
++++ b/arch/arm/mach-s3c2410/mach-gta01.c
+@@ -73,6 +73,7 @@
+ #include <asm/plat-s3c24xx/pm.h>
+ #include <asm/plat-s3c24xx/udc.h>
+ #include <asm/plat-s3c24xx/neo1973.h>
++#include <linux/jbt6k74.h>
+ static struct map_desc gta01_iodesc[] __initdata = {
+       {
+@@ -389,7 +390,7 @@ static void gta01_mmc_set_power(unsigned char power_mode, unsigned short vdd)
+       int bit;
+       int mv = 1700; /* 1.7V for MMC_VDD_165_195 */
+-      printk(KERN_DEBUG "mmc_set_power(power_mode=%u, vdd=%u\n",
++      printk(KERN_DEBUG "mmc_set_power(power_mode=%u, vdd=%u)\n",
+              power_mode, vdd);
+       switch (system_rev) {
+@@ -499,10 +500,20 @@ static struct s3c2410_ts_mach_info gta01_ts_cfg = {
+ /* SPI */
++void gta01_jbt6k74_reset(int devidx, int level)
++{
++      /* empty place holder; gta01 does not yet use this */
++      printk(KERN_DEBUG "gta01_jbt6k74_reset\n");
++}
++
++const struct jbt6k74_platform_data gta01_jbt6k74_pdata = {
++      .reset          = gta01_jbt6k74_reset,
++};
++
+ static struct spi_board_info gta01_spi_board_info[] = {
+       {
+               .modalias       = "jbt6k74",
+-              /* platform_data */
++              .platform_data  = &gta01_jbt6k74_pdata,
+               /* controller_data */
+               /* irq */
+               .max_speed_hz   = 10 * 1000 * 1000,
+@@ -641,7 +652,7 @@ static void __init gta01_map_io(void)
+ static irqreturn_t gta01_modem_irq(int irq, void *param)
+ {
+-      printk(KERN_DEBUG "modem wakeup interrupt\n");
++      printk(KERN_DEBUG "GSM wakeup interrupt (IRQ %d)\n", irq);
+       return IRQ_HANDLED;
+ }
+@@ -709,9 +720,9 @@ static void __init gta01_machine_init(void)
+       set_irq_type(GTA01_IRQ_MODEM, IRQT_RISING);
+       rc = request_irq(GTA01_IRQ_MODEM, gta01_modem_irq, IRQF_DISABLED,
+                        "modem", NULL);
+-      if (!rc)
+-              printk(KERN_ERR  "GTA01: can't request GSM modem wakeup IRQ\n");
+       enable_irq_wake(GTA01_IRQ_MODEM);
++      printk(KERN_DEBUG  "Enabled GSM wakeup IRQ %d (rc=%d)\n",
++             GTA01_IRQ_MODEM, rc);
+ }
+ MACHINE_START(NEO1973_GTA01, "GTA01")
+-- 
+1.5.6.3
+