diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.24/1118-fix-gsm-download-irq-balance-issue.patch.patch')
-rw-r--r-- | target/linux/s3c24xx/patches-2.6.24/1118-fix-gsm-download-irq-balance-issue.patch.patch | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.24/1118-fix-gsm-download-irq-balance-issue.patch.patch b/target/linux/s3c24xx/patches-2.6.24/1118-fix-gsm-download-irq-balance-issue.patch.patch deleted file mode 100644 index 8b3f376..0000000 --- a/target/linux/s3c24xx/patches-2.6.24/1118-fix-gsm-download-irq-balance-issue.patch.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 129f349dc3ee75dfb0580436d82fd0d6633ba2c4 Mon Sep 17 00:00:00 2001 -From: warmcat <andy@warmcat.com> -Date: Sun, 13 Apr 2008 07:25:55 +0100 -Subject: [PATCH] fix-gsm-download-irq-balance-issue.patch - -Signed-off-by: Andy Green <andy@openmoko.com> ---- - arch/arm/plat-s3c24xx/neo1973_pm_gsm.c | 28 +++++++++++++++++++++------- - 1 files changed, 21 insertions(+), 7 deletions(-) - -diff --git a/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c b/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c -index b4ea8ba..c3292b8 100644 ---- a/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c -+++ b/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c -@@ -146,13 +146,24 @@ static ssize_t gsm_write(struct device *dev, struct device_attribute *attr, - #endif - #ifdef CONFIG_MACH_NEO1973_GTA02 - if (machine_is_neo1973_gta02()) { -- /* FIXME: Layering violation, we know how this relates to -- * the Jack-IRQ. And we assume the keyboard driver to be -- * around. */ -- if (on) -- disable_irq(gpio_to_irq(GTA02_GPIO_JACK_INSERT)); -- else -- enable_irq(gpio_to_irq(GTA02_GPIO_JACK_INSERT)); -+ /* -+ * the keyboard / buttons driver requests and enables -+ * the JACK_INSERT IRQ. We have to take care about -+ * not enabling and disabling the IRQ when it was -+ * already in that state or we get "unblanaced IRQ" -+ * kernel warnings and stack dumps. So we use the -+ * copy of the ndl_gsm state to figure out if we should -+ * enable or disable the jack interrupt -+ */ -+ if (on) { -+ if (gta01_gsm.gpio_ndl_gsm) -+ disable_irq(gpio_to_irq( -+ GTA02_GPIO_JACK_INSERT)); -+ } else { -+ if (!gta01_gsm.gpio_ndl_gsm) -+ enable_irq(gpio_to_irq( -+ GTA02_GPIO_JACK_INSERT)); -+ } - - gta01_gsm.gpio_ndl_gsm = !on; - s3c2410_gpio_setpin(GTA02_GPIO_nDL_GSM, !on); -@@ -263,7 +274,10 @@ static int __init gta01_gsm_probe(struct platform_device *pdev) - } else - gta01_gsm.con = NULL; - -+ /* note that download initially disabled, and enforce that */ - gta01_gsm.gpio_ndl_gsm = 1; -+ if (machine_is_neo1973_gta02()) -+ s3c2410_gpio_setpin(GTA02_GPIO_nDL_GSM, 1); - - return sysfs_create_group(&pdev->dev.kobj, >a01_gsm_attr_group); - } --- -1.5.6.5 - |