remove udev 66/566/1
authorRen Zhaohan <zhaohan.ren@intel.com>
Tue, 4 May 2010 07:56:25 +0000 (15:56 +0800)
committerRen Zhaohan <zhaohan.ren@intel.com>
Tue, 4 May 2010 07:56:25 +0000 (15:56 +0800)
va/Android.mk
va/android/va_android.c
va/va.c
va/va_android.h

index 1c49aa9..eb9967d 100644 (file)
@@ -8,8 +8,7 @@ include $(CLEAR_VARS)
 LOCAL_SRC_FILES := \
    va.c \
    va_trace.c \
-   android/va_android.c \
-   android/drmtest.c \
+   android/va_android.c
 
 
 LOCAL_CFLAGS += -DHAVE_CONFIG_H \
index 8c0a75e..5ccf998 100644 (file)
@@ -26,7 +26,7 @@
 #include "va.h"
 #include "va_backend.h"
 #include "va_android.h"
-#include "va_dricommon.h" /* needs some helper functions from this file */
+#include "x11/va_dricommon.h" /* needs some helper functions from this file */
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
 
 static VADisplayContextP pDisplayContexts = NULL;
 
+static int open_device (char *dev_name)
+{
+  struct stat st;
+  int fd;
+
+  if (-1 == stat (dev_name, &st))
+    {
+      printf ("Cannot identify '%s': %d, %s\n",
+               dev_name, errno, strerror (errno));
+      return -1;
+    }
+
+  if (!S_ISCHR (st.st_mode))
+    {
+      printf ("%s is no device\n", dev_name);
+      return -1;
+    }
+
+  fd = open (dev_name, O_RDWR /* required */  | O_NONBLOCK, 0);
+
+  if (-1 == fd)
+    {
+      fprintf (stderr, "Cannot open '%s': %d, %s\n",
+               dev_name, errno, strerror (errno));
+      return -1;
+    }
+
+  return fd;
+}
 
 static int va_DisplayContextIsValid (
     VADisplayContextP pDisplayContext
@@ -103,41 +132,24 @@ static VAStatus va_DisplayContextGetDriverName (
     };
 
     memset(dri_state, 0, sizeof(*dri_state));
-    dri_state->fd = drm_open_any(&vendor_id, &device_id);
+    dri_state->fd = open_device(DEVICE_NAME);
     
     if (dri_state->fd < 0) {
         fprintf(stderr,"can't open DRM devices\n");
         return VA_STATUS_ERROR_UNKNOWN;
     }
-    
+
     if ((driver_name_env = getenv("LIBVA_DRIVER_NAME")) != NULL
         && geteuid() == getuid()) {
         /* don't allow setuid apps to use LIBVA_DRIVER_NAME */
         *driver_name = strdup(driver_name_env);
         return VA_STATUS_SUCCESS;
     } else { /* TBD: other vendor driver names */
-        int i = 0;
-
-        while (devices[i].device_id != 0) {
-            if ((devices[i].vendor_id == vendor_id) &&
-                (devices[i].device_id == device_id))
-                break;
-            i++;
-        }
-
-        if (devices[i].device_id != 0)
-            *driver_name = strdup(devices[i].driver_name);
-        else {
-            fprintf(stderr,"device (0x%04x:0x%04x) is not supported\n",
-                    vendor_id, device_id);
-            
-            return VA_STATUS_ERROR_UNKNOWN;
-        }            
+       vendor_id = devices[0].vendor_id;
+       device_id = devices[0].device_id;
+       *driver_name = strdup(devices[0].driver_name);
     }
 
-    printf("DRM device is opened, loading driver %s for device 0x%04x:0x%04x\n",
-           driver_name, vendor_id, device_id);
-    
     dri_state->driConnectedFlag = VA_DUMMY;
     
     return VA_STATUS_SUCCESS;
diff --git a/va/va.c b/va/va.c
index b91c588..c97b6cc 100644 (file)
--- a/va/va.c
+++ b/va/va.c
@@ -350,7 +350,7 @@ VAStatus vaInitialize (
   {
       vaStatus = va_openDriver(dpy, driver_name);
       va_infoMessage("va_openDriver() returns %d\n", vaStatus);
-      
+
       *major_version = VA_MAJOR_VERSION;
       *minor_version = VA_MINOR_VERSION;
   }
index bba85f7..3e050b8 100644 (file)
@@ -14,8 +14,8 @@ VADisplay vaGetDisplay (
 );
 
 #if ANDROID    
-#include <ui/Surface.h>
-class Surface;
+//#include <ui/Surface.h>
+//class Surface;
     
 /*
  * Output rendering
@@ -28,7 +28,7 @@ class Surface;
 VAStatus vaPutSurface (
     VADisplay dpy,
     VASurfaceID surface,       
-    Surface *draw, /* Android Window/Surface */
+    void *draw, /* Android Window/Surface */
     short srcx,
     short srcy,
     unsigned short srcw,