r1738 - trunk/src/target/kernel/patches
laforge at sita.openmoko.org
laforge at sita.openmoko.org
Fri Apr 13 18:23:45 CEST 2007
Author: laforge
Date: 2007-04-13 18:23:43 +0200 (Fri, 13 Apr 2007)
New Revision: 1738
Modified:
trunk/src/target/kernel/patches/gta01-vibrator.patch
Log:
* fix kernel oops during vibrator use and suspend. (Daniel Willmann)
Modified: trunk/src/target/kernel/patches/gta01-vibrator.patch
===================================================================
--- trunk/src/target/kernel/patches/gta01-vibrator.patch 2007-04-13 14:11:30 UTC (rev 1737)
+++ trunk/src/target/kernel/patches/gta01-vibrator.patch 2007-04-13 16:23:43 UTC (rev 1738)
@@ -2,10 +2,10 @@
uses the existing LED class driver framework, since there's a lot of
similarity between the LED and the vibrator function.
-Index: linux-2.6.20.4/drivers/leds/leds-gta01.c
+Index: linux-2.6.20.4-moko/drivers/leds/leds-gta01.c
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.20.4/drivers/leds/leds-gta01.c 2007-03-30 22:58:37.000000000 +0200
+--- /dev/null
++++ linux-2.6.20.4-moko/drivers/leds/leds-gta01.c
@@ -0,0 +1,133 @@
+/*
+ * LED driver for the FIC GTA01 (Neo1973) GSM Phone Vibrator
@@ -43,10 +43,10 @@
+
+static inline struct gta01_vib_priv *to_vpriv(struct led_classdev *led_cdev)
+{
-+ return container_of(led_cdev, struct gta01_vib_priv, cdev);
++ return dev_get_drvdata(led_cdev->class_dev->dev);
+}
+
-+static void gta01led_vib_set(struct led_classdev *led_cdev, enum led_brightness value)
++static void gta01vib_vib_set(struct led_classdev *led_cdev, enum led_brightness value)
+{
+ struct gta01_vib_priv *vp = to_vpriv(led_cdev);
+
@@ -58,24 +58,24 @@
+
+static struct led_classdev gta01_vib_led = {
+ .name = "gta01:vibrator",
-+ .brightness_set = gta01led_vib_set,
++ .brightness_set = gta01vib_vib_set,
+};
+
+#ifdef CONFIG_PM
-+static int gta01led_suspend(struct platform_device *dev, pm_message_t state)
++static int gta01vib_suspend(struct platform_device *dev, pm_message_t state)
+{
+ led_classdev_suspend(>a01_vib_led);
+ return 0;
+}
+
-+static int gta01led_resume(struct platform_device *dev)
++static int gta01vib_resume(struct platform_device *dev)
+{
+ led_classdev_resume(>a01_vib_led);
+ return 0;
+}
+#endif
+
-+static int gta01led_probe(struct platform_device *pdev)
++static int gta01vib_probe(struct platform_device *pdev)
+{
+ struct gta01_vib_priv *vp;
+ struct resource *r;
@@ -101,7 +101,7 @@
+ return led_classdev_register(&pdev->dev, >a01_vib_led);
+}
+
-+static int gta01led_remove(struct platform_device *pdev)
++static int gta01vib_remove(struct platform_device *pdev)
+{
+ struct gta01_vib_priv *vp = pdev_to_vpriv(pdev);
+
@@ -112,38 +112,38 @@
+ return 0;
+}
+
-+static struct platform_driver gta01led_driver = {
-+ .probe = gta01led_probe,
-+ .remove = gta01led_remove,
++static struct platform_driver gta01vib_driver = {
++ .probe = gta01vib_probe,
++ .remove = gta01vib_remove,
+#ifdef CONFIG_PM
-+ .suspend = gta01led_suspend,
-+ .resume = gta01led_resume,
++ .suspend = gta01vib_suspend,
++ .resume = gta01vib_resume,
+#endif
+ .driver = {
+ .name = "gta01-led",
+ },
+};
+
-+static int __init gta01led_init(void)
++static int __init gta01vib_init(void)
+{
-+ return platform_driver_register(>a01led_driver);
++ return platform_driver_register(>a01vib_driver);
+}
+
-+static void __exit gta01led_exit(void)
++static void __exit gta01vib_exit(void)
+{
-+ platform_driver_unregister(>a01led_driver);
++ platform_driver_unregister(>a01vib_driver);
+}
+
-+module_init(gta01led_init);
-+module_exit(gta01led_exit);
++module_init(gta01vib_init);
++module_exit(gta01vib_exit);
+
+MODULE_AUTHOR("Harald Welte <laforge at openmoko.org>");
-+MODULE_DESCRIPTION("FIC GTA01 LED driver");
++MODULE_DESCRIPTION("FIC GTA01 Vibrator driver");
+MODULE_LICENSE("GPL");
-Index: linux-2.6.20.4/drivers/leds/Kconfig
+Index: linux-2.6.20.4-moko/drivers/leds/Kconfig
===================================================================
---- linux-2.6.20.4.orig/drivers/leds/Kconfig 2007-03-30 22:55:57.000000000 +0200
-+++ linux-2.6.20.4/drivers/leds/Kconfig 2007-03-30 22:56:03.000000000 +0200
+--- linux-2.6.20.4-moko.orig/drivers/leds/Kconfig
++++ linux-2.6.20.4-moko/drivers/leds/Kconfig
@@ -82,6 +82,12 @@
help
This option enables support for the PCEngines WRAP programmable LEDs.
@@ -157,10 +157,10 @@
comment "LED Triggers"
config LEDS_TRIGGERS
-Index: linux-2.6.20.4/drivers/leds/Makefile
+Index: linux-2.6.20.4-moko/drivers/leds/Makefile
===================================================================
---- linux-2.6.20.4.orig/drivers/leds/Makefile 2007-03-30 22:55:59.000000000 +0200
-+++ linux-2.6.20.4/drivers/leds/Makefile 2007-03-30 22:56:03.000000000 +0200
+--- linux-2.6.20.4-moko.orig/drivers/leds/Makefile
++++ linux-2.6.20.4-moko/drivers/leds/Makefile
@@ -14,6 +14,7 @@
obj-$(CONFIG_LEDS_AMS_DELTA) += leds-ams-delta.o
obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o
More information about the commitlog
mailing list