switch to alsa.omap3 module
[android_pandora.git] / patches / all.patch
1
2 project external/hostap/
3 diff --git a/external/hostap/Android.mk b/external/hostap/Android.mk
4 index 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
14 diff --git a/external/hostap/wpa_supplicant/config-android b/external/hostap/wpa_supplicant/config-android
15 index 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
28 project external/openssl/
29 diff --git a/external/openssl/crypto/Android.mk b/external/openssl/crypto/Android.mk
30 index 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
42 project frameworks/base/
43 diff --git a/frameworks/base/libs/ui/InputReader.cpp b/frameworks/base/libs/ui/InputReader.cpp
44 index 7626b15..16e17b3 100644
45 --- a/frameworks/base/libs/ui/InputReader.cpp
46 +++ b/frameworks/base/libs/ui/InputReader.cpp
47 @@ -1468,12 +1468,36 @@ bool TouchInputMapper::configureSurfaceLocked() {
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 {
90 @@ -1489,7 +1513,7 @@ bool TouchInputMapper::configureSurfaceLocked() {
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);
99 diff --git a/frameworks/base/services/java/com/android/server/PowerManagerService.java b/frameworks/base/services/java/com/android/server/PowerManagerService.java
100 index 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();
113
114 project hardware/libhardware/
115 diff --git a/hardware/libhardware/modules/gralloc/framebuffer.cpp b/hardware/libhardware/modules/gralloc/framebuffer.cpp
116 index 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
133 project hardware/libhardware_legacy/
134 diff --git a/hardware/libhardware_legacy/power/power.c b/hardware/libhardware_legacy/power/power.c
135 index 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];
148 diff --git a/hardware/libhardware_legacy/wifi/wifi.c b/hardware/libhardware_legacy/wifi/wifi.c
149 index 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
196 project hardware/ti/omap3/
197 diff --git a/hardware/ti/omap3/Android.mk b/hardware/ti/omap3/Android.mk
198 index 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
210 project packages/providers/MediaProvider/
211 diff --git a/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java b/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
212 index 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
228 project system/core/
229 diff --git a/system/core/init/devices.c b/system/core/init/devices.c
230 index 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  
243 diff --git a/system/core/libsysutils/src/NetlinkListener.cpp b/system/core/libsysutils/src/NetlinkListener.cpp
244 index 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();