[Buildroot] [PATCH 2/2] Add supporit for Vivante xdriver

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Sun Apr 20 10:13:58 UTC 2014


Dear Jérôme Pouiller,

There is a typo in the commit title, and we normally use the following
commit title for package additions:

	"<package name>: new package"

On Tue,  1 Apr 2014 18:16:12 +0200, Jérôme Pouiller wrote:

> diff --git a/package/x11r7/Config.in b/package/x11r7/Config.in
> index 8685ca1..73dcc45 100644
> --- a/package/x11r7/Config.in
> +++ b/package/x11r7/Config.in
> @@ -160,6 +160,7 @@ if BR2_PACKAGE_XORG7
>  		source package/x11r7/xdriver_xf86-video-glide/Config.in
>  		source package/x11r7/xdriver_xf86-video-glint/Config.in
>  		source package/x11r7/xdriver_xf86-video-i128/Config.in
> +		source package/x11r7/xdriver_xf86-video-imx-viv/Config.in
>  		source package/x11r7/xdriver_xf86-video-intel/Config.in
>  		source package/x11r7/xdriver_xf86-video-mach64/Config.in
>  		source package/x11r7/xdriver_xf86-video-mga/Config.in
> diff --git a/package/x11r7/xdriver_xf86-video-imx-viv/Config.in b/package/x11r7/xdriver_xf86-video-imx-viv/Config.in
> new file mode 100644
> index 0000000..3369d79
> --- /dev/null
> +++ b/package/x11r7/xdriver_xf86-video-imx-viv/Config.in
> @@ -0,0 +1,22 @@
> +config BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV
> +       bool "xf86-video-imx-viv"
> +       depends on BR2_arm
> +       depends on BR2_PACKAGE_GPU_VIV_BIN_MX6Q

I believe we could probably select BR2_PACKAGE_GPU_VIV_BIN_MX6Q here.

> +       select BR2_PACKAGE_XPROTO_XPROTO
> +       select BR2_PACKAGE_XPROTO_XF86DRIPROTO
> +       help
> +         X.Org driver for iMX6 GPU (Vivante)
> +
> +         To use this driver, add correct configuration to your 
> +         /etc/X11/xorg.conf:
> +
> +         Section "Device"
> +            [...]
> +            Driver          "vivante"
> +            Option          "vivante_fbdev" "/dev/fbX"
> +         EndSection
> +
> +         Don't forget to load galcore.ko create /dev/galcore before to 

to create

> +         use this driver (else, Xorg will exit with an obscur message 

before to use -> before using

else -> otherwise

obscur -> obscure

> +         like "Segmentation fault at address 0xc").
> +
> diff --git a/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-001-Register-autotools-subprojects.patch b/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-001-Register-autotools-subprojects.patch
> new file mode 100644
> index 0000000..12fe96c
> --- /dev/null
> +++ b/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-001-Register-autotools-subprojects.patch

All patches should have a description + Signed-off-by line.

> @@ -0,0 +1,31 @@
> +--- /dev/null   2013-10-21 17:17:33.000000000 +0000
> ++++ b/configure.ac       2014-03-21 08:18:39.677026318 +0000
> +@@ -0,0 +1,5 @@
> ++AC_INIT([arm], [1.0])
> ++AM_INIT_AUTOMAKE([foreign])
> ++AC_CONFIG_FILES([Makefile])
> ++AC_CONFIG_SUBDIRS([EXA DRI_1.10.4])
> ++AC_OUTPUT
> +--- /dev/null   2013-10-21 17:17:33.000000000 +0000
> ++++ b/Makefile.am        2014-03-21 08:18:13.436901930 +0000
> +@@ -0,0 +1,1 @@
> ++SUBDIRS = EXA DRI_1.10.4
> +--- /dev/null   2013-10-21 17:17:33.000000000 +0000
> ++++ b/DRI_1.10.4/m4/.empty        2014-03-21 08:18:13.436901930 +0000
> +@@ -0,0 +1,1 @@
> ++empty
> +--- /dev/null   2013-10-21 17:17:33.000000000 +0000
> ++++ b/EXA/m4/.empty        2014-03-21 08:18:13.436901930 +0000
> +@@ -0,0 +1,1 @@
> ++empty
> +--- a/install.sh 2012-11-19 01:58:13.000000000 +0000
> ++++ /dev/null   2013-10-21 17:17:33.000000000 +0000
> +@@ -1,7 +0,0 @@
> +-#!/bin/sh -e
> +-
> +-cd EXA
> +-make install
> +-cd ../DRI_1.10.4
> +-make install
> +-cd ..
> +
> diff --git a/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-002-Fix-compile.patch b/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-002-Fix-compile.patch
> new file mode 100644
> index 0000000..1b13d4f
> --- /dev/null
> +++ b/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv-002-Fix-compile.patch

Ditto.

> @@ -0,0 +1,80 @@
> +--- a/DRI_1.10.4/src/dri.c	2012-11-19 01:58:13.000000000 +0000
> ++++ b/DRI_1.10.4/src/dri.c	2014-03-22 09:11:54.257608982 +0000
> +@@ -70,7 +70,6 @@
> + #include "mipointer.h"
> + #include "xf86_OSproc.h"
> + #include "inputstr.h"
> +-#include "xf86VGAarbiter.h"
> + #include "pixmapstr.h"
> + #include "pixmap.h"
> + #include "vivante_priv.h"
> +--- a/DRI_1.10.4/src/xf86dri.c	2012-11-19 01:58:13.000000000 +0000
> ++++ b/DRI_1.10.4/src/xf86dri.c	2014-03-22 09:12:42.985839910 +0000
> +@@ -89,7 +89,6 @@
> + )
> + {
> +     xXF86DRIQueryVersionReply rep;
> +-    register int n;
> + 
> +     REQUEST_SIZE_MATCH(xXF86DRIQueryVersionReq);
> +     rep.type = X_Reply;
> +@@ -99,11 +98,11 @@
> +     rep.minorVersion = SERVER_XF86DRI_MINOR_VERSION;
> +     rep.patchVersion = SERVER_XF86DRI_PATCH_VERSION;
> +     if (client->swapped) {
> +-    	swaps(&rep.sequenceNumber, n);
> +-    	swapl(&rep.length, n);
> +-	swaps(&rep.majorVersion, n);
> +-	swaps(&rep.minorVersion, n);
> +-	swapl(&rep.patchVersion, n);
> ++    	swaps(&rep.sequenceNumber);
> ++    	swapl(&rep.length);
> ++	swaps(&rep.majorVersion);
> ++	swaps(&rep.minorVersion);
> ++	swapl(&rep.patchVersion);
> +     }
> +     WriteToClient(client, sizeof(xXF86DRIQueryVersionReply), (char *)&rep);
> +     return Success;
> +@@ -116,7 +115,6 @@
> + {
> +     xXF86DRIQueryDirectRenderingCapableReply	rep;
> +     Bool isCapable;
> +-    register int n;
> + 
> +     REQUEST(xXF86DRIQueryDirectRenderingCapableReq);
> +     REQUEST_SIZE_MATCH(xXF86DRIQueryDirectRenderingCapableReq);
> +@@ -139,8 +137,8 @@
> + 	rep.isCapable = 0;
> + 
> +     if (client->swapped) {
> +-    	swaps(&rep.sequenceNumber, n);
> +-    	swapl(&rep.length, n);
> ++    	swaps(&rep.sequenceNumber);
> ++    	swapl(&rep.length);
> +     }
> + 
> +     WriteToClient(client,
> +@@ -598,9 +596,8 @@
> +     register ClientPtr	client
> + )
> + {
> +-    register int n;
> +     REQUEST(xXF86DRIQueryVersionReq);
> +-    swaps(&stuff->length, n);
> ++    swaps(&stuff->length);
> +     return ProcXF86DRIQueryVersion(client);
> + }
> + 
> +@@ -609,10 +606,9 @@
> +     register ClientPtr client
> + )
> + {
> +-    register int n;
> +     REQUEST(xXF86DRIQueryDirectRenderingCapableReq);
> +-    swaps(&stuff->length, n);
> +-    swapl(&stuff->screen, n);
> ++    swaps(&stuff->length);
> ++    swapl(&stuff->screen);
> +     return ProcXF86DRIQueryDirectRenderingCapable(client);
> + }
> + 
> diff --git a/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk b/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk
> new file mode 100644
> index 0000000..9fd24bc
> --- /dev/null
> +++ b/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk
> @@ -0,0 +1,17 @@
> +################################################################################
> +#
> +# xdriver_xf86-video-imx-viv
> +#
> +################################################################################
> +
> +# FIXME: Use $(FREESCALE_IMX_VERSION)

Please don't leave FIXMEs in the code: implement them :)

> +XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = 1.1.0
> +XDRIVER_XF86_VIDEO_IMX_VIV_SITE = $(FREESCALE_IMX_SITE)
> +XDRIVER_XF86_VIDEO_IMX_VIV_SOURCE = xserver-xorg-video-imx-viv-$(XDRIVER_XF86_VIDEO_IMX_VIV_VERSION).tar.gz
> +XDRIVER_XF86_VIDEO_IMX_VIV_DEPENDENCIES = gpu-viv-bin-mx6q xserver_xorg-server \
> +	xproto_xproto xlib_libpciaccess xproto_xf86driproto

Here you depend on xlib_libpciaccess, but this dependency is not
expressed in your Config.in file. Also, xlib_libpciaccess depends on
largefile support, so you should propagate this dependency to your
package when selecting xlib_libpciaccess.

> +XDRIVER_XF86_VIDEO_IMX_VIV_AUTORECONF = YES
> +XDRIVER_XF86_VIDEO_IMX_VIV_CONF_ENV += CFLAGS+=" -I../../DRI_1.10.4/src/ -I../../EXA/src/vivante_gal/"

This should be:

XDRIVER_XF86_VIDEO_IMX_VIV_CONF_ENV = \
	CFLAGS="$(TARGET_CFLAGS) -I../../DRI_1.10.4/src/ -I../../EXA/src/vivante_gal/"

Could you fix these issues and resubmit an updated patch?

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


More information about the buildroot mailing list