initial version
[android_pandora.git] / patches / all.patch
CommitLineData
34a1da07 1
2project frameworks/base/
3diff --git a/frameworks/base/libs/ui/InputReader.cpp b/frameworks/base/libs/ui/InputReader.cpp
4index 79cb87a..d8cd717 100644
5--- a/frameworks/base/libs/ui/InputReader.cpp
6+++ b/frameworks/base/libs/ui/InputReader.cpp
7@@ -1668,12 +1668,36 @@ bool TouchInputMapper::configureSurfaceLocked() {
8
9 // Configure X and Y factors.
10 if (mRawAxes.x.valid && mRawAxes.y.valid) {
11- mLocked.xOrigin = mRawAxes.x.minValue;
12- mLocked.yOrigin = mRawAxes.y.minValue;
13- mLocked.xScale = float(width) / mRawAxes.x.getRange();
14- mLocked.yScale = float(height) / mRawAxes.y.getRange();
15- mLocked.xPrecision = 1.0f / mLocked.xScale;
16- mLocked.yPrecision = 1.0f / mLocked.yScale;
17+ int a[7], have_pointercal = 0;
18+ const char *fname = "/vendor/pointercal";
19+ FILE *f = fopen(fname, "r");
20+ int ret;
21+ if (f) {
22+ ret = fscanf(f, "%d %d %d %d %d %d %d",
23+ &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]);
24+ if (ret == 7)
25+ have_pointercal = 1;
26+ else
27+ LOGW("Failed to parse %s", fname);
28+ fclose(f);
29+ }
30+ else
31+ LOGW("Failed to open %s", fname);
32+
33+ if (have_pointercal) {
34+ mLocked.xScale = float(a[0]) / float(a[6]);
35+ mLocked.yScale = float(a[4]) / float(a[6]);
36+ // a[2] / mLocked.xScale / a[6]
37+ mLocked.xOrigin = -a[2] / a[0];
38+ mLocked.yOrigin = -a[5] / a[4];
39+ } else {
40+ mLocked.xOrigin = mRawAxes.x.minValue;
41+ mLocked.yOrigin = mRawAxes.y.minValue;
42+ mLocked.xScale = float(width) / mRawAxes.x.getRange();
43+ mLocked.yScale = float(height) / mRawAxes.y.getRange();
44+ }
45+ mLocked.xPrecision = fabsf(1.0f / mLocked.xScale);
46+ mLocked.yPrecision = fabsf(1.0f / mLocked.yScale);
47
48 configureVirtualKeysLocked();
49 } else {
50@@ -1689,7 +1713,7 @@ bool TouchInputMapper::configureSurfaceLocked() {
51 // Scale factor for terms that are not oriented in a particular axis.
52 // If the pixels are square then xScale == yScale otherwise we fake it
53 // by choosing an average.
54- mLocked.geometricScale = avg(mLocked.xScale, mLocked.yScale);
55+ mLocked.geometricScale = avg(fabsf(mLocked.xScale), fabsf(mLocked.yScale));
56
57 // Size of diagonal axis.
58 float diagonalSize = pythag(width, height);
59
60project hardware/libhardware/
61diff --git a/hardware/libhardware/modules/gralloc/framebuffer.cpp b/hardware/libhardware/modules/gralloc/framebuffer.cpp
62index fe57a8a..b5465e4 100644
63--- a/hardware/libhardware/modules/gralloc/framebuffer.cpp
64+++ b/hardware/libhardware/modules/gralloc/framebuffer.cpp
65@@ -109,6 +109,12 @@ static int fb_post(struct framebuffer_device_t* dev, buffer_handle_t buffer)
66 }
67 m->currentBuffer = buffer;
68
69+#ifndef FBIO_WAITFORVSYNC
70+#define FBIO_WAITFORVSYNC _IOW ('F', 32, unsigned int)
71+#endif
72+ int mode = 0;
73+ ioctl(m->framebuffer->fd, FBIO_WAITFORVSYNC, &mode);
74+
75 } else {
76 // If we can't do the page_flip, just copy the buffer to the front
77 // FIXME: use copybit HAL instead of memcpy
78
79project system/core/
80diff --git a/system/core/libsysutils/src/NetlinkListener.cpp b/system/core/libsysutils/src/NetlinkListener.cpp
81index fb088e1..f99227c 100644
82--- a/system/core/libsysutils/src/NetlinkListener.cpp
83+++ b/system/core/libsysutils/src/NetlinkListener.cpp
84@@ -45,21 +45,21 @@ bool NetlinkListener::onDataAvailable(SocketClient *cli)
85 }
86
87 if ((snl.nl_groups != 1) || (snl.nl_pid != 0)) {
88- SLOGE("ignoring non-kernel netlink multicast message");
89- return false;
90+ //SLOGE("ignoring non-kernel netlink multicast message");
91+ return true;
92 }
93
94 struct cmsghdr * cmsg = CMSG_FIRSTHDR(&hdr);
95
96 if (cmsg == NULL || cmsg->cmsg_type != SCM_CREDENTIALS) {
97 SLOGE("ignoring message with no sender credentials");
98- return false;
99+ return true;
100 }
101
102 struct ucred * cred = (struct ucred *)CMSG_DATA(cmsg);
103 if (cred->uid != 0) {
104 SLOGE("ignoring message from non-root UID %d", cred->uid);
105- return false;
106+ return true;
107 }
108
109 NetlinkEvent *evt = new NetlinkEvent();
110
111project system/extras/
112diff --git a/system/extras/su/su.c b/system/extras/su/su.c
113index b87cece..bddc37d 100644
114--- a/system/extras/su/su.c
115+++ b/system/extras/su/su.c
116@@ -59,10 +59,12 @@ int main(int argc, char **argv)
117
118 /* Until we have something better, only root and the shell can use su. */
119 myuid = getuid();
120+#if 0
121 if (myuid != AID_ROOT && myuid != AID_SHELL) {
122 fprintf(stderr,"su: uid %d not allowed to su\n", myuid);
123 return 1;
124 }
125+#endif
126
127 if(setgid(gid) || setuid(uid)) {
128 fprintf(stderr,"su: permission denied\n");