diff options
Diffstat (limited to 'meta/recipes-graphics/xorg-driver')
38 files changed, 1872 insertions, 0 deletions
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.9.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.9.0.bb new file mode 100644 index 0000000000..4ab6ad1d66 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.9.0.bb | |||
@@ -0,0 +1,20 @@ | |||
1 | require xorg-driver-input.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- event devices (evdev) input driver" | ||
4 | |||
5 | DESCRIPTION = "evdev is an Xorg input driver for Linux's generic event \ | ||
6 | devices. It therefore supports all input devices that the kernel knows \ | ||
7 | about, including most mice and keyboards. \ | ||
8 | \ | ||
9 | The evdev driver can serve as both a pointer and a keyboard input \ | ||
10 | device, and may be used as both the core keyboard and the core pointer. \ | ||
11 | Multiple input devices are supported by multiple instances of this \ | ||
12 | driver, with one Load directive for evdev in the Module section of your \ | ||
13 | xorg.conf for each input device that will use this driver. " | ||
14 | |||
15 | LIC_FILES_CHKSUM = "file://COPYING;md5=fefe33b1cf0cacba0e72e3b0fa0f0e16" | ||
16 | |||
17 | DEPENDS += "mtdev libevdev" | ||
18 | |||
19 | SRC_URI[md5sum] = "9076ae2646f7aeb30963056e0bbfccf0" | ||
20 | SRC_URI[sha256sum] = "0c0c4aa393cb027a2304967944867a21a340bcad2e5efe630291b6906c3abc35" | ||
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 @@ | |||
1 | require xorg-driver-input.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- keyboard input driver" | ||
4 | |||
5 | DESCRIPTION = "keyboard is an Xorg input driver for keyboards. The \ | ||
6 | driver supports the standard OS-provided keyboard interface. The driver \ | ||
7 | functions as a keyboard input device, and may be used as the X server's \ | ||
8 | core keyboard." | ||
9 | |||
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=ea2099d24ac9e316a6d4b9f20b3d4e10" | ||
11 | |||
12 | SRC_URI[md5sum] = "ce936e219682bacf5a4a9c4ab940edb8" | ||
13 | SRC_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 @@ | |||
1 | require xorg-driver-input.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- keyboard input driver" | ||
4 | |||
5 | DESCRIPTION = "keyboard is an Xorg input driver for keyboards. The \ | ||
6 | driver supports the standard OS-provided keyboard interface. The driver \ | ||
7 | functions as a keyboard input device, and may be used as the X server's \ | ||
8 | core keyboard." | ||
9 | |||
10 | SRCREV = "3e28d68b50d291938734e9684b8296ca864f3892" | ||
11 | PV = "1.3.2+git${SRCPV}" | ||
12 | PR = "${INC_PR}.0" | ||
13 | |||
14 | SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-keyboard" | ||
15 | S = "${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 @@ | |||
1 | Unbreak the linux mouse driver by using config.h | ||
2 | |||
3 | RP - 4/11/07 | ||
4 | |||
5 | Upstream-Status: Pending | ||
6 | |||
7 | Index: 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.1.bb b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.1.bb new file mode 100644 index 0000000000..1f0b78a157 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.1.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | require xorg-driver-input.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- mouse input driver" | ||
4 | |||
5 | DESCRIPTION = "mouse is an Xorg input driver for mice. The driver \ | ||
6 | supports most available mouse types and interfaces. The mouse driver \ | ||
7 | functions as a pointer input device, and may be used as the X server's \ | ||
8 | core pointer. Multiple mice are supported by multiple instances of this \ | ||
9 | driver." | ||
10 | |||
11 | LIC_FILES_CHKSUM = "file://COPYING;md5=90ea9f90d72b6d9327dede5ffdb2a510" | ||
12 | |||
13 | SRC_URI[md5sum] = "77085b649c5c0b333565ba562f573951" | ||
14 | SRC_URI[sha256sum] = "3485d375779c08406f0789feedde15933dc703158a086ddac638598f479fc5ce" | ||
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 @@ | |||
1 | require xorg-driver-input.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- mouse input driver" | ||
4 | |||
5 | DESCRIPTION = "mouse is an Xorg input driver for mice. The driver \ | ||
6 | supports most available mouse types and interfaces. The mouse driver \ | ||
7 | functions as a pointer input device, and may be used as the X server's \ | ||
8 | core pointer. Multiple mice are supported by multiple instances of this \ | ||
9 | driver." | ||
10 | |||
11 | SRCREV = "ea5cfe804e112f320f14ad896c7802d53551d3e6" | ||
12 | PV = "1.3.0+git${SRCPV}" | ||
13 | PR = "${INC_PR}.0" | ||
14 | |||
15 | SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-mouse \ | ||
16 | file://unbreak.patch" | ||
17 | S = "${WORKDIR}/git" | ||
18 | |||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/always_include_xorg_server.h.patch b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/always_include_xorg_server.h.patch new file mode 100644 index 0000000000..f36bb7579d --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/always_include_xorg_server.h.patch | |||
@@ -0,0 +1,60 @@ | |||
1 | From 96e60a4ea242d2decf109835981ae186cc36f642 Mon Sep 17 00:00:00 2001 | ||
2 | From: Peter Hutterer <peter.hutterer@who-t.net> | ||
3 | Date: Fri, 29 Aug 2014 07:57:41 +1000 | ||
4 | Subject: Include xorg-server.h to fix build errors on newest glibc | ||
5 | |||
6 | In file included from /usr/include/string.h:634:0, | ||
7 | from /usr/include/xorg/os.h:53, | ||
8 | from /usr/include/xorg/misc.h:115, | ||
9 | from /usr/include/xorg/xf86str.h:37, | ||
10 | from /usr/include/xorg/xf86Xinput.h:54, | ||
11 | from synproto.h:36, | ||
12 | from synproto.c:24: | ||
13 | /usr/include/xorg/os.h:579:1: error: expected identifier or '(' before '__extension__' | ||
14 | strndup(const char *str, size_t n); | ||
15 | |||
16 | See http://lists.freedesktop.org/archives/xorg-devel/2014-July/043070.html | ||
17 | |||
18 | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> | ||
19 | |||
20 | Status: Backport | ||
21 | |||
22 | Index: xf86-input-synaptics-1.8.0/src/eventcomm.h | ||
23 | =================================================================== | ||
24 | --- xf86-input-synaptics-1.8.0.orig/src/eventcomm.h 2014-08-28 18:40:28.628070587 -0700 | ||
25 | +++ xf86-input-synaptics-1.8.0/src/eventcomm.h 2014-08-28 18:40:28.620070587 -0700 | ||
26 | @@ -27,6 +27,8 @@ | ||
27 | #ifndef _EVENTCOMM_H_ | ||
28 | #define _EVENTCOMM_H_ | ||
29 | |||
30 | +#include <xorg-server.h> | ||
31 | + | ||
32 | #include <linux/input.h> | ||
33 | #include <linux/version.h> | ||
34 | #include <xf86Xinput.h> | ||
35 | Index: xf86-input-synaptics-1.8.0/src/ps2comm.h | ||
36 | =================================================================== | ||
37 | --- xf86-input-synaptics-1.8.0.orig/src/ps2comm.h 2014-08-28 18:40:28.628070587 -0700 | ||
38 | +++ xf86-input-synaptics-1.8.0/src/ps2comm.h 2014-08-28 18:40:28.620070587 -0700 | ||
39 | @@ -22,6 +22,8 @@ | ||
40 | #ifndef _PS2COMM_H_ | ||
41 | #define _PS2COMM_H_ | ||
42 | |||
43 | +#include <xorg-server.h> | ||
44 | + | ||
45 | #include <unistd.h> | ||
46 | #include <sys/ioctl.h> | ||
47 | #include "xf86_OSproc.h" | ||
48 | Index: xf86-input-synaptics-1.8.0/src/synproto.h | ||
49 | =================================================================== | ||
50 | --- xf86-input-synaptics-1.8.0.orig/src/synproto.h 2014-08-28 18:40:28.628070587 -0700 | ||
51 | +++ xf86-input-synaptics-1.8.0/src/synproto.h 2014-08-28 18:40:28.624070587 -0700 | ||
52 | @@ -31,6 +31,8 @@ | ||
53 | #include "config.h" | ||
54 | #endif | ||
55 | |||
56 | +#include <xorg-server.h> | ||
57 | + | ||
58 | #include <unistd.h> | ||
59 | #include <sys/ioctl.h> | ||
60 | #include <xf86Xinput.h> | ||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.8.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.8.0.bb new file mode 100644 index 0000000000..90baf8fbf3 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.8.0.bb | |||
@@ -0,0 +1,22 @@ | |||
1 | require xorg-driver-input.inc | ||
2 | |||
3 | #SRC_URI += "file://configurefix.patch" | ||
4 | |||
5 | SUMMARY = "X.Org X server -- synaptics touchpad input driver" | ||
6 | |||
7 | DESCRIPTION = "synaptics is an Xorg input driver for the touchpads from \ | ||
8 | Synaptics Incorporated. Even though these touchpads (by default, \ | ||
9 | operating in a compatibility mode emulating a standard mouse) can be \ | ||
10 | handled by the normal evdev or mouse drivers, this driver allows more \ | ||
11 | advanced features of the touchpad to become available." | ||
12 | |||
13 | LIC_FILES_CHKSUM = "file://COPYING;md5=55aacd3535a741824955c5eb8f061398" | ||
14 | |||
15 | SRC_URI += "file://always_include_xorg_server.h.patch" | ||
16 | |||
17 | SRC_URI[md5sum] = "27a3f2b31606a13dd6b58d419978d64f" | ||
18 | SRC_URI[sha256sum] = "9bf27632aaa6c5e62621ca9c2ca00f9b309c85b039ee33cd592b189fc872c37a" | ||
19 | |||
20 | DEPENDS += "libxi mtdev libxtst libevdev" | ||
21 | |||
22 | FILES_${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 @@ | |||
1 | require xorg-driver-input.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- synaptics touchpad input driver" | ||
4 | |||
5 | DESCRIPTION = "synaptics is an Xorg input driver for the touchpads from \ | ||
6 | Synaptics Incorporated. Even though these touchpads (by default, \ | ||
7 | operating in a compatibility mode emulating a standard mouse) can be \ | ||
8 | handled by the normal evdev or mouse drivers, this driver allows more \ | ||
9 | advanced features of the touchpad to become available." | ||
10 | |||
11 | SRCREV = "934bc0012f948c52aadc8eda912f7728fb7394a2" | ||
12 | PV = "0.15.2+git${SRCPV}" | ||
13 | PR = "${INC_PR}.1" | ||
14 | |||
15 | SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-synaptics" | ||
16 | S = "${WORKDIR}/git" | ||
17 | |||
18 | DEPENDS += "libxi mtdev libxtst" | ||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse/always_include_config.h.patch b/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse/always_include_config.h.patch new file mode 100644 index 0000000000..12fb9df2fd --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse/always_include_config.h.patch | |||
@@ -0,0 +1,81 @@ | |||
1 | From 336f8633837abe4a1e5ba84b53ac8b9dac5d29a2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jeremy Huddleston Sequoia <jeremyhu@apple.com> | ||
3 | Date: Thu, 28 Nov 2013 11:59:53 -0800 | ||
4 | Subject: Always include config.h first | ||
5 | |||
6 | This fixes some build warnings about CSRG_BASED being redefined due to | ||
7 | incorrect header include ordering. | ||
8 | |||
9 | Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> | ||
10 | |||
11 | Upstream-Status: Backport | ||
12 | |||
13 | Index: xf86-input-vmmouse-13.0.0/shared/vmmouse_client.c | ||
14 | =================================================================== | ||
15 | --- xf86-input-vmmouse-13.0.0.orig/shared/vmmouse_client.c 2014-08-28 18:33:16.168070587 -0700 | ||
16 | +++ xf86-input-vmmouse-13.0.0/shared/vmmouse_client.c 2014-08-28 18:33:16.152070587 -0700 | ||
17 | @@ -39,6 +39,10 @@ | ||
18 | #endif | ||
19 | |||
20 | |||
21 | +#ifdef HAVE_CONFIG_H | ||
22 | +#include "config.h" | ||
23 | +#endif | ||
24 | + | ||
25 | #include "vmmouse_client.h" | ||
26 | #include "vmmouse_proto.h" | ||
27 | |||
28 | Index: xf86-input-vmmouse-13.0.0/shared/vmmouse_proto.c | ||
29 | =================================================================== | ||
30 | --- xf86-input-vmmouse-13.0.0.orig/shared/vmmouse_proto.c 2014-08-28 18:33:16.168070587 -0700 | ||
31 | +++ xf86-input-vmmouse-13.0.0/shared/vmmouse_proto.c 2014-08-28 18:33:16.156070587 -0700 | ||
32 | @@ -33,6 +33,10 @@ | ||
33 | */ | ||
34 | |||
35 | |||
36 | +#ifdef HAVE_CONFIG_H | ||
37 | +#include "config.h" | ||
38 | +#endif | ||
39 | + | ||
40 | #include "vmmouse_proto.h" | ||
41 | |||
42 | |||
43 | Index: xf86-input-vmmouse-13.0.0/shared/vmmouse_proto.h | ||
44 | =================================================================== | ||
45 | --- xf86-input-vmmouse-13.0.0.orig/shared/vmmouse_proto.h 2014-08-28 18:33:16.168070587 -0700 | ||
46 | +++ xf86-input-vmmouse-13.0.0/shared/vmmouse_proto.h 2014-08-28 18:33:16.156070587 -0700 | ||
47 | @@ -36,11 +36,6 @@ | ||
48 | #ifndef _VMMOUSE_PROTO_H_ | ||
49 | #define _VMMOUSE_PROTO_H_ | ||
50 | |||
51 | - | ||
52 | -#ifdef HAVE_CONFIG_H | ||
53 | -#include "config.h" | ||
54 | -#endif | ||
55 | - | ||
56 | #include <stdint.h> | ||
57 | |||
58 | #ifdef HAVE_XORG_SERVER_1_1_0 | ||
59 | Index: xf86-input-vmmouse-13.0.0/tools/vmmouse_detect.c | ||
60 | =================================================================== | ||
61 | --- xf86-input-vmmouse-13.0.0.orig/tools/vmmouse_detect.c 2014-08-28 18:33:16.168070587 -0700 | ||
62 | +++ xf86-input-vmmouse-13.0.0/tools/vmmouse_detect.c 2014-08-28 18:33:16.160070587 -0700 | ||
63 | @@ -26,14 +26,14 @@ | ||
64 | */ | ||
65 | |||
66 | |||
67 | -#include <stdlib.h> | ||
68 | -#include <signal.h> | ||
69 | -#include "vmmouse_client.h" | ||
70 | - | ||
71 | #ifdef HAVE_CONFIG_H | ||
72 | #include "config.h" | ||
73 | #endif | ||
74 | |||
75 | +#include <stdlib.h> | ||
76 | +#include <signal.h> | ||
77 | +#include "vmmouse_client.h" | ||
78 | + | ||
79 | void | ||
80 | segvCB(int sig) | ||
81 | { | ||
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..83ea960a88 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.0.0.bb | |||
@@ -0,0 +1,28 @@ | |||
1 | require xorg-driver-input.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- VMWare mouse input driver" | ||
4 | DESCRIPTION = "The vmmouse driver enables support for the special VMMouse \ | ||
5 | protocol that is provided by VMware virtual machines to give absolute \ | ||
6 | pointer positioning. The vmmouse driver is capable of falling back to the \ | ||
7 | standard 'mouse' driver if a VMware virtual machine is not detected." | ||
8 | |||
9 | PR = "${INC_PR}.0" | ||
10 | |||
11 | SRC_URI += "file://always_include_config.h.patch" | ||
12 | |||
13 | SRC_URI[md5sum] = "34f9f64ee6a1a51fc8266a9af24e1e07" | ||
14 | SRC_URI[sha256sum] = "04cfb60366008d4db815c550d8fb8d0a4270c75fa7a20fa3bddc9ecbd355612c" | ||
15 | |||
16 | RDEPENDS_${PN} += "xf86-input-mouse" | ||
17 | |||
18 | LIC_FILES_CHKSUM = "file://COPYING;md5=622841c068a9d7625fbfe7acffb1a8fc" | ||
19 | |||
20 | COMPATIBLE_HOST = '(i.86|x86_64).*-linux' | ||
21 | |||
22 | do_install_append () { | ||
23 | # We don't care about hal | ||
24 | rm -rf ${D}${datadir}/hal/ | ||
25 | rm -rf ${D}${libdir}/hal/ | ||
26 | } | ||
27 | |||
28 | FILES_${PN} += "${base_libdir}/udev/ ${datadir}/X11/xorg.conf.d" | ||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.2.bb b/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.2.bb new file mode 100644 index 0000000000..01cd37e364 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.2.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | require xorg-driver-video.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- cirrus display driver" | ||
4 | DESCRIPTION = "cirrus is an Xorg driver for Cirrus Logic VGA adapters. These \ | ||
5 | devices are not so common in the wild anymore, but QEMU can emulate one, so \ | ||
6 | the driver is still useful." | ||
7 | |||
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=6ddc7ca860dc5fd014e7f160ea699295" | ||
9 | |||
10 | SRC_URI[md5sum] = "91fd6b677d62027cd3001debb587a6a6" | ||
11 | SRC_URI[sha256sum] = "3361e1a65d9b84c464752fd612bdf6087622c6dd204121715366a170e5c3ccd7" | ||
12 | |||
13 | DEPENDS += "libpciaccess" | ||
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 @@ | |||
1 | require xorg-driver-video.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- fbdev display driver" | ||
4 | DESCRIPTION = "fbdev is an Xorg driver for framebuffer devices. This is a non-accelerated driver." | ||
5 | |||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8" | ||
7 | |||
8 | SRC_URI[md5sum] = "3931c0e19d441cc576dc088f9eb9fd73" | ||
9 | SRC_URI[sha256sum] = "9dd4b326498223abbfdf786089a46ea3db4fa6bbd341308eb48a9e00bc3fd51b" | ||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/always_include_xorg_server.h.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/always_include_xorg_server.h.patch new file mode 100644 index 0000000000..8a5dd39ae1 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel/always_include_xorg_server.h.patch | |||
@@ -0,0 +1,24 @@ | |||
1 | Include xorg-server.h to fix build errors seen with glibc 2.20 | ||
2 | |||
3 | In file included from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/string.h:634:0, | ||
4 | from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/i586-oe-linux/xf86-video-intel/2_2.99.912-r0/xf86-video-intel-2.99.912/src/backlight.c:39: | ||
5 | /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/os.h:579:1: error: expected identifier or '(' before '__extension__' | ||
6 | strndup(const char *str, size_t n); | ||
7 | ^ | ||
8 | |||
9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
10 | |||
11 | Upstream-Status: Pending | ||
12 | |||
13 | Index: xf86-video-intel-2.99.912/src/backlight.c | ||
14 | =================================================================== | ||
15 | --- xf86-video-intel-2.99.912.orig/src/backlight.c 2014-04-09 10:41:18.000000000 -0700 | ||
16 | +++ xf86-video-intel-2.99.912/src/backlight.c 2014-08-28 18:52:25.524070587 -0700 | ||
17 | @@ -29,6 +29,7 @@ | ||
18 | #include "config.h" | ||
19 | #endif | ||
20 | |||
21 | +#include <xorg-server.h> | ||
22 | #include <sys/types.h> | ||
23 | #include <sys/wait.h> | ||
24 | #include <sys/stat.h> | ||
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 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | From 524a45da56e2a052ffafa3887891caa90ba39f76 Mon Sep 17 00:00:00 2001 | ||
4 | From: Chris Wilson <chris@chris-wilson.co.uk> | ||
5 | Date: Sat, 5 Oct 2013 18:42:24 +0100 | ||
6 | Subject: [PATCH] compat-api: Map changes of DamageUnregister API in 1.14.99.2 | ||
7 | |||
8 | Reported-by: Emmanuel Benisty <benisty.e@gmail.com> | ||
9 | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> | ||
10 | --- | ||
11 | src/compat-api.h | 4 ++++ | ||
12 | 1 file changed, 4 insertions(+) | ||
13 | |||
14 | diff --git a/src/compat-api.h b/src/compat-api.h | ||
15 | index 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 | -- | ||
28 | 1.7.9.5 | ||
29 | |||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/configure-dri.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/configure-dri.patch new file mode 100644 index 0000000000..7fa9443d93 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel/configure-dri.patch | |||
@@ -0,0 +1,166 @@ | |||
1 | Add the ability to enable/disable specific versions of the DRI support. | ||
2 | |||
3 | This is the following two commits from master squashed: | ||
4 | 7bc669dd4b7e3e5978e95e4131d1f9215afbc041 | ||
5 | 5a0cb1049c2fa0586708719210a2d2cffa7a4491 | ||
6 | |||
7 | Upstream-Status: Backport | ||
8 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
9 | |||
10 | diff --git a/configure.ac b/configure.ac | ||
11 | index b3b6e8e..bd654f3 100644 | ||
12 | --- a/configure.ac | ||
13 | +++ b/configure.ac | ||
14 | @@ -296,6 +296,21 @@ AC_ARG_ENABLE(dri, | ||
15 | [Disable DRI support [[default=auto]]]), | ||
16 | [DRI=$enableval], | ||
17 | [DRI=auto]) | ||
18 | +AC_ARG_ENABLE(dri1, | ||
19 | + AS_HELP_STRING([--disable-dri1], | ||
20 | + [Disable DRI1 support [[default=yes]]]), | ||
21 | + [DRI1=$enableval], | ||
22 | + [DRI1=yes]) | ||
23 | +AC_ARG_ENABLE(dri2, | ||
24 | + AS_HELP_STRING([--disable-dri2], | ||
25 | + [Disable DRI2 support [[default=yes]]]), | ||
26 | + [DRI2=$enableval], | ||
27 | + [DRI2=yes]) | ||
28 | +AC_ARG_ENABLE(dri3, | ||
29 | + AS_HELP_STRING([--disable-dri3], | ||
30 | + [Disable DRI3 support [[default=yes]]]), | ||
31 | + [DRI3=$enableval], | ||
32 | + [DRI3=yes]) | ||
33 | |||
34 | AC_ARG_ENABLE(xvmc, AS_HELP_STRING([--disable-xvmc], | ||
35 | [Disable XvMC support [[default=yes]]]), | ||
36 | @@ -461,15 +476,15 @@ if test "x$UMS" = "xyes"; then | ||
37 | AC_DEFINE(UMS,1,[Assume UMS support]) | ||
38 | fi | ||
39 | |||
40 | -DRI1=no | ||
41 | +have_dri1=no | ||
42 | XORG_DRIVER_CHECK_EXT(XF86DRI, xf86driproto) | ||
43 | -if test "x$_EXT_CHECK" != "xno" -a "x$DRI" != "xno" -a "x$UMS" = "xyes"; then | ||
44 | - PKG_CHECK_MODULES(DRI1, [xf86driproto], [DRI1=$DRI], [DRI1=no]) | ||
45 | +if test "x$_EXT_CHECK" != "xno" -a "x$DRI" != "xno" -a "x$DRI1" != "xno" -a "x$UMS" = "xyes"; then | ||
46 | + PKG_CHECK_MODULES(DRI1, [xf86driproto], [have_dri1=$DRI], [have_dri1=no]) | ||
47 | save_CFLAGS="$CFLAGS" | ||
48 | save_CPPFLAGS="$CPPFLAGS" | ||
49 | CFLAGS="$CFLAGS $XORG_CFLAGS $DRI1_CFLAGS $DRM_CFLAGS" | ||
50 | CPPFLAGS="$CPPFLAGS $XORG_CFLAGS $DRI1_CFLAGS $DRM_CFLAGS" | ||
51 | - AC_CHECK_HEADERS([dri.h sarea.h dristruct.h], [], [DRI1=no], | ||
52 | + AC_CHECK_HEADERS([dri.h sarea.h dristruct.h], [], [have_dri1=no], | ||
53 | [/* for dri.h */ | ||
54 | #include <xf86str.h> | ||
55 | /* for dristruct.h */ | ||
56 | @@ -486,49 +501,55 @@ if test "x$_EXT_CHECK" != "xno" -a "x$DRI" != "xno" -a "x$UMS" = "xyes"; then | ||
57 | fi | ||
58 | |||
59 | AC_MSG_CHECKING([whether to include DRI1 support]) | ||
60 | -AC_MSG_RESULT([$DRI1]) | ||
61 | +AC_MSG_RESULT([$have_dri1]) | ||
62 | |||
63 | -AM_CONDITIONAL(DRI1, test "x$DRI1" != "xno") | ||
64 | -if test "x$DRI1" != "xno"; then | ||
65 | +AM_CONDITIONAL(DRI1, test "x$have_dri1" != "xno") | ||
66 | +if test "x$have_dri1" != "xno"; then | ||
67 | AC_DEFINE(HAVE_DRI1,1,[Enable DRI1 driver support]) | ||
68 | dri_msg="$dri_msg DRI1" | ||
69 | else | ||
70 | DRI1_CFLAGS="" | ||
71 | DRI1_LIBS="" | ||
72 | |||
73 | - if test "x$DRI" = "xyes" -a "x$UMS" = "xyes"; then | ||
74 | + if test "x$DRI" = "xyes" -a "x$UMS" = "xyes" -a "x$DRI1" != "xno"; then | ||
75 | AC_MSG_ERROR([DRI1 requested but prerequisites not found]) | ||
76 | fi | ||
77 | fi | ||
78 | |||
79 | -DRI2=no | ||
80 | -DRI3=no | ||
81 | +have_dri2=no | ||
82 | +have_dri3=no | ||
83 | if test "x$DRI" != "xno"; then | ||
84 | - PKG_CHECK_MODULES(DRI2, [dri2proto >= 2.6], [DRI2=$DRI], [DRI2=no]) | ||
85 | - dridriverdir=`$PKG_CONFIG --variable=dridriverdir dri` | ||
86 | - if test "x$dridriverdir" = "x"; then | ||
87 | - dridriverdir="$libdir/dri" | ||
88 | - fi | ||
89 | - AC_DEFINE_DIR(DRI_DRIVER_PATH, dridriverdir, [Default DRI2 driver path]) | ||
90 | if test "x$DRI2" != "xno"; then | ||
91 | + PKG_CHECK_MODULES(DRI2, [dri2proto >= 2.6], [have_dri2=$DRI], [have_dri2=no]) | ||
92 | + fi | ||
93 | + if test "x$have_dri2" != "xno"; then | ||
94 | save_CFLAGS=$CFLAGS | ||
95 | CFLAGS="$XORG_CFLAGS $DRM_CFLAGS $DRI1_CFLAGS $DRI2_CFLAGS" | ||
96 | - AC_CHECK_HEADERS([dri2.h], [], [DRI2=no], [ | ||
97 | + AC_CHECK_HEADERS([dri2.h], [], [have_dri2=no], [ | ||
98 | #include <dixstruct.h> | ||
99 | #include <drm.h> | ||
100 | ]) | ||
101 | CFLAGS=$save_CFLAGS | ||
102 | fi | ||
103 | - | ||
104 | - XORG_DRIVER_CHECK_EXT(DRI3, dri3proto) | ||
105 | - if test "x$_EXT_CHECK" != "xno"; then | ||
106 | - PKG_CHECK_MODULES(DRI3, [dri3proto], [DRI3=$DRI], []) | ||
107 | + if test "x$have_dri2" != "xno"; then | ||
108 | + dridriverdir=`$PKG_CONFIG --variable=dridriverdir dri` | ||
109 | + if test "x$dridriverdir" = "x"; then | ||
110 | + dridriverdir="$libdir/dri" | ||
111 | + fi | ||
112 | + AC_DEFINE_DIR(DRI_DRIVER_PATH, dridriverdir, [Default have_dri2 driver path]) | ||
113 | fi | ||
114 | + | ||
115 | if test "x$DRI3" != "xno"; then | ||
116 | + XORG_DRIVER_CHECK_EXT(DRI3, dri3proto) | ||
117 | + if test "x$_EXT_CHECK" != "xno"; then | ||
118 | + PKG_CHECK_MODULES(DRI3, [dri3proto], [have_dri3=$DRI], []) | ||
119 | + fi | ||
120 | + fi | ||
121 | + if test "x$have_dri3" != "xno"; then | ||
122 | save_CFLAGS=$CFLAGS | ||
123 | CFLAGS="$XORG_CFLAGS $DRI3_CFLAGS" | ||
124 | - AC_CHECK_DECL(DRI3, [], [DRI3=no], [#include <xorg-server.h>]) | ||
125 | - AC_CHECK_HEADERS([misyncstr.h misyncshm.h], [], [DRI3=no], [ | ||
126 | + AC_CHECK_DECL(DRI3, [], [have_dri3=no], [#include <xorg-server.h>]) | ||
127 | + AC_CHECK_HEADERS([misyncstr.h misyncshm.h], [], [have_dri3=no], [ | ||
128 | #include <xorg-server.h> | ||
129 | #include <xf86str.h> | ||
130 | #include <misync.h> | ||
131 | @@ -538,13 +559,13 @@ if test "x$DRI" != "xno"; then | ||
132 | fi | ||
133 | |||
134 | AC_MSG_CHECKING([whether to include DRI2 support]) | ||
135 | -AM_CONDITIONAL(DRI2, test "x$DRI2" != "xno") | ||
136 | -AC_MSG_RESULT([$DRI2]) | ||
137 | -if test "x$DRI2" != "xno"; then | ||
138 | +AM_CONDITIONAL(DRI2, test "x$have_dri2" != "xno") | ||
139 | +AC_MSG_RESULT([$have_dri2]) | ||
140 | +if test "x$have_dri2" != "xno"; then | ||
141 | AC_DEFINE(HAVE_DRI2,1,[Enable DRI2 driver support]) | ||
142 | dri_msg="$dri_msg DRI2" | ||
143 | else | ||
144 | - if test "x$DRI" = "xyes" -a "x$KMS" = "xyes"; then | ||
145 | + if test "x$DRI" = "xyes" -a "x$DRI2" != "xno" -a "x$KMS" = "xyes"; then | ||
146 | AC_MSG_ERROR([DRI2 requested but prerequisites not found]) | ||
147 | fi | ||
148 | |||
149 | @@ -553,13 +574,13 @@ else | ||
150 | fi | ||
151 | |||
152 | AC_MSG_CHECKING([whether to include DRI3 support]) | ||
153 | -AM_CONDITIONAL(DRI3, test "x$DRI3" != "xno") | ||
154 | -AC_MSG_RESULT([$DRI3]) | ||
155 | -if test "x$DRI3" != "xno"; then | ||
156 | +AM_CONDITIONAL(DRI3, test "x$have_dri3" != "xno") | ||
157 | +AC_MSG_RESULT([$have_dri3]) | ||
158 | +if test "x$have_dri3" != "xno"; then | ||
159 | AC_DEFINE(HAVE_DRI3,1,[Enable DRI3 driver support]) | ||
160 | dri_msg="$dri_msg DRI3" | ||
161 | else | ||
162 | - if test "x$DRI" = "xyes" -a "x$KMS" = "xyes"; then | ||
163 | + if test "x$DRI" = "xyes" -a "x$DRI3" != "xno" -a "x$KMS" = "xyes"; then | ||
164 | AC_MSG_ERROR([DRI3 requested but prerequisites not found]) | ||
165 | fi | ||
166 | fi | ||
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 @@ | |||
1 | Upstream-Status: Submitted | ||
2 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
3 | |||
4 | From ec91cfe7e5efdd5e1b1fbb85eea8f07b50e24c4b Mon Sep 17 00:00:00 2001 | ||
5 | From: Ross Burton <ross.burton@intel.com> | ||
6 | Date: Wed, 11 Sep 2013 21:12:37 +0100 | ||
7 | Subject: [PATCH] test: only build DRI2 tests if DRI2 is enabled | ||
8 | |||
9 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
10 | --- | ||
11 | test/Makefile.am | 10 ++++++++++ | ||
12 | 1 file changed, 10 insertions(+) | ||
13 | |||
14 | diff --git a/test/Makefile.am b/test/Makefile.am | ||
15 | index 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 | -- | ||
49 | 1.7.10.4 | ||
50 | |||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch new file mode 100644 index 0000000000..dda508dcfd --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch | |||
@@ -0,0 +1,17 @@ | |||
1 | These modules are only used for tests that don't get installed, and the | ||
2 | automatic detection without explicit dependencies means that a build can find | ||
3 | e.g. xshmfence at configure time but then it's been removed from the sysroot by | ||
4 | the time compile happens. | ||
5 | |||
6 | As the tests don't get installed, just disable the checks. | ||
7 | |||
8 | Upstream-Status: Inappropriate [OE-specific] | ||
9 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
10 | |||
11 | diff --git a/configure.ac b/configure.ac | ||
12 | index bd654f3..78a0e0d 100644 | ||
13 | --- a/configure.ac | ||
14 | +++ b/configure.ac | ||
15 | @@ -251 +251 @@ fi | ||
16 | -PKG_CHECK_MODULES(X11_DRI3, [xcb-dri3 xcb-sync xcb-present x11-xcb xshmfence x11 xrender xext libdrm], [x11_dri3="yes"], [x11_dri3="no"]) | ||
17 | +#PKG_CHECK_MODULES(X11_DRI3, [xcb-dri3 xcb-sync xcb-present x11-xcb xshmfence x11 xrender xext libdrm], [x11_dri3="yes"], [x11_dri3="no"]) | ||
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..cd8fd63b51 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.21.15.bb | |||
@@ -0,0 +1,32 @@ | |||
1 | require xorg-driver-video.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- Intel integrated graphics chipsets driver" | ||
4 | |||
5 | DESCRIPTION = "intel is an Xorg driver for Intel integrated graphics \ | ||
6 | chipsets. The driver supports depths 8, 15, 16 and 24. On some chipsets, \ | ||
7 | the driver supports hardware accelerated 3D via the Direct Rendering \ | ||
8 | Infrastructure (DRI)." | ||
9 | |||
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e" | ||
11 | |||
12 | DEPENDS += "virtual/libx11 drm libpciaccess pixman" | ||
13 | |||
14 | SRC_URI += "file://disable-dri2-tests.patch \ | ||
15 | file://compat-api-Map-changes-of-DamageUnregister-API-in-1..patch \ | ||
16 | " | ||
17 | |||
18 | PACKAGECONFIG ??= "sna udev ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri', '', d)}" | ||
19 | |||
20 | PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,xf86driproto dri2proto" | ||
21 | PACKAGECONFIG[sna] = "--enable-sna,--disable-sna" | ||
22 | PACKAGECONFIG[uxa] = "--enable-uxa,--disable-uxa" | ||
23 | PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev" | ||
24 | PACKAGECONFIG[xvmc] = "--enable-xvmc,--disable-xvmc,libxvmc" | ||
25 | |||
26 | # --enable-kms-only option is required by ROOTLESS_X | ||
27 | EXTRA_OECONF += '${@base_conditional( "ROOTLESS_X", "1", " --enable-kms-only", "", d )}' | ||
28 | |||
29 | COMPATIBLE_HOST = '(i.86|x86_64).*-linux' | ||
30 | |||
31 | SRC_URI[md5sum] = "8b646d257ace8197d6ab4e5ddeb8efb2" | ||
32 | SRC_URI[sha256sum] = "7d5a140f82a72fd1cbc8a664d66c3d4eca47ee240ca4927b8a98d7af6f65d6fc" | ||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.99.912.bb b/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.99.912.bb new file mode 100644 index 0000000000..a10cd9e278 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.99.912.bb | |||
@@ -0,0 +1,39 @@ | |||
1 | require xorg-driver-video.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- Intel integrated graphics chipsets driver" | ||
4 | |||
5 | DESCRIPTION = "intel is an Xorg driver for Intel integrated graphics \ | ||
6 | chipsets. The driver supports depths 8, 15, 16 and 24. On some chipsets, \ | ||
7 | the driver supports hardware accelerated 3D via the Direct Rendering \ | ||
8 | Infrastructure (DRI)." | ||
9 | |||
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e" | ||
11 | |||
12 | SRC_URI += "file://configure-dri.patch \ | ||
13 | file://disable-x11-dri3.patch \ | ||
14 | file://always_include_xorg_server.h.patch \ | ||
15 | " | ||
16 | |||
17 | SRC_URI[md5sum] = "88d1a884f9b7bd07bf0755cfa34052d4" | ||
18 | SRC_URI[sha256sum] = "7c8ffc492d59f34cac64093deb70717b4d9223cf416ecc6fa016ab2e8bde9501" | ||
19 | |||
20 | DEPENDS += "virtual/libx11 drm libpciaccess pixman" | ||
21 | |||
22 | PACKAGECONFIG ??= "sna udev ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri dri1 dri2', '', d)}" | ||
23 | |||
24 | PACKAGECONFIG[dri] = "--enable-dri,--disable-dri" | ||
25 | PACKAGECONFIG[dri1] = "--enable-dri1,--disable-dri1,xf86driproto" | ||
26 | PACKAGECONFIG[dri2] = "--enable-dri2,--disable-dri2,dri2proto" | ||
27 | PACKAGECONFIG[dri3] = "--enable-dri3,--disable-dri3,dri3proto" | ||
28 | PACKAGECONFIG[sna] = "--enable-sna,--disable-sna" | ||
29 | PACKAGECONFIG[uxa] = "--enable-uxa,--disable-uxa" | ||
30 | PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev" | ||
31 | PACKAGECONFIG[xvmc] = "--enable-xvmc,--disable-xvmc,libxvmc" | ||
32 | PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,libxinerama libxrandr libxdamage libxfixes libxcursor libxtst libxext libxrender" | ||
33 | |||
34 | # --enable-kms-only option is required by ROOTLESS_X | ||
35 | EXTRA_OECONF += '${@base_conditional( "ROOTLESS_X", "1", " --enable-kms-only", "", d )}' | ||
36 | |||
37 | COMPATIBLE_HOST = '(i.86|x86_64).*-linux' | ||
38 | |||
39 | FILES_${PN} += "${datadir}/polkit-1" | ||
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 @@ | |||
1 | require xorg-driver-video.inc | ||
2 | LIC_FILES_CHKSUM = "file://COPYING;md5=5e53d3fcadb1c23d122ad63cb099a918" | ||
3 | |||
4 | SUMMARY = "X.Org X server -- modesetting display driver" | ||
5 | DESCRIPTION = "Provides a generic kernel modesetting display driver for the X.Org X server." | ||
6 | |||
7 | SRC_URI[md5sum] = "eb275e1ff0031897bcf23e2e5cb8655a" | ||
8 | SRC_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 @@ | |||
1 | Upstream-Status: Submitted [https://bugs.freedesktop.org/show_bug.cgi?id=57386] | ||
2 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
3 | |||
4 | From fc7b6045aaec583c7e29021bd23c20a877b20546 Mon Sep 17 00:00:00 2001 | ||
5 | From: Ross Burton <ross.burton@intel.com> | ||
6 | Date: Wed, 21 Nov 2012 23:39:18 +0000 | ||
7 | Subject: [PATCH] build: rationalise DRI checks | ||
8 | |||
9 | The existing logic around DRI was complicated and defined a number of variables | ||
10 | that were not used, when in reality DRI is required. | ||
11 | |||
12 | Move the glproto check to the main pkg-config check, and remove everything else. | ||
13 | |||
14 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
15 | --- | ||
16 | configure.ac | 33 +-------------------------------- | ||
17 | 1 file changed, 1 insertion(+), 32 deletions(-) | ||
18 | |||
19 | diff --git a/configure.ac b/configure.ac | ||
20 | index 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 | -- | ||
73 | 1.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..454d0a1fb2 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-omap_git.bb | |||
@@ -0,0 +1,48 @@ | |||
1 | require xorg-driver-video.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- Texas Instruments OMAP framebuffer driver" | ||
4 | |||
5 | SUMMARY = "X.Org X server -- TI OMAP integrated graphics chipsets driver" | ||
6 | |||
7 | DESCRIPTION = "Open-source X.org graphics driver for TI OMAP graphics \ | ||
8 | Currently relies on a closed-source submodule for EXA acceleration on \ | ||
9 | the following chipsets: \ | ||
10 | + OMAP3430 \ | ||
11 | + OMAP3630 \ | ||
12 | + OMAP4430 \ | ||
13 | + OMAP4460 \ | ||
14 | + OMAP5430 \ | ||
15 | + OMAP5432 \ | ||
16 | \ | ||
17 | NOTE: this driver is work in progress.. you probably don't want to try \ | ||
18 | and use it yet. The API/ABI between driver and kernel, and driver and \ | ||
19 | acceleration submodules is not stable yet. This driver requires the \ | ||
20 | omapdrm kernel driver w/ GEM support. \ | ||
21 | " | ||
22 | |||
23 | LICENSE = "GPLv2+" | ||
24 | LIC_FILES_CHKSUM = "file://COPYING;md5=10ce5de3b111315ea652a5f74ec0c602" | ||
25 | DEPENDS += "virtual/libx11 libdrm xf86driproto" | ||
26 | |||
27 | SRCREV = "ae0394e687f1a77e966cf72f895da91840dffb8f" | ||
28 | PR = "${INC_PR}.3" | ||
29 | PV = "0.4.2+gitr${SRCPV}" | ||
30 | |||
31 | SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-omap \ | ||
32 | file://configure.patch \ | ||
33 | " | ||
34 | |||
35 | S = "${WORKDIR}/git" | ||
36 | |||
37 | CFLAGS += " -I${STAGING_INCDIR}/xorg " | ||
38 | |||
39 | # Use overlay 2 on omap3 to enable other apps to use overlay 1 (e.g. dmai or omapfbplay) | ||
40 | do_compile_prepend_armv7a () { | ||
41 | sed -i -e s:fb1:fb2:g ${S}/src/omap_xv.c | ||
42 | } | ||
43 | |||
44 | python () { | ||
45 | if not bb.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 @@ | |||
1 | From 8fb7d0f99d4afbb574b30cb4f1e66a8f89d94ad5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Koen Kooi <koen@dominion.thruhere.net> | ||
3 | Date: Wed, 26 Jan 2011 12:04:36 +0100 | ||
4 | Subject: [PATCH 1/6] Revert "Set a large CRTC upper limit to not prune larger | ||
5 | resolutions" | ||
6 | |||
7 | Picture is garbled after switching resolutions, so revert it. | ||
8 | Virtual size too big, revert the commit 9c4d7592dcb7dc20a48a6f941d9d94bd73d34153. | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
13 | --- | ||
14 | src/omapfb-crtc.c | 8 ++++---- | ||
15 | 1 file changed, 4 insertions(+), 4 deletions(-) | ||
16 | |||
17 | diff --git a/src/omapfb-crtc.c b/src/omapfb-crtc.c | ||
18 | index 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 | -- | ||
40 | 1.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 @@ | |||
1 | From 855c333ac0d16350f895f1d1b9391e9cbb0b6db4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Koen Kooi <koen@dominion.thruhere.net> | ||
3 | Date: Wed, 26 Jan 2011 13:27:20 +0100 | ||
4 | Subject: [PATCH 2/6] Revert "Set virtual size when configuring framebuffer" | ||
5 | |||
6 | Virtual size too big, so revert it. | ||
7 | |||
8 | This reverts commit 2653ef07883fbd1a5e7025f9300cf89b79ba429a. | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
13 | --- | ||
14 | src/omapfb-crtc.c | 2 -- | ||
15 | 1 file changed, 2 deletions(-) | ||
16 | |||
17 | diff --git a/src/omapfb-crtc.c b/src/omapfb-crtc.c | ||
18 | index 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 | -- | ||
31 | 1.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 @@ | |||
1 | From 252f44c072d3447a32127fc9afe5d0d40f3c510e Mon Sep 17 00:00:00 2001 | ||
2 | From: Koen Kooi <koen@dominion.thruhere.net> | ||
3 | Date: Wed, 26 Jan 2011 13:20:20 +0100 | ||
4 | Subject: [PATCH 3/6] force 'plain' mode | ||
5 | |||
6 | The new DSS mode breaks XV, so force plain mode | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | |||
10 | Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> | ||
11 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
12 | --- | ||
13 | src/omapfb-driver.c | 2 +- | ||
14 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
15 | |||
16 | diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c | ||
17 | index 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 | -- | ||
30 | 1.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 @@ | |||
1 | From cfa46b67f59115f6d8ef9414af60380749ff3eb3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Koen Kooi <koen@dominion.thruhere.net> | ||
3 | Date: Wed, 26 Jan 2011 13:21:12 +0100 | ||
4 | Subject: [PATCH 4/6] blacklist tv out | ||
5 | |||
6 | The tv-out gets added last and the driver tries to reconfigure dvi to TV resolutions, which fails. so blacklist it | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | |||
10 | Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> | ||
11 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
12 | --- | ||
13 | src/omapfb-output-dss.c | 4 ++++ | ||
14 | 1 file changed, 4 insertions(+) | ||
15 | |||
16 | diff --git a/src/omapfb-output-dss.c b/src/omapfb-output-dss.c | ||
17 | index 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 | -- | ||
32 | 1.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 @@ | |||
1 | From 8b1f697a60e35ab82fffdabfaefdb45e9a9df379 Mon Sep 17 00:00:00 2001 | ||
2 | From: Eino-Ville Talvala <talvala@stanford.edu> | ||
3 | Date: Tue, 23 Aug 2011 18:37:01 +0200 | ||
4 | Subject: [PATCH 5/6] Attempt to fix VRFB | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | |||
8 | http://dominion.thruhere.net/git/cgit.cgi/xf86-video-omapfb/commit/?h=koen/fixups&id=6833fc9f795265e4943d248103fbaf3463b515d6 | ||
9 | |||
10 | Signed-off-by: Sebastian Krzyszkowiak <dos@dosowisko.net> | ||
11 | Signed-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 | |||
21 | diff --git a/src/image-format-conversions.c b/src/image-format-conversions.c | ||
22 | index 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 | |||
41 | diff --git a/src/image-format-conversions.h b/src/image-format-conversions.h | ||
42 | index 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); | ||
54 | diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c | ||
55 | index 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, | ||
137 | diff --git a/src/omapfb-xv-blizzard.c b/src/omapfb-xv-blizzard.c | ||
138 | index 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; | ||
149 | diff --git a/src/omapfb-xv-generic.c b/src/omapfb-xv-generic.c | ||
150 | index 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; | ||
307 | diff --git a/src/omapfb-xv.c b/src/omapfb-xv.c | ||
308 | index 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 | -- | ||
324 | 1.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 @@ | |||
1 | From 803ecf2909949e6152f4a81b6cbb92a4430679ac Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Fri, 23 Nov 2012 00:31:06 +0100 | ||
4 | Subject: [PATCH 6/6] omapfb: port to new xserver video API | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | |||
8 | Signed-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 | |||
15 | diff --git a/src/compat-api.h b/src/compat-api.h | ||
16 | new file mode 100644 | ||
17 | index 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 | ||
117 | diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c | ||
118 | index 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 | -- | ||
271 | 1.8.0 | ||
272 | |||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0007-always_include_xorg_server.h.patch b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0007-always_include_xorg_server.h.patch new file mode 100644 index 0000000000..dc0b9b3f41 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0007-always_include_xorg_server.h.patch | |||
@@ -0,0 +1,48 @@ | |||
1 | Fix errors with glibc 2.20 | ||
2 | |||
3 | In file included from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/string.h:634:0, | ||
4 | from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/os.h:53, | ||
5 | from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/misc.h:115, | ||
6 | from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/xf86str.h:37, | ||
7 | from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/xf86.h:44, | ||
8 | from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/i586-oe-linux/xf86-video-omapfb/2_0.1.1+gitrAUTOINC+28c006c94e-r21.7/git/src/omapfb-xv-blizzard.c:33: | ||
9 | /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/os.h:579:1: error: expected identifier or '(' before '__extension__' | ||
10 | strndup(const char *str, size_t n); | ||
11 | ^ | ||
12 | In file included from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/string.h:634:0, | ||
13 | from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/os.h:53, | ||
14 | from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/misc.h:115, | ||
15 | from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/xf86str.h:37, | ||
16 | from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/xf86.h:44, | ||
17 | from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/i586-oe-linux/xf86-video-omapfb/2_0.1.1+gitrAUTOINC+28c006c94e-r21.7/git/src/omapfb-xv-generic.c:28: | ||
18 | /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/os.h:579:1: error: expected identifier or '(' before '__extension__' | ||
19 | strndup(const char *str, size_t n); | ||
20 | ^ | ||
21 | |||
22 | Singed-off-by: Khem Raj <raj.khem@gmail.com> | ||
23 | |||
24 | Upstream-Status: Pending | ||
25 | Index: git/src/omapfb-xv-blizzard.c | ||
26 | =================================================================== | ||
27 | --- git.orig/src/omapfb-xv-blizzard.c 2014-08-28 05:16:25.684070587 -0700 | ||
28 | +++ git/src/omapfb-xv-blizzard.c 2014-08-28 19:05:39.440070587 -0700 | ||
29 | @@ -30,6 +30,7 @@ | ||
30 | * - | ||
31 | */ | ||
32 | |||
33 | +#include <xorg-server.h> | ||
34 | #include "xf86.h" | ||
35 | #include "xf86_OSlib.h" | ||
36 | #include "xf86xv.h" | ||
37 | Index: git/src/omapfb-xv-generic.c | ||
38 | =================================================================== | ||
39 | --- git.orig/src/omapfb-xv-generic.c 2014-08-28 05:16:25.684070587 -0700 | ||
40 | +++ git/src/omapfb-xv-generic.c 2014-08-28 19:05:51.780070587 -0700 | ||
41 | @@ -25,6 +25,7 @@ | ||
42 | * Generic functions for the XV driver | ||
43 | */ | ||
44 | |||
45 | +#include <xorg-server.h> | ||
46 | #include "xf86.h" | ||
47 | #include "xf86_OSlib.h" | ||
48 | #include "xf86xv.h" | ||
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..4ad25389cd --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb | |||
@@ -0,0 +1,34 @@ | |||
1 | require xorg-driver-video.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- Texas Instruments OMAP framebuffer driver" | ||
4 | |||
5 | DESCRIPTION = "omapfb driver supports the basic Texas Instruments OMAP \ | ||
6 | framebuffer." | ||
7 | |||
8 | LICENSE = "MIT-X & GPLv2+" | ||
9 | LIC_FILES_CHKSUM = "file://COPYING;md5=63e2cbac53863f60e2f43343fb34367f" | ||
10 | DEPENDS += "virtual/libx11" | ||
11 | |||
12 | SRCREV = "28c006c94e57ea71df11ec4fff79d7ffcfc4860f" | ||
13 | PR = "${INC_PR}.7" | ||
14 | PV = "0.1.1+gitr${SRCPV}" | ||
15 | |||
16 | SRC_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 | file://0007-always_include_xorg_server.h.patch \ | ||
24 | " | ||
25 | |||
26 | S = "${WORKDIR}/git" | ||
27 | |||
28 | EXTRA_OECONF_armv7a = " --enable-neon " | ||
29 | CFLAGS += " -I${STAGING_INCDIR}/xorg " | ||
30 | |||
31 | # Use overlay 2 on omap3 to enable other apps to use overlay 1 (e.g. dmai or omapfbplay) | ||
32 | do_compile_prepend_armv7a () { | ||
33 | sed -i -e s:fb1:fb2:g ${S}/src/omapfb-xv.c | ||
34 | } | ||
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 @@ | |||
1 | require xorg-driver-video.inc | ||
2 | |||
3 | LIC_FILES_CHKSUM = "file://COPYING;md5=a1f0610ebdc6f314a9fa5102a8c5c1b0" | ||
4 | |||
5 | SUMMARY = "X.Org X server -- Generic Vesa video driver" | ||
6 | |||
7 | DESCRIPTION = "vesa is an Xorg driver for generic VESA video cards. It \ | ||
8 | can drive most VESA-compatible video cards, but only makes use of the \ | ||
9 | basic standard VESA core that is common to these cards. The driver \ | ||
10 | supports depths 8, 15 16 and 24." | ||
11 | |||
12 | PR = "${INC_PR}.0" | ||
13 | |||
14 | DEPENDS += "virtual/libx11 randrproto libpciaccess" | ||
15 | |||
16 | COMPATIBLE_HOST = '(i.86|x86_64).*-linux' | ||
17 | |||
18 | RRECOMMENDS_${PN} += "xserver-xorg-module-libint10" | ||
19 | |||
20 | SRC_URI[md5sum] = "3690a5356ed121b1a7dfb59a6dcf4bf9" | ||
21 | SRC_URI[sha256sum] = "ce8b75e5a40e9dae76f2ac9e2880f7f73a848653ca2eed5880f52dc2c0d3aef8" | ||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0001-configure-fix-build-without-xatracker.patch b/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0001-configure-fix-build-without-xatracker.patch new file mode 100644 index 0000000000..cf66403e89 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0001-configure-fix-build-without-xatracker.patch | |||
@@ -0,0 +1,37 @@ | |||
1 | Upstream-Status: Backport | ||
2 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
3 | |||
4 | From bdaa9de44a197ba1297b990422ed9e515289f141 Mon Sep 17 00:00:00 2001 | ||
5 | From: Julien Cristau <jcristau@debian.org> | ||
6 | Date: Tue, 1 Apr 2014 10:11:13 +0200 | ||
7 | Subject: [PATCH 1/2] configure: fix build without xatracker | ||
8 | |||
9 | ACTION-IF-NOT-FOUND is the fourth argument to PKG_CHECK_MODULES, not the | ||
10 | fifth. | ||
11 | |||
12 | Debian bug#743239 <https://bugs.debian.org/743239> | ||
13 | |||
14 | Reviewed-by: Thomas Klausner <wiz@NetBSD.org> | ||
15 | Reviewed-by: Jakob Bornecrantz <jakob@vmware.com> | ||
16 | Signed-off-by: Julien Cristau <jcristau@debian.org> | ||
17 | Signed-off-by: Jakob Bornecrantz <jakob@vmware.com> | ||
18 | --- | ||
19 | configure.ac | 2 +- | ||
20 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
21 | |||
22 | diff --git a/configure.ac b/configure.ac | ||
23 | index dd3ad4e..be40ed7 100644 | ||
24 | --- a/configure.ac | ||
25 | +++ b/configure.ac | ||
26 | @@ -126,7 +126,7 @@ if test x$BUILD_VMWGFX = xyes; then | ||
27 | [PKG_CHECK_EXISTS([xatracker = 2.0.0], | ||
28 | [AC_DEFINE([HAVE_XA_2], 1, | ||
29 | [Has version 2 of XA])])], | ||
30 | - [],[BUILD_VMWGFX=no]) | ||
31 | + [BUILD_VMWGFX=no]) | ||
32 | # | ||
33 | # Check for prime. | ||
34 | # | ||
35 | -- | ||
36 | 1.7.10.4 | ||
37 | |||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch b/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch new file mode 100644 index 0000000000..6039d089a1 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch | |||
@@ -0,0 +1,98 @@ | |||
1 | Upstream-Status:Submitted | ||
2 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
3 | |||
4 | From f103d6f570671c649ccd7b225e6d6c9f14371888 Mon Sep 17 00:00:00 2001 | ||
5 | From: Ross Burton <ross.burton@intel.com> | ||
6 | Date: Wed, 25 Jun 2014 16:16:44 +0100 | ||
7 | Subject: [PATCH 2/2] add option for vmwgfx | ||
8 | |||
9 | --- | ||
10 | configure.ac | 49 ++++++++++++++++++++----------------------------- | ||
11 | 1 file changed, 20 insertions(+), 29 deletions(-) | ||
12 | |||
13 | diff --git a/configure.ac b/configure.ac | ||
14 | index be40ed7..8e15307 100644 | ||
15 | --- a/configure.ac | ||
16 | +++ b/configure.ac | ||
17 | @@ -64,6 +64,13 @@ AC_ARG_ENABLE(vmwarectrl-client, | ||
18 | [VMWARECTRL=$enableval], [VMWARECTRL=no]) | ||
19 | AM_CONDITIONAL(BUILD_VMWARECTRL, [test "x$VMWARECTRL" = xyes]) | ||
20 | |||
21 | +# Define a configure option to build the vmwgfx driver | ||
22 | +AC_ARG_ENABLE(vmwgfx, | ||
23 | + AS_HELP_STRING([--disable-vmwgfx], | ||
24 | + [Disable vmwgfx driver (KMS/3D) (default: enabled)]), | ||
25 | + [VMWGFX="$enableval"], [VMWGFX="yes"]) | ||
26 | +AM_CONDITIONAL(BUILD_VMWGFX, test "x$VMWGFX" = xyes) | ||
27 | + | ||
28 | # Store the list of server defined optional extensions in REQUIRED_MODULES | ||
29 | XORG_DRIVER_CHECK_EXT(RANDR, randrproto) | ||
30 | XORG_DRIVER_CHECK_EXT(RENDER, renderproto) | ||
31 | @@ -85,11 +92,6 @@ PKG_CHECK_EXISTS([xorg-server >= 1.4.99], | ||
32 | [AC_DEFINE([HAVE_XORG_SERVER_1_5_0], 1, | ||
33 | [Has version 1.5.0 or greater of the Xserver])]) | ||
34 | |||
35 | -PKG_CHECK_EXISTS([xorg-server >= 1.7.0], | ||
36 | - [AC_DEFINE([HAVE_XORG_SERVER_1_7_0], 1, | ||
37 | - [Has version 1.7.0 or greater of the Xserver]) | ||
38 | - BUILD_VMWGFX=yes],[BUILD_VMWGFX=no]) | ||
39 | - | ||
40 | PKG_CHECK_EXISTS([xorg-server >= 1.12.0], | ||
41 | [AC_DEFINE([HAVE_XORG_SERVER_1_12_0], 1, | ||
42 | [Has version 1.12.0 or greater of the Xserver])]) | ||
43 | @@ -114,39 +116,28 @@ AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) | ||
44 | |||
45 | AC_SUBST([moduledir]) | ||
46 | |||
47 | -if test x$BUILD_VMWGFX = xyes; then | ||
48 | - PKG_CHECK_MODULES([LIBDRM], [libdrm],[],[BUILD_VMWGFX=no]) | ||
49 | -fi | ||
50 | -if test x$BUILD_VMWGFX = xyes; then | ||
51 | -# | ||
52 | -# Early versions of mesa 10 forgot to bump the XA major version number in | ||
53 | -# the xa_tracker.h header | ||
54 | -# | ||
55 | - PKG_CHECK_MODULES([XATRACKER], [xatracker >= 0.4.0], | ||
56 | - [PKG_CHECK_EXISTS([xatracker = 2.0.0], | ||
57 | - [AC_DEFINE([HAVE_XA_2], 1, | ||
58 | - [Has version 2 of XA])])], | ||
59 | - [BUILD_VMWGFX=no]) | ||
60 | -# | ||
61 | -# Check for prime. | ||
62 | -# | ||
63 | +AC_MSG_CHECKING([whether to build Kernel Mode Setting and 3D]) | ||
64 | +if test x$VMWGFX = xyes; then | ||
65 | + PKG_CHECK_MODULES([LIBDRM], [libdrm]) | ||
66 | + # Check for prime. | ||
67 | PKG_CHECK_EXISTS([libdrm >= 2.4.38], | ||
68 | [AC_DEFINE([HAVE_LIBDRM_2_4_38], 1, | ||
69 | [Has version 2.4.38 or greater of libdrm])]) | ||
70 | -fi | ||
71 | |||
72 | -DRIVER_NAME=vmware | ||
73 | -AC_SUBST([DRIVER_NAME]) | ||
74 | - | ||
75 | -AC_MSG_CHECKING([whether to build Kernel Mode Setting and 3D]) | ||
76 | -if test x$BUILD_VMWGFX = xyes; then | ||
77 | - AC_MSG_RESULT([yes]) | ||
78 | + # Early versions of mesa 10 forgot to bump the XA major version number | ||
79 | + # in the xa_tracker.h header | ||
80 | + PKG_CHECK_MODULES([XATRACKER], [xatracker >= 0.4.0], | ||
81 | + [PKG_CHECK_EXISTS([xatracker = 2.0.0], | ||
82 | + [AC_DEFINE([HAVE_XA_2], 1, | ||
83 | + [Has version 2 of XA])])]) | ||
84 | AC_DEFINE([BUILD_VMWGFX], 1, [Building the vmwgfx driver path]) | ||
85 | + AC_MSG_RESULT([yes]) | ||
86 | else | ||
87 | AC_MSG_RESULT([no]) | ||
88 | fi | ||
89 | |||
90 | -AM_CONDITIONAL(BUILD_VMWGFX, test "x$BUILD_VMWGFX" = xyes) | ||
91 | +DRIVER_NAME=vmware | ||
92 | +AC_SUBST([DRIVER_NAME]) | ||
93 | |||
94 | AC_CONFIG_FILES([ | ||
95 | Makefile | ||
96 | -- | ||
97 | 1.7.10.4 | ||
98 | |||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.0.2.bb b/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.0.2.bb new file mode 100644 index 0000000000..24041b5cad --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.0.2.bb | |||
@@ -0,0 +1,19 @@ | |||
1 | require xorg-driver-video.inc | ||
2 | |||
3 | SUMMARY = "X.Org X server -- VMware SVGA display driver" | ||
4 | |||
5 | DESCRIPTION = "vmware is an Xorg driver for VMware virtual video cards." | ||
6 | |||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=5fcd7d437a959a15fbee8707747c6b53" | ||
8 | |||
9 | DEPENDS += "virtual/libx11 xineramaproto videoproto libpciaccess" | ||
10 | |||
11 | SRC_URI += "file://0001-configure-fix-build-without-xatracker.patch \ | ||
12 | file://0002-add-option-for-vmwgfx.patch" | ||
13 | |||
14 | SRC_URI[md5sum] = "91d1d7d33181766714405ab013d31244" | ||
15 | SRC_URI[sha256sum] = "c8ba3d2cead3620dba2cbf5defb7f1759b2b96f4fe209f4bf6976832b6763c54" | ||
16 | |||
17 | COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)' | ||
18 | |||
19 | EXTRA_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..17fac8b8c0 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc | |||
@@ -0,0 +1,41 @@ | |||
1 | SUMMARY = "X driver" | ||
2 | HOMEPAGE = "http://www.x.org" | ||
3 | BUGTRACKER = "https://bugs.freedesktop.org" | ||
4 | SECTION = "x11/drivers" | ||
5 | LICENSE = "MIT-X" | ||
6 | |||
7 | PE = "2" | ||
8 | INC_PR = "r21" | ||
9 | |||
10 | DEPENDS = "virtual/xserver xproto randrproto util-macros" | ||
11 | |||
12 | SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2" | ||
13 | |||
14 | S = "${WORKDIR}/${BPN}-${PV}" | ||
15 | |||
16 | FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so" | ||
17 | FILES_${PN}-dbg += " ${libdir}/xorg/modules/drivers/.debug" | ||
18 | |||
19 | inherit 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 | ||
23 | do_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 PACKAGEFUNC. | ||
29 | def _add_xorg_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..fbec0643ff --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc | |||
@@ -0,0 +1,11 @@ | |||
1 | include xorg-driver-common.inc | ||
2 | |||
3 | DEPENDS += "inputproto kbproto " | ||
4 | |||
5 | python add_xorg_abi_depends() { | ||
6 | _add_xorg_abi_depends(d, "input") | ||
7 | } | ||
8 | PACKAGEFUNCS =+ "add_xorg_abi_depends" | ||
9 | |||
10 | FILES_${PN} += " ${libdir}/xorg/modules/input/*.so" | ||
11 | FILES_${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..38281e0f23 --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc | |||
@@ -0,0 +1,8 @@ | |||
1 | include xorg-driver-common.inc | ||
2 | |||
3 | DEPENDS =+ "renderproto videoproto xextproto fontsproto" | ||
4 | |||
5 | python add_xorg_abi_depends() { | ||
6 | _add_xorg_abi_depends(d, "video") | ||
7 | } | ||
8 | PACKAGEFUNCS =+ "add_xorg_abi_depends" | ||