r2133 - trunk/src/target/kernel/patches
laforge at sita.openmoko.org
laforge at sita.openmoko.org
Sat Jun 2 18:45:33 CEST 2007
Author: laforge
Date: 2007-06-02 18:45:33 +0200 (Sat, 02 Jun 2007)
New Revision: 2133
Modified:
trunk/src/target/kernel/patches/gta01-pcf50606.patch
Log:
fix race condition in pcf50606_detect() (Andrzej Zaborowski)
Modified: trunk/src/target/kernel/patches/gta01-pcf50606.patch
===================================================================
--- trunk/src/target/kernel/patches/gta01-pcf50606.patch 2007-06-02 14:16:35 UTC (rev 2132)
+++ trunk/src/target/kernel/patches/gta01-pcf50606.patch 2007-06-02 16:45:33 UTC (rev 2133)
@@ -1,9 +1,9 @@
This is the PCF50606 power management unit driver for FIC GTA01
-Index: linux-2.6.21-moko/drivers/i2c/chips/pcf50606.c
+Index: linux-2.6.21.3-moko/drivers/i2c/chips/pcf50606.c
===================================================================
--- /dev/null
-+++ linux-2.6.21-moko/drivers/i2c/chips/pcf50606.c
++++ linux-2.6.21.3-moko/drivers/i2c/chips/pcf50606.c
@@ -0,0 +1,1929 @@
+/* Philips PCF50606 Power Management Unit (PMU) driver
+ *
@@ -1608,8 +1608,6 @@
+ goto exit_free;
+ }
+
-+ pcf50606_global = data;
-+
+ populate_sysfs_group(data);
+
+ err = sysfs_create_group(&new_client->dev.kobj, &pcf_attr_group);
@@ -1656,6 +1654,8 @@
+ dev_err(&new_client->dev, "IRQ %u cannot be enabled as wake-up"
+ "source in this hardware revision!", irq);
+
++ pcf50606_global = data;
++
+ if (data->pdata->used_features & PCF50606_FEAT_RTC) {
+ data->rtc = rtc_device_register("pcf50606", &new_client->dev,
+ &pcf50606_rtc_ops, THIS_MODULE);
@@ -1732,16 +1732,16 @@
+ rtc_device_unregister(pcf50606_global->rtc);
+exit_irq:
+ free_irq(pcf50606_global->irq, pcf50606_global);
++ pcf50606_global = NULL;
+exit_input:
+ pm_power_off = NULL;
-+ input_unregister_device(pcf50606_global->input_dev);
++ input_unregister_device(data->input_dev);
+exit_sysfs:
+ sysfs_remove_group(&new_client->dev.kobj, &pcf_attr_group);
+exit_detach:
+ i2c_detach_client(new_client);
+exit_free:
+ kfree(data);
-+ pcf50606_global = NULL;
+ return err;
+}
+
@@ -1934,10 +1934,10 @@
+
+module_init(pcf50606_init);
+module_exit(pcf50606_exit);
-Index: linux-2.6.21-moko/drivers/i2c/chips/pcf50606.h
+Index: linux-2.6.21.3-moko/drivers/i2c/chips/pcf50606.h
===================================================================
--- /dev/null
-+++ linux-2.6.21-moko/drivers/i2c/chips/pcf50606.h
++++ linux-2.6.21.3-moko/drivers/i2c/chips/pcf50606.h
@@ -0,0 +1,302 @@
+#ifndef _PCF50606_H
+#define _PCF50606_H
@@ -2241,10 +2241,10 @@
+
+#endif /* _PCF50606_H */
+
-Index: linux-2.6.21-moko/drivers/i2c/chips/Kconfig
+Index: linux-2.6.21.3-moko/drivers/i2c/chips/Kconfig
===================================================================
---- linux-2.6.21-moko.orig/drivers/i2c/chips/Kconfig
-+++ linux-2.6.21-moko/drivers/i2c/chips/Kconfig
+--- linux-2.6.21.3-moko.orig/drivers/i2c/chips/Kconfig
++++ linux-2.6.21.3-moko/drivers/i2c/chips/Kconfig
@@ -36,6 +36,17 @@
This driver can also be built as a module. If so, the module
will be called eeprom.
@@ -2263,10 +2263,10 @@
config SENSORS_PCF8574
tristate "Philips PCF8574 and PCF8574A"
depends on I2C && EXPERIMENTAL
-Index: linux-2.6.21-moko/drivers/i2c/chips/Makefile
+Index: linux-2.6.21.3-moko/drivers/i2c/chips/Makefile
===================================================================
---- linux-2.6.21-moko.orig/drivers/i2c/chips/Makefile
-+++ linux-2.6.21-moko/drivers/i2c/chips/Makefile
+--- linux-2.6.21.3-moko.orig/drivers/i2c/chips/Makefile
++++ linux-2.6.21.3-moko/drivers/i2c/chips/Makefile
@@ -8,6 +8,7 @@
obj-$(CONFIG_SENSORS_MAX6875) += max6875.o
obj-$(CONFIG_SENSORS_M41T00) += m41t00.o
@@ -2275,10 +2275,10 @@
obj-$(CONFIG_SENSORS_PCF8574) += pcf8574.o
obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o
obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o
-Index: linux-2.6.21-moko/include/linux/i2c-id.h
+Index: linux-2.6.21.3-moko/include/linux/i2c-id.h
===================================================================
---- linux-2.6.21-moko.orig/include/linux/i2c-id.h
-+++ linux-2.6.21-moko/include/linux/i2c-id.h
+--- linux-2.6.21.3-moko.orig/include/linux/i2c-id.h
++++ linux-2.6.21.3-moko/include/linux/i2c-id.h
@@ -159,6 +159,7 @@
#define I2C_DRIVERID_FSCHER 1046
#define I2C_DRIVERID_W83L785TS 1047
@@ -2287,10 +2287,10 @@
/*
* ---- Adapter types ----------------------------------------------------
-Index: linux-2.6.21-moko/include/linux/pcf50606.h
+Index: linux-2.6.21.3-moko/include/linux/pcf50606.h
===================================================================
--- /dev/null
-+++ linux-2.6.21-moko/include/linux/pcf50606.h
++++ linux-2.6.21.3-moko/include/linux/pcf50606.h
@@ -0,0 +1,104 @@
+#ifndef _LINUX_PCF50606_H
+#define _LINUX_PCF50606_H
More information about the commitlog
mailing list