tslib: 32bit big endian support
Fixes [BUGID #394] patch added from: https://launchpad.net/ubuntu/+source/tslib/1.0-7 Enables wacom tablet/touchscreen support on qemumips Signed-off-by: J. Aaron Gamble <john.gamble@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
This commit is contained in:
parent
93eae97ca2
commit
a8b11645e4
|
@ -1,5 +1,5 @@
|
|||
HAVE_TOUCHSCREEN=0
|
||||
HAVE_KEYBOARD=0
|
||||
HAVE_TOUCHSCREEN=1
|
||||
HAVE_KEYBOARD=1
|
||||
|
||||
DISPLAY_CAN_ROTATE=0
|
||||
DISPLAY_ORIENTATION=0
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||
## 030-32bitBE-support.dpatch by Neil Williams <codehelp@debian.org>
|
||||
##
|
||||
## All lines beginning with `## DP:' are a description of the patch.
|
||||
## DP: See bug #496759 - being tested upstream for 32bit BE devices
|
||||
|
||||
@DPATCH@
|
||||
diff -urNad tslib-1.0~/plugins/input-raw.c tslib-1.0/plugins/input-raw.c
|
||||
--- tslib-1.0~/plugins/input-raw.c 2008-12-09 10:56:47.000000000 +0000
|
||||
+++ tslib-1.0/plugins/input-raw.c 2008-12-09 11:05:41.000000000 +0000
|
||||
@@ -44,25 +44,33 @@
|
||||
int using_syn;
|
||||
};
|
||||
|
||||
+#define BITS_PER_LONG (sizeof(long) * 8)
|
||||
+#ifndef EV_CNT
|
||||
+#define EV_CNT (EV_MAX+1)
|
||||
+#endif
|
||||
+#ifndef ABS_CNT
|
||||
+#define ABS_CNT (ABS_MAX+1)
|
||||
+#endif
|
||||
+
|
||||
static int check_fd(struct tslib_input *i)
|
||||
{
|
||||
struct tsdev *ts = i->module.dev;
|
||||
int version;
|
||||
- u_int32_t bit;
|
||||
- u_int64_t absbit;
|
||||
+ unsigned long bit[EV_CNT / BITS_PER_LONG + 1];
|
||||
+ unsigned long absbit[ABS_MAX / BITS_PER_LONG + 1];
|
||||
|
||||
if (! ((ioctl(ts->fd, EVIOCGVERSION, &version) >= 0) &&
|
||||
(version == EV_VERSION) &&
|
||||
- (ioctl(ts->fd, EVIOCGBIT(0, sizeof(bit) * 8), &bit) >= 0) &&
|
||||
- (bit & (1 << EV_ABS)) &&
|
||||
- (ioctl(ts->fd, EVIOCGBIT(EV_ABS, sizeof(absbit) * 8), &absbit) >= 0) &&
|
||||
- (absbit & (1 << ABS_X)) &&
|
||||
- (absbit & (1 << ABS_Y)) && (absbit & (1 << ABS_PRESSURE)))) {
|
||||
+ (ioctl(ts->fd, EVIOCGBIT(0, sizeof(bit)), bit) >= 0) &&
|
||||
+ (bit[0] & (1 << EV_ABS)) &&
|
||||
+ (ioctl(ts->fd, EVIOCGBIT(EV_ABS, sizeof(absbit)), absbit) >= 0) &&
|
||||
+ (absbit[0] & (1 << ABS_X)) &&
|
||||
+ (absbit[0] & (1 << ABS_Y)) && (absbit[0] & (1 << ABS_PRESSURE)))) {
|
||||
fprintf(stderr, "selected device is not a touchscreen I understand\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
- if (bit & (1 << EV_SYN))
|
||||
+ if (bit[0] & (1 << EV_SYN))
|
||||
i->using_syn = 1;
|
||||
|
||||
return 0;
|
|
@ -6,7 +6,7 @@ SECTION = "base"
|
|||
LICENSE = "LGPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
|
||||
|
||||
PR = "r15"
|
||||
PR = "r16"
|
||||
|
||||
SRC_URI = "http://download.berlios.de/tslib/tslib-${PV}.tar.bz2 \
|
||||
file://fix_version.patch;patch=1 \
|
||||
|
@ -16,6 +16,8 @@ SRC_URI = "http://download.berlios.de/tslib/tslib-${PV}.tar.bz2 \
|
|||
file://tslib.sh"
|
||||
SRC_URI_append_mnci += " file://devfs.patch;patch=1"
|
||||
SRC_URI_append_mnci += " file://event1.patch;patch=1"
|
||||
SRC_URI_append_qemumips += " file://32bitBE-support.patch;patch=1"
|
||||
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
||||
|
|
Loading…
Reference in New Issue