OSDN Git Service

am ee4e28c9: am 1482406b: usbaudio: fix for out->dev->lock remains locked in error...
authorAmit Shekhar <ashekhar@codeaurora.org>
Thu, 6 Mar 2014 22:41:21 +0000 (22:41 +0000)
committerAndroid Git Automerger <android-git-automerger@android.com>
Thu, 6 Mar 2014 22:41:21 +0000 (22:41 +0000)
* commit 'ee4e28c9ebc7f26a1a25d1042d5a941139055447':
  usbaudio: fix for out->dev->lock remains locked in error case

hardware.c
include/hardware/qemu_pipe.h
modules/gralloc/Android.mk
modules/gralloc/framebuffer.cpp
modules/gralloc/gr.h
modules/gralloc/gralloc.cpp
modules/gralloc/gralloc_priv.h
modules/gralloc/mapper.cpp

index f835fda..6713ea0 100644 (file)
 #include <utils/Log.h>
 
 /** Base path of the hal modules */
+#if defined(__LP64__)
+#define HAL_LIBRARY_PATH1 "/system/lib64/hw"
+#define HAL_LIBRARY_PATH2 "/vendor/lib64/hw"
+#else
 #define HAL_LIBRARY_PATH1 "/system/lib/hw"
 #define HAL_LIBRARY_PATH2 "/vendor/lib/hw"
+#endif
 
 /**
  * There are a set of variant filename for modules. The form of the filename
index 1a67022..814b20b 100644 (file)
@@ -66,6 +66,8 @@ qemu_pipe_open(const char*  pipeName)
     snprintf(buff, sizeof buff, "pipe:%s", pipeName);
 
     fd = open("/dev/qemu_pipe", O_RDWR);
+    if (fd < 0 && errno == ENOENT)
+        fd = open("/dev/goldfish_pipe", O_RDWR);
     if (fd < 0) {
         D("%s: Could not open /dev/qemu_pipe: %s", __FUNCTION__, strerror(errno));
         //errno = ENOSYS;
index e1fd7d4..a4ffd20 100644 (file)
@@ -26,8 +26,8 @@ LOCAL_SRC_FILES :=    \
        gralloc.cpp     \
        framebuffer.cpp \
        mapper.cpp
-       
+
 LOCAL_MODULE := gralloc.default
-LOCAL_CFLAGS:= -DLOG_TAG=\"gralloc\"
+LOCAL_CFLAGS:= -DLOG_TAG=\"gralloc\" -Wno-missing-field-initializers
 
 include $(BUILD_SHARED_LIBRARY)
index 326f2ae..9d8513a 100644 (file)
@@ -330,7 +330,7 @@ int fb_device_open(hw_module_t const* module, const char* name,
         if (status >= 0) {
             int stride = m->finfo.line_length / (m->info.bits_per_pixel >> 3);
             int format = (m->info.bits_per_pixel == 32)
-                         ? HAL_PIXEL_FORMAT_RGBX_8888
+                         ? (m->info.red.offset ? HAL_PIXEL_FORMAT_BGRA_8888 : HAL_PIXEL_FORMAT_RGBX_8888)
                          : HAL_PIXEL_FORMAT_RGB_565;
             const_cast<uint32_t&>(dev->device.flags) = 0;
             const_cast<uint32_t&>(dev->device.width) = m->info.xres;
index 3a43aa7..732b6bc 100644 (file)
 #define GR_H_
 
 #include <stdint.h>
-#ifdef HAVE_ANDROID_OS      // just want PAGE_SIZE define
-# include <asm/page.h>
-#else
-# include <sys/user.h>
-#endif
+#include <sys/user.h>
 #include <limits.h>
 #include <sys/cdefs.h>
 #include <hardware/gralloc.h>
index f832f35..bdc789d 100644 (file)
@@ -166,7 +166,7 @@ static int gralloc_alloc_framebuffer(alloc_device_t* dev,
 }
 
 static int gralloc_alloc_buffer(alloc_device_t* dev,
-        size_t size, int usage, buffer_handle_t* pHandle)
+        size_t size, int /*usage*/, buffer_handle_t* pHandle)
 {
     int err = 0;
     int fd = -1;
index 86a5d52..2cd1007 100644 (file)
@@ -75,11 +75,13 @@ struct private_handle_t {
     int     offset;
 
     // FIXME: the attributes below should be out-of-line
-    int     base;
+    uint64_t base __attribute__((aligned(8)));
     int     pid;
 
 #ifdef __cplusplus
-    static const int sNumInts = 6;
+    static inline int sNumInts() {
+        return (((sizeof(private_handle_t) - sizeof(native_handle_t))/sizeof(int)) - sNumFds);
+    }
     static const int sNumFds = 1;
     static const int sMagic = 0x3141592;
 
@@ -88,7 +90,7 @@ struct private_handle_t {
         base(0), pid(getpid())
     {
         version = sizeof(native_handle);
-        numInts = sNumInts;
+        numInts = sNumInts();
         numFds = sNumFds;
     }
     ~private_handle_t() {
@@ -98,7 +100,7 @@ struct private_handle_t {
     static int validate(const native_handle* h) {
         const private_handle_t* hnd = (const private_handle_t*)h;
         if (!h || h->version != sizeof(native_handle) ||
-                h->numInts != sNumInts || h->numFds != sNumFds ||
+                h->numInts != sNumInts() || h->numFds != sNumFds ||
                 hnd->magic != sMagic)
         {
             ALOGE("invalid gralloc handle (at %p)", h);
index 13baf2a..5a882e2 100644 (file)
@@ -43,7 +43,7 @@ pid_t gettid() { return syscall(__NR_gettid);}
 
 /*****************************************************************************/
 
-static int gralloc_map(gralloc_module_t const* module,
+static int gralloc_map(gralloc_module_t const* /*module*/,
         buffer_handle_t handle,
         void** vaddr)
 {
@@ -56,7 +56,7 @@ static int gralloc_map(gralloc_module_t const* module,
             ALOGE("Could not mmap %s", strerror(errno));
             return -errno;
         }
-        hnd->base = intptr_t(mappedAddress) + hnd->offset;
+        hnd->base = uintptr_t(mappedAddress) + hnd->offset;
         //ALOGD("gralloc_map() succeeded fd=%d, off=%d, size=%d, vaddr=%p",
         //        hnd->fd, hnd->offset, hnd->size, mappedAddress);
     }
@@ -64,7 +64,7 @@ static int gralloc_map(gralloc_module_t const* module,
     return 0;
 }
 
-static int gralloc_unmap(gralloc_module_t const* module,
+static int gralloc_unmap(gralloc_module_t const* /*module*/,
         buffer_handle_t handle)
 {
     private_handle_t* hnd = (private_handle_t*)handle;
@@ -163,9 +163,9 @@ int terminateBuffer(gralloc_module_t const* module,
     return 0;
 }
 
-int gralloc_lock(gralloc_module_t const* module,
-        buffer_handle_t handle, int usage,
-        int l, int t, int w, int h,
+int gralloc_lock(gralloc_module_t const* /*module*/,
+        buffer_handle_t handle, int /*usage*/,
+        int /*l*/, int /*t*/, int /*w*/, int /*h*/,
         void** vaddr)
 {
     // this is called when a buffer is being locked for software
@@ -184,7 +184,7 @@ int gralloc_lock(gralloc_module_t const* module,
     return 0;
 }
 
-int gralloc_unlock(gralloc_module_t const* module,
+int gralloc_unlock(gralloc_module_t const* /*module*/,
         buffer_handle_t handle)
 {
     // we're done with a software buffer. nothing to do in this