[oe-commits] org.oe.dev merge of '147ea1808ce9dcca465549615b959e4aedc81359'

hrw commit openembedded-commits at lists.openembedded.org
Sun Oct 7 13:05:40 UTC 2007


merge of '147ea1808ce9dcca465549615b959e4aedc81359'
     and '75803ac499b6e7802ec35d07693154274da0770c'

Author: hrw at openembedded.org
Branch: org.openembedded.dev
Revision: 85247a2279ec070ff180162e46ddbdbf49eab3bd
ViewMTN: http://monotone.openembedded.org/revision/info/85247a2279ec070ff180162e46ddbdbf49eab3bd
Files:
1
packages/gnutls/gnutls_1.6.2.bb
packages/gnutls/gnutls_1.6.3.bb
packages/llvm/llvm-native_2.0.bb
packages/llvm/llvm-native_2.1.bb
packages/linux/linux-2.6.21/tsc2003-config.diff
packages/linux/linux-2.6.21/tsc2003.c
packages/linux/linux-handhelds-2.6_2.6.21-hh17.bb
packages/musicpd/mpd-alsa_svn.bb
packages/qmake/qmake2-native-2.10a/use-lflags-last.patch
packages/xorg-xserver/xserver-kdrive/gumstix-kmode.patch
conf/checksums.ini
conf/distro/angstrom-2007.1.conf
conf/distro/angstrom-2008.1.conf
conf/distro/include/preferred-xorg-versions-X11R7.3.inc
conf/machine/h1910.conf
conf/machine/include/zaurus-2.6.inc
packages/gcc/gcc-cross_4.2.1.bb
packages/gcc/gcc_4.2.1.bb
packages/gpsd/files/gpsd
packages/gpsd/gpsd_2.28.bb
packages/gpsd/gpsd_2.34.bb
packages/hal/hal_0.5.9.bb
packages/icu/icu-3.6.inc
packages/linux/compulab-pxa270_2.6.16.bb
packages/linux/compulab-pxa270_2.6.22.bb
packages/linux/linux-2.6.21/gumstix-verdex/defconfig
packages/linux/linux-efika-2.6.20/defconfig
packages/linux/linux-handhelds-2.6.inc
packages/linux/linux_2.6.21.bb
packages/llvm/llvm-gcc4-cross_svn.bb
packages/nfs-utils/files/uclibc_bzero_fix.patch
packages/nfs-utils/nfs-utils_1.0.6.bb
packages/openmoko2/openmoko-sound-system2/session
packages/openmoko2/openmoko-sound-system2_0.1.0.bb
packages/openmoko2/openmoko-sound-theme-standard2_svn.bb
packages/qmake/qmake2-native_2.10a.bb
packages/rxvt-unicode/rxvt-unicode_7.9.bb
packages/slugos-init/files/modulefunctions
packages/slugos-init/slugos-init_0.10.bb
packages/tasks/task-slugos.bb
packages/webkit/webkit-gtk_svn.bb
packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb
Diffs:

#
# mt diff -r147ea1808ce9dcca465549615b959e4aedc81359 -r85247a2279ec070ff180162e46ddbdbf49eab3bd
#
# 
# 
# rename "packages/gnutls/gnutls_1.6.2.bb"
#     to "packages/gnutls/gnutls_1.6.3.bb"
# 
# patch "packages/gnutls/gnutls_1.6.3.bb"
#  from [8ca3b1d798dcc69bed79201d4b4b0cf050d50a8e]
#    to [d18e2ac29c491d7cb869d8f693413a0ab802f11c]
# 
============================================================
--- packages/gnutls/gnutls_1.6.2.bb	8ca3b1d798dcc69bed79201d4b4b0cf050d50a8e
+++ packages/gnutls/gnutls_1.6.3.bb	d18e2ac29c491d7cb869d8f693413a0ab802f11c
@@ -1,6 +1,2 @@ require gnutls.inc
 require gnutls.inc
+PR = "r2"
-PR = "r1"
-
-do_configure_prepend() {
-	sed -i "s/2.60/2.59/" ${S}/configure.in
-}


#
# mt diff -r75803ac499b6e7802ec35d07693154274da0770c -r85247a2279ec070ff180162e46ddbdbf49eab3bd
#
# 
# 
# rename "packages/llvm/llvm-native_2.0.bb"
#     to "packages/llvm/llvm-native_2.1.bb"
# 
# add_file "packages/linux/linux-2.6.21/tsc2003-config.diff"
#  content [6e834f1d2f675943a3b12ee0abcfcd2d8a6ef5c7]
# 
# add_file "packages/linux/linux-2.6.21/tsc2003.c"
#  content [d64808703054035d6e4c43b0d94bc7ba61ffb107]
# 
# add_file "packages/linux/linux-handhelds-2.6_2.6.21-hh17.bb"
#  content [2e774376b648af5299a532253bd79480809c5e54]
# 
# add_file "packages/musicpd/mpd-alsa_svn.bb"
#  content [c0ccec3ce71dbdf4a633fa5b71b01ac93f9d46f8]
# 
# add_file "packages/qmake/qmake2-native-2.10a/use-lflags-last.patch"
#  content [2a3b02b5d73df2e28f5cc20363519b440f3921e0]
# 
# add_file "packages/xorg-xserver/xserver-kdrive/gumstix-kmode.patch"
#  content [2ccfaa43986522f20a4d600872a7689d970b8c64]
# 
# patch "conf/checksums.ini"
#  from [6abbcaedc888cd8411607755f104327fcf5b1173]
#    to [dc3823b4ab32da813380365a763fa30187f934f8]
# 
# patch "conf/distro/angstrom-2007.1.conf"
#  from [cb21538d71e7331e7d1c8006fb53acbc216f97a3]
#    to [1c185c3312e0511c6b64f8626a33d90d4e6a9e8e]
# 
# patch "conf/distro/angstrom-2008.1.conf"
#  from [aa3a5caf95a0bb29ce59432c8870f9fceb2776fc]
#    to [81bb16cb2088bddf29b51eba079066a6b5b95d68]
# 
# patch "conf/distro/include/preferred-xorg-versions-X11R7.3.inc"
#  from [d71fcfba9c26f2bea8c29b29484b3c8788baced4]
#    to [f0d0e9e8047b09eef4e513465a8e27652b9757d0]
# 
# patch "conf/machine/h1910.conf"
#  from [24ca3ec1a79acd1bb022db75c3333158c8a72b58]
#    to [8c804116d1d1ba9168798328770d1e5de28235f4]
# 
# patch "conf/machine/include/zaurus-2.6.inc"
#  from [7baf3e010a9649ace2bc8172df240209ae4c83f0]
#    to [6fd05921765dc1975a082049180e563ef15d17ae]
# 
# patch "packages/gcc/gcc-cross_4.2.1.bb"
#  from [83d6c7ddf9a8d01c94ed440c4e431306ae3dcd81]
#    to [a97b09211d1289f0d2c70e6c7866141e1d332393]
# 
# patch "packages/gcc/gcc_4.2.1.bb"
#  from [b0107c70de66f12d9a9168e2db8cdedc9f9c0de5]
#    to [71acc245b0c9e7c137053c4b1f61cd2d5830d6d0]
# 
# patch "packages/gpsd/files/gpsd"
#  from [99883af6595128b4d99f1456e065f5d9916ed8d3]
#    to [46761ebb43a976a2d7df3d1f0f1c0c4ea805fb7a]
# 
# patch "packages/gpsd/gpsd_2.28.bb"
#  from [0bb577497c832b2217b32d3a18e32505d17e9da2]
#    to [afa8f306a4567c0d18884e4089b424ac63c0955a]
# 
# patch "packages/gpsd/gpsd_2.34.bb"
#  from [e0e5afc1235d9fbd17f5724e15fc5f65e1a2e1b7]
#    to [4ea8e37b9fbdf1a614c46bcd12247dffa2d96067]
# 
# patch "packages/hal/hal_0.5.9.bb"
#  from [212571a9152068eeb0f89ea9731dbf0378ecd1b0]
#    to [2755b9938bea086e274d62d986064902f8cd8562]
# 
# patch "packages/icu/icu-3.6.inc"
#  from [98b0ef0d520fbacb6e1ea1a8152dd79bd03f8e3e]
#    to [7932b55947e36c2c609908ef5686b177078bf8df]
# 
# patch "packages/linux/compulab-pxa270_2.6.16.bb"
#  from [0c6af5bfc65c32891fcb4178365c351daae00104]
#    to [4694fb75afe6c5d1011a87d7d09c2782c995d519]
# 
# patch "packages/linux/compulab-pxa270_2.6.22.bb"
#  from [972387e153cfc5285e3c718e97c02bad8279ecb7]
#    to [06fe8124a9c0f6e1576a13c0cae5e27590f77c1d]
# 
# patch "packages/linux/linux-2.6.21/gumstix-verdex/defconfig"
#  from [7f8add04c207296a2d5147aec681067eb504be22]
#    to [3c348910dbfa861d1ba26d1ab8fb948547758c3d]
# 
# patch "packages/linux/linux-efika-2.6.20/defconfig"
#  from [18a20607b8cc2974fd45bc79cf7ffa58e501068e]
#    to [d182aa0b4cf4381f4273017275e6611f4f1eefb6]
# 
# patch "packages/linux/linux-handhelds-2.6.inc"
#  from [81ad97e2eba4d17f9cb187c2c6f0a9b9383fbb8c]
#    to [2f9c7e9494a48ee43b1aef28f54d40d6fad1f496]
# 
# patch "packages/linux/linux_2.6.21.bb"
#  from [51ded3ed7fa054482e11fcaad0f4ff4d8871a0d9]
#    to [7c17cb4df270798a771c151cfe56f55916a73fae]
# 
# patch "packages/llvm/llvm-gcc4-cross_svn.bb"
#  from [884f40c0da53dcbbb5f45f7872fdee34c10d45d6]
#    to [41c96d704f8797712c3b1ae15dc6094b60a15cea]
# 
# patch "packages/llvm/llvm-native_2.1.bb"
#  from [6f47db9782233e0bc95af6f34d8e61983666454e]
#    to [72cba3aaca39ab251f345c5d690060bbde77dc01]
# 
# patch "packages/nfs-utils/files/uclibc_bzero_fix.patch"
#  from [9e3bdeb55bb6ad1192db42f9d514e5c1c8af3094]
#    to [079b12adf8d58cc3f093b26e7c0fa089bca38553]
# 
# patch "packages/nfs-utils/nfs-utils_1.0.6.bb"
#  from [f6672e7d69876890a7540b482e7718145dc77f80]
#    to [228c5259b1c1dfe958d7941618c4226698b1b234]
# 
# patch "packages/openmoko2/openmoko-sound-system2/session"
#  from [440f08023fd2111ebd3ab7b3914fba30c36e0d59]
#    to [963e0a668b32334f079f421e73b9a68bc5a9cfc5]
# 
# patch "packages/openmoko2/openmoko-sound-system2_0.1.0.bb"
#  from [2bbb752f84f5cd5d332df9a98b5ab1922ccc2320]
#    to [6882dc76c7e1f498b428a3669944461e1b16a822]
# 
# patch "packages/openmoko2/openmoko-sound-theme-standard2_svn.bb"
#  from [8d7ac8b5a6221ab35c4c0a274a2edef6f114e8a9]
#    to [b2778eab90cb33248599b19697944e169304f641]
# 
# patch "packages/qmake/qmake2-native_2.10a.bb"
#  from [2ae898462a823c21fa451bd1c40a0350aaa745e3]
#    to [ee62f0cd510bf9374ee05aecd30c84f2f88ce94d]
# 
# patch "packages/rxvt-unicode/rxvt-unicode_7.9.bb"
#  from [ce13b2bc186b619fe7cb9b03cb1ab9fc5f27c115]
#    to [a758bd14abdf6e8f4ec493eb7b6c485f9ab5ccc7]
# 
# patch "packages/slugos-init/files/modulefunctions"
#  from [2fa625b35ea31712fde433431b13ec9b7c79d43b]
#    to [4b87b10cbcadb95da00017ee6f9d7f80b767719b]
# 
# patch "packages/slugos-init/slugos-init_0.10.bb"
#  from [b86dcf4eeaea00eac2b46b43ce047bfcb81bec2e]
#    to [35c419193e544a8d85ce740472291aa93c87fd37]
# 
# patch "packages/tasks/task-slugos.bb"
#  from [886169eff4c43655de9f427988ddbe1c01deab8f]
#    to [6828037c6d95ea3758b661c5277817df96d75b69]
# 
# patch "packages/webkit/webkit-gtk_svn.bb"
#  from [a5d1816993bda7f08a6373ea5b6a96c9f018f11a]
#    to [1bdedb776717ed3d1b2512c2e784c47970489c45]
# 
# patch "packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb"
#  from [7f2e709c62424285446c1f454d2bd609e6ab405d]
#    to [bc48ac913bf5619e2ef613e1dcc2f78c81bcd221]
# 
============================================================
--- packages/linux/linux-2.6.21/tsc2003-config.diff	6e834f1d2f675943a3b12ee0abcfcd2d8a6ef5c7
+++ packages/linux/linux-2.6.21/tsc2003-config.diff	6e834f1d2f675943a3b12ee0abcfcd2d8a6ef5c7
@@ -0,0 +1,31 @@
+--- /tmp/Kconfig	2007-10-07 14:13:14.000000000 +0200
++++ linux-2.6.21/drivers/i2c/chips/Kconfig	2007-10-07 14:13:56.902045000 +0200
+@@ -125,4 +125,18 @@
+ 	  This driver can also be built as a module.  If so, the module
+ 	  will be called max6875.
+ 
++config SENSORS_TSC2003
++	tristate "TI TSC2003"
++	depends on I2C && EXPERIMENTAL
++	default n
++	help
++	  Driver for TI tsc2003 touchscreen and sensor chip/
++
++config SENSORS_TSC2003_SYSFS
++	tristate "TI TSC2003 sysfs interface
++	depends on SENSORS_TSC2003
++	default n
++	help
++	  Enabled the sysfs interface for tsc2003
++
+ endmenu
+--- /tmp/Makefile	2007-10-07 14:14:14.000000000 +0200
++++ linux-2.6.21/drivers/i2c/chips/Makefile	2007-10-07 14:14:20.072045000 +0200
+@@ -12,6 +12,7 @@
+ obj-$(CONFIG_SENSORS_PCF8591)	+= pcf8591.o
+ obj-$(CONFIG_ISP1301_OMAP)	+= isp1301_omap.o
+ obj-$(CONFIG_TPS65010)		+= tps65010.o
++obj-$(CONFIG_SENSORS_TSC2003)   += tsc2003.o
+ 
+ ifeq ($(CONFIG_I2C_DEBUG_CHIP),y)
+ EXTRA_CFLAGS += -DDEBUG
============================================================
--- packages/linux/linux-2.6.21/tsc2003.c	d64808703054035d6e4c43b0d94bc7ba61ffb107
+++ packages/linux/linux-2.6.21/tsc2003.c	d64808703054035d6e4c43b0d94bc7ba61ffb107
@@ -0,0 +1,557 @@
+/*
+ *  linux/drivers/i2c/chips/tsc2003.c
+ *
+ *  Copyright (C) 2005 Bill Gatliff <bgat at billgatliff.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License version 2 as
+ *  published by the Free Software Foundation.
+ *
+ *  Driver for TI's TSC2003 I2C Touch Screen Controller
+ */
+
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/i2c.h>
+#include <linux/string.h>
+#include <linux/bcd.h>
+#include <linux/list.h>
+#include <linux/device.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/input.h>
+#include <linux/platform_device.h>
+#include <asm/delay.h>
+#include <linux/delay.h>
+
+#include <asm/arch/gpio.h>
+
+#define DRIVER_NAME "tsc2003"
+
+enum tsc2003_pd {
+	PD_POWERDOWN = 0, /* penirq */
+	PD_IREFOFF_ADCON = 1, /* no penirq */
+	PD_IREFON_ADCOFF = 2, /* penirq */
+	PD_IREFON_ADCON = 3, /* no penirq */
+	PD_PENIRQ_ARM = PD_IREFON_ADCOFF,
+	PD_PENIRQ_DISARM = PD_IREFON_ADCON,
+};
+
+enum tsc2003_m {
+	M_12BIT = 0,
+	M_8BIT = 1
+};
+
+enum tsc2003_cmd {
+	MEAS_TEMP0 = 0,
+	MEAS_VBAT1 = 1,
+	MEAS_IN1 = 2,
+	MEAS_TEMP1 = 4,
+	MEAS_VBAT2 = 5,
+	MEAS_IN2 = 6,
+	ACTIVATE_NX_DRIVERS = 8,
+	ACTIVATE_NY_DRIVERS = 9,
+	ACTIVATE_YNX_DRIVERS = 10,
+	MEAS_XPOS = 12,
+	MEAS_YPOS = 13,
+	MEAS_Z1POS = 14,
+	MEAS_Z2POS = 15
+};
+
+#define TSC2003_CMD(cn,pdn,m) (((cn) << 4) | ((pdn) << 2) | ((m) << 1))
+
+#define ADC_MAX ((1 << 12) - 1)
+
+struct tsc2003_data {
+	struct i2c_client *client;
+	struct input_dev *idev;
+	struct timer_list penirq_timer;
+	struct semaphore sem;
+	struct task_struct *tstask;
+	struct completion tstask_completion;
+	enum tsc2003_pd pd;
+	enum tsc2003_m m;
+	int vbat1;
+	int vbat2;
+	int temp0;
+	int temp1;
+	int in1;
+	int in2;
+};
+
+static int tsc2003_i2c_detect (struct i2c_adapter *adapter, int address,
+			       int kind);
+
+static inline int tsc2003_command (struct tsc2003_data *data,
+	enum tsc2003_cmd cmd,
+	enum tsc2003_pd pd)
+{
+	char c;
+	int ret;
+	down(&data->sem);
+	c = TSC2003_CMD(cmd, pd, data->m);
+	ret = i2c_master_send(data->client, &c, 1);
+	up(&data->sem);
+	return ret;
+}
+
+static int tsc2003_read (struct tsc2003_data *data,
+	enum tsc2003_cmd cmd,
+	enum tsc2003_pd pd,
+	int *val)
+{
+	char c;
+	char d[2];
+	int ret;
+
+	c = TSC2003_CMD(cmd, pd, data->m);
+	ret = i2c_master_send(data->client, &c, 1);
+
+	udelay(20);
+	ret = i2c_master_recv(data->client, d, data->m == M_12BIT ? 2 : 1);
+
+	if (val)
+	{
+		*val = d[0];
+		*val <<= 4;
+		if (data->m == M_12BIT)
+			*val += (d[1] >> 4);
+	}
+
+#if defined(CONFIG_I2C_DEBUG_CHIP)
+	printk(KERN_ERR "%s: val[%x] = %d\n",
+	       __FUNCTION__, cmd, (((int)d[0]) << 8) + d[1]);
+#endif
+
+	return 0;
+	if (!ret) ret = -ENODEV;
+	return ret;
+}
+
+static inline int tsc2003_read_temp0 (struct tsc2003_data *d, enum
+				      tsc2003_pd pd, int *t)
+{
+	return tsc2003_read(d, MEAS_TEMP0, pd, t);
+}
+
+static inline int tsc2003_read_temp1 (struct tsc2003_data *d, enum
+				      tsc2003_pd pd, int *t)
+{
+	return tsc2003_read(d, MEAS_TEMP1, pd, t);
+}
+
+static inline int tsc2003_read_xpos (struct tsc2003_data *d, enum
+				     tsc2003_pd pd, int *x)
+{
+	return tsc2003_read(d, MEAS_XPOS, pd, x);
+}
+
+static inline int tsc2003_read_ypos (struct tsc2003_data *d, enum
+				     tsc2003_pd pd, int *y)
+{
+	return tsc2003_read(d, MEAS_YPOS, pd, y);
+}
+
+static inline int tsc2003_read_pressure (struct tsc2003_data *d, enum
+					 tsc2003_pd pd, int *p)
+{
+	return tsc2003_read(d, MEAS_Z1POS, pd, p);
+}
+
+static inline int tsc2003_read_in1 (struct tsc2003_data *d, enum
+				    tsc2003_pd pd, int *t)
+{
+	return tsc2003_read(d, MEAS_IN1, pd, t);
+}
+
+static inline int tsc2003_read_in2 (struct tsc2003_data *d, enum
+				    tsc2003_pd pd, int *t)
+{
+	return tsc2003_read(d, MEAS_IN2, pd, t);
+}
+
+static inline int tsc2003_read_vbat1 (struct tsc2003_data *d, enum
+				      tsc2003_pd pd, int *t)
+{
+	return tsc2003_read(d, MEAS_VBAT1, pd, t);
+}
+
+static inline int tsc2003_read_vbat2 (struct tsc2003_data *d, enum
+				      tsc2003_pd pd, int *t)
+{
+	return tsc2003_read(d, MEAS_VBAT2, pd, t);
+}
+
+static inline int tsc2003_powerdown (struct tsc2003_data *d)
+{
+	/* we don't have a distinct powerdown command,
+	   so do a benign read with the PD bits cleared */
+	return tsc2003_read(d, MEAS_IN1, PD_POWERDOWN, 0);
+}
+
+void tsc2003_init_client (struct i2c_client *client)
+{
+	struct tsc2003_data *data = i2c_get_clientdata(client);
+
+	data->pd = PD_PENIRQ_DISARM;
+	data->m = M_8BIT;
+	return;
+}
+
+static int tsc2003ts_thread (void *v)
+{
+	struct tsc2003_data *d = v;
+	struct task_struct *tsk = current;
+	int pendown=0;
+
+	d->tstask = tsk;
+
+	daemonize(DRIVER_NAME "tsd");
+	allow_signal(SIGKILL);
+
+	complete(&d->tstask_completion);
+
+	printk(KERN_INFO "%s: address 0x%x\n",
+	       __FUNCTION__, d->client->addr);
+
+	while (!signal_pending(tsk))
+	{
+		unsigned int x, y, p;
+
+		tsc2003_read_xpos(d, PD_PENIRQ_DISARM, &x);
+		tsc2003_read_ypos(d, PD_PENIRQ_DISARM, &y);
+		tsc2003_read_pressure(d, PD_PENIRQ_DISARM, &p);
+
+		/* non-X-Y driver read to avoid glitch in penirq (errata?) */
+		if (p > 100) {
+			pendown = 1;
+			input_report_abs(d->idev, ABS_X, x);
+			input_report_abs(d->idev, ABS_Y, y);
+			input_report_abs(d->idev, ABS_PRESSURE, p);
+			input_report_key(d->idev, BTN_TOUCH, 1);
+			input_sync(d->idev);
+		} else if (pendown == 1) {
+			pendown = 0;
+			input_report_key(d->idev, BTN_TOUCH, 0);
+			input_report_abs(d->idev, ABS_PRESSURE, 0);
+			input_sync(d->idev);
+		}
+		schedule_timeout_interruptible(msecs_to_jiffies(10));
+	}
+
+	d->tstask = NULL;
+	complete_and_exit(&d->tstask_completion, 0);
+}
+
+static int tsc2003_idev_open (struct input_dev *idev)
+{
+	struct tsc2003_data *d = idev->private;
+	int ret = 0;
+
+	if (down_interruptible(&d->sem))
+		return -EINTR;
+
+	if (d->tstask)
+		panic(DRIVER_NAME "tsd already running (!). abort.");
+
+	init_completion(&d->tstask_completion);
+
+	ret = kernel_thread(tsc2003ts_thread, d, CLONE_KERNEL);
+	if (ret >= 0) {
+		wait_for_completion(&d->tstask_completion);
+		ret = 0;
+	}
+
+	up(&d->sem);
+
+	return ret;
+}
+
+static void tsc2003_idev_close (struct input_dev *idev)
+{
+	struct tsc2003_data *d = idev->private;
+	down_interruptible(&d->sem);
+	if (d->tstask)
+	{
+		send_sig(SIGKILL, d->tstask, 1);
+		wait_for_completion(&d->tstask_completion);
+	}
+	up(&d->sem);
+	return;
+}
+
+#if defined(CONFIG_SYSFS) && defined(CONFIG_SENSORS_TSC2003_SYSFS)
+static ssize_t show_addr (struct device *dev, char *buf)
+{
+	struct tsc2003_data *d = container_of(dev->driver, struct
+					      tsc2003_data, driver);
+	return sprintf(buf, "%d\n", d->client.addr);
+}
+static DEVICE_ATTR(addr, S_IRUGO, show_addr, NULL);
+
+static ssize_t show_vbat1 (struct device *dev, char *buf)
+{
+	struct tsc2003_data *d = container_of(dev->driver, struct
+					      tsc2003_data, driver);
+	return sprintf(buf, "%d\n", d->vbat1);
+}
+static DEVICE_ATTR(vbat1, S_IRUGO, show_vbat1, NULL);
+
+static ssize_t show_vbat2 (struct device *dev, char *buf)
+{
+	struct tsc2003_data *d = container_of(dev->driver, struct
+					      tsc2003_data, driver);
+	return sprintf(buf, "%d\n", d->vbat2);
+}
+static DEVICE_ATTR(vbat2, S_IRUGO, show_vbat2, NULL);
+
+static ssize_t show_in1 (struct device *dev, char *buf)
+{
+	struct tsc2003_data *d = container_of(dev->driver, struct
+					      tsc2003_data, driver);
+	return sprintf(buf, "%d\n", d->in1);
+}
+static DEVICE_ATTR(in1, S_IRUGO, show_in1, NULL);
+
+static ssize_t show_in2 (struct device *dev, char *buf)
+{
+	struct tsc2003_data *d = container_of(dev->driver, struct
+					      tsc2003_data, driver);
+	return sprintf(buf, "%d\n", d->in2);
+}
+static DEVICE_ATTR(in2, S_IRUGO, show_in2, NULL);
+
+static ssize_t show_temp0 (struct device *dev, char *buf)
+{
+	struct tsc2003_data *d = container_of(dev->driver, struct
+					      tsc2003_data, driver);
+	return sprintf(buf, "%d\n", d->temp0);
+}
+static DEVICE_ATTR(temp0, S_IRUGO, show_temp0, NULL);
+
+static ssize_t show_temp1 (struct device *dev, char *buf)
+{
+	struct tsc2003_data *d = container_of(dev->driver, struct
+					      tsc2003_data, driver);
+	return sprintf(buf, "%d\n", d->temp1);
+}
+static DEVICE_ATTR(temp1, S_IRUGO, show_temp1, NULL);
+
+#warning "TODO: this daemon sometimes hangs the touchscreen daemon"
+#warning "TODO: under periods of heavy touch screen activity."
+#warning "TODO: Use with caution until the bug is squashed."
+static int tsc2003s_thread (void *v)
+{
+	struct tsc2003_data *d = v;
+
+	daemonize(DRIVER_NAME "sd");
+	allow_signal(SIGKILL);
+
+	printk(KERN_INFO "%s: address 0x%x\n",
+	       __FUNCTION__, d->client.addr);
+
+	while (!signal_pending(current))
+	{
+		if (!down_interruptible(&d->sem))
+		{
+			if (!timer_pending(&d->penirq_timer))
+			{
+				tsc2003_read_vbat1(d, d->pd, &d->vbat1);
+				tsc2003_read_vbat2(d, d->pd, &d->vbat2);
+				tsc2003_read_in1(d, d->pd, &d->in1);
+				tsc2003_read_in2(d, %s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list