intel: Do not use libpciaccess on Android
authorTomasz Figa <tfiga@google.com>
Mon, 14 Dec 2015 10:46:34 +0000 (19:46 +0900)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 28 Mar 2018 16:08:32 +0000 (17:08 +0100)
This patch makes the code not rely anymore on libpciaccess when compiled
for Android to eliminate ioperm() and iopl() syscalls required by that
library. As a side effect, the mappable aperture size is hardcoded to 64
MiB on Android, however nothing seems to rely on this value anyway, as
checked be grepping relevant code in drm_gralloc and Mesa.

Cc: Rob Herring <rob.herring@linaro.org>
Signed-off-by: Tomasz Figa <tfiga@google.com>
[Emil Velikov: rebase against master. add missing __func__, Eric]
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: John Stultz <john.stultz@linaro.org>
intel/Android.mk
intel/intel_bufmgr.c

index 3f9db78..dd88168 100644 (file)
@@ -33,8 +33,7 @@ LOCAL_MODULE := libdrm_intel
 LOCAL_SRC_FILES := $(LIBDRM_INTEL_FILES)
 
 LOCAL_SHARED_LIBRARIES := \
-       libdrm \
-       libpciaccess
+       libdrm
 
 include $(LIBDRM_COMMON_MK)
 include $(BUILD_SHARED_LIBRARY)
index bede0a2..192de09 100644 (file)
@@ -32,7 +32,9 @@
 #include <errno.h>
 #include <drm.h>
 #include <i915_drm.h>
+#ifndef __ANDROID__
 #include <pciaccess.h>
+#endif
 #include "libdrm_macros.h"
 #include "intel_bufmgr.h"
 #include "intel_bufmgr_priv.h"
@@ -322,6 +324,7 @@ drm_intel_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, int crtc_id)
        return -1;
 }
 
+#ifndef __ANDROID__
 static size_t
 drm_intel_probe_agp_aperture_size(int fd)
 {
@@ -347,6 +350,15 @@ err:
        pci_system_cleanup ();
        return size;
 }
+#else
+static size_t
+drm_intel_probe_agp_aperture_size(int fd)
+{
+       /* Nothing seems to rely on this value on Android anyway... */
+       fprintf(stderr, "%s: Mappable aperture size hardcoded to 64MiB\n", __func__);
+       return 64 * 1024 * 1024;
+}
+#endif
 
 int
 drm_intel_get_aperture_sizes(int fd, size_t *mappable, size_t *total)