do not install libdrm_intel on ARM
[platform/upstream/libdrm.git] / libkms / intel.c
index 670494e..51a7fd2 100644 (file)
@@ -26,8 +26,9 @@
  **************************************************************************/
 
 
-#define HAVE_STDINT_H
-#define _FILE_OFFSET_BITS 64
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <errno.h>
 #include <stdio.h>
 #include <string.h>
 #include "internal.h"
 
-#include <sys/mman.h>
 #include <sys/ioctl.h>
 #include "xf86drm.h"
+#include "libdrm.h"
 
 #include "i915_drm.h"
 
 struct intel_bo
 {
        struct kms_bo base;
-       unsigned handle;
        unsigned map_count;
-       int mapped;
 };
 
 static int
 intel_get_prop(struct kms_driver *kms, unsigned key, unsigned *out)
 {
        switch (key) {
-       case KMS_MAX_SCANOUT_WIDTH:
-               *out = 4096;
-               break;
-       case KMS_MAX_SCANOUT_HEIGHT:
-               *out = 4096;
-               break;
-       case KMS_MIN_SCANOUT_WIDTH:
-               *out = 1;
-               break;
-       case KMS_MIN_SCANOUT_HEIGHT:
-               *out = 1;
-               break;
-       case KMS_MAX_CURSOR_WIDTH:
-               *out = 64;
-               break;
-       case KMS_MAX_CURSOR_HEIGHT:
-               *out = 64;
-               break;
-       case KMS_MIN_CURSOR_WIDTH:
-               *out = 64;
-               break;
-       case KMS_MIN_CURSOR_HEIGHT:
-               *out = 64;
+       case KMS_BO_TYPE:
+               *out = KMS_BO_TYPE_SCANOUT_X8R8G8B8 | KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8;
                break;
        default:
                return -EINVAL;
@@ -116,14 +94,15 @@ intel_bo_create(struct kms_driver *kms,
        if (!bo)
                return -ENOMEM;
 
-       if (type == KMS_BO_TYPE_CURSOR) {
+       if (type == KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8) {
                pitch = 64 * 4;
                size = 64 * 64 * 4;
-       } else if (type == KMS_BO_TYPE_SCANOUT) {
+       } else if (type == KMS_BO_TYPE_SCANOUT_X8R8G8B8) {
                pitch = width * 4;
                pitch = (pitch + 512 - 1) & ~(512 - 1);
                size = pitch * ((height + 4 - 1) & ~(4 - 1));
        } else {
+               free(bo);
                return -EINVAL;
        }
 
@@ -140,7 +119,7 @@ intel_bo_create(struct kms_driver *kms,
        bo->base.pitch = pitch;
 
        *out = &bo->base;
-       if (type == KMS_BO_TYPE_SCANOUT && pitch > 512) {
+       if (type == KMS_BO_TYPE_SCANOUT_X8R8G8B8 && pitch > 512) {
                struct drm_i915_gem_set_tiling tile;
 
                memset(&tile, 0, sizeof(tile));
@@ -194,7 +173,7 @@ intel_bo_map(struct kms_bo *_bo, void **out)
        if (ret)
                return ret;
 
-       map = mmap(0, bo->base.size, PROT_READ | PROT_WRITE, MAP_SHARED, bo->base.kms->fd, arg.offset);
+       map = drm_mmap(0, bo->base.size, PROT_READ | PROT_WRITE, MAP_SHARED, bo->base.kms->fd, arg.offset);
        if (map == MAP_FAILED)
                return -errno;
 
@@ -222,7 +201,7 @@ intel_bo_destroy(struct kms_bo *_bo)
 
        if (bo->base.ptr) {
                /* XXX Sanity check map_count */
-               munmap(bo->base.ptr, bo->base.size);
+               drm_munmap(bo->base.ptr, bo->base.size);
                bo->base.ptr = NULL;
        }