summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/xorg-driver
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-graphics/xorg-driver')
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.8.2.bb20
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.8.0.bb13
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb16
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch21
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.0.bb15
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb18
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.7.3.bb20
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb18
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.0.0.bb26
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.4.bb9
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel/compat-api-Map-changes-of-DamageUnregister-API-in-1..patch29
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-dri2-tests.patch50
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel_2.21.15.bb32
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel_2.99.910.bb31
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-modesetting_0.8.1.bb8
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-omap/configure.patch74
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-omap_git.bb48
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch41
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch32
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0003-force-plain-mode.patch31
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-blacklist-tv-out.patch33
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0005-Attempt-to-fix-VRFB.patch325
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0006-omapfb-port-to-new-xserver-video-API.patch272
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb33
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.3.bb21
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-vmware/vmwgfx-option.patch72
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.0.1.bb18
-rw-r--r--meta/recipes-graphics/xorg-driver/xorg-driver-common.inc41
-rw-r--r--meta/recipes-graphics/xorg-driver/xorg-driver-input.inc10
-rw-r--r--meta/recipes-graphics/xorg-driver/xorg-driver-video.inc7
30 files changed, 1384 insertions, 0 deletions
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.8.2.bb b/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.8.2.bb
new file mode 100644
index 0000000000..6cbe165d93
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.8.2.bb
@@ -0,0 +1,20 @@
1require xorg-driver-input.inc
2
3SUMMARY = "X.Org X server -- event devices (evdev) input driver"
4
5DESCRIPTION = "evdev is an Xorg input driver for Linux's generic event \
6devices. It therefore supports all input devices that the kernel knows \
7about, including most mice and keyboards. \
8\
9The evdev driver can serve as both a pointer and a keyboard input \
10device, and may be used as both the core keyboard and the core pointer. \
11Multiple input devices are supported by multiple instances of this \
12driver, with one Load directive for evdev in the Module section of your \
13xorg.conf for each input device that will use this driver. "
14
15LIC_FILES_CHKSUM = "file://COPYING;md5=fefe33b1cf0cacba0e72e3b0fa0f0e16"
16
17DEPENDS += "mtdev"
18
19SRC_URI[md5sum] = "be7f91905c41bb3c3a0eb54063c7e4bf"
20SRC_URI[sha256sum] = "750461749a83bdee7771592aa5c0db5e267b18d847078a4b8622f55b04797eb3"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.8.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.8.0.bb
new file mode 100644
index 0000000000..f138918096
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.8.0.bb
@@ -0,0 +1,13 @@
1require xorg-driver-input.inc
2
3SUMMARY = "X.Org X server -- keyboard input driver"
4
5DESCRIPTION = "keyboard is an Xorg input driver for keyboards. The \
6driver supports the standard OS-provided keyboard interface. The driver \
7functions as a keyboard input device, and may be used as the X server's \
8core keyboard."
9
10LIC_FILES_CHKSUM = "file://COPYING;md5=ea2099d24ac9e316a6d4b9f20b3d4e10"
11
12SRC_URI[md5sum] = "ce936e219682bacf5a4a9c4ab940edb8"
13SRC_URI[sha256sum] = "41c51c4e0a87aad6a1c4973c68a8de23b61162d0223f4ab36c627c307830cb5b"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb
new file mode 100644
index 0000000000..dfb08f724b
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_git.bb
@@ -0,0 +1,16 @@
1require xorg-driver-input.inc
2
3SUMMARY = "X.Org X server -- keyboard input driver"
4
5DESCRIPTION = "keyboard is an Xorg input driver for keyboards. The \
6driver supports the standard OS-provided keyboard interface. The driver \
7functions as a keyboard input device, and may be used as the X server's \
8core keyboard."
9
10SRCREV = "3e28d68b50d291938734e9684b8296ca864f3892"
11PV = "1.3.2+git${SRCPV}"
12PR = "${INC_PR}.0"
13
14SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-keyboard"
15S = "${WORKDIR}/git"
16
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch b/meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch
new file mode 100644
index 0000000000..6930864ede
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch
@@ -0,0 +1,21 @@
1Unbreak the linux mouse driver by using config.h
2
3RP - 4/11/07
4
5Upstream-Status: Pending
6
7Index: git/src/lnx_mouse.c
8===================================================================
9--- git.orig/src/lnx_mouse.c 2008-11-04 23:46:05.000000000 +0000
10+++ git/src/lnx_mouse.c 2008-11-04 23:46:15.000000000 +0000
11@@ -3,8 +3,8 @@
12 * Copyright 1999 by The XFree86 Project, Inc.
13 */
14
15-#ifdef HAVE_XORG_CONFIG_H
16-#include <xorg-config.h>
17+#ifdef HAVE_CONFIG_H
18+#include <config.h>
19 #endif
20
21 #include <X11/X.h>
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.0.bb
new file mode 100644
index 0000000000..aca958cf64
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.0.bb
@@ -0,0 +1,15 @@
1require xorg-driver-input.inc
2
3SUMMARY = "X.Org X server -- mouse input driver"
4
5DESCRIPTION = "mouse is an Xorg input driver for mice. The driver \
6supports most available mouse types and interfaces. The mouse driver \
7functions as a pointer input device, and may be used as the X server's \
8core pointer. Multiple mice are supported by multiple instances of this \
9driver."
10
11LIC_FILES_CHKSUM = "file://COPYING;md5=90ea9f90d72b6d9327dede5ffdb2a510"
12
13SRC_URI[md5sum] = "36b5b92000c4644f648b58a535e4ee73"
14SRC_URI[sha256sum] = "5d601e4bae53d5e9ead4ecd700f1beb5aeaf78b79e634c4aa381a9ce00276488"
15
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb
new file mode 100644
index 0000000000..d79a2e4dde
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_git.bb
@@ -0,0 +1,18 @@
1require xorg-driver-input.inc
2
3SUMMARY = "X.Org X server -- mouse input driver"
4
5DESCRIPTION = "mouse is an Xorg input driver for mice. The driver \
6supports most available mouse types and interfaces. The mouse driver \
7functions as a pointer input device, and may be used as the X server's \
8core pointer. Multiple mice are supported by multiple instances of this \
9driver."
10
11SRCREV = "ea5cfe804e112f320f14ad896c7802d53551d3e6"
12PV = "1.3.0+git${SRCPV}"
13PR = "${INC_PR}.0"
14
15SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-mouse \
16 file://unbreak.patch"
17S = "${WORKDIR}/git"
18
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.7.3.bb b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.7.3.bb
new file mode 100644
index 0000000000..89ae45cf46
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.7.3.bb
@@ -0,0 +1,20 @@
1require xorg-driver-input.inc
2
3#SRC_URI += "file://configurefix.patch"
4
5SUMMARY = "X.Org X server -- synaptics touchpad input driver"
6
7DESCRIPTION = "synaptics is an Xorg input driver for the touchpads from \
8Synaptics Incorporated. Even though these touchpads (by default, \
9operating in a compatibility mode emulating a standard mouse) can be \
10handled by the normal evdev or mouse drivers, this driver allows more \
11advanced features of the touchpad to become available."
12
13LIC_FILES_CHKSUM = "file://COPYING;md5=55aacd3535a741824955c5eb8f061398"
14
15SRC_URI[md5sum] = "74c83e6cb53a0e15bcbe7cc73d63d2a1"
16SRC_URI[sha256sum] = "8b2a972043961195d056b84346317ec42bfa029095c9ee7aaf6deceba12e32d5"
17
18DEPENDS += "libxi mtdev libxtst"
19
20FILES_${PN} += "${datadir}/X11/xorg.conf.d"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb
new file mode 100644
index 0000000000..140f633b42
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_git.bb
@@ -0,0 +1,18 @@
1require xorg-driver-input.inc
2
3SUMMARY = "X.Org X server -- synaptics touchpad input driver"
4
5DESCRIPTION = "synaptics is an Xorg input driver for the touchpads from \
6Synaptics Incorporated. Even though these touchpads (by default, \
7operating in a compatibility mode emulating a standard mouse) can be \
8handled by the normal evdev or mouse drivers, this driver allows more \
9advanced features of the touchpad to become available."
10
11SRCREV = "934bc0012f948c52aadc8eda912f7728fb7394a2"
12PV = "0.15.2+git${SRCPV}"
13PR = "${INC_PR}.1"
14
15SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-synaptics"
16S = "${WORKDIR}/git"
17
18DEPENDS += "libxi mtdev libxtst"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.0.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.0.0.bb
new file mode 100644
index 0000000000..35ef5991c3
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.0.0.bb
@@ -0,0 +1,26 @@
1require xorg-driver-input.inc
2
3SUMMARY = "X.Org X server -- VMWare mouse input driver"
4DESCRIPTION = "The vmmouse driver enables support for the special VMMouse \
5protocol that is provided by VMware virtual machines to give absolute \
6pointer positioning. The vmmouse driver is capable of falling back to the \
7standard 'mouse' driver if a VMware virtual machine is not detected."
8
9PR = "${INC_PR}.0"
10
11SRC_URI[md5sum] = "34f9f64ee6a1a51fc8266a9af24e1e07"
12SRC_URI[sha256sum] = "04cfb60366008d4db815c550d8fb8d0a4270c75fa7a20fa3bddc9ecbd355612c"
13
14RDEPENDS_${PN} += "xf86-input-mouse"
15
16LIC_FILES_CHKSUM = "file://COPYING;md5=622841c068a9d7625fbfe7acffb1a8fc"
17
18COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
19
20do_install_append () {
21 # We don't care about hal
22 rm -rf ${D}${datadir}/hal/
23 rm -rf ${D}${libdir}/hal/
24}
25
26FILES_${PN} += "${base_libdir}/udev/ ${datadir}/X11/xorg.conf.d"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.4.bb b/meta/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.4.bb
new file mode 100644
index 0000000000..52e9bd1dfa
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.4.bb
@@ -0,0 +1,9 @@
1require xorg-driver-video.inc
2
3SUMMARY = "X.Org X server -- fbdev display driver"
4DESCRIPTION = "fbdev is an Xorg driver for framebuffer devices. This is a non-accelerated driver."
5
6LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8"
7
8SRC_URI[md5sum] = "3931c0e19d441cc576dc088f9eb9fd73"
9SRC_URI[sha256sum] = "9dd4b326498223abbfdf786089a46ea3db4fa6bbd341308eb48a9e00bc3fd51b"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/compat-api-Map-changes-of-DamageUnregister-API-in-1..patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/compat-api-Map-changes-of-DamageUnregister-API-in-1..patch
new file mode 100644
index 0000000000..3a42d1377c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel/compat-api-Map-changes-of-DamageUnregister-API-in-1..patch
@@ -0,0 +1,29 @@
1Upstream-Status: Backport
2
3From 524a45da56e2a052ffafa3887891caa90ba39f76 Mon Sep 17 00:00:00 2001
4From: Chris Wilson <chris@chris-wilson.co.uk>
5Date: Sat, 5 Oct 2013 18:42:24 +0100
6Subject: [PATCH] compat-api: Map changes of DamageUnregister API in 1.14.99.2
7
8Reported-by: Emmanuel Benisty <benisty.e@gmail.com>
9Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10---
11 src/compat-api.h | 4 ++++
12 1 file changed, 4 insertions(+)
13
14diff --git a/src/compat-api.h b/src/compat-api.h
15index 8eb46ef..244a486 100644
16--- a/src/compat-api.h
17+++ b/src/compat-api.h
18@@ -162,4 +162,8 @@ static inline void FreePixmap(PixmapPtr pixmap)
19 if ((d)->pScreen->SourceValidate) (d)->pScreen->SourceValidate(d, x, y, w, h)
20 #endif
21
22+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,14,99,2,0)
23+#define DamageUnregister(d, dd) DamageUnregister(dd)
24+#endif
25+
26 #endif
27--
281.7.9.5
29
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-dri2-tests.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-dri2-tests.patch
new file mode 100644
index 0000000000..9e93ca875c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-dri2-tests.patch
@@ -0,0 +1,50 @@
1Upstream-Status: Submitted
2Signed-off-by: Ross Burton <ross.burton@intel.com>
3
4From ec91cfe7e5efdd5e1b1fbb85eea8f07b50e24c4b Mon Sep 17 00:00:00 2001
5From: Ross Burton <ross.burton@intel.com>
6Date: Wed, 11 Sep 2013 21:12:37 +0100
7Subject: [PATCH] test: only build DRI2 tests if DRI2 is enabled
8
9Signed-off-by: Ross Burton <ross.burton@intel.com>
10---
11 test/Makefile.am | 10 ++++++++++
12 1 file changed, 10 insertions(+)
13
14diff --git a/test/Makefile.am b/test/Makefile.am
15index f51967b..18528a9 100644
16--- a/test/Makefile.am
17+++ b/test/Makefile.am
18@@ -16,9 +16,14 @@ stress_TESTS = \
19 render-copyarea-size \
20 render-copy-alphaless \
21 mixed-stress \
22+ $(NULL)
23+
24+if DRI2
25+stress_TESTS += \
26 dri2-swap \
27 dri2-race \
28 $(NULL)
29+endif
30
31 check_PROGRAMS = $(stress_TESTS)
32
33@@ -34,9 +39,14 @@ libtest_la_SOURCES = \
34 test_image.c \
35 test_log.c \
36 test_render.c \
37+ $(NULL)
38+
39+if DRI2
40+libtest_la_SOURCES += \
41 dri2.c \
42 dri2.h \
43 $(NULL)
44+endif
45
46 vsync.avi: mkvsync.sh
47 ./mkvsync.sh $@
48--
491.7.10.4
50
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.21.15.bb b/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.21.15.bb
new file mode 100644
index 0000000000..78edd5a5c5
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.21.15.bb
@@ -0,0 +1,32 @@
1require xorg-driver-video.inc
2
3SUMMARY = "X.Org X server -- Intel integrated graphics chipsets driver"
4
5DESCRIPTION = "intel is an Xorg driver for Intel integrated graphics \
6chipsets. The driver supports depths 8, 15, 16 and 24. On some chipsets, \
7the driver supports hardware accelerated 3D via the Direct Rendering \
8Infrastructure (DRI)."
9
10LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e"
11
12DEPENDS += "virtual/libx11 drm libpciaccess pixman"
13
14SRC_URI += "file://disable-dri2-tests.patch \
15 file://compat-api-Map-changes-of-DamageUnregister-API-in-1..patch \
16 "
17
18PACKAGECONFIG ??= "sna udev ${@base_contains('DISTRO_FEATURES', 'opengl', 'dri', '', d)}"
19
20PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,xf86driproto dri2proto"
21PACKAGECONFIG[sna] = "--enable-sna,--disable-sna"
22PACKAGECONFIG[uxa] = "--enable-uxa,--disable-uxa"
23PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev"
24PACKAGECONFIG[xvmc] = "--enable-xvmc,--disable-xvmc,libxvmc"
25
26# --enable-kms-only option is required by ROOTLESS_X
27EXTRA_OECONF += '${@base_conditional( "ROOTLESS_X", "1", " --enable-kms-only", "", d )}'
28
29COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
30
31SRC_URI[md5sum] = "8b646d257ace8197d6ab4e5ddeb8efb2"
32SRC_URI[sha256sum] = "7d5a140f82a72fd1cbc8a664d66c3d4eca47ee240ca4927b8a98d7af6f65d6fc"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.99.910.bb b/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.99.910.bb
new file mode 100644
index 0000000000..b74d1741cc
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.99.910.bb
@@ -0,0 +1,31 @@
1require xorg-driver-video.inc
2
3SUMMARY = "X.Org X server -- Intel integrated graphics chipsets driver"
4
5DESCRIPTION = "intel is an Xorg driver for Intel integrated graphics \
6chipsets. The driver supports depths 8, 15, 16 and 24. On some chipsets, \
7the driver supports hardware accelerated 3D via the Direct Rendering \
8Infrastructure (DRI)."
9
10LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e"
11
12DEPENDS += "virtual/libx11 drm libpciaccess pixman"
13
14SRC_URI += "file://compat-api-Map-changes-of-DamageUnregister-API-in-1..patch \
15 "
16
17PACKAGECONFIG ??= "sna udev ${@base_contains('DISTRO_FEATURES', 'opengl', 'dri', '', d)}"
18
19PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,xf86driproto dri2proto"
20PACKAGECONFIG[sna] = "--enable-sna,--disable-sna"
21PACKAGECONFIG[uxa] = "--enable-uxa,--disable-uxa"
22PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev"
23PACKAGECONFIG[xvmc] = "--enable-xvmc,--disable-xvmc,libxvmc"
24
25# --enable-kms-only option is required by ROOTLESS_X
26EXTRA_OECONF += '${@base_conditional( "ROOTLESS_X", "1", " --enable-kms-only", "", d )}'
27
28COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
29
30SRC_URI[md5sum] = "a9a5c2c15766c06a024381efe0d724bb"
31SRC_URI[sha256sum] = "203d46064449da0e23a111418dfb189422ba96ea08707167c8dee463e2d745b1"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-modesetting_0.8.1.bb b/meta/recipes-graphics/xorg-driver/xf86-video-modesetting_0.8.1.bb
new file mode 100644
index 0000000000..5bb89266cd
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-modesetting_0.8.1.bb
@@ -0,0 +1,8 @@
1require xorg-driver-video.inc
2LIC_FILES_CHKSUM = "file://COPYING;md5=5e53d3fcadb1c23d122ad63cb099a918"
3
4SUMMARY = "X.Org X server -- modesetting display driver"
5DESCRIPTION = "Provides a generic kernel modesetting display driver for the X.Org X server."
6
7SRC_URI[md5sum] = "eb275e1ff0031897bcf23e2e5cb8655a"
8SRC_URI[sha256sum] = "3ba8d8d7cb679497abc6486e2e843f8ea1582d830a27448ed4c90413e58312ca"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omap/configure.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omap/configure.patch
new file mode 100644
index 0000000000..d298d5d71e
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omap/configure.patch
@@ -0,0 +1,74 @@
1Upstream-Status: Submitted [https://bugs.freedesktop.org/show_bug.cgi?id=57386]
2Signed-off-by: Ross Burton <ross.burton@intel.com>
3
4From fc7b6045aaec583c7e29021bd23c20a877b20546 Mon Sep 17 00:00:00 2001
5From: Ross Burton <ross.burton@intel.com>
6Date: Wed, 21 Nov 2012 23:39:18 +0000
7Subject: [PATCH] build: rationalise DRI checks
8
9The existing logic around DRI was complicated and defined a number of variables
10that were not used, when in reality DRI is required.
11
12Move the glproto check to the main pkg-config check, and remove everything else.
13
14Signed-off-by: Ross Burton <ross.burton@intel.com>
15---
16 configure.ac | 33 +--------------------------------
17 1 file changed, 1 insertion(+), 32 deletions(-)
18
19diff --git a/configure.ac b/configure.ac
20index 11238b1..c321b98 100644
21--- a/configure.ac
22+++ b/configure.ac
23@@ -44,47 +44,16 @@ XORG_DRIVER_CHECK_EXT(XV, videoproto)
24 XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
25
26 # Checks for pkg-config packages
27-PKG_CHECK_MODULES(XORG, [xorg-server >= 1.3] xproto fontsproto [libdrm >= 2.4.36] libdrm_omap xf86driproto $REQUIRED_MODULES)
28-sdkdir=$(pkg-config --variable=sdkdir xorg-server)
29+PKG_CHECK_MODULES(XORG, [xorg-server >= 1.3] xproto fontsproto [libdrm >= 2.4.36] libdrm_omap xf86driproto glproto $REQUIRED_MODULES)
30
31 # Checks for header files.
32 AC_HEADER_STDC
33
34-save_CFLAGS="$CFLAGS"
35-CFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
36-CPPFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
37-AC_MSG_CHECKING([whether to include DRI support])
38-if test x$DRI != xno; then
39- AC_CHECK_FILE([${sdkdir}/dri.h],
40- [have_dri_h="yes"], [have_dri_h="no"])
41- AC_CHECK_FILE([${sdkdir}/dristruct.h],
42- [have_dristruct_h="yes"], [have_dristruct_h="no"])
43-fi
44-AC_MSG_CHECKING([whether to include DRI support])
45-if test x$DRI = xauto; then
46- if test "$have_dri_h" = yes -a \
47- "$have_dristruct_h" = yes; then
48- DRI="yes"
49- else
50- DRI="no"
51- fi
52-fi
53-AC_MSG_RESULT([$DRI])
54-CFLAGS="$save_CFLAGS $DEBUGFLAGS"
55-
56-AM_CONDITIONAL(DRI, test x$DRI = xyes)
57-if test "$DRI" = yes; then
58- PKG_CHECK_MODULES(DRI, [xf86driproto glproto])
59- AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
60- AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
61-fi
62-
63 AM_CONDITIONAL(VIDEO_DEBUG, test x$VIDEO_DEBUG = xyes)
64 if test "$VIDEO_DEBUG" = yes; then
65 AC_DEFINE(VIDEO_DEBUG,1,[Enable debug support])
66 fi
67
68-AC_SUBST([DRI_CFLAGS])
69
70 DRIVER_NAME=omap
71 AC_SUBST([DRIVER_NAME])
72--
731.7.10.4
74
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omap_git.bb b/meta/recipes-graphics/xorg-driver/xf86-video-omap_git.bb
new file mode 100644
index 0000000000..97941ecc0c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omap_git.bb
@@ -0,0 +1,48 @@
1require xorg-driver-video.inc
2
3SUMMARY = "X.Org X server -- Texas Instruments OMAP framebuffer driver"
4
5SUMMARY = "X.Org X server -- TI OMAP integrated graphics chipsets driver"
6
7DESCRIPTION = "Open-source X.org graphics driver for TI OMAP graphics \
8Currently relies on a closed-source submodule for EXA acceleration on \
9the following chipsets: \
10 + OMAP3430 \
11 + OMAP3630 \
12 + OMAP4430 \
13 + OMAP4460 \
14 + OMAP5430 \
15 + OMAP5432 \
16\
17NOTE: this driver is work in progress.. you probably don't want to try \
18and use it yet. The API/ABI between driver and kernel, and driver and \
19acceleration submodules is not stable yet. This driver requires the \
20omapdrm kernel driver w/ GEM support. \
21"
22
23LICENSE = "GPLv2+"
24LIC_FILES_CHKSUM = "file://COPYING;md5=10ce5de3b111315ea652a5f74ec0c602"
25DEPENDS += "virtual/libx11 libdrm xf86driproto"
26
27SRCREV = "ae0394e687f1a77e966cf72f895da91840dffb8f"
28PR = "${INC_PR}.3"
29PV = "0.4.2+gitr${SRCPV}"
30
31SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-omap \
32 file://configure.patch \
33"
34
35S = "${WORKDIR}/git"
36
37CFLAGS += " -I${STAGING_INCDIR}/xorg "
38
39# Use overlay 2 on omap3 to enable other apps to use overlay 1 (e.g. dmai or omapfbplay)
40do_compile_prepend_armv7a () {
41 sed -i -e s:fb1:fb2:g ${S}/src/omap_xv.c
42}
43
44python () {
45 if not oe.utils.contains ('DISTRO_FEATURES', 'opengl', True, False, d):
46 raise bb.parse.SkipPackage("'opengl' not in DISTRO_FEATURES")
47}
48
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch
new file mode 100644
index 0000000000..9fb01d438a
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch
@@ -0,0 +1,41 @@
1From 8fb7d0f99d4afbb574b30cb4f1e66a8f89d94ad5 Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Wed, 26 Jan 2011 12:04:36 +0100
4Subject: [PATCH 1/6] Revert "Set a large CRTC upper limit to not prune larger
5 resolutions"
6
7Picture is garbled after switching resolutions, so revert it.
8Virtual size too big, revert the commit 9c4d7592dcb7dc20a48a6f941d9d94bd73d34153.
9
10Upstream-Status: Pending
11
12Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
13---
14 src/omapfb-crtc.c | 8 ++++----
15 1 file changed, 4 insertions(+), 4 deletions(-)
16
17diff --git a/src/omapfb-crtc.c b/src/omapfb-crtc.c
18index 9aaa52f..cbeff35 100644
19--- a/src/omapfb-crtc.c
20+++ b/src/omapfb-crtc.c
21@@ -190,13 +190,13 @@ OMAPFBCRTCInit(ScrnInfoPtr pScrn)
22 * In practise, this doesn't seem to be supported.
23 * (no way to setup the overlay offset/base address)
24 */
25- /* FIXME: figure out what makes sense here. A known max resolution?
26- * framebuffer size?
27- */
28 xf86CrtcSetSizeRange(pScrn,
29- 8, 8, 2048, 2048);
30+ 8, 8,
31+ ofb->state_info.xres_virtual,
32+ ofb->state_info.yres_virtual);
33
34 ofb->crtc = xf86CrtcCreate(pScrn, &OMAPFBCrtcFuncs);
35+
36 }
37
38
39--
401.8.0
41
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch
new file mode 100644
index 0000000000..683a989832
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch
@@ -0,0 +1,32 @@
1From 855c333ac0d16350f895f1d1b9391e9cbb0b6db4 Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Wed, 26 Jan 2011 13:27:20 +0100
4Subject: [PATCH 2/6] Revert "Set virtual size when configuring framebuffer"
5
6Virtual size too big, so revert it.
7
8This reverts commit 2653ef07883fbd1a5e7025f9300cf89b79ba429a.
9
10Upstream-Status: Pending
11
12Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
13---
14 src/omapfb-crtc.c | 2 --
15 1 file changed, 2 deletions(-)
16
17diff --git a/src/omapfb-crtc.c b/src/omapfb-crtc.c
18index cbeff35..9655db2 100644
19--- a/src/omapfb-crtc.c
20+++ b/src/omapfb-crtc.c
21@@ -98,8 +98,6 @@ OMAPFBCrtcCommitChangeMode (xf86CrtcPtr crtc)
22 v = ofb->state_info;
23 v.xres = mode->HDisplay;
24 v.yres = mode->VDisplay;
25- v.xres_virtual = crtc->scrn->virtualX;
26- v.yres_virtual = crtc->scrn->virtualY;
27 v.activate = FB_ACTIVATE_NOW;
28 v.pixclock = KHZ2PICOS(mode->Clock ? mode->Clock : 56000);
29 v.left_margin = mode->HTotal - mode->HSyncEnd;
30--
311.8.0
32
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0003-force-plain-mode.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0003-force-plain-mode.patch
new file mode 100644
index 0000000000..67ea7c1a5f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0003-force-plain-mode.patch
@@ -0,0 +1,31 @@
1From 252f44c072d3447a32127fc9afe5d0d40f3c510e Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Wed, 26 Jan 2011 13:20:20 +0100
4Subject: [PATCH 3/6] force 'plain' mode
5
6The new DSS mode breaks XV, so force plain mode
7
8Upstream-Status: Pending
9
10Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 src/omapfb-driver.c | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c
17index 018e040..48aa09c 100644
18--- a/src/omapfb-driver.c
19+++ b/src/omapfb-driver.c
20@@ -326,7 +326,7 @@ OMAPFBPreInit(ScrnInfoPtr pScrn, int flags)
21 OMAPFBProbeController(ofb->ctrl_name);
22
23 /* Do we have the DSS kernel API? */
24- if (stat(SYSFS_DSS_DIR, &st) == 0) {
25+ if (0) { //stat(SYSFS_DSS_DIR, &st) == 0) {
26 ofb->dss = TRUE;
27 } else {
28 ofb->dss = FALSE;
29--
301.8.0
31
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-blacklist-tv-out.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-blacklist-tv-out.patch
new file mode 100644
index 0000000000..b0ac9a44c8
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-blacklist-tv-out.patch
@@ -0,0 +1,33 @@
1From cfa46b67f59115f6d8ef9414af60380749ff3eb3 Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Wed, 26 Jan 2011 13:21:12 +0100
4Subject: [PATCH 4/6] blacklist tv out
5
6The tv-out gets added last and the driver tries to reconfigure dvi to TV resolutions, which fails. so blacklist it
7
8Upstream-Status: Pending
9
10Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 src/omapfb-output-dss.c | 4 ++++
14 1 file changed, 4 insertions(+)
15
16diff --git a/src/omapfb-output-dss.c b/src/omapfb-output-dss.c
17index 6cc52de..83cb711 100644
18--- a/src/omapfb-output-dss.c
19+++ b/src/omapfb-output-dss.c
20@@ -205,6 +205,10 @@ OMAPFBDSSOutputDetect (xf86OutputPtr output)
21 if(ofb->timings[idx][0] == '\0')
22 return XF86OutputStatusDisconnected;
23
24+ // Hack to disable the tv out
25+ if (strncmp(output->name, "tv", 2) == 0)
26+ return XF86OutputStatusDisconnected;
27+
28 return XF86OutputStatusConnected;
29 }
30
31--
321.8.0
33
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0005-Attempt-to-fix-VRFB.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0005-Attempt-to-fix-VRFB.patch
new file mode 100644
index 0000000000..67b284023d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0005-Attempt-to-fix-VRFB.patch
@@ -0,0 +1,325 @@
1From 8b1f697a60e35ab82fffdabfaefdb45e9a9df379 Mon Sep 17 00:00:00 2001
2From: Eino-Ville Talvala <talvala@stanford.edu>
3Date: Tue, 23 Aug 2011 18:37:01 +0200
4Subject: [PATCH 5/6] Attempt to fix VRFB
5
6Upstream-Status: Pending
7
8http://dominion.thruhere.net/git/cgit.cgi/xf86-video-omapfb/commit/?h=koen/fixups&id=6833fc9f795265e4943d248103fbaf3463b515d6
9
10Signed-off-by: Sebastian Krzyszkowiak <dos@dosowisko.net>
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 src/image-format-conversions.c | 4 +--
14 src/image-format-conversions.h | 2 +-
15 src/omapfb-driver.c | 28 +++++++++++++---
16 src/omapfb-xv-blizzard.c | 1 +
17 src/omapfb-xv-generic.c | 72 +++++++++++++++++++++++++++++++++---------
18 src/omapfb-xv.c | 3 ++
19 6 files changed, 88 insertions(+), 22 deletions(-)
20
21diff --git a/src/image-format-conversions.c b/src/image-format-conversions.c
22index dcefa9b..d43427d 100644
23--- a/src/image-format-conversions.c
24+++ b/src/image-format-conversions.c
25@@ -38,13 +38,13 @@
26 #include "image-format-conversions.h"
27
28 /* Basic line-based copy for packed formats */
29-void packed_line_copy(int w, int h, int stride, uint8_t *src, uint8_t *dest)
30+void packed_line_copy(int w, int h, int src_stride, int dst_stride, uint8_t *src, uint8_t *dest)
31 {
32 int i;
33 int len = w * 2;
34 for (i = 0; i < h; i++)
35 {
36- memcpy(dest + i * len, src + i * stride, len);
37+ memcpy(dest + i * dst_stride, src + i * src_stride, len);
38 }
39 }
40
41diff --git a/src/image-format-conversions.h b/src/image-format-conversions.h
42index 584896a..ba7caf2 100644
43--- a/src/image-format-conversions.h
44+++ b/src/image-format-conversions.h
45@@ -27,7 +27,7 @@
46 #include <stdint.h>
47
48 /* Basic line-based copy for packed formats */
49-void packed_line_copy(int w, int h, int stride, uint8_t *src, uint8_t *dest);
50+void packed_line_copy(int w, int h, int src_stride, int dst_stride, uint8_t *src, uint8_t *dest);
51
52 /* Basic C implementation of YV12/I420 to UYVY conversion */
53 void uv12_to_uyvy(int w, int h, int y_pitch, int uv_pitch, uint8_t *y_p, uint8_t *u_p, uint8_t *v_p, uint8_t *dest);
54diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c
55index 48aa09c..07989f5 100644
56--- a/src/omapfb-driver.c
57+++ b/src/omapfb-driver.c
58@@ -66,6 +66,7 @@
59 #define OMAPFB_VERSION 1000
60 #define OMAPFB_DRIVER_NAME "OMAPFB"
61 #define OMAPFB_NAME "omapfb"
62+#define ENFORCE_MODES
63
64 static Bool OMAPFBProbe(DriverPtr drv, int flags);
65 static Bool OMAPFBPreInit(ScrnInfoPtr pScrn, int flags);
66@@ -105,11 +106,13 @@ static SymTabRec OMAPFBChipsets[] = {
67 typedef enum {
68 OPTION_ACCELMETHOD,
69 OPTION_FB,
70+ OPTION_ROTATE,
71 } FBDevOpts;
72
73 static const OptionInfoRec OMAPFBOptions[] = {
74 { OPTION_ACCELMETHOD, "AccelMethod", OPTV_STRING, {0}, FALSE },
75 { OPTION_FB, "fb", OPTV_STRING, {0}, FALSE },
76+ { OPTION_ROTATE, "rotation", OPTV_STRING, {0}, FALSE },
77 { -1, NULL, OPTV_NONE, {0}, FALSE }
78 };
79
80@@ -286,6 +289,7 @@ OMAPFBPreInit(ScrnInfoPtr pScrn, int flags)
81 {
82 OMAPFBPtr ofb;
83 EntityInfoPtr pEnt;
84+ char *rotate;
85 rgb zeros = { 0, 0, 0 };
86 struct stat st;
87
88@@ -379,6 +383,8 @@ OMAPFBPreInit(ScrnInfoPtr pScrn, int flags)
89 pScrn->progClock = TRUE;
90 pScrn->chipset = "omapfb";
91
92+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Rotate test version 0.02\n");
93+
94 /* Start with configured virtual size */
95 pScrn->virtualX = pScrn->display->virtualX;
96 pScrn->virtualY = pScrn->display->virtualY;
97@@ -496,12 +502,21 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
98 ofb->CloseScreen = pScreen->CloseScreen;
99 pScreen->CloseScreen = OMAPFBCloseScreen;
100
101+ /* Enforce the default mode (this is silly I guess) */
102+#ifdef ENFORCE_MODES
103+ //xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Enforcing modes\n");
104+ //set_mode(ofb, &ofb->default_mode);
105+ //pScrn->displayWidth = ofb->fixed_info.line_length /
106+ // (ofb->state_info.bits_per_pixel>>3); //ofb->state_info.xres;
107+#endif
108+
109 /* Map our framebuffer memory */
110+ ofb->mem_info.size = ofb->fixed_info.line_length * ofb->state_info.yres;
111 ofb->fb = mmap (NULL, ofb->mem_info.size,
112 PROT_READ | PROT_WRITE, MAP_SHARED,
113 ofb->fd, 0);
114- if (ofb->fb == NULL) {
115- xf86DrvMsg(scrnIndex, X_ERROR, "Mapping framebuffer memory failed\n");
116+ if (ofb->fb == MAP_FAILED) {
117+ xf86DrvMsg(scrnIndex, X_ERROR, "Mapping framebuffer memory failed, wanted %d bytes.\n", ofb->mem_info.size);
118 return FALSE;
119 }
120
121@@ -578,8 +593,13 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
122 } else if (!ofb->dss) {
123
124 ofb->plane_info.enabled = 1;
125- ofb->plane_info.out_width = ofb->state_info.xres;
126- ofb->plane_info.out_height = ofb->state_info.yres;
127+ if (ofb->state_info.rotate == 0 || ofb->state_info.rotate == 2) {
128+ ofb->plane_info.out_width = ofb->state_info.xres;
129+ ofb->plane_info.out_height = ofb->state_info.yres;
130+ } else {
131+ ofb->plane_info.out_width = ofb->state_info.yres;
132+ ofb->plane_info.out_height = ofb->state_info.xres;
133+ }
134
135 if (ioctl (ofb->fd, OMAPFB_SETUP_PLANE, &ofb->plane_info)) {
136 xf86DrvMsg(scrnIndex, X_ERROR,
137diff --git a/src/omapfb-xv-blizzard.c b/src/omapfb-xv-blizzard.c
138index 406ffc6..b71d2aa 100644
139--- a/src/omapfb-xv-blizzard.c
140+++ b/src/omapfb-xv-blizzard.c
141@@ -220,6 +220,7 @@ int OMAPFBXVPutImageBlizzard (ScrnInfoPtr pScrn,
142 packed_line_copy(src_w & ~3,
143 src_h & ~3,
144 ((src_w + 1) & ~1) * 2,
145+ ofb->port->fixed_info.line_length,
146 (uint8_t*)buf,
147 (uint8_t*)ofb->port->fb);
148 break;
149diff --git a/src/omapfb-xv-generic.c b/src/omapfb-xv-generic.c
150index e6f89fe..b33f344 100644
151--- a/src/omapfb-xv-generic.c
152+++ b/src/omapfb-xv-generic.c
153@@ -62,7 +62,7 @@ int OMAPXVAllocPlane(ScrnInfoPtr pScrn)
154 {
155 OMAPFBPtr ofb = OMAPFB(pScrn);
156
157- /* The memory size is already set in OMAPFBXVQueryImageAttributes */
158+ /* The memory size is already set before we get here */
159 if (ioctl(ofb->port->fd, OMAPFB_SETUP_MEM, &ofb->port->mem_info) != 0) {
160 xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
161 "Failed to allocate video plane memory\n");
162@@ -73,19 +73,20 @@ int OMAPXVAllocPlane(ScrnInfoPtr pScrn)
163 ofb->port->fb = mmap (NULL, ofb->port->mem_info.size,
164 PROT_READ | PROT_WRITE, MAP_SHARED,
165 ofb->port->fd, 0);
166- if (ofb->port->fb == NULL) {
167+ if (ofb->port->fb == MAP_FAILED) {
168 xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
169 "Mapping video memory failed\n");
170 return XvBadAlloc;
171 }
172
173 /* Update the state info */
174+ /* Let's not - it's bad
175 if (ioctl (ofb->port->fd, FBIOGET_VSCREENINFO, &ofb->port->state_info))
176 {
177 xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__);
178 return XvBadAlloc;
179 }
180-
181+ */
182 return Success;
183 }
184
185@@ -93,6 +94,7 @@ int OMAPXVAllocPlane(ScrnInfoPtr pScrn)
186 int OMAPXVSetupVideoPlane(ScrnInfoPtr pScrn)
187 {
188 OMAPFBPtr ofb = OMAPFB(pScrn);
189+ int ret;
190
191 if (ioctl (ofb->port->fd, FBIOPUT_VSCREENINFO, &ofb->port->state_info))
192 {
193@@ -104,6 +106,31 @@ int OMAPXVSetupVideoPlane(ScrnInfoPtr pScrn)
194 xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__);
195 return XvBadAlloc;
196 }
197+ /* Changing rotation/nonstd flags can change the fixed info! */
198+ if (ioctl (ofb->port->fd, FBIOGET_FSCREENINFO, &ofb->port->fixed_info))
199+ {
200+ xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__);
201+ return XvBadAlloc;
202+ }
203+ /* Correct fixed info requires recalculation of needed memory */
204+ ofb->port->mem_info.size = ofb->port->fixed_info.line_length * ofb->port->state_info.yres;
205+
206+ /* Allocate buffer memory */
207+ ret = OMAPXVAllocPlane(pScrn);
208+ if (ret != Success)
209+ return ret;
210+
211+ /* Workaround for reset of mode after memory allo */
212+ if (ioctl (ofb->port->fd, FBIOPUT_VSCREENINFO, &ofb->port->state_info))
213+ {
214+ xf86Msg(X_ERROR, "%s: setting state info failed\n", __FUNCTION__);
215+ return XvBadAlloc;
216+ }
217+ if (ioctl (ofb->port->fd, FBIOGET_VSCREENINFO, &ofb->port->state_info))
218+ {
219+ xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__);
220+ return XvBadAlloc;
221+ }
222
223 if(ioctl(ofb->port->fd, OMAPFB_SETUP_PLANE,
224 &ofb->port->plane_info) != 0) {
225@@ -124,6 +151,8 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn,
226 DrawablePtr pDraw)
227 {
228 OMAPFBPtr ofb = OMAPFB(pScrn);
229+ short drw_temp;
230+ short rot_xres, rot_yres;
231
232 if (!ofb->port->plane_info.enabled
233 || ofb->port->update_window.x != src_x
234@@ -163,13 +192,6 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn,
235 return Success;
236 }
237
238- /* If we don't have the plane running, enable it */
239- if (!ofb->port->plane_info.enabled) {
240- ret = OMAPXVAllocPlane(pScrn);
241- if (ret != Success)
242- return ret;
243- }
244-
245 /* Set up the state info, xres and yres will be used for
246 * scaling to the values in the plane info struct
247 */
248@@ -179,12 +201,31 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn,
249 ofb->port->state_info.yres_virtual = 0;
250 ofb->port->state_info.xoffset = 0;
251 ofb->port->state_info.yoffset = 0;
252- ofb->port->state_info.rotate = 0;
253+ //ofb->port->state_info.rotate = 0;
254 ofb->port->state_info.grayscale = 0;
255 ofb->port->state_info.activate = FB_ACTIVATE_NOW;
256 ofb->port->state_info.bits_per_pixel = 0;
257 ofb->port->state_info.nonstd = xv_to_omapfb_format(image);
258
259+ /* Plane info does not rotate with state_info */
260+ if (ofb->port->state_info.rotate == 1 ||
261+ ofb->port->state_info.rotate == 3) {
262+ drw_temp = drw_x;
263+ drw_x = drw_y;
264+ drw_y = drw_temp;
265+
266+ drw_temp = drw_w;
267+ drw_w = drw_h;
268+ drw_h = drw_temp;
269+
270+ rot_xres = ofb->port->state_info.yres;
271+ rot_yres = ofb->port->state_info.xres;
272+ } else {
273+ rot_xres = ofb->port->state_info.xres;
274+ rot_yres = ofb->port->state_info.yres;
275+ }
276+
277+
278 /* Set up the video plane info */
279 ofb->port->plane_info.enabled = 1;
280 ofb->port->plane_info.pos_x = drw_x;
281@@ -193,13 +234,13 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn,
282 ofb->port->plane_info.out_height = drw_h & ~15;
283
284 /* Cap output to screen size */
285- if (ofb->port->plane_info.out_width > ofb->state_info.xres) {
286+ if (ofb->port->plane_info.out_width > rot_xres) {
287 ofb->port->plane_info.pos_x = 0;
288- ofb->port->plane_info.out_width = ofb->state_info.xres;
289+ ofb->port->plane_info.out_width = rot_xres;
290 }
291- if (ofb->port->plane_info.out_height > ofb->state_info.yres) {
292+ if (ofb->port->plane_info.out_height > rot_yres) {
293 ofb->port->plane_info.pos_y = 0;
294- ofb->port->plane_info.out_height = ofb->state_info.yres;
295+ ofb->port->plane_info.out_height = rot_yres;
296 }
297
298 ret = OMAPXVSetupVideoPlane(pScrn);
299@@ -223,6 +264,7 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn,
300 packed_line_copy(src_w & ~15,
301 src_h & ~15,
302 ((src_w + 1) & ~1) * 2,
303+ ofb->port->fixed_info.line_length,
304 (uint8_t*)buf,
305 (uint8_t*)ofb->port->fb);
306 break;
307diff --git a/src/omapfb-xv.c b/src/omapfb-xv.c
308index 1df651e..0fee2c6 100644
309--- a/src/omapfb-xv.c
310+++ b/src/omapfb-xv.c
311@@ -169,8 +169,11 @@ static int OMAPFBXVQueryImageAttributes (ScrnInfoPtr pScrn,
312 h = *height;
313
314 w = (w + 1) & ~1;
315+
316+ /* Can't calculate these here - don't know line length
317 ofb->port->mem_info.size = w << 1;
318 ofb->port->mem_info.size *= h;
319+ */
320
321 return size;
322 }
323--
3241.8.0
325
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0006-omapfb-port-to-new-xserver-video-API.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0006-omapfb-port-to-new-xserver-video-API.patch
new file mode 100644
index 0000000000..d56729987c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0006-omapfb-port-to-new-xserver-video-API.patch
@@ -0,0 +1,272 @@
1From 803ecf2909949e6152f4a81b6cbb92a4430679ac Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Fri, 23 Nov 2012 00:31:06 +0100
4Subject: [PATCH 6/6] omapfb: port to new xserver video API
5
6Upstream-Status: Pending
7
8Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
9---
10 src/compat-api.h | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++
11 src/omapfb-driver.c | 41 ++++++++++++-----------
12 2 files changed, 118 insertions(+), 19 deletions(-)
13 create mode 100644 src/compat-api.h
14
15diff --git a/src/compat-api.h b/src/compat-api.h
16new file mode 100644
17index 0000000..b1591b1
18--- /dev/null
19+++ b/src/compat-api.h
20@@ -0,0 +1,96 @@
21+/*
22+ * Copyright 2012 Red Hat, Inc.
23+ *
24+ * Permission is hereby granted, free of charge, to any person obtaining a
25+ * copy of this software and associated documentation files (the "Software"),
26+ * to deal in the Software without restriction, including without limitation
27+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
28+ * and/or sell copies of the Software, and to permit persons to whom the
29+ * Software is furnished to do so, subject to the following conditions:
30+ *
31+ * The above copyright notice and this permission notice (including the next
32+ * paragraph) shall be included in all copies or substantial portions of the
33+ * Software.
34+ *
35+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
36+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
37+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
38+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
39+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
41+ * DEALINGS IN THE SOFTWARE.
42+ *
43+ * Author: Dave Airlie <airlied@redhat.com>
44+ */
45+
46+/* this file provides API compat between server post 1.13 and pre it,
47+ it should be reused inside as many drivers as possible */
48+#ifndef COMPAT_API_H
49+#define COMPAT_API_H
50+
51+#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR
52+#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum]
53+#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p
54+#endif
55+
56+#ifndef XF86_HAS_SCRN_CONV
57+#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum]
58+#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex]
59+#endif
60+
61+#ifndef XF86_SCRN_INTERFACE
62+
63+#define SCRN_ARG_TYPE int
64+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)]
65+
66+#define SCREEN_ARG_TYPE int
67+#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)]
68+
69+#define SCREEN_INIT_ARGS_DECL int index, ScreenPtr pScreen, int argc, char **argv
70+
71+#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask
72+#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask
73+
74+#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen
75+#define CLOSE_SCREEN_ARGS scrnIndex, pScreen
76+
77+#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags
78+
79+#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags
80+
81+#define FREE_SCREEN_ARGS_DECL int arg, int flags
82+#define FREE_SCREEN_ARGS(x) (x)->scrnIndex, 0
83+
84+#define VT_FUNC_ARGS_DECL int arg, int flags
85+#define VT_FUNC_ARGS(flags) pScrn->scrnIndex, (flags)
86+
87+#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex)
88+#else
89+#define SCRN_ARG_TYPE ScrnInfoPtr
90+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1)
91+
92+#define SCREEN_ARG_TYPE ScreenPtr
93+#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1)
94+
95+#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
96+
97+#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
98+#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
99+
100+#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
101+#define CLOSE_SCREEN_ARGS pScreen
102+
103+#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y
104+#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode
105+
106+#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg
107+#define FREE_SCREEN_ARGS(x) (x)
108+
109+#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg
110+#define VT_FUNC_ARGS(flags) pScrn
111+
112+#define XF86_ENABLEDISABLEFB_ARG(x) (x)
113+
114+#endif
115+
116+#endif
117diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c
118index 07989f5..486ffa4 100644
119--- a/src/omapfb-driver.c
120+++ b/src/omapfb-driver.c
121@@ -44,6 +44,8 @@
122
123 #include "exa.h"
124
125+#include "compat-api.h"
126+
127 #ifdef HAVE_XEXTPROTO_71
128 #include <X11/extensions/dpmsconst.h>
129 #else
130@@ -70,10 +72,10 @@
131
132 static Bool OMAPFBProbe(DriverPtr drv, int flags);
133 static Bool OMAPFBPreInit(ScrnInfoPtr pScrn, int flags);
134-static Bool OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv);
135-static Bool OMAPFBEnterVT(int scrnIndex, int flags);
136-static void OMAPFBLeaveVT(int scrnIndex, int flags);
137-static Bool OMAPFBSwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
138+static Bool OMAPFBScreenInit(SCREEN_INIT_ARGS_DECL);
139+static Bool OMAPFBEnterVT(VT_FUNC_ARGS_DECL);
140+static void OMAPFBLeaveVT(VT_FUNC_ARGS_DECL);
141+static Bool OMAPFBSwitchMode(SWITCH_MODE_ARGS_DECL);
142
143 static Bool
144 OMAPFBEnsureRec(ScrnInfoPtr pScrn)
145@@ -481,7 +483,7 @@ OMAPFBXvScreenInit(ScreenPtr pScreen)
146 }
147
148 static Bool
149-OMAPFBCloseScreen(int scrnIndex, ScreenPtr pScreen)
150+OMAPFBCloseScreen(CLOSE_SCREEN_ARGS_DECL)
151 {
152 ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
153 OMAPFBPtr ofb = OMAPFB(pScrn);
154@@ -490,11 +492,11 @@ OMAPFBCloseScreen(int scrnIndex, ScreenPtr pScreen)
155
156 pScreen->CloseScreen = ofb->CloseScreen;
157
158- return (*pScreen->CloseScreen)(scrnIndex, pScreen);
159+ return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS);
160 }
161
162 static Bool
163-OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
164+OMAPFBScreenInit(SCREEN_INIT_ARGS_DECL)
165 {
166 ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
167 OMAPFBPtr ofb = OMAPFB(pScrn);
168@@ -516,7 +518,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
169 PROT_READ | PROT_WRITE, MAP_SHARED,
170 ofb->fd, 0);
171 if (ofb->fb == MAP_FAILED) {
172- xf86DrvMsg(scrnIndex, X_ERROR, "Mapping framebuffer memory failed, wanted %d bytes.\n", ofb->mem_info.size);
173+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Mapping framebuffer memory failed, wanted %d bytes.\n", ofb->mem_info.size);
174 return FALSE;
175 }
176
177@@ -526,7 +528,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
178 /* Only support TrueColor for now */
179 if (!miSetVisualTypes(pScrn->depth, TrueColorMask,
180 pScrn->rgbBits, pScrn->defaultVisual)) {
181- xf86DrvMsg(scrnIndex, X_ERROR, "visual type setup failed"
182+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "visual type setup failed"
183 " for %d bits per pixel [1]\n",
184 pScrn->bitsPerPixel);
185 return FALSE;
186@@ -534,7 +536,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
187
188 /* Set up pixmap depth information */
189 if (!miSetPixmapDepths()) {
190- xf86DrvMsg(scrnIndex,X_ERROR,"pixmap depth setup failed\n");
191+ xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"pixmap depth setup failed\n");
192 return FALSE;
193 }
194
195@@ -546,7 +548,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
196 pScrn->virtualY, pScrn->xDpi,
197 pScrn->yDpi, pScrn->displayWidth,
198 pScrn->bitsPerPixel)) {
199- xf86DrvMsg(scrnIndex, X_ERROR, "fbScreenInit failed\n");
200+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "fbScreenInit failed\n");
201 return FALSE;
202 }
203
204@@ -567,7 +569,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
205
206 /* Initialize XRender fallbacks */
207 if (!fbPictureInit(pScreen, NULL, 0)) {
208- xf86DrvMsg(scrnIndex, X_ERROR, "fbPictureInit failed\n");
209+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "fbPictureInit failed\n");
210 return FALSE;
211 }
212
213@@ -579,7 +581,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
214
215 /* Initialize default colormap */
216 if (!miCreateDefColormap(pScreen)) {
217- xf86DrvMsg(scrnIndex, X_ERROR,
218+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
219 "creating default colormap failed\n");
220 return FALSE;
221 }
222@@ -589,7 +591,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
223 /* This is non-fatal since we might be running against older
224 * kernel driver in which case we only do basic 2D stuff...
225 */
226- xf86DrvMsg(scrnIndex, X_ERROR, "Reading plane info failed\n");
227+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Reading plane info failed\n");
228 } else if (!ofb->dss) {
229
230 ofb->plane_info.enabled = 1;
231@@ -602,7 +604,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
232 }
233
234 if (ioctl (ofb->fd, OMAPFB_SETUP_PLANE, &ofb->plane_info)) {
235- xf86DrvMsg(scrnIndex, X_ERROR,
236+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
237 "%s: Plane setup failed: %s\n",
238 __FUNCTION__, strerror(errno));
239 return FALSE;
240@@ -645,9 +647,10 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
241 return TRUE;
242 }
243
244-static Bool OMAPFBSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
245+static Bool OMAPFBSwitchMode(SWITCH_MODE_ARGS_DECL)
246 {
247- return xf86SetSingleMode (xf86Screens[scrnIndex], mode, RR_Rotate_0);
248+ SCRN_INFO_PTR(arg);
249+ return xf86SetSingleMode (pScrn, mode, RR_Rotate_0);
250 }
251
252 void
253@@ -699,14 +702,14 @@ OMAPFBPrintCapabilities(ScrnInfoPtr pScrn,
254 /*** Unimplemented: */
255
256 static Bool
257-OMAPFBEnterVT(int scrnIndex, int flags)
258+OMAPFBEnterVT(VT_FUNC_ARGS_DECL)
259 {
260 xf86Msg(X_NOT_IMPLEMENTED, "%s\n", __FUNCTION__);
261 return TRUE;
262 }
263
264 static void
265-OMAPFBLeaveVT(int scrnIndex, int flags)
266+OMAPFBLeaveVT(VT_FUNC_ARGS_DECL)
267 {
268 xf86Msg(X_NOT_IMPLEMENTED, "%s\n", __FUNCTION__);
269 }
270--
2711.8.0
272
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb
new file mode 100644
index 0000000000..50ce4c2f9c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb
@@ -0,0 +1,33 @@
1require xorg-driver-video.inc
2
3SUMMARY = "X.Org X server -- Texas Instruments OMAP framebuffer driver"
4
5DESCRIPTION = "omapfb driver supports the basic Texas Instruments OMAP \
6framebuffer."
7
8LICENSE = "MIT-X & GPLv2+"
9LIC_FILES_CHKSUM = "file://COPYING;md5=63e2cbac53863f60e2f43343fb34367f"
10DEPENDS += "virtual/libx11"
11
12SRCREV = "28c006c94e57ea71df11ec4fff79d7ffcfc4860f"
13PR = "${INC_PR}.7"
14PV = "0.1.1+gitr${SRCPV}"
15
16SRC_URI = "git://git.pingu.fi/xf86-video-omapfb;protocol=http \
17 file://0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch \
18 file://0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch \
19 file://0003-force-plain-mode.patch \
20 file://0004-blacklist-tv-out.patch \
21 file://0005-Attempt-to-fix-VRFB.patch \
22 file://0006-omapfb-port-to-new-xserver-video-API.patch \
23"
24
25S = "${WORKDIR}/git"
26
27EXTRA_OECONF_armv7a = " --enable-neon "
28CFLAGS += " -I${STAGING_INCDIR}/xorg "
29
30# Use overlay 2 on omap3 to enable other apps to use overlay 1 (e.g. dmai or omapfbplay)
31do_compile_prepend_armv7a () {
32 sed -i -e s:fb1:fb2:g ${S}/src/omapfb-xv.c
33}
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.3.bb b/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.3.bb
new file mode 100644
index 0000000000..4052f703b8
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.3.bb
@@ -0,0 +1,21 @@
1require xorg-driver-video.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=a1f0610ebdc6f314a9fa5102a8c5c1b0"
4
5SUMMARY = "X.Org X server -- Generic Vesa video driver"
6
7DESCRIPTION = "vesa is an Xorg driver for generic VESA video cards. It \
8can drive most VESA-compatible video cards, but only makes use of the \
9basic standard VESA core that is common to these cards. The driver \
10supports depths 8, 15 16 and 24."
11
12PR = "${INC_PR}.0"
13
14DEPENDS += "virtual/libx11 randrproto libpciaccess"
15
16COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
17
18RRECOMMENDS_${PN} += "xserver-xorg-module-libint10"
19
20SRC_URI[md5sum] = "3690a5356ed121b1a7dfb59a6dcf4bf9"
21SRC_URI[sha256sum] = "ce8b75e5a40e9dae76f2ac9e2880f7f73a848653ca2eed5880f52dc2c0d3aef8"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vmware/vmwgfx-option.patch b/meta/recipes-graphics/xorg-driver/xf86-video-vmware/vmwgfx-option.patch
new file mode 100644
index 0000000000..4b3a3094d9
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-vmware/vmwgfx-option.patch
@@ -0,0 +1,72 @@
1Upstream-Status: Submitted (http://lists.x.org/archives/xorg-devel/2013-September/037762.html)
2Signed-off-by: Ross Burton <ross.burton@intel.com>
3
4From 5ec0aae666feb88d01256cdebbf94a6b373bf4c4 Mon Sep 17 00:00:00 2001
5From: Ross Burton <ross.burton@intel.com>
6Date: Wed, 11 Sep 2013 21:40:44 +0100
7Subject: [PATCH] build: add explicit option to enable/disable VMWGFX
8
9Signed-off-by: Ross Burton <ross.burton@intel.com>
10---
11 configure.ac | 31 ++++++++++++++-----------------
12 1 file changed, 14 insertions(+), 17 deletions(-)
13
14diff --git a/configure.ac b/configure.ac
15index 0631bcc..3e14abd 100644
16--- a/configure.ac
17+++ b/configure.ac
18@@ -85,11 +85,6 @@ PKG_CHECK_EXISTS([xorg-server >= 1.4.99],
19 [AC_DEFINE([HAVE_XORG_SERVER_1_5_0], 1,
20 [Has version 1.5.0 or greater of the Xserver])])
21
22-PKG_CHECK_EXISTS([xorg-server >= 1.7.0],
23- [AC_DEFINE([HAVE_XORG_SERVER_1_7_0], 1,
24- [Has version 1.7.0 or greater of the Xserver])
25- BUILD_VMWGFX=yes],[BUILD_VMWGFX=no])
26-
27 PKG_CHECK_EXISTS([xorg-server >= 1.12.0],
28 [AC_DEFINE([HAVE_XORG_SERVER_1_12_0], 1,
29 [Has version 1.12.0 or greater of the Xserver])])
30@@ -114,25 +109,27 @@ AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
31
32 AC_SUBST([moduledir])
33
34-if test x$BUILD_VMWGFX = xyes; then
35- PKG_CHECK_MODULES([LIBDRM], [libdrm],[],[BUILD_VMWGFX=no])
36-fi
37-if test x$BUILD_VMWGFX = xyes; then
38- PKG_CHECK_MODULES([XATRACKER], [xatracker >= 0.4.0],[],[BUILD_VMWGFX=no])
39-fi
40-
41 DRIVER_NAME=vmware
42 AC_SUBST([DRIVER_NAME])
43
44+AC_ARG_ENABLE(vmwgfx,
45+ AS_HELP_STRING([--disable-vmwgfx],
46+ [Disable vmwgfx driver (KMS/3D) (default: enabled)]),
47+ [VMWGFX="$enableval"], [VMWGFX="yes"])
48+
49 AC_MSG_CHECKING([whether to build Kernel Mode Setting and 3D])
50-if test x$BUILD_VMWGFX = xyes; then
51- AC_MSG_RESULT([yes])
52+if test "x$VMWGFX" = xyes; then
53+ AC_MSG_RESULT([yes])
54+ PKG_CHECK_EXISTS([xorg-server >= 1.7.0],
55+ [AC_DEFINE([HAVE_XORG_SERVER_1_7_0], 1,
56+ [Has version 1.7.0 or greater of the Xserver])])
57+ PKG_CHECK_MODULES([LIBDRM], [libdrm])
58+ PKG_CHECK_MODULES([XATRACKER], [xatracker >= 0.4.0])
59 AC_DEFINE([BUILD_VMWGFX], 1, [Building the vmwgfx driver path])
60 else
61- AC_MSG_RESULT([no])
62+ AC_MSG_RESULT([no])
63 fi
64-
65-AM_CONDITIONAL(BUILD_VMWGFX, test "x$BUILD_VMWGFX" = xyes)
66+AM_CONDITIONAL(BUILD_VMWGFX, test "x$VMWGFX" = xyes)
67
68 AC_CONFIG_FILES([
69 Makefile
70--
711.7.10.4
72
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.0.1.bb b/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.0.1.bb
new file mode 100644
index 0000000000..7b48e0c101
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.0.1.bb
@@ -0,0 +1,18 @@
1require xorg-driver-video.inc
2
3SUMMARY = "X.Org X server -- VMware SVGA display driver"
4
5DESCRIPTION = "vmware is an Xorg driver for VMware virtual video cards."
6
7LIC_FILES_CHKSUM = "file://COPYING;md5=5fcd7d437a959a15fbee8707747c6b53"
8
9DEPENDS += "virtual/libx11 xineramaproto videoproto libpciaccess"
10
11SRC_URI += "file://vmwgfx-option.patch"
12
13SRC_URI[md5sum] = "b08e0195ebf3f88a82129322cb93da08"
14SRC_URI[sha256sum] = "802dda415c22412edad6c3df44fe18a06e91d0f8456d9a58bac0d340fdf8fe3d"
15
16COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)'
17
18EXTRA_OECONF += "--disable-vmwgfx"
diff --git a/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc b/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc
new file mode 100644
index 0000000000..b46974bc2d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc
@@ -0,0 +1,41 @@
1SUMMARY = "X driver"
2HOMEPAGE = "http://www.x.org"
3BUGTRACKER = "https://bugs.freedesktop.org"
4SECTION = "x11/drivers"
5LICENSE = "MIT-X"
6
7PE = "2"
8INC_PR = "r21"
9
10DEPENDS = "virtual/xserver xproto randrproto util-macros"
11
12SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2"
13
14S = "${WORKDIR}/${BPN}-${PV}"
15
16FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so"
17FILES_${PN}-dbg += " ${libdir}/xorg/modules/drivers/.debug"
18
19inherit autotools pkgconfig
20
21# FIXME: We don't want to include the libtool archives (*.la) from modules
22# directory, as they serve no useful purpose. Upstream should fix Makefile.am
23do_install_append() {
24 find ${D}${libdir}/xorg/modules -regex ".*\.la$" | xargs rm -f --
25}
26
27# Function to add the relevant ABI dependency to drivers, which should be called
28# from a populate_packages append/prepend.
29def add_abi_depends(d, name):
30 # Map of ABI names exposed in the dependencies to pkg-config variables
31 abis = {
32 "video": "abi_videodrv",
33 "input": "abi_xinput"
34 }
35
36 output = os.popen("pkg-config xorg-server --variable=%s" % abis[name]).read()
37 mlprefix = d.getVar('MLPREFIX', True) or ''
38 abi = "%sxorg-abi-%s-%s" % (mlprefix, name, output.split(".")[0])
39
40 pn = d.getVar("PN", True)
41 d.appendVar('RDEPENDS_' + pn, ' ' + abi)
diff --git a/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc b/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc
new file mode 100644
index 0000000000..a544d71bf2
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc
@@ -0,0 +1,10 @@
1include xorg-driver-common.inc
2
3DEPENDS += "inputproto kbproto "
4
5python populate_packages_prepend() {
6 add_abi_depends(d, "input")
7}
8
9FILES_${PN} += " ${libdir}/xorg/modules/input/*.so"
10FILES_${PN}-dbg += " ${libdir}/xorg/modules/input/.debug"
diff --git a/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc b/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc
new file mode 100644
index 0000000000..4fe33491b7
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc
@@ -0,0 +1,7 @@
1include xorg-driver-common.inc
2
3DEPENDS =+ "renderproto videoproto xextproto fontsproto"
4
5python populate_packages_prepend() {
6 add_abi_depends(d, "video")
7}