aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-graphics/xorg-driver
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-graphics/xorg-driver')
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-keyboard_1.6.0.bb17
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-mouse_1.7.0.bb17
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi11
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules5
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch20
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch34
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb32
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb9
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-drm-define-GLAMO_CMDQ_MAX_COUNT-instead-of-mag.patch66
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb19
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xorg-driver-common.inc40
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xorg-driver-input.inc4
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xorg-driver-video.inc4
13 files changed, 278 insertions, 0 deletions
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-keyboard_1.6.0.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-keyboard_1.6.0.bb
new file mode 100644
index 0000000000..cbbc7c717c
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-keyboard_1.6.0.bb
@@ -0,0 +1,17 @@
+require xorg-driver-input.inc
+
+SUMMARY = "X.Org X server -- keyboard input driver"
+
+DESCRIPTION = "keyboard is an Xorg input driver for keyboards. The \
+driver supports the standard OS-provided keyboard interface. The driver \
+functions as a keyboard input device, and may be used as the X server's \
+core keyboard."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea2099d24ac9e316a6d4b9f20b3d4e10"
+
+DEPENDS += " kbproto"
+PE = "1"
+PR = "${INC_PR}.0"
+
+SRC_URI[md5sum] = "e2abe9f13e526a73cb68a7d257546eba"
+SRC_URI[sha256sum] = "c46c790fec905d696573b7a374b10ab8b4389112a8f69993fe011006c99e858e"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-mouse_1.7.0.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-mouse_1.7.0.bb
new file mode 100644
index 0000000000..88b304ffa4
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-mouse_1.7.0.bb
@@ -0,0 +1,17 @@
+require xorg-driver-input.inc
+
+SUMMARY = "X.Org X server -- mouse input driver"
+
+DESCRIPTION = "mouse is an Xorg input driver for mice. The driver \
+supports most available mouse types and interfaces. The mouse driver \
+functions as a pointer input device, and may be used as the X server's \
+core pointer. Multiple mice are supported by multiple instances of this \
+driver."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=237eb1d1a602d29ef2af62d8fba60f19"
+
+PE = "1"
+PR = "${INC_PR}.0"
+
+SRC_URI[md5sum] = "7f31472689c15b6de62eff04d0fb57d7"
+SRC_URI[sha256sum] = "4e989542b5e9e0c5f9087288b18e70de1064dd27c83a4bc6dce58f3ea9d74994"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi
new file mode 100644
index 0000000000..906043947e
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deviceinfo version="0.2">
+ <device>
+ <match key="info.capabilities" contains="input.touchpad">
+ <merge key="input.x11_driver" type="string">tslib</merge>
+ </match>
+ <match key="info.capabilities" contains="input.touchscreen">
+ <merge key="input.x11_driver" type="string">tslib</merge>
+ </match>
+ </device>
+</deviceinfo>
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules
new file mode 100644
index 0000000000..ec130c257d
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules
@@ -0,0 +1,5 @@
+# create /dev/input/touchscreenX symlink, tag xf86-input-tslib as driver
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen%n", ENV{x11_driver}="tslib"
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="ads7846", SYMLINK+="input/touchscreen%n", ENV{x11_driver}="tslib"
+
+
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch
new file mode 100644
index 0000000000..07754731dd
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch
@@ -0,0 +1,20 @@
+xorg-server-1.7.3/hw/xfree86/common/xf86Helper.c contains this code
+causing a double free crash on chvt or exit:
+
+ /* This should *really* be handled in drv->UnInit(dev) call instead, but
+ * if the driver forgets about it make sure we free it or at least crash
+ * with flying colors */
+ if (pInp->private)
+ xfree(pInp->private);
+Index: xf86-input-tslib-0.0.6/src/tslib.c
+===================================================================
+--- xf86-input-tslib-0.0.6.orig/src/tslib.c
++++ xf86-input-tslib-0.0.6/src/tslib.c
+@@ -435,6 +435,7 @@ xf86TslibUninit(InputDriverPtr drv, Inpu
+ xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
+ ts_close(priv->ts);
+ xfree(pInfo->private);
++ pInfo->private = NULL;
+ xf86DeleteInput(pInfo, 0);
+ }
+
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch
new file mode 100644
index 0000000000..a1f6ba8f9e
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch
@@ -0,0 +1,34 @@
+From Grazvydas Ignotas
+
+At least xserver 1.7.4 crashes on XGetPointerControl request because of xf86-input-tslib:
+
+Program received signal SIGSEGV, Segmentation fault.
+#0 0x000355e0 in ProcGetPointerControl (client=0x4a2e58) at devices.c:2122
+#1 0x00062fa8 in Dispatch () at dispatch.c:439
+#2 0x00022444 in main (argc=4, argv=0xbeebedc4, envp=0xbeebedd8) at main.c:285
+
+This happens because ptrfeed field is not set in device structure from tslib.
+To fix this, call InitPtrFeedbackClassDeviceStruct() during DEVICE_INIT to get necessary setup done (as done in other input drivers).
+
+---
+diff -ur xf86-input-tslib-0.0.6/src/tslib.c xf86-input-tslib-0.0.6_/src/tslib.c
+--- xf86-input-tslib-0.0.6/src/tslib.c 2010-02-09 12:23:22.000000000 +0200
++++ xf86-input-tslib-0.0.6_/src/tslib.c 2010-02-09 12:37:33.000000000 +0200
+@@ -103,8 +103,6 @@
+ static void
+ PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl)
+ {
+- ErrorF("%s\n", __FUNCTION__);
+- return;
+ }
+
+ static Bool
+@@ -406,6 +404,8 @@
+ xf86MotionHistoryAllocate(pInfo);
+ #endif
+
++ if (!InitPtrFeedbackClassDeviceStruct(device, PointerControlProc))
++ return !Success;
+ break;
+
+ case DEVICE_ON:
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb
new file mode 100644
index 0000000000..d5d11ce158
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb
@@ -0,0 +1,32 @@
+require xorg-driver-input.inc
+DESCRIPTION = "X.Org X server -- tslib input driver"
+DEPENDS += "tslib"
+RRECOMMENDS_${PN} += "tslib-calibrate"
+RSUGGESTS_${PN} += "hal"
+
+# derived from xf86-input-void, that's why I kept MIT-X, but it's not clear, see COPYING
+LIC_FILES_CHKSUM = "file://src/tslib.c;endline=28;md5=bd62eaef222dcf5cd59e490a12bd795e \
+ file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
+
+PR = "${INC_PR}.1"
+
+SRC_URI = "http://www.pengutronix.de/software/xf86-input-tslib/download/xf86-input-tslib-${PV}.tar.bz2;name=archive \
+ file://double-free-crash.patch \
+ file://10-x11-input-tslib.fdi \
+ file://xserver-174-XGetPointerControl.patch \
+ file://99-xf86-input-tslib.rules \
+"
+SRC_URI[md5sum] = "b7a4d2f11637ee3fcf432e044b1d017f"
+SRC_URI[sha256sum] = "5f46fdef095a6e44a69e0f0b57c7d665224b26d990d006611236d8332e85b105"
+
+do_configure_prepend() {
+ rm -rf ${S}/m4/ || true
+}
+do_install_append() {
+ install -d ${D}/${datadir}/hal/fdi/policy/20thirdparty
+ install -m 0644 ${WORKDIR}/10-x11-input-tslib.fdi ${D}/${datadir}/hal/fdi/policy/20thirdparty
+ install -d ${D}/lib/udev/rules.d
+ install -m 0644 ${WORKDIR}/99-xf86-input-tslib.rules ${D}/lib/udev/rules.d/
+}
+
+FILES_${PN} += "${datadir}/hal /lib/udev"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb
new file mode 100644
index 0000000000..d555fbc4be
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.2.bb
@@ -0,0 +1,9 @@
+require xorg-driver-video.inc
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8"
+
+DESCRIPTION = "X.Org X server -- fbdev display driver"
+PE = "1"
+PR = "${INC_PR}.1"
+
+SRC_URI[md5sum] = "53a533d9e0c2da50962282526bace074"
+SRC_URI[sha256sum] = "93b271b4b41d7e5ca108849a583b9523e96c51813d046282285355b7001f82d5"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-drm-define-GLAMO_CMDQ_MAX_COUNT-instead-of-mag.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-drm-define-GLAMO_CMDQ_MAX_COUNT-instead-of-mag.patch
new file mode 100644
index 0000000000..0c7350fc18
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-drm-define-GLAMO_CMDQ_MAX_COUNT-instead-of-mag.patch
@@ -0,0 +1,66 @@
+From e2d0f9a3ba7f36b0b8ac8d736dd76da6e5e07f38 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 29 Oct 2010 11:19:08 +0200
+Subject: [PATCH] glamo-drm: define GLAMO_CMDQ_MAX_COUNT instead of magic constant 1024
+
+* fix check for full queue, because size != count here
+* make sure we have enough space in queue for 2 resp. 4 more commands in
+ GlamoDRMAddCommand resp. GlamoDRMAddCommandBO
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/glamo-drm.c | 16 +++++++++++-----
+ 1 files changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/src/glamo-drm.c b/src/glamo-drm.c
+index aac93bb..01e8510 100644
+--- a/src/glamo-drm.c
++++ b/src/glamo-drm.c
+@@ -32,6 +32,8 @@
+
+ #include "glamo.h"
+
++/* How many commands can be stored before forced dispatch */
++#define GLAMO_CMDQ_MAX_COUNT 1024
+
+ /* Submit the prepared command sequence to the kernel */
+ void GlamoDRMDispatch(GlamoPtr pGlamo)
+@@ -60,7 +62,7 @@ void GlamoDRMDispatch(GlamoPtr pGlamo)
+
+ void GlamoDRMAddCommand(GlamoPtr pGlamo, uint16_t reg, uint16_t val)
+ {
+- if ( pGlamo->cmdq_drm_used == pGlamo->cmdq_drm_size ) {
++ if ( pGlamo->cmdq_drm_used >= GLAMO_CMDQ_MAX_COUNT - 2 ) {
+ xf86DrvMsg(pGlamo->pScreen->myNum, X_INFO,
+ "Forced command cache flush.\n");
+ GlamoDRMDispatch(pGlamo);
+@@ -74,7 +76,8 @@ void GlamoDRMAddCommand(GlamoPtr pGlamo, uint16_t reg, uint16_t val)
+
+ void GlamoDRMAddCommandBO(GlamoPtr pGlamo, uint16_t reg, struct glamo_bo *bo)
+ {
+- if ( pGlamo->cmdq_drm_used == pGlamo->cmdq_drm_size ) {
++ if ( pGlamo->cmdq_drm_used >= GLAMO_CMDQ_MAX_COUNT - 4 ||
++ pGlamo->cmdq_obj_used >= GLAMO_CMDQ_MAX_COUNT) {
+ xf86DrvMsg(pGlamo->pScreen->myNum, X_INFO,
+ "Forced command cache flush.\n");
+ GlamoDRMDispatch(pGlamo);
+@@ -98,10 +101,13 @@ void GlamoDRMAddCommandBO(GlamoPtr pGlamo, uint16_t reg, struct glamo_bo *bo)
+
+ void GlamoDRMInit(GlamoPtr pGlamo)
+ {
+- pGlamo->cmdq_objs = malloc(1024);
+- pGlamo->cmdq_obj_pos = malloc(1024);
++ pGlamo->cmdq_objs = malloc(GLAMO_CMDQ_MAX_COUNT);
++ pGlamo->cmdq_obj_pos = malloc(GLAMO_CMDQ_MAX_COUNT);
+ pGlamo->cmdq_obj_used = 0;
+ pGlamo->cmdq_drm_used = 0;
+- pGlamo->cmdq_drm_size = 4 * 1024;
++ /* we're using 2bytes per entry (uint16_t) that's why we need to allocate
++ * GLAMO_CMDQ_MAX_COUNT * 2 bytes
++ */
++ pGlamo->cmdq_drm_size = 2 * GLAMO_CMDQ_MAX_COUNT;
+ pGlamo->cmdq_drm = malloc(pGlamo->cmdq_drm_size);
+ }
+--
+1.7.3.2
+
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb
new file mode 100644
index 0000000000..c9e1d5699a
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb
@@ -0,0 +1,19 @@
+require xorg-driver-video.inc
+DESCRIPTION = "X.Org X server -- Glamo display driver with KMS support"
+DEPENDS += "libdrm"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8"
+
+RDEPENDS_${PN} = "xserver-xorg-extension-dri xserver-xorg-extension-dri2 xserver-xorg-extension-glx mesa-dri"
+PE = "2"
+PV = "1.0.0+gitr${SRCPV}"
+PR = "${INC_PR}.5"
+
+SRC_URI = "git://git.openmoko.org/git/xf86-video-glamo.git;protocol=git;branch=master \
+ file://0001-glamo-drm-define-GLAMO_CMDQ_MAX_COUNT-instead-of-mag.patch \
+ "
+
+S = "${WORKDIR}/git"
+SRCREV = "16af3c00195adc68cbd508e3613be4b2349260b3"
+
+EXTRA_OECONF = " --enable-kms "
diff --git a/meta-oe/recipes-graphics/xorg-driver/xorg-driver-common.inc b/meta-oe/recipes-graphics/xorg-driver/xorg-driver-common.inc
new file mode 100644
index 0000000000..970b0d1762
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xorg-driver-common.inc
@@ -0,0 +1,40 @@
+DESCRIPTION = "X driver"
+HOMEPAGE = "http://www.x.org"
+SECTION = "x11/drivers"
+LICENSE = "MIT-X"
+INC_PR = "r15"
+
+DEPENDS = "randrproto xorg-server xproto"
+
+SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2"
+
+S = "${WORKDIR}/${BPN}-${PV}"
+
+FILES_${PN} += " ${libdir}/xorg/modules"
+FILES_${PN}-dbg += "${libdir}/xorg/modules/*/.debug"
+
+inherit autotools pkgconfig
+
+TARGET_CPPFLAGS += "-I${STAGING_DIR_HOST}/usr/include/xorg"
+
+# Another sucky behavor from Xorg configure scripts.
+# They use AC_CHECK_FILE to check for DRI headers. Yuck!
+# Of course this will blow up when cross compiling.
+
+do_configure_prepend() {
+ incdir=${layout_includedir}/xorg
+ for f in dri.h sarea.h dristruct.h exa.h damage.h xf86Module.h; do
+ path="$incdir/$f"
+ if [ -f "${STAGING_DIR_HOST}/$path" ]; then
+ p=`echo "$path" | sed 'y%*+%pp%;s%[^_[:alnum:]]%_%g'`
+ eval "export ac_cv_file_$p=yes"
+ fi
+ done
+}
+
+# FIXME: We don't want to include the libtool archives (*.la) from modules
+# directory, as they serve no useful purpose. Upstream should fix Makefile.am
+do_install_append() {
+ find ${D}${libdir}/xorg/modules -regex ".*\.la$" | xargs rm -f --
+}
+
diff --git a/meta-oe/recipes-graphics/xorg-driver/xorg-driver-input.inc b/meta-oe/recipes-graphics/xorg-driver/xorg-driver-input.inc
new file mode 100644
index 0000000000..e44dbd58fe
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xorg-driver-input.inc
@@ -0,0 +1,4 @@
+include xorg-driver-common.inc
+
+DEPENDS = "randrproto inputproto xserver-xorg xproto"
+
diff --git a/meta-oe/recipes-graphics/xorg-driver/xorg-driver-video.inc b/meta-oe/recipes-graphics/xorg-driver/xorg-driver-video.inc
new file mode 100644
index 0000000000..36b5b75951
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xorg-driver-video.inc
@@ -0,0 +1,4 @@
+include xorg-driver-common.inc
+
+DEPENDS = "randrproto renderproto videoproto xextproto fontsproto xserver-xorg xproto"
+