switch to alsa.omap3 module
[android_pandora.git] / patches / all.patch
CommitLineData
34a1da07 1
b2264797 2project external/hostap/
3diff --git a/external/hostap/Android.mk b/external/hostap/Android.mk
4index 77d72ea..5c6b589 100644
5--- a/external/hostap/Android.mk
6+++ b/external/hostap/Android.mk
7@@ -1,3 +1,5 @@
8 ifeq ($(WPA_SUPPLICANT_VERSION),VER_0_8_X)
9- include $(call all-subdir-makefiles)
10+ #include $(call all-subdir-makefiles)
11+ LOCAL_PATH := $(call my-dir)
12+ include $(LOCAL_PATH)/wpa_supplicant/Android.mk
13 endif
14diff --git a/external/hostap/wpa_supplicant/config-android b/external/hostap/wpa_supplicant/config-android
15index c71056c..2532ccd 100644
16--- a/external/hostap/wpa_supplicant/config-android
17+++ b/external/hostap/wpa_supplicant/config-android
18@@ -81,7 +81,7 @@
19 CONFIG_DRIVER_WEXT=y
20
21 # Driver interface for Linux drivers using the nl80211 kernel interface
22-CONFIG_DRIVER_NL80211=y
23+#CONFIG_DRIVER_NL80211=y
24
25 # Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
26 #CONFIG_DRIVER_BSD=y
27
28project external/openssl/
29diff --git a/external/openssl/crypto/Android.mk b/external/openssl/crypto/Android.mk
30index 222bc96..f2361a5 100644
31--- a/external/openssl/crypto/Android.mk
32+++ b/external/openssl/crypto/Android.mk
33@@ -155,6 +155,7 @@ local_src_files := \
34 bn/bn_sqr.c \
35 bn/bn_sqrt.c \
36 bn/bn_word.c \
37+ bn/bn_const.c \
38 buffer/buf_err.c \
39 buffer/buffer.c \
40 comp/c_rle.c \
41
34a1da07 42project frameworks/base/
43diff --git a/frameworks/base/libs/ui/InputReader.cpp b/frameworks/base/libs/ui/InputReader.cpp
b2264797 44index 7626b15..16e17b3 100644
34a1da07 45--- a/frameworks/base/libs/ui/InputReader.cpp
46+++ b/frameworks/base/libs/ui/InputReader.cpp
b2264797 47@@ -1468,12 +1468,36 @@ bool TouchInputMapper::configureSurfaceLocked() {
34a1da07 48
49 // Configure X and Y factors.
50 if (mRawAxes.x.valid && mRawAxes.y.valid) {
51- mLocked.xOrigin = mRawAxes.x.minValue;
52- mLocked.yOrigin = mRawAxes.y.minValue;
53- mLocked.xScale = float(width) / mRawAxes.x.getRange();
54- mLocked.yScale = float(height) / mRawAxes.y.getRange();
55- mLocked.xPrecision = 1.0f / mLocked.xScale;
56- mLocked.yPrecision = 1.0f / mLocked.yScale;
57+ int a[7], have_pointercal = 0;
58+ const char *fname = "/vendor/pointercal";
59+ FILE *f = fopen(fname, "r");
60+ int ret;
61+ if (f) {
62+ ret = fscanf(f, "%d %d %d %d %d %d %d",
63+ &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]);
64+ if (ret == 7)
65+ have_pointercal = 1;
66+ else
67+ LOGW("Failed to parse %s", fname);
68+ fclose(f);
69+ }
70+ else
71+ LOGW("Failed to open %s", fname);
72+
73+ if (have_pointercal) {
74+ mLocked.xScale = float(a[0]) / float(a[6]);
75+ mLocked.yScale = float(a[4]) / float(a[6]);
76+ // a[2] / mLocked.xScale / a[6]
77+ mLocked.xOrigin = -a[2] / a[0];
78+ mLocked.yOrigin = -a[5] / a[4];
79+ } else {
80+ mLocked.xOrigin = mRawAxes.x.minValue;
81+ mLocked.yOrigin = mRawAxes.y.minValue;
82+ mLocked.xScale = float(width) / mRawAxes.x.getRange();
83+ mLocked.yScale = float(height) / mRawAxes.y.getRange();
84+ }
85+ mLocked.xPrecision = fabsf(1.0f / mLocked.xScale);
86+ mLocked.yPrecision = fabsf(1.0f / mLocked.yScale);
87
88 configureVirtualKeysLocked();
89 } else {
b2264797 90@@ -1489,7 +1513,7 @@ bool TouchInputMapper::configureSurfaceLocked() {
34a1da07 91 // Scale factor for terms that are not oriented in a particular axis.
92 // If the pixels are square then xScale == yScale otherwise we fake it
93 // by choosing an average.
94- mLocked.geometricScale = avg(mLocked.xScale, mLocked.yScale);
95+ mLocked.geometricScale = avg(fabsf(mLocked.xScale), fabsf(mLocked.yScale));
96
97 // Size of diagonal axis.
98 float diagonalSize = pythag(width, height);
b2264797 99diff --git a/frameworks/base/services/java/com/android/server/PowerManagerService.java b/frameworks/base/services/java/com/android/server/PowerManagerService.java
100index 44eb228..9444fad 100644
101--- a/frameworks/base/services/java/com/android/server/PowerManagerService.java
102+++ b/frameworks/base/services/java/com/android/server/PowerManagerService.java
103@@ -766,7 +766,8 @@ class PowerManagerService extends IPowerManager.Stub
104 }
105
106 private void updateWakeLockLocked() {
107- if (mStayOnConditions != 0 && mBatteryService.isPowered(mStayOnConditions)) {
108+ /* pandora hack: screenoff breakage workaround */
109+ if (true || mStayOnConditions != 0 && mBatteryService.isPowered(mStayOnConditions)) {
110 // keep the device on if we're plugged in and mStayOnWhilePluggedIn is set.
111 mStayOnWhilePluggedInScreenDimLock.acquire();
112 mStayOnWhilePluggedInPartialLock.acquire();
34a1da07 113
114project hardware/libhardware/
115diff --git a/hardware/libhardware/modules/gralloc/framebuffer.cpp b/hardware/libhardware/modules/gralloc/framebuffer.cpp
116index fe57a8a..b5465e4 100644
117--- a/hardware/libhardware/modules/gralloc/framebuffer.cpp
118+++ b/hardware/libhardware/modules/gralloc/framebuffer.cpp
119@@ -109,6 +109,12 @@ static int fb_post(struct framebuffer_device_t* dev, buffer_handle_t buffer)
120 }
121 m->currentBuffer = buffer;
122
123+#ifndef FBIO_WAITFORVSYNC
124+#define FBIO_WAITFORVSYNC _IOW ('F', 32, unsigned int)
125+#endif
126+ int mode = 0;
127+ ioctl(m->framebuffer->fd, FBIO_WAITFORVSYNC, &mode);
128+
129 } else {
130 // If we can't do the page_flip, just copy the buffer to the front
131 // FIXME: use copybit HAL instead of memcpy
132
b2264797 133project hardware/libhardware_legacy/
134diff --git a/hardware/libhardware_legacy/power/power.c b/hardware/libhardware_legacy/power/power.c
135index bca52fc..2ffadfa 100644
136--- a/hardware/libhardware_legacy/power/power.c
137+++ b/hardware/libhardware_legacy/power/power.c
138@@ -254,6 +254,9 @@ set_screen_state(int on)
139 //LOGI("go_to_sleep eventTime=%lld now=%lld g_error=%s\n", eventTime,
140 // systemTime(), strerror(g_error));
141
142+ // pandora hack
143+ return 0;
144+
145 if (g_error) return g_error;
146
147 char buf[32];
148diff --git a/hardware/libhardware_legacy/wifi/wifi.c b/hardware/libhardware_legacy/wifi/wifi.c
149index 167402b..4e03740 100644
150--- a/hardware/libhardware_legacy/wifi/wifi.c
151+++ b/hardware/libhardware_legacy/wifi/wifi.c
152@@ -695,17 +695,40 @@ int wifi_connect_to_supplicant()
153 return 0;
154 }
155
156+#include <sys/types.h>
157+#include <sys/socket.h>
158+#include <unistd.h>
159+#include <sys/ioctl.h>
160+#include <net/if.h>
161+
162 int wifi_send_command(struct wpa_ctrl *ctrl, const char *cmd, char *reply, size_t *reply_len)
163 {
164 int ret;
165
166+ int sock = socket(AF_INET, SOCK_DGRAM, 0);
167+ if (sock != -1) {
168+ struct ifreq ifr;
169+ memset(&ifr, 0, sizeof(ifr));
170+ strcpy(ifr.ifr_name, "wlan0");
171+
172+ if (ioctl(sock, SIOCGIFFLAGS, &ifr) == 0) {
173+ if (!(ifr.ifr_flags & IFF_UP)) {
174+ LOGE("wlan0 is down - attempting to bring up..\n");
175+ ifr.ifr_flags |= IFF_UP;
176+ if (ioctl(sock, SIOCSIFFLAGS, &ifr) == 0)
177+ LOGE("wlan0 brought up\n");
178+ }
179+ }
180+ close(sock);
181+ }
182+
183 if (ctrl_conn == NULL) {
184- LOGV("Not connected to wpa_supplicant - \"%s\" command dropped.\n", cmd);
185+ LOGE("Not connected to wpa_supplicant - \"%s\" command dropped.\n", cmd);
186 return -1;
187 }
188 ret = wpa_ctrl_request(ctrl, cmd, strlen(cmd), reply, reply_len, NULL);
189 if (ret == -2) {
190- LOGD("'%s' command timed out.\n", cmd);
191+ LOGE("'%s' command timed out.\n", cmd);
192 return -2;
193 } else if (ret < 0 || strncmp(reply, "FAIL", 4) == 0) {
194 return -1;
195
ebcf0cf7 196project hardware/ti/omap3/
197diff --git a/hardware/ti/omap3/Android.mk b/hardware/ti/omap3/Android.mk
198index d2171bf..059ea3e 100644
199--- a/hardware/ti/omap3/Android.mk
200+++ b/hardware/ti/omap3/Android.mk
201@@ -1,4 +1,7 @@
202 # make sure the omap3 HAL code doesn't get picked up by non-omap boards
203 ifeq ($(OMAP_ENHANCEMENT),true)
204 include $(call first-makefiles-under,$(call my-dir))
205+else
206+ LOCAL_PATH := $(call my-dir)
207+ include $(LOCAL_PATH)/modules/alsa/Android.mk
208 endif
209
b2264797 210project packages/providers/MediaProvider/
211diff --git a/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java b/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
212index 146966f..3938841 100644
213--- a/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
214+++ b/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
215@@ -3317,8 +3317,9 @@ public class MediaProvider extends ContentProvider {
216 Log.i(TAG, "External storage is not (yet) mounted, cannot attach volume.");
217 }
218
219- throw new IllegalArgumentException("Unable to obtain external storage volume ID for " +
220- volume + " volume.");
221+ // pandora hack: ignore for now, like older Android did
222+ //throw new IllegalArgumentException("Unable to obtain external storage volume ID for " +
223+ // volume + " volume.");
224 }
225
226 // generate database name based on volume ID
227
34a1da07 228project system/core/
b2264797 229diff --git a/system/core/init/devices.c b/system/core/init/devices.c
230index 04f2caf..5affc06 100644
231--- a/system/core/init/devices.c
232+++ b/system/core/init/devices.c
233@@ -572,6 +572,9 @@ static void handle_firmware_event(struct uevent *uevent)
234 int status;
235 int ret;
236
237+ // pandora hack: udev is handling this for us
238+ return;
239+
240 if(strcmp(uevent->subsystem, "firmware"))
241 return;
242
34a1da07 243diff --git a/system/core/libsysutils/src/NetlinkListener.cpp b/system/core/libsysutils/src/NetlinkListener.cpp
244index fb088e1..f99227c 100644
245--- a/system/core/libsysutils/src/NetlinkListener.cpp
246+++ b/system/core/libsysutils/src/NetlinkListener.cpp
247@@ -45,21 +45,21 @@ bool NetlinkListener::onDataAvailable(SocketClient *cli)
248 }
249
250 if ((snl.nl_groups != 1) || (snl.nl_pid != 0)) {
251- SLOGE("ignoring non-kernel netlink multicast message");
252- return false;
253+ //SLOGE("ignoring non-kernel netlink multicast message");
254+ return true;
255 }
256
257 struct cmsghdr * cmsg = CMSG_FIRSTHDR(&hdr);
258
259 if (cmsg == NULL || cmsg->cmsg_type != SCM_CREDENTIALS) {
260 SLOGE("ignoring message with no sender credentials");
261- return false;
262+ return true;
263 }
264
265 struct ucred * cred = (struct ucred *)CMSG_DATA(cmsg);
266 if (cred->uid != 0) {
267 SLOGE("ignoring message from non-root UID %d", cred->uid);
268- return false;
269+ return true;
270 }
271
272 NetlinkEvent *evt = new NetlinkEvent();