Only build libdrm-vivante and libkms Depend on upstream libdrm. -dev package installs IMX specific headers separate from upstream, packages that depends on them must be patched. Change-Id: Ie742d26822ed9970aa346c12bd98101fffc8644a
diff --git a/Makefile.am b/Makefile.am index 649160d..305c8e2 100644 --- a/Makefile.am +++ b/Makefile.am
@@ -22,129 +22,4 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} -AM_MAKEFLAGS = -s -AM_DISTCHECK_CONFIGURE_FLAGS = \ - --enable-udev \ - --enable-libkms \ - --enable-intel \ - --enable-radeon \ - --enable-amdgpu \ - --enable-nouveau \ - --enable-vc4 \ - --enable-vmwgfx \ - --enable-omap-experimental-api \ - --enable-exynos-experimental-api \ - --enable-freedreno \ - --enable-freedreno-kgsl\ - --enable-tegra-experimental-api \ - --enable-etnaviv-experimental-api \ - --enable-vivante-experimental-api \ - --enable-install-test-programs \ - --enable-cairo-tests \ - --enable-manpages \ - --enable-valgrind - -pkgconfigdir = @pkgconfigdir@ -pkgconfig_DATA = libdrm.pc - -if HAVE_LIBKMS -LIBKMS_SUBDIR = libkms -endif - -if HAVE_INTEL -INTEL_SUBDIR = intel -endif - -if HAVE_NOUVEAU -NOUVEAU_SUBDIR = nouveau -endif - -if HAVE_RADEON -RADEON_SUBDIR = radeon -endif - -if HAVE_AMDGPU -AMDGPU_SUBDIR = amdgpu -endif - -if HAVE_OMAP -OMAP_SUBDIR = omap -endif - -if HAVE_EXYNOS -EXYNOS_SUBDIR = exynos -endif - -if HAVE_FREEDRENO -FREEDRENO_SUBDIR = freedreno -endif - -if HAVE_TEGRA -TEGRA_SUBDIR = tegra -endif - -if HAVE_VC4 -VC4_SUBDIR = vc4 -endif - -if HAVE_ETNAVIV -ETNAVIV_SUBDIR = etnaviv -endif -if HAVE_VIVANTE -VIVANTE_SUBDIR = vivante -endif - -if BUILD_MANPAGES -if HAVE_MANPAGES_STYLESHEET -MAN_SUBDIR = man -endif -endif - -SUBDIRS = \ - . \ - $(LIBKMS_SUBDIR) \ - $(INTEL_SUBDIR) \ - $(NOUVEAU_SUBDIR) \ - $(RADEON_SUBDIR) \ - $(AMDGPU_SUBDIR) \ - $(OMAP_SUBDIR) \ - $(EXYNOS_SUBDIR) \ - $(FREEDRENO_SUBDIR) \ - $(TEGRA_SUBDIR) \ - $(VC4_SUBDIR) \ - $(VIVANTE_SUBDIR) \ - $(ETNAVIV_SUBDIR) \ - data \ - tests \ - $(MAN_SUBDIR) - -libdrm_la_LTLIBRARIES = libdrm.la -libdrm_ladir = $(libdir) -libdrm_la_LDFLAGS = -version-number 2:4:0 -no-undefined -libdrm_la_LIBADD = @CLOCK_LIB@ -lm - -libdrm_la_CPPFLAGS = -I$(top_srcdir)/include/drm -AM_CFLAGS = \ - $(WARN_CFLAGS) \ - $(VALGRIND_CFLAGS) - -libdrm_la_SOURCES = $(LIBDRM_FILES) - -libdrmincludedir = ${includedir} -libdrminclude_HEADERS = $(LIBDRM_H_FILES) - -klibdrmincludedir = ${includedir}/libdrm -klibdrminclude_HEADERS = $(LIBDRM_INCLUDE_H_FILES) - -if HAVE_VMWGFX -klibdrminclude_HEADERS += $(LIBDRM_INCLUDE_VMWGFX_H_FILES) -endif - -EXTRA_DIST = include/drm/README - -copy-headers : - cp -r $(kernel_source)/include/uapi/drm/*.h $(top_srcdir)/include/drm/ - -commit-headers : copy-headers - git add include/drm/*.h - git commit -am "Copy headers from kernel $$(GIT_DIR=$(kernel_source)/.git git describe)" +SUBDIRS = libkms vivante
diff --git a/configure.ac b/configure.ac index 1259a8f..bd28fa2 100644 --- a/configure.ac +++ b/configure.ac
@@ -19,10 +19,7 @@ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. AC_PREREQ([2.63]) -AC_INIT([libdrm], - [2.4.84], - [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI], - [libdrm]) +AC_INIT([libdrm-imx], [2.4.84]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SRCDIR([Makefile.am]) @@ -30,34 +27,14 @@ AC_CONFIG_AUX_DIR([build-aux]) PKG_PROG_PKG_CONFIG -# Require xorg-macros minimum of 1.12 for XORG_WITH_XSLTPROC -m4_ifndef([XORG_MACROS_VERSION], - [m4_fatal([must install xorg-macros 1.12 or later before running autoconf/autogen])]) -XORG_MACROS_VERSION(1.12) -XORG_WITH_XSLTPROC -XORG_MANPAGE_SECTIONS - AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2]) -# Enable quiet compiles on automake 1.11. -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +PKG_CHECK_MODULES(LIBDRM, libdrm) +AC_SUBST(LIBDRM_LIBS) +AC_SUBST(LIBDRM_CFLAGS) -# Check for programs -AC_PROG_CC -AC_PROG_CC_C99 - -if test "x$ac_cv_prog_cc_c99" = xno; then - AC_MSG_ERROR([Building libdrm requires C99 enabled compiler]) -fi - -AC_USE_SYSTEM_EXTENSIONS -AC_SYS_LARGEFILE -AC_FUNC_ALLOCA - -save_CFLAGS="$CFLAGS" -export CFLAGS="$CFLAGS -Werror" -AC_HEADER_MAJOR -CFLAGS="$save_CFLAGS" +AC_SUBST(PTHREADSTUBS_CFLAGS) +AC_SUBST(PTHREADSTUBS_LIBS) AC_CHECK_HEADERS([sys/sysctl.h sys/select.h]) @@ -65,107 +42,8 @@ LT_PREREQ([2.2]) LT_INIT([disable-static]) -dnl pthread-stubs is mandatory on BSD platforms, due to the nature of the -dnl project. Even then there's a notable issue as described in the project README -case "$host_os" in -linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu*) - pthread_stubs_possible="no" - ;; -* ) - pthread_stubs_possible="yes" - ;; -esac - -if test "x$pthread_stubs_possible" = xyes; then - PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs >= 0.4) - AC_SUBST(PTHREADSTUBS_CFLAGS) - AC_SUBST(PTHREADSTUBS_LIBS) -fi - pkgconfigdir=${libdir}/pkgconfig AC_SUBST(pkgconfigdir) -libdrmdatadir=${datadir}/libdrm -AC_SUBST(libdrmdatadir) - -AC_ARG_ENABLE([udev], - [AS_HELP_STRING([--enable-udev], - [Enable support for using udev instead of mknod (default: disabled)])], - [UDEV=$enableval], [UDEV=no]) - -AC_ARG_ENABLE(libkms, - AS_HELP_STRING([--disable-libkms], - [Disable KMS mm abstraction library (default: auto, enabled on supported platforms)]), - [LIBKMS=$enableval], [LIBKMS=auto]) - -AC_ARG_ENABLE(intel, - AS_HELP_STRING([--disable-intel], - [Enable support for intel's KMS API (default: auto, enabled on x86)]), - [INTEL=$enableval], [INTEL=auto]) - -AC_ARG_ENABLE(radeon, - AS_HELP_STRING([--disable-radeon], - [Enable support for radeon's KMS API (default: auto)]), - [RADEON=$enableval], [RADEON=auto]) - -AC_ARG_ENABLE(amdgpu, - AS_HELP_STRING([--disable-amdgpu], - [Enable support for amdgpu's KMS API (default: auto)]), - [AMDGPU=$enableval], [AMDGPU=auto]) - -AC_ARG_ENABLE(nouveau, - AS_HELP_STRING([--disable-nouveau], - [Enable support for nouveau's KMS API (default: auto)]), - [NOUVEAU=$enableval], [NOUVEAU=auto]) - -AC_ARG_ENABLE(vmwgfx, - AS_HELP_STRING([--disable-vmwgfx], - [Enable support for vmwgfx's KMS API (default: yes)]), - [VMWGFX=$enableval], [VMWGFX=yes]) - -AC_ARG_ENABLE(omap-experimental-api, - AS_HELP_STRING([--enable-omap-experimental-api], - [Enable support for OMAP's experimental API (default: disabled)]), - [OMAP=$enableval], [OMAP=no]) - -AC_ARG_ENABLE(exynos-experimental-api, - AS_HELP_STRING([--enable-exynos-experimental-api], - [Enable support for EXYNOS's experimental API (default: disabled)]), - [EXYNOS=$enableval], [EXYNOS=no]) - -AC_ARG_ENABLE(freedreno, - AS_HELP_STRING([--disable-freedreno], - [Enable support for freedreno's KMS API (default: auto, enabled on arm)]), - [FREEDRENO=$enableval], [FREEDRENO=auto]) - -AC_ARG_ENABLE(freedreno-kgsl, - AS_HELP_STRING([--enable-freedreno-kgsl], - [Enable support for freedreno's to use downstream android kernel API (default: disabled)]), - [FREEDRENO_KGSL=$enableval], [FREEDRENO_KGSL=no]) - -AC_ARG_ENABLE(tegra-experimental-api, - AS_HELP_STRING([--enable-tegra-experimental-api], - [Enable support for Tegra's experimental API (default: disabled)]), - [TEGRA=$enableval], [TEGRA=no]) - -AC_ARG_ENABLE(vivante-experimental-api, - AS_HELP_STRING([--enable-vivante-experimental-api], - [Enable support for vivante's experimental API (default: disabled)]), - [VIVANTE=$enableval], [VIVANTE=no]) - -AC_ARG_ENABLE(vc4, - AS_HELP_STRING([--disable-vc4], - [Enable support for vc4's API (default: auto, enabled on arm)]), - [VC4=$enableval], [VC4=auto]) - -AC_ARG_ENABLE(etnaviv-experimental-api, - AS_HELP_STRING([--enable-etnaviv-experimental-api], - [Enable support for etnaviv's experimental API (default: disabled)]), - [ETNAVIV=$enableval], [ETNAVIV=no]) - -AC_ARG_ENABLE(install-test-programs, - AS_HELP_STRING([--enable-install-test-programs], - [Install test programs (default: no)]), - [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no]) dnl =========================================================================== dnl check compiler flags @@ -242,362 +120,11 @@ AC_MSG_CHECKING([which warning flags were supported])]) WARN_CFLAGS="$libdrm_cv_warn_cflags" -# Check for atomic intrinsics -AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives, [ - drm_cv_atomic_primitives="none" - - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ - int atomic_add(int *i) { return __sync_add_and_fetch (i, 1); } - int atomic_cmpxchg(int *i, int j, int k) { return __sync_val_compare_and_swap (i, j, k); } - ]],[[]])], [drm_cv_atomic_primitives="Intel"],[]) - - if test "x$drm_cv_atomic_primitives" = "xnone"; then - AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops") - fi - - # atomic functions defined in <atomic.h> & libc on Solaris - if test "x$drm_cv_atomic_primitives" = "xnone"; then - AC_CHECK_FUNC([atomic_cas_uint], drm_cv_atomic_primitives="Solaris") - fi -]) - -if test "x$drm_cv_atomic_primitives" = xIntel; then - AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 1, - [Enable if your compiler supports the Intel __sync_* atomic primitives]) -fi -if test "x$drm_cv_atomic_primitives" = "xlibatomic-ops"; then - AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, [Enable if you have libatomic-ops-dev installed]) -fi - -dnl Print out the approapriate message considering the value set be the -dnl respective in $1. -dnl $1 - value to be evaluated. Eg. $INTEL, $NOUVEAU, ... -dnl $2 - libdrm shortname. Eg. intel, freedreno, ... -dnl $3 - GPU name/brand. Eg. Intel, NVIDIA Tegra, ... -dnl $4 - Configure switch. Eg. intel, omap-experimental-api, ... -AC_DEFUN([LIBDRM_ATOMICS_NOT_FOUND_MSG], [ - case "x$1" in - xyes) AC_MSG_ERROR([libdrm_$2 depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for $3 GPUs by passing --disable-$4 to ./configure]) ;; - xauto) AC_MSG_WARN([Disabling $2. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package.]) ;; - *) ;; - esac -]) - -if test "x$drm_cv_atomic_primitives" = "xnone"; then - LIBDRM_ATOMICS_NOT_FOUND_MSG($INTEL, intel, Intel, intel) - INTEL=no - - LIBDRM_ATOMICS_NOT_FOUND_MSG($RADEON, radeon, Radeon, radeon) - RADEON=no - - LIBDRM_ATOMICS_NOT_FOUND_MSG($AMDGPU, amdgpu, AMD, amdgpu) - AMDGPU=no - - LIBDRM_ATOMICS_NOT_FOUND_MSG($NOUVEAU, nouveau, NVIDIA, nouveau) - NOUVEAU=no - - LIBDRM_ATOMICS_NOT_FOUND_MSG($OMAP, omap, OMAP, omap-experimental-api) - OMAP=no - - LIBDRM_ATOMICS_NOT_FOUND_MSG($FREEDRENO, freedreno, Qualcomm Adreno, freedreno) - FREEDRENO=no - - LIBDRM_ATOMICS_NOT_FOUND_MSG($TEGRA, tegra, NVIDIA Tegra, tegra-experimental-api) - TEGRA=no - - LIBDRM_ATOMICS_NOT_FOUND_MSG($ETNAVIV, etnaviv, Vivante, etnaviv-experimental-api) - ETNAVIV=no -else - if test "x$INTEL" = xauto; then - case $host_cpu in - i?86|x86_64) INTEL=yes ;; - *) INTEL=no ;; - esac - fi - if test "x$RADEON" = xauto; then - RADEON=yes - fi - if test "x$AMDGPU" = xauto; then - AMDGPU=yes - fi - if test "x$NOUVEAU" = xauto; then - NOUVEAU=yes - fi - if test "x$FREEDRENO" = xauto; then - case $host_cpu in - arm*|aarch64) FREEDRENO=yes ;; - *) FREEDRENO=no ;; - esac - fi - if test "x$VC4" = xauto; then - case $host_cpu in - arm*|aarch64) VC4=yes ;; - *) VC4=no ;; - esac - fi -fi - -if test "x$INTEL" != "xno"; then - PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) -fi -AC_SUBST(PCIACCESS_CFLAGS) -AC_SUBST(PCIACCESS_LIBS) - -if test "x$UDEV" = xyes; then - AC_DEFINE(UDEV, 1, [Have UDEV support]) -fi - -AC_CANONICAL_HOST -if test "x$LIBKMS" = xauto ; then - case $host_os in - linux*) LIBKMS="yes" ;; - freebsd* | kfreebsd*-gnu) - LIBKMS="yes" ;; - dragonfly*) LIBKMS="yes" ;; - *) LIBKMS="no" ;; - esac -fi - -AM_CONDITIONAL(HAVE_LIBKMS, [test "x$LIBKMS" = xyes]) - -AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" = xyes]) -if test "x$INTEL" = xyes; then - AC_DEFINE(HAVE_INTEL, 1, [Have intel support]) -fi - -AM_CONDITIONAL(HAVE_VMWGFX, [test "x$VMWGFX" = xyes]) -if test "x$VMWGFX" = xyes; then - AC_DEFINE(HAVE_VMWGFX, 1, [Have vmwgfx kernel headers]) -fi - -AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes]) -if test "x$NOUVEAU" = xyes; then - AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support]) -fi - -AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes]) -if test "x$OMAP" = xyes; then - AC_DEFINE(HAVE_OMAP, 1, [Have OMAP support]) -fi - -AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes]) -if test "x$EXYNOS" = xyes; then - AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support]) -fi - -AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes]) -if test "x$FREEDRENO" = xyes; then - AC_DEFINE(HAVE_FREEDRENO, 1, [Have freedreno support]) -fi - -if test "x$FREEDRENO_KGSL" = xyes; then - if test "x$FREEDRENO" != xyes; then - AC_MSG_ERROR([Cannot enable freedreno KGSL interface if freedreno is disabled]) - fi -fi -AM_CONDITIONAL(HAVE_FREEDRENO_KGSL, [test "x$FREEDRENO_KGSL" = xyes]) -if test "x$FREEDRENO_KGSL" = xyes; then - AC_DEFINE(HAVE_FREEDRENO_KGSL, 1, [Have freedreno support for KGSL kernel interface]) -fi - -AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" = xyes]) -if test "x$RADEON" = xyes; then - AC_DEFINE(HAVE_RADEON, 1, [Have radeon support]) -fi - -if test "x$AMDGPU" != xno; then - # Detect cunit library - PKG_CHECK_MODULES([CUNIT], [cunit >= 2.1], [have_cunit=yes], [have_cunit=no]) - # If pkg-config does not find cunit, check it using AC_CHECK_LIB. We - # do this because Debian (Ubuntu) lacks pkg-config file for cunit. - # fixed in 2.1-2.dfsg-3: http://anonscm.debian.org/cgit/collab-maint/cunit.git/commit/?h=debian - if test "x${have_cunit}" = "xno"; then - AC_CHECK_LIB([cunit], [CU_initialize_registry], [have_cunit=yes], [have_cunit=no]) - if test "x${have_cunit}" = "xyes"; then - CUNIT_LIBS="-lcunit" - CUNIT_CFLAGS="" - AC_SUBST([CUNIT_LIBS]) - AC_SUBST([CUNIT_CFLAGS]) - fi - fi -else - have_cunit=no -fi -AM_CONDITIONAL(HAVE_CUNIT, [test "x$have_cunit" != "xno"]) - -AM_CONDITIONAL(HAVE_AMDGPU, [test "x$AMDGPU" = xyes]) -if test "x$AMDGPU" = xyes; then - AC_DEFINE(HAVE_AMDGPU, 1, [Have amdgpu support]) - - AC_DEFINE(HAVE_CUNIT, [test "x$have_cunit" != "xno"], [Enable CUNIT Have amdgpu support]) - - if test "x$have_cunit" = "xno"; then - AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests]) - fi -fi - -AM_CONDITIONAL(HAVE_TEGRA, [test "x$TEGRA" = xyes]) -if test "x$TEGRA" = xyes; then - AC_DEFINE(HAVE_TEGRA, 1, [Have Tegra support]) -fi - -AM_CONDITIONAL(HAVE_VIVANTE, [test "x$VIVANTE" = xyes]) -if test "x$VIVANTE" = xyes; then - AC_DEFINE(HAVE_VIVANTE, 1, [Have vivante support]) -fi - -AM_CONDITIONAL(HAVE_VC4, [test "x$VC4" = xyes]) -if test "x$VC4" = xyes; then - AC_DEFINE(HAVE_VC4, 1, [Have VC4 support]) -fi - -AM_CONDITIONAL(HAVE_ETNAVIV, [test "x$ETNAVIV" = xyes]) -if test "x$ETNAVIV" = xyes; then - AC_DEFINE(HAVE_ETNAVIV, 1, [Have etnaviv support]) -fi - -AM_CONDITIONAL(HAVE_INSTALL_TESTS, [test "x$INSTALL_TESTS" = xyes]) -if test "x$INSTALL_TESTS" = xyes; then - AC_DEFINE(HAVE_INSTALL_TESTS, 1, [Install test programs]) -fi - -AC_ARG_ENABLE([cairo-tests], - [AS_HELP_STRING([--enable-cairo-tests], - [Enable support for Cairo rendering in tests (default: auto)])], - [CAIRO=$enableval], [CAIRO=auto]) -if test "x$CAIRO" != xno; then - PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no]) -fi -AC_MSG_CHECKING([whether to enable Cairo tests]) -if test "x$CAIRO" = xauto; then - CAIRO="$HAVE_CAIRO" -fi -if test "x$CAIRO" = xyes; then - if ! test "x$HAVE_CAIRO" = xyes; then - AC_MSG_ERROR([Cairo support required but not present]) - fi - AC_DEFINE(HAVE_CAIRO, 1, [Have Cairo support]) -fi -AC_MSG_RESULT([$CAIRO]) -AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes]) - -# xsltproc for docbook manpages -AC_ARG_ENABLE([manpages], - AS_HELP_STRING([--enable-manpages], [enable manpages @<:@default=auto@:>@]), - [MANS=$enableval], [MANS=auto]) -AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"]) - -# check for offline man-pages stylesheet -AC_MSG_CHECKING([for docbook manpages stylesheet]) -MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" -AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc], - AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`], - [HAVE_MANPAGES_STYLESHEET=yes])) -if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then - AC_SUBST(MANPAGES_STYLESHEET) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi -AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"]) - -AC_ARG_ENABLE(valgrind, - [AS_HELP_STRING([--enable-valgrind], - [Build libdrm with valgrind support (default: auto)])], - [VALGRIND=$enableval], [VALGRIND=auto]) -if test "x$VALGRIND" != xno; then - PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no]) -fi -AC_MSG_CHECKING([whether to enable Valgrind support]) -if test "x$VALGRIND" = xauto; then - VALGRIND="$have_valgrind" -fi - -if test "x$VALGRIND" = "xyes"; then - if ! test "x$have_valgrind" = xyes; then - AC_MSG_ERROR([Valgrind support required but not present]) - fi - AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings]) -fi - -AC_MSG_RESULT([$VALGRIND]) - -AC_ARG_WITH([kernel-source], - [AS_HELP_STRING([--with-kernel-source], - [specify path to linux kernel source])], - [kernel_source="$with_kernel_source"]) -AC_SUBST(kernel_source) - -AC_MSG_CHECKING([whether $CC supports __attribute__(("hidden"))]) -AC_LINK_IFELSE([AC_LANG_PROGRAM([ - int foo_hidden( void ) __attribute__((visibility("hidden"))); -])], HAVE_ATTRIBUTE_VISIBILITY="yes"; AC_MSG_RESULT([yes]), AC_MSG_RESULT([no])); - -if test "x$HAVE_ATTRIBUTE_VISIBILITY" = xyes; then - AC_DEFINE(HAVE_VISIBILITY, 1, [Compiler supports __attribute__(("hidden"))]) -fi - AC_SUBST(WARN_CFLAGS) AC_CONFIG_FILES([ Makefile - data/Makefile libkms/Makefile libkms/libkms.pc - intel/Makefile - intel/libdrm_intel.pc - radeon/Makefile - radeon/libdrm_radeon.pc - amdgpu/Makefile - amdgpu/libdrm_amdgpu.pc - nouveau/Makefile - nouveau/libdrm_nouveau.pc - omap/Makefile - omap/libdrm_omap.pc - exynos/Makefile - exynos/libdrm_exynos.pc - freedreno/Makefile - freedreno/libdrm_freedreno.pc - tegra/Makefile - tegra/libdrm_tegra.pc vivante/Makefile - vivante/libdrm_vivante.pc - vc4/Makefile - vc4/libdrm_vc4.pc - etnaviv/Makefile - etnaviv/libdrm_etnaviv.pc - tests/Makefile - tests/modeprint/Makefile - tests/modetest/Makefile - tests/kms/Makefile - tests/kmstest/Makefile - tests/proptest/Makefile - tests/radeon/Makefile - tests/amdgpu/Makefile - tests/vbltest/Makefile - tests/exynos/Makefile - tests/tegra/Makefile - tests/vivante/Makefile - tests/nouveau/Makefile - tests/etnaviv/Makefile - tests/util/Makefile - man/Makefile - libdrm.pc]) + vivante/libdrm_vivante.pc]) AC_OUTPUT - -echo "" -echo "$PACKAGE_STRING will be compiled with:" -echo "" -echo " libkms $LIBKMS" -echo " Intel API $INTEL" -echo " vmwgfx API $VMWGFX" -echo " Radeon API $RADEON" -echo " AMDGPU API $AMDGPU" -echo " Nouveau API $NOUVEAU" -echo " OMAP API $OMAP" -echo " EXYNOS API $EXYNOS" -echo " Freedreno API $FREEDRENO (kgsl: $FREEDRENO_KGSL)" -echo " Tegra API $TEGRA" -echo " Vivante API $VIVANTE" -echo " VC4 API $VC4" -echo " Etnaviv API $ETNAVIV" -echo ""
diff --git a/include/drm/drm_fourcc_imx.h b/include/drm/drm_fourcc_imx.h new file mode 100644 index 0000000..1969c4b --- /dev/null +++ b/include/drm/drm_fourcc_imx.h
@@ -0,0 +1,129 @@ +/* + * Copyright 2011 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef DRM_FOURCC_IMX_H +#define DRM_FOURCC_IMX_H + +#include "drm.h" +#include "drm_fourcc.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +#define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0') /* 2x2 subsampled Cr:Cb plane, 10-bit per channel */ + +#define DRM_FORMAT_MOD_VENDOR_AMPHION 0x08 +#define DRM_FORMAT_MOD_VENDOR_VSI 0x09 + +/* Vivante framebuffer modifiers */ + +/* + * Vivante 4x4 tiling layout + * + * This is a simple tiled layout using tiles of 4x4 pixels in a row-major + * layout. + */ +#define DRM_FORMAT_MOD_VIVANTE_TILED fourcc_mod_code(VIVANTE, 1) + +/* + * Vivante 64x64 super-tiling layout + * + * This is a tiled layout using 64x64 pixel super-tiles, where each super-tile + * contains 8x4 groups of 2x4 tiles of 4x4 pixels (like above) each, all in row- + * major layout. + * + * For more information: see + * https://github.com/etnaviv/etna_viv/blob/master/doc/hardware.md#texture-tiling + */ +#define DRM_FORMAT_MOD_VIVANTE_SUPER_TILED fourcc_mod_code(VIVANTE, 2) + +/* + * Vivante 4x4 tiling layout for dual-pipe + * + * Same as the 4x4 tiling layout, except every second 4x4 pixel tile starts at a + * different base address. Offsets from the base addresses are therefore halved + * compared to the non-split tiled layout. + */ +#define DRM_FORMAT_MOD_VIVANTE_SPLIT_TILED fourcc_mod_code(VIVANTE, 3) + +/* + * Vivante 64x64 super-tiling layout for dual-pipe + * + * Same as the 64x64 super-tiling layout, except every second 4x4 pixel tile + * starts at a different base address. Offsets from the base addresses are + * therefore halved compared to the non-split super-tiled layout. + */ +#define DRM_FORMAT_MOD_VIVANTE_SPLIT_SUPER_TILED fourcc_mod_code(VIVANTE, 4) + +/* + * Vivante 64x64 super-tiling with compression layout + * + * This is a tiled layout using 64x64 pixel super-tiles, where each super-tile + * contains 8x4 groups of 2x4 tiles of 4x4 pixels each, all in row-major layout + * with compression. + */ +#define DRM_FORMAT_MOD_VIVANTE_SUPER_TILED_FC fourcc_mod_code(VIVANTE, 5) + + +/* Amphion tiled layout */ + +/* + * Amphion 8x128 tiling layout + * + * This is a tiled layout using 8x128 pixel vertical strips, where each strip + * contains 1x16 groups of 8x8 pixels in a row-major layout. + */ +#define DRM_FORMAT_MOD_AMPHION_TILED fourcc_mod_code(AMPHION, 1) + +/* Verisilicon framebuffer modifiers */ + +/* + * Verisilicon 8x4 tiling layout + * + * This is G1 VPU tiled layout using tiles of 8x4 pixels in a row-major + * layout. + */ +#define DRM_FORMAT_MOD_VSI_G1_TILED fourcc_mod_code(VSI, 1) + +/* + * Verisilicon 4x4 tiling layout + * + * This is G2 VPU tiled layout using tiles of 4x4 pixels in a row-major + * layout. + */ +#define DRM_FORMAT_MOD_VSI_G2_TILED fourcc_mod_code(VSI, 2) + +/* + * Verisilicon 4x4 tiling with compression layout + * + * This is G2 VPU tiled layout using tiles of 4x4 pixels in a row-major + * layout with compression. + */ +#define DRM_FORMAT_MOD_VSI_G2_TILED_COMPRESSED fourcc_mod_code(VSI, 3) + +#if defined(__cplusplus) +} +#endif + +#endif /* DRM_FOURCC_H */
diff --git a/include/drm/drm_mode_imx.h b/include/drm/drm_mode_imx.h new file mode 100644 index 0000000..c88b4a7 --- /dev/null +++ b/include/drm/drm_mode_imx.h
@@ -0,0 +1,62 @@ +/* + * Copyright (c) 2007 Dave Airlie <airlied@linux.ie> + * Copyright (c) 2007 Jakob Bornecrantz <wallbraker@gmail.com> + * Copyright (c) 2008 Red Hat Inc. + * Copyright (c) 2007-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA + * Copyright (c) 2007-2008 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef _DRM_MODE_IMX_H +#define _DRM_MODE_IMX_H + +#include "drm.h" +#include "drm_mode.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +enum supported_eotf_type { + TRADITIONAL_GAMMA_SDR = 0, + TRADITIONA_GAMMA_HDR, + SMPTE_ST2084, + FUTURE_EOTF +}; + +/* HDR Metadata */ +struct hdr_static_metadata { + __u8 eotf; + __u8 type; + __u16 display_primaries_x[3]; + __u16 display_primaries_y[3]; + __u16 white_point_x; + __u16 white_point_y; + __u16 max_mastering_display_luminance; + __u16 min_mastering_display_luminance; + __u16 max_fall; + __u16 max_cll; +}; + +#if defined(__cplusplus) +} +#endif + +#endif
diff --git a/libkms/Makefile.am b/libkms/Makefile.am index 461fc35..5f2db76 100644 --- a/libkms/Makefile.am +++ b/libkms/Makefile.am
@@ -1,43 +1,15 @@ include Makefile.sources -AM_CFLAGS = \ - $(WARN_CFLAGS) \ - -I$(top_srcdir)/include/drm \ - -I$(top_srcdir) - libkms_la_LTLIBRARIES = libkms.la libkms_ladir = $(libdir) libkms_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libkms_la_LIBADD = ../libdrm.la +libkms_la_LIBADD = $(LIBDRM_LIBS) +libkms_la_CFLAGS = $(LIBDRM_CFLAGS) $(WARN_CFLAGS) -I$(top_srcdir) libkms_la_SOURCES = $(LIBKMS_FILES) -if HAVE_VMWGFX -libkms_la_SOURCES += $(LIBKMS_VMWGFX_FILES) -endif - -if HAVE_INTEL -libkms_la_SOURCES += $(LIBKMS_INTEL_FILES) -endif - -if HAVE_NOUVEAU -libkms_la_SOURCES += $(LIBKMS_NOUVEAU_FILES) -endif - -if HAVE_RADEON -libkms_la_SOURCES += $(LIBKMS_RADEON_FILES) -endif - -if HAVE_EXYNOS -libkms_la_SOURCES += $(LIBKMS_EXYNOS_FILES) -AM_CFLAGS += -I$(top_srcdir)/exynos -endif - libkmsincludedir = ${includedir}/libkms libkmsinclude_HEADERS = $(LIBKMS_H_FILES) pkgconfigdir = @pkgconfigdir@ pkgconfig_DATA = libkms.pc - -TESTS = kms-symbol-check -EXTRA_DIST = $(TESTS)
diff --git a/vivante/Makefile.am b/vivante/Makefile.am index cd4c73e..c147a5f 100644 --- a/vivante/Makefile.am +++ b/vivante/Makefile.am
@@ -26,27 +26,17 @@ ############################################################################## -AM_CPPFLAGS = \ - -I$(top_srcdir) \ - -I$(top_srcdir)/include/drm - -AM_CFLAGS = \ - @PTHREADSTUBS_CFLAGS@ \ - $(WARN_CFLAGS) - libdrm_vivante_ladir = $(libdir) libdrm_vivante_la_LTLIBRARIES = libdrm_vivante.la libdrm_vivante_la_LDFLAGS = -version-number 1:0:0 -no-undefined -libdrm_vivante_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ +libdrm_vivante_la_LIBADD = $(LIBDRM_LIBS) +libdrm_vivante_la_CFLAGS = $(LIBDRM_CFLAGS) $(WARN_CFLAGS) -I$(top_srcdir) libdrm_vivante_la_SOURCES = \ vivante_bo.c libdrm_vivanteincludedir = ${includedir}/libdrm -libdrm_vivanteinclude_HEADERS = vivante_bo.h +libdrm_vivanteinclude_HEADERS = vivante_bo.h vivante_drm.h pkgconfigdir = @pkgconfigdir@ pkgconfig_DATA = libdrm_vivante.pc - -TESTS = vivante-symbol-check -EXTRA_DIST = $(TESTS)
diff --git a/vivante/vivante_drm.h b/vivante/vivante_drm.h new file mode 120000 index 0000000..84fba4d --- /dev/null +++ b/vivante/vivante_drm.h
@@ -0,0 +1 @@ +../include/drm/vivante_drm.h \ No newline at end of file