From eb8dc40360f0cfef56fb6947cc817a547d6d9bc6 Mon Sep 17 00:00:00 2001 From: Dave Cobbley Date: Tue, 14 Aug 2018 10:05:37 -0700 Subject: [Subtree] Removing import-layers directory As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley Signed-off-by: Brad Bishop --- .../xorg-driver/xf86-input-evdev_2.10.5.bb | 21 ++ .../xorg-driver/xf86-input-keyboard_1.9.0.bb | 13 + .../xorg-driver/xf86-input-libinput_0.26.0.bb | 11 + .../xorg-driver/xf86-input-mouse_1.9.2.bb | 14 + .../xorg-driver/xf86-input-synaptics_1.9.0.bb | 16 + .../xorg-driver/xf86-input-vmmouse_13.1.0.bb | 26 ++ .../xorg-driver/xf86-video-cirrus_1.5.3.bb | 13 + .../xorg-driver/xf86-video-fbdev_0.4.4.bb | 9 + .../0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch | 116 ++++++++ .../always_include_xorg_server.h.patch | 24 ++ .../xf86-video-intel/disable-x11-dri3.patch | 17 ++ .../xorg-driver/xf86-video-intel_git.bb | 45 +++ .../xorg-driver/xf86-video-omap_0.4.5.bb | 41 +++ ...apfb-from-from-crashing-when-pixelclock-o.patch | 37 +++ ...a-large-CRTC-upper-limit-to-not-prune-lar.patch | 41 +++ ...virtual-size-when-configuring-framebuffer.patch | 32 ++ .../xf86-video-omapfb/0003-force-plain-mode.patch | 31 ++ .../xf86-video-omapfb/0004-blacklist-tv-out.patch | 33 +++ .../0005-Attempt-to-fix-VRFB.patch | 325 +++++++++++++++++++++ ...0006-omapfb-port-to-new-xserver-video-API.patch | 272 +++++++++++++++++ .../0007-always_include_xorg_server.h.patch | 48 +++ .../xorg-driver/xf86-video-omapfb_git.bb | 37 +++ .../xorg-driver/xf86-video-vesa_2.3.4.bb | 21 ++ .../0002-add-option-for-vmwgfx.patch | 103 +++++++ .../xorg-driver/xf86-video-vmware_13.2.1.bb | 19 ++ .../xorg-driver/xorg-driver-common.inc | 42 +++ .../xorg-driver/xorg-driver-input.inc | 12 + .../xorg-driver/xorg-driver-video.inc | 8 + 28 files changed, 1427 insertions(+) create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.5.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.26.0.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.2.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.0.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.3.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.4.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/always_include_xorg_server.h.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-omap_0.4.5.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Prevents-omapfb-from-from-crashing-when-pixelclock-o.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0003-force-plain-mode.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-blacklist-tv-out.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0005-Attempt-to-fix-VRFB.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0006-omapfb-port-to-new-xserver-video-API.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0007-always_include_xorg_server.h.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.4.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.2.1.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc create mode 100644 poky/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc create mode 100644 poky/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc (limited to 'poky/meta/recipes-graphics/xorg-driver') diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.5.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.5.bb new file mode 100644 index 000000000..96b220ccb --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.5.bb @@ -0,0 +1,21 @@ +require xorg-driver-input.inc + +SUMMARY = "X.Org X server -- event devices (evdev) input driver" + +DESCRIPTION = "evdev is an Xorg input driver for Linux's generic event \ +devices. It therefore supports all input devices that the kernel knows \ +about, including most mice and keyboards. \ +\ +The evdev driver can serve as both a pointer and a keyboard input \ +device, and may be used as both the core keyboard and the core pointer. \ +Multiple input devices are supported by multiple instances of this \ +driver, with one Load directive for evdev in the Module section of your \ +xorg.conf for each input device that will use this driver. " + +LIC_FILES_CHKSUM = "file://COPYING;md5=fefe33b1cf0cacba0e72e3b0fa0f0e16" + +DEPENDS += "mtdev libevdev" + +SRC_URI[md5sum] = "94c2c8354c74ab1cfbbb0a222078b9c6" +SRC_URI[sha256sum] = "9edaa6205baf6d2922cc4db3d8e54a7e7773b5f733b0ae90f6be7725f983b70d" + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb new file mode 100644 index 000000000..1896fff9f --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb @@ -0,0 +1,13 @@ +require xorg-driver-input.inc + +SUMMARY = "X.Org X server -- keyboard input driver" + +DESCRIPTION = "keyboard is an Xorg input driver for keyboards. The \ +driver supports the standard OS-provided keyboard interface. The driver \ +functions as a keyboard input device, and may be used as the X server's \ +core keyboard." + +LIC_FILES_CHKSUM = "file://COPYING;md5=ea2099d24ac9e316a6d4b9f20b3d4e10" + +SRC_URI[md5sum] = "a3a3f0dd32361dcdbd406e894dafe090" +SRC_URI[sha256sum] = "f7c900f21752683402992b288d5a2826de7a6c0c0abac2aadd7e8a409e170388" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.26.0.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.26.0.bb new file mode 100644 index 000000000..54c33d790 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.26.0.bb @@ -0,0 +1,11 @@ +require xorg-driver-input.inc + +SUMMARY = "Generic input driver for the X.Org server based on libinput" +LIC_FILES_CHKSUM = "file://COPYING;md5=5e6b20ea2ef94a998145f0ea3f788ee0" + +DEPENDS += "libinput" + +SRC_URI[md5sum] = "da47ef62eab1d0e922a8fa929ff81758" +SRC_URI[sha256sum] = "abca558fc2226f295691f1cf3412d4c0edeaa439f677ca25b5c9fab310d2387b" + +FILES_${PN} += "${datadir}/X11/xorg.conf.d" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.2.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.2.bb new file mode 100644 index 000000000..0750476a2 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.2.bb @@ -0,0 +1,14 @@ +require xorg-driver-input.inc + +SUMMARY = "X.Org X server -- mouse input driver" + +DESCRIPTION = "mouse is an Xorg input driver for mice. The driver \ +supports most available mouse types and interfaces. The mouse driver \ +functions as a pointer input device, and may be used as the X server's \ +core pointer. Multiple mice are supported by multiple instances of this \ +driver." + +LIC_FILES_CHKSUM = "file://COPYING;md5=90ea9f90d72b6d9327dede5ffdb2a510" + +SRC_URI[md5sum] = "ce2d679283a22c8e0dccdd9248594845" +SRC_URI[sha256sum] = "f425d5b05c6ab412a27e0a1106bb83f9e2662b307210abbe48270892387f4b2f" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.0.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.0.bb new file mode 100644 index 000000000..d327a3b42 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.0.bb @@ -0,0 +1,16 @@ +require xorg-driver-input.inc + +SUMMARY = "X.Org X server -- synaptics touchpad input driver" + +DESCRIPTION = "synaptics is an Xorg input driver for the touchpads from \ +Synaptics Incorporated. Even though these touchpads (by default, \ +operating in a compatibility mode emulating a standard mouse) can be \ +handled by the normal evdev or mouse drivers, this driver allows more \ +advanced features of the touchpad to become available." + +LIC_FILES_CHKSUM = "file://COPYING;md5=55aacd3535a741824955c5eb8f061398" + +SRC_URI[md5sum] = "58e5b7722a402114093bf193962d1e3a" +SRC_URI[sha256sum] = "afba3289d7a40217a19d90db98ce181772f9ca6d77e1898727b0afcf02073b5a" + +DEPENDS += "libxi mtdev libxtst libevdev" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb new file mode 100644 index 000000000..92a1b25eb --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb @@ -0,0 +1,26 @@ +require xorg-driver-input.inc + +SUMMARY = "X.Org X server -- VMWare mouse input driver" +DESCRIPTION = "The vmmouse driver enables support for the special VMMouse \ +protocol that is provided by VMware virtual machines to give absolute \ +pointer positioning. The vmmouse driver is capable of falling back to the \ +standard 'mouse' driver if a VMware virtual machine is not detected." + +SRC_URI[md5sum] = "85e2e464b7219c495ad3a16465c226ed" +SRC_URI[sha256sum] = "0af558957ac1be1b2863712c2475de8f4d7f14921fd01ded2e2fde4921b19319" + +RDEPENDS_${PN} += "xf86-input-mouse" + +LIC_FILES_CHKSUM = "file://COPYING;md5=622841c068a9d7625fbfe7acffb1a8fc" + +COMPATIBLE_HOST = '(i.86|x86_64).*-linux' + +do_install_append () { + # We don't care about hal + rm -rf ${D}${datadir}/hal/ + rm -rf ${D}${libdir}/hal/ +} + +EXTRA_OECONF = "--with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d" + +FILES_${PN} += "${datadir}/X11/xorg.conf.d" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.3.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.3.bb new file mode 100644 index 000000000..c49847760 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.3.bb @@ -0,0 +1,13 @@ +require xorg-driver-video.inc + +SUMMARY = "X.Org X server -- cirrus display driver" +DESCRIPTION = "cirrus is an Xorg driver for Cirrus Logic VGA adapters. These \ +devices are not so common in the wild anymore, but QEMU can emulate one, so \ +the driver is still useful." + +LIC_FILES_CHKSUM = "file://COPYING;md5=6ddc7ca860dc5fd014e7f160ea699295" + +SRC_URI[md5sum] = "7d7dfd4cdc42aa8b6e923510fa00ad2b" +SRC_URI[sha256sum] = "edc87b20a55259126b5239b5c1ef913419eab7ded0ed12ae9ae989460d7351ab" + +DEPENDS += "libpciaccess" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.4.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.4.bb new file mode 100644 index 000000000..52e9bd1df --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-fbdev_0.4.4.bb @@ -0,0 +1,9 @@ +require xorg-driver-video.inc + +SUMMARY = "X.Org X server -- fbdev display driver" +DESCRIPTION = "fbdev is an Xorg driver for framebuffer devices. This is a non-accelerated driver." + +LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8" + +SRC_URI[md5sum] = "3931c0e19d441cc576dc088f9eb9fd73" +SRC_URI[sha256sum] = "9dd4b326498223abbfdf786089a46ea3db4fa6bbd341308eb48a9e00bc3fd51b" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch new file mode 100644 index 000000000..06ef10501 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch @@ -0,0 +1,116 @@ +From 96d4e8e7b8a699f0ef77fa7b210d4de5f1c703d0 Mon Sep 17 00:00:00 2001 +From: Liwei Song +Date: Wed, 22 Nov 2017 08:59:03 +0000 +Subject: [PATCH] Add Coffeelake PCI IDs for S Skus + +Add the Coffeelake PCI IDs based on the following kernel patches: + +commit b056f8f3d6b900e8afd19f312719160346d263b4 +Author: Anusha Srivatsa +Date: Thu Jun 8 16:41:05 2017 -0700 + + drm/i915/cfl: Add Coffee Lake PCI IDs for S Skus. + +Upstream-Status: Submitted [https://patchwork.kernel.org/patch/10139905] + +Signed-off-by: Liwei Song +--- + src/i915_pciids.h | 7 +++++++ + src/intel_module.c | 13 +++++++++++++ + src/sna/gen9_render.c | 12 ++++++++++++ + 3 files changed, 32 insertions(+) + +diff --git a/src/i915_pciids.h b/src/i915_pciids.h +index 0370f830c541..11ccfa9c047a 100644 +--- a/src/i915_pciids.h ++++ b/src/i915_pciids.h +@@ -340,4 +340,11 @@ + INTEL_VGA_DEVICE(0x3184, info), \ + INTEL_VGA_DEVICE(0x3185, info) + ++#define INTEL_CFL_S_IDS(info) \ ++ INTEL_VGA_DEVICE(0x3E90, info), /* SRV GT1 */ \ ++ INTEL_VGA_DEVICE(0x3E93, info), /* SRV GT1 */ \ ++ INTEL_VGA_DEVICE(0x3E91, info), /* SRV GT2 */ \ ++ INTEL_VGA_DEVICE(0x3E92, info), /* SRV GT2 */ \ ++ INTEL_VGA_DEVICE(0x3E96, info) /* SRV GT2 */ ++ + #endif /* _I915_PCIIDS_H */ +diff --git a/src/intel_module.c b/src/intel_module.c +index 6b04857e2853..4827a67255f0 100644 +--- a/src/intel_module.c ++++ b/src/intel_module.c +@@ -138,6 +138,10 @@ static const struct intel_device_info intel_geminilake_info = { + .gen = 0113, + }; + ++static const struct intel_device_info intel_coffeelake_info = { ++ .gen = 0114, ++}; ++ + static const SymTabRec intel_chipsets[] = { + {PCI_CHIP_I810, "i810"}, + {PCI_CHIP_I810_DC100, "i810-dc100"}, +@@ -303,6 +307,13 @@ static const SymTabRec intel_chipsets[] = { + {0x5916, "HD Graphics 620"}, + {0x591E, "HD Graphics 615"}, + ++ /*Coffeelake*/ ++ {0x3E90, "HD Graphics"}, ++ {0x3E93, "HD Graphics"}, ++ {0x3E91, "HD Graphics"}, ++ {0x3E92, "HD Graphics"}, ++ {0x3E96, "HD Graphics"}, ++ + /* When adding new identifiers, also update: + * 1. intel_identify() + * 2. man/intel.man +@@ -368,6 +379,8 @@ static const struct pci_id_match intel_device_match[] = { + + INTEL_GLK_IDS(&intel_geminilake_info), + ++ INTEL_CFL_S_IDS(&intel_coffeelake_info), ++ + INTEL_VGA_DEVICE(PCI_MATCH_ANY, &intel_generic_info), + #endif + +diff --git a/src/sna/gen9_render.c b/src/sna/gen9_render.c +index e5f12c723956..7f49052c5ec1 100644 +--- a/src/sna/gen9_render.c ++++ b/src/sna/gen9_render.c +@@ -245,6 +245,11 @@ static const struct gt_info glk_gt_info = { + .urb = { .max_vs_entries = 320 }, + }; + ++static const struct gt_info cfl_gt_info = { ++ .name = "Coffeelake (gen9)", ++ .urb = { .max_vs_entries = 960 }, ++}; ++ + static bool is_skl(struct sna *sna) + { + return sna->kgem.gen == 0110; +@@ -265,6 +270,11 @@ static bool is_glk(struct sna *sna) + return sna->kgem.gen == 0113; + } + ++static bool is_cfl(struct sna *sna) ++{ ++ return sna->kgem.gen == 0114; ++} ++ + + static inline bool too_large(int width, int height) + { +@@ -4040,6 +4050,8 @@ static bool gen9_render_setup(struct sna *sna) + state->info = &kbl_gt_info; + if (is_glk(sna)) + state->info = &glk_gt_info; ++ if (is_cfl(sna)) ++ state->info = &cfl_gt_info; + + sna_static_stream_init(&general); + +-- +2.13.3 + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/always_include_xorg_server.h.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/always_include_xorg_server.h.patch new file mode 100644 index 000000000..8a5dd39ae --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/always_include_xorg_server.h.patch @@ -0,0 +1,24 @@ +Include xorg-server.h to fix build errors seen with glibc 2.20 + +In file included from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/string.h:634:0, + 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: +/home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/os.h:579:1: error: expected identifier or '(' before '__extension__' + strndup(const char *str, size_t n); + ^ + +Signed-off-by: Khem Raj + +Upstream-Status: Pending + +Index: xf86-video-intel-2.99.912/src/backlight.c +=================================================================== +--- xf86-video-intel-2.99.912.orig/src/backlight.c 2014-04-09 10:41:18.000000000 -0700 ++++ xf86-video-intel-2.99.912/src/backlight.c 2014-08-28 18:52:25.524070587 -0700 +@@ -29,6 +29,7 @@ + #include "config.h" + #endif + ++#include + #include + #include + #include diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch new file mode 100644 index 000000000..3dddd334b --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch @@ -0,0 +1,17 @@ +These modules are only used for tests that don't get installed, and the +automatic detection without explicit dependencies means that a build can find +e.g. xshmfence at configure time but then it's been removed from the sysroot by +the time compile happens. + +As the tests don't get installed, just disable the checks. + +Upstream-Status: Inappropriate [OE-specific] +Signed-off-by: Ross Burton + +diff --git a/configure.ac b/configure.ac +index bd654f3..78a0e0d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -279 +279 @@ fi +-PKG_CHECK_MODULES(X11_DRI3, [xcb-dri3 xcb-sync xcb-xfixes xcb-present x11-xcb xshmfence x11 xcomposite xdamage xrender xrandr xxf86vm xext libdrm], [x11_dri3="yes"], [x11_dri3="no"]) ++#PKG_CHECK_MODULES(X11_DRI3, [xcb-dri3 xcb-sync xcb-xfixes xcb-present x11-xcb xshmfence x11 xcomposite xdamage xrender xrandr xxf86vm xext libdrm], [x11_dri3="yes"], [x11_dri3="no"]) diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb new file mode 100644 index 000000000..2623cb2f3 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb @@ -0,0 +1,45 @@ +require xorg-driver-video.inc + +SUMMARY = "X.Org X server -- Intel integrated graphics chipsets driver" + +DESCRIPTION = "intel is an Xorg driver for Intel integrated graphics \ +chipsets. The driver supports depths 8, 15, 16 and 24. On some chipsets, \ +the driver supports hardware accelerated 3D via the Direct Rendering \ +Infrastructure (DRI)." + +LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e" + +SRCREV = "e4fe79cf0d9a05ee3f3a027148ef0aeb2b1b34e1" +PV = "2.99.917+git${SRCPV}" +S = "${WORKDIR}/git" + +SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel \ + file://disable-x11-dri3.patch \ + file://always_include_xorg_server.h.patch \ + file://0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch \ + " + +SRC_URI[md5sum] = "fa196a66e52c0c624fe5d350af7a5e7b" +SRC_URI[sha256sum] = "00b781eea055582820a123c47b62411bdf6aabf4f03dc0568faec55faf9667c9" +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" + +DEPENDS += "virtual/libx11 drm libpciaccess pixman" + +PACKAGECONFIG ??= "xvmc uxa udev ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri dri1 dri2', '', d)}" + +PACKAGECONFIG[dri] = "--enable-dri,--disable-dri" +PACKAGECONFIG[dri1] = "--enable-dri1,--disable-dri1,xf86driproto" +PACKAGECONFIG[dri2] = "--enable-dri2,--disable-dri2,dri2proto" +PACKAGECONFIG[dri3] = "--enable-dri3,--disable-dri3,dri3proto" +PACKAGECONFIG[sna] = "--enable-sna,--disable-sna" +PACKAGECONFIG[uxa] = "--enable-uxa,--disable-uxa" +PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev" +PACKAGECONFIG[xvmc] = "--enable-xvmc,--disable-xvmc,libxvmc xcb-util" +PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,libxinerama libxrandr libxdamage libxfixes libxcursor libxtst libxext libxrender" + +# --enable-kms-only option is required by ROOTLESS_X +EXTRA_OECONF += '${@oe.utils.conditional( "ROOTLESS_X", "1", " --enable-kms-only", "", d )}' + +COMPATIBLE_HOST = '(i.86|x86_64).*-linux' + +FILES_${PN} += "${datadir}/polkit-1" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-omap_0.4.5.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omap_0.4.5.bb new file mode 100644 index 000000000..bef363609 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omap_0.4.5.bb @@ -0,0 +1,41 @@ +require xorg-driver-video.inc + +SUMMARY = "X.Org X server -- Texas Instruments OMAP framebuffer driver" + +SUMMARY = "X.Org X server -- TI OMAP integrated graphics chipsets driver" + +DESCRIPTION = "Open-source X.org graphics driver for TI OMAP graphics \ +Currently relies on a closed-source submodule for EXA acceleration on \ +the following chipsets: \ + + OMAP3430 \ + + OMAP3630 \ + + OMAP4430 \ + + OMAP4460 \ + + OMAP5430 \ + + OMAP5432 \ +\ +NOTE: this driver is work in progress.. you probably don't want to try \ +and use it yet. The API/ABI between driver and kernel, and driver and \ +acceleration submodules is not stable yet. This driver requires the \ +omapdrm kernel driver w/ GEM support. \ +" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=10ce5de3b111315ea652a5f74ec0c602" +DEPENDS += "virtual/libx11 libdrm xf86driproto" + +SRC_URI[md5sum] = "3b8ea5e8fba63355c0dc6681c49d5fe5" +SRC_URI[sha256sum] = "93e7d42107521e61f61980eaea64fb452e87b7b94272e48938ac8d904ccfab5a" + +CFLAGS += " -I${STAGING_INCDIR}/xorg " + +# Use overlay 2 on omap3 to enable other apps to use overlay 1 (e.g. dmai or omapfbplay) +do_compile_prepend_armv7a () { + sed -i -e s:fb1:fb2:g ${S}/src/omap_xv.c +} + +python () { + if not bb.utils.contains ('DISTRO_FEATURES', 'opengl', True, False, d): + raise bb.parse.SkipRecipe("'opengl' not in DISTRO_FEATURES") +} + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Prevents-omapfb-from-from-crashing-when-pixelclock-o.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Prevents-omapfb-from-from-crashing-when-pixelclock-o.patch new file mode 100644 index 000000000..ac1921928 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Prevents-omapfb-from-from-crashing-when-pixelclock-o.patch @@ -0,0 +1,37 @@ +From 28c006c94e57ea71df11ec4fff79d7ffcfc4860f Mon Sep 17 00:00:00 2001 +From: Far McKon +Date: Tue, 3 May 2011 20:59:04 +0300 +Subject: [PATCH] Prevents omapfb from from crashing when pixelclock of 0 is + sent to it. + +Due to a Linux design bug it is easy to get a pixelclock set to zero +when changing displays at runtime. + +Upstream-Status: Pending +--- + src/omapfb-output.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/omapfb-output.c b/src/omapfb-output.c +index f8b4db3..4d59265 100644 +--- a/src/omapfb-output.c ++++ b/src/omapfb-output.c +@@ -125,8 +125,13 @@ OMAPFBOutputGetModes(xf86OutputPtr output) + /* Only populate the native (current) mode */ + mode = calloc(1, sizeof(DisplayModeRec)); + mode->type |= M_T_PREFERRED; +- mode->Clock = PICOS2KHZ(ofb->state_info.pixclock); +- mode->SynthClock = PICOS2KHZ(ofb->state_info.pixclock); ++ if (ofb->state_info.pixclock == 0) { ++ mode->Clock = 0; ++ mode->SynthClock = 0; ++ } else { ++ mode->Clock = PICOS2KHZ(ofb->state_info.pixclock); ++ mode->SynthClock = PICOS2KHZ(ofb->state_info.pixclock); ++ } + mode->HDisplay = ofb->state_info.xres; + mode->HSyncStart = mode->HDisplay + + ofb->state_info.right_margin; +-- +2.1.4 + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch b/poky/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 000000000..9fb01d438 --- /dev/null +++ b/poky/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 @@ +From 8fb7d0f99d4afbb574b30cb4f1e66a8f89d94ad5 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Wed, 26 Jan 2011 12:04:36 +0100 +Subject: [PATCH 1/6] Revert "Set a large CRTC upper limit to not prune larger + resolutions" + +Picture is garbled after switching resolutions, so revert it. +Virtual size too big, revert the commit 9c4d7592dcb7dc20a48a6f941d9d94bd73d34153. + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa +--- + src/omapfb-crtc.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/omapfb-crtc.c b/src/omapfb-crtc.c +index 9aaa52f..cbeff35 100644 +--- a/src/omapfb-crtc.c ++++ b/src/omapfb-crtc.c +@@ -190,13 +190,13 @@ OMAPFBCRTCInit(ScrnInfoPtr pScrn) + * In practise, this doesn't seem to be supported. + * (no way to setup the overlay offset/base address) + */ +- /* FIXME: figure out what makes sense here. A known max resolution? +- * framebuffer size? +- */ + xf86CrtcSetSizeRange(pScrn, +- 8, 8, 2048, 2048); ++ 8, 8, ++ ofb->state_info.xres_virtual, ++ ofb->state_info.yres_virtual); + + ofb->crtc = xf86CrtcCreate(pScrn, &OMAPFBCrtcFuncs); ++ + } + + +-- +1.8.0 + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch new file mode 100644 index 000000000..683a98983 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch @@ -0,0 +1,32 @@ +From 855c333ac0d16350f895f1d1b9391e9cbb0b6db4 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Wed, 26 Jan 2011 13:27:20 +0100 +Subject: [PATCH 2/6] Revert "Set virtual size when configuring framebuffer" + +Virtual size too big, so revert it. + +This reverts commit 2653ef07883fbd1a5e7025f9300cf89b79ba429a. + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa +--- + src/omapfb-crtc.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/omapfb-crtc.c b/src/omapfb-crtc.c +index cbeff35..9655db2 100644 +--- a/src/omapfb-crtc.c ++++ b/src/omapfb-crtc.c +@@ -98,8 +98,6 @@ OMAPFBCrtcCommitChangeMode (xf86CrtcPtr crtc) + v = ofb->state_info; + v.xres = mode->HDisplay; + v.yres = mode->VDisplay; +- v.xres_virtual = crtc->scrn->virtualX; +- v.yres_virtual = crtc->scrn->virtualY; + v.activate = FB_ACTIVATE_NOW; + v.pixclock = KHZ2PICOS(mode->Clock ? mode->Clock : 56000); + v.left_margin = mode->HTotal - mode->HSyncEnd; +-- +1.8.0 + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0003-force-plain-mode.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0003-force-plain-mode.patch new file mode 100644 index 000000000..67ea7c1a5 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0003-force-plain-mode.patch @@ -0,0 +1,31 @@ +From 252f44c072d3447a32127fc9afe5d0d40f3c510e Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Wed, 26 Jan 2011 13:20:20 +0100 +Subject: [PATCH 3/6] force 'plain' mode + +The new DSS mode breaks XV, so force plain mode + +Upstream-Status: Pending + +Signed-off-by: Koen Kooi +Signed-off-by: Martin Jansa +--- + src/omapfb-driver.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c +index 018e040..48aa09c 100644 +--- a/src/omapfb-driver.c ++++ b/src/omapfb-driver.c +@@ -326,7 +326,7 @@ OMAPFBPreInit(ScrnInfoPtr pScrn, int flags) + OMAPFBProbeController(ofb->ctrl_name); + + /* Do we have the DSS kernel API? */ +- if (stat(SYSFS_DSS_DIR, &st) == 0) { ++ if (0) { //stat(SYSFS_DSS_DIR, &st) == 0) { + ofb->dss = TRUE; + } else { + ofb->dss = FALSE; +-- +1.8.0 + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-blacklist-tv-out.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-blacklist-tv-out.patch new file mode 100644 index 000000000..b0ac9a44c --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-blacklist-tv-out.patch @@ -0,0 +1,33 @@ +From cfa46b67f59115f6d8ef9414af60380749ff3eb3 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Wed, 26 Jan 2011 13:21:12 +0100 +Subject: [PATCH 4/6] blacklist tv out + +The tv-out gets added last and the driver tries to reconfigure dvi to TV resolutions, which fails. so blacklist it + +Upstream-Status: Pending + +Signed-off-by: Koen Kooi +Signed-off-by: Martin Jansa +--- + src/omapfb-output-dss.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/omapfb-output-dss.c b/src/omapfb-output-dss.c +index 6cc52de..83cb711 100644 +--- a/src/omapfb-output-dss.c ++++ b/src/omapfb-output-dss.c +@@ -205,6 +205,10 @@ OMAPFBDSSOutputDetect (xf86OutputPtr output) + if(ofb->timings[idx][0] == '\0') + return XF86OutputStatusDisconnected; + ++ // Hack to disable the tv out ++ if (strncmp(output->name, "tv", 2) == 0) ++ return XF86OutputStatusDisconnected; ++ + return XF86OutputStatusConnected; + } + +-- +1.8.0 + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0005-Attempt-to-fix-VRFB.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0005-Attempt-to-fix-VRFB.patch new file mode 100644 index 000000000..67b284023 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0005-Attempt-to-fix-VRFB.patch @@ -0,0 +1,325 @@ +From 8b1f697a60e35ab82fffdabfaefdb45e9a9df379 Mon Sep 17 00:00:00 2001 +From: Eino-Ville Talvala +Date: Tue, 23 Aug 2011 18:37:01 +0200 +Subject: [PATCH 5/6] Attempt to fix VRFB + +Upstream-Status: Pending + +http://dominion.thruhere.net/git/cgit.cgi/xf86-video-omapfb/commit/?h=koen/fixups&id=6833fc9f795265e4943d248103fbaf3463b515d6 + +Signed-off-by: Sebastian Krzyszkowiak +Signed-off-by: Martin Jansa +--- + src/image-format-conversions.c | 4 +-- + src/image-format-conversions.h | 2 +- + src/omapfb-driver.c | 28 +++++++++++++--- + src/omapfb-xv-blizzard.c | 1 + + src/omapfb-xv-generic.c | 72 +++++++++++++++++++++++++++++++++--------- + src/omapfb-xv.c | 3 ++ + 6 files changed, 88 insertions(+), 22 deletions(-) + +diff --git a/src/image-format-conversions.c b/src/image-format-conversions.c +index dcefa9b..d43427d 100644 +--- a/src/image-format-conversions.c ++++ b/src/image-format-conversions.c +@@ -38,13 +38,13 @@ + #include "image-format-conversions.h" + + /* Basic line-based copy for packed formats */ +-void packed_line_copy(int w, int h, int stride, uint8_t *src, uint8_t *dest) ++void packed_line_copy(int w, int h, int src_stride, int dst_stride, uint8_t *src, uint8_t *dest) + { + int i; + int len = w * 2; + for (i = 0; i < h; i++) + { +- memcpy(dest + i * len, src + i * stride, len); ++ memcpy(dest + i * dst_stride, src + i * src_stride, len); + } + } + +diff --git a/src/image-format-conversions.h b/src/image-format-conversions.h +index 584896a..ba7caf2 100644 +--- a/src/image-format-conversions.h ++++ b/src/image-format-conversions.h +@@ -27,7 +27,7 @@ + #include + + /* Basic line-based copy for packed formats */ +-void packed_line_copy(int w, int h, int stride, uint8_t *src, uint8_t *dest); ++void packed_line_copy(int w, int h, int src_stride, int dst_stride, uint8_t *src, uint8_t *dest); + + /* Basic C implementation of YV12/I420 to UYVY conversion */ + 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); +diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c +index 48aa09c..07989f5 100644 +--- a/src/omapfb-driver.c ++++ b/src/omapfb-driver.c +@@ -66,6 +66,7 @@ + #define OMAPFB_VERSION 1000 + #define OMAPFB_DRIVER_NAME "OMAPFB" + #define OMAPFB_NAME "omapfb" ++#define ENFORCE_MODES + + static Bool OMAPFBProbe(DriverPtr drv, int flags); + static Bool OMAPFBPreInit(ScrnInfoPtr pScrn, int flags); +@@ -105,11 +106,13 @@ static SymTabRec OMAPFBChipsets[] = { + typedef enum { + OPTION_ACCELMETHOD, + OPTION_FB, ++ OPTION_ROTATE, + } FBDevOpts; + + static const OptionInfoRec OMAPFBOptions[] = { + { OPTION_ACCELMETHOD, "AccelMethod", OPTV_STRING, {0}, FALSE }, + { OPTION_FB, "fb", OPTV_STRING, {0}, FALSE }, ++ { OPTION_ROTATE, "rotation", OPTV_STRING, {0}, FALSE }, + { -1, NULL, OPTV_NONE, {0}, FALSE } + }; + +@@ -286,6 +289,7 @@ OMAPFBPreInit(ScrnInfoPtr pScrn, int flags) + { + OMAPFBPtr ofb; + EntityInfoPtr pEnt; ++ char *rotate; + rgb zeros = { 0, 0, 0 }; + struct stat st; + +@@ -379,6 +383,8 @@ OMAPFBPreInit(ScrnInfoPtr pScrn, int flags) + pScrn->progClock = TRUE; + pScrn->chipset = "omapfb"; + ++ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Rotate test version 0.02\n"); ++ + /* Start with configured virtual size */ + pScrn->virtualX = pScrn->display->virtualX; + pScrn->virtualY = pScrn->display->virtualY; +@@ -496,12 +502,21 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + ofb->CloseScreen = pScreen->CloseScreen; + pScreen->CloseScreen = OMAPFBCloseScreen; + ++ /* Enforce the default mode (this is silly I guess) */ ++#ifdef ENFORCE_MODES ++ //xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Enforcing modes\n"); ++ //set_mode(ofb, &ofb->default_mode); ++ //pScrn->displayWidth = ofb->fixed_info.line_length / ++ // (ofb->state_info.bits_per_pixel>>3); //ofb->state_info.xres; ++#endif ++ + /* Map our framebuffer memory */ ++ ofb->mem_info.size = ofb->fixed_info.line_length * ofb->state_info.yres; + ofb->fb = mmap (NULL, ofb->mem_info.size, + PROT_READ | PROT_WRITE, MAP_SHARED, + ofb->fd, 0); +- if (ofb->fb == NULL) { +- xf86DrvMsg(scrnIndex, X_ERROR, "Mapping framebuffer memory failed\n"); ++ if (ofb->fb == MAP_FAILED) { ++ xf86DrvMsg(scrnIndex, X_ERROR, "Mapping framebuffer memory failed, wanted %d bytes.\n", ofb->mem_info.size); + return FALSE; + } + +@@ -578,8 +593,13 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + } else if (!ofb->dss) { + + ofb->plane_info.enabled = 1; +- ofb->plane_info.out_width = ofb->state_info.xres; +- ofb->plane_info.out_height = ofb->state_info.yres; ++ if (ofb->state_info.rotate == 0 || ofb->state_info.rotate == 2) { ++ ofb->plane_info.out_width = ofb->state_info.xres; ++ ofb->plane_info.out_height = ofb->state_info.yres; ++ } else { ++ ofb->plane_info.out_width = ofb->state_info.yres; ++ ofb->plane_info.out_height = ofb->state_info.xres; ++ } + + if (ioctl (ofb->fd, OMAPFB_SETUP_PLANE, &ofb->plane_info)) { + xf86DrvMsg(scrnIndex, X_ERROR, +diff --git a/src/omapfb-xv-blizzard.c b/src/omapfb-xv-blizzard.c +index 406ffc6..b71d2aa 100644 +--- a/src/omapfb-xv-blizzard.c ++++ b/src/omapfb-xv-blizzard.c +@@ -220,6 +220,7 @@ int OMAPFBXVPutImageBlizzard (ScrnInfoPtr pScrn, + packed_line_copy(src_w & ~3, + src_h & ~3, + ((src_w + 1) & ~1) * 2, ++ ofb->port->fixed_info.line_length, + (uint8_t*)buf, + (uint8_t*)ofb->port->fb); + break; +diff --git a/src/omapfb-xv-generic.c b/src/omapfb-xv-generic.c +index e6f89fe..b33f344 100644 +--- a/src/omapfb-xv-generic.c ++++ b/src/omapfb-xv-generic.c +@@ -62,7 +62,7 @@ int OMAPXVAllocPlane(ScrnInfoPtr pScrn) + { + OMAPFBPtr ofb = OMAPFB(pScrn); + +- /* The memory size is already set in OMAPFBXVQueryImageAttributes */ ++ /* The memory size is already set before we get here */ + if (ioctl(ofb->port->fd, OMAPFB_SETUP_MEM, &ofb->port->mem_info) != 0) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Failed to allocate video plane memory\n"); +@@ -73,19 +73,20 @@ int OMAPXVAllocPlane(ScrnInfoPtr pScrn) + ofb->port->fb = mmap (NULL, ofb->port->mem_info.size, + PROT_READ | PROT_WRITE, MAP_SHARED, + ofb->port->fd, 0); +- if (ofb->port->fb == NULL) { ++ if (ofb->port->fb == MAP_FAILED) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Mapping video memory failed\n"); + return XvBadAlloc; + } + + /* Update the state info */ ++ /* Let's not - it's bad + if (ioctl (ofb->port->fd, FBIOGET_VSCREENINFO, &ofb->port->state_info)) + { + xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__); + return XvBadAlloc; + } +- ++ */ + return Success; + } + +@@ -93,6 +94,7 @@ int OMAPXVAllocPlane(ScrnInfoPtr pScrn) + int OMAPXVSetupVideoPlane(ScrnInfoPtr pScrn) + { + OMAPFBPtr ofb = OMAPFB(pScrn); ++ int ret; + + if (ioctl (ofb->port->fd, FBIOPUT_VSCREENINFO, &ofb->port->state_info)) + { +@@ -104,6 +106,31 @@ int OMAPXVSetupVideoPlane(ScrnInfoPtr pScrn) + xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__); + return XvBadAlloc; + } ++ /* Changing rotation/nonstd flags can change the fixed info! */ ++ if (ioctl (ofb->port->fd, FBIOGET_FSCREENINFO, &ofb->port->fixed_info)) ++ { ++ xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__); ++ return XvBadAlloc; ++ } ++ /* Correct fixed info requires recalculation of needed memory */ ++ ofb->port->mem_info.size = ofb->port->fixed_info.line_length * ofb->port->state_info.yres; ++ ++ /* Allocate buffer memory */ ++ ret = OMAPXVAllocPlane(pScrn); ++ if (ret != Success) ++ return ret; ++ ++ /* Workaround for reset of mode after memory allo */ ++ if (ioctl (ofb->port->fd, FBIOPUT_VSCREENINFO, &ofb->port->state_info)) ++ { ++ xf86Msg(X_ERROR, "%s: setting state info failed\n", __FUNCTION__); ++ return XvBadAlloc; ++ } ++ if (ioctl (ofb->port->fd, FBIOGET_VSCREENINFO, &ofb->port->state_info)) ++ { ++ xf86Msg(X_ERROR, "%s: Reading state info failed\n", __FUNCTION__); ++ return XvBadAlloc; ++ } + + if(ioctl(ofb->port->fd, OMAPFB_SETUP_PLANE, + &ofb->port->plane_info) != 0) { +@@ -124,6 +151,8 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn, + DrawablePtr pDraw) + { + OMAPFBPtr ofb = OMAPFB(pScrn); ++ short drw_temp; ++ short rot_xres, rot_yres; + + if (!ofb->port->plane_info.enabled + || ofb->port->update_window.x != src_x +@@ -163,13 +192,6 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn, + return Success; + } + +- /* If we don't have the plane running, enable it */ +- if (!ofb->port->plane_info.enabled) { +- ret = OMAPXVAllocPlane(pScrn); +- if (ret != Success) +- return ret; +- } +- + /* Set up the state info, xres and yres will be used for + * scaling to the values in the plane info struct + */ +@@ -179,12 +201,31 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn, + ofb->port->state_info.yres_virtual = 0; + ofb->port->state_info.xoffset = 0; + ofb->port->state_info.yoffset = 0; +- ofb->port->state_info.rotate = 0; ++ //ofb->port->state_info.rotate = 0; + ofb->port->state_info.grayscale = 0; + ofb->port->state_info.activate = FB_ACTIVATE_NOW; + ofb->port->state_info.bits_per_pixel = 0; + ofb->port->state_info.nonstd = xv_to_omapfb_format(image); + ++ /* Plane info does not rotate with state_info */ ++ if (ofb->port->state_info.rotate == 1 || ++ ofb->port->state_info.rotate == 3) { ++ drw_temp = drw_x; ++ drw_x = drw_y; ++ drw_y = drw_temp; ++ ++ drw_temp = drw_w; ++ drw_w = drw_h; ++ drw_h = drw_temp; ++ ++ rot_xres = ofb->port->state_info.yres; ++ rot_yres = ofb->port->state_info.xres; ++ } else { ++ rot_xres = ofb->port->state_info.xres; ++ rot_yres = ofb->port->state_info.yres; ++ } ++ ++ + /* Set up the video plane info */ + ofb->port->plane_info.enabled = 1; + ofb->port->plane_info.pos_x = drw_x; +@@ -193,13 +234,13 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn, + ofb->port->plane_info.out_height = drw_h & ~15; + + /* Cap output to screen size */ +- if (ofb->port->plane_info.out_width > ofb->state_info.xres) { ++ if (ofb->port->plane_info.out_width > rot_xres) { + ofb->port->plane_info.pos_x = 0; +- ofb->port->plane_info.out_width = ofb->state_info.xres; ++ ofb->port->plane_info.out_width = rot_xres; + } +- if (ofb->port->plane_info.out_height > ofb->state_info.yres) { ++ if (ofb->port->plane_info.out_height > rot_yres) { + ofb->port->plane_info.pos_y = 0; +- ofb->port->plane_info.out_height = ofb->state_info.yres; ++ ofb->port->plane_info.out_height = rot_yres; + } + + ret = OMAPXVSetupVideoPlane(pScrn); +@@ -223,6 +264,7 @@ int OMAPFBXVPutImageGeneric (ScrnInfoPtr pScrn, + packed_line_copy(src_w & ~15, + src_h & ~15, + ((src_w + 1) & ~1) * 2, ++ ofb->port->fixed_info.line_length, + (uint8_t*)buf, + (uint8_t*)ofb->port->fb); + break; +diff --git a/src/omapfb-xv.c b/src/omapfb-xv.c +index 1df651e..0fee2c6 100644 +--- a/src/omapfb-xv.c ++++ b/src/omapfb-xv.c +@@ -169,8 +169,11 @@ static int OMAPFBXVQueryImageAttributes (ScrnInfoPtr pScrn, + h = *height; + + w = (w + 1) & ~1; ++ ++ /* Can't calculate these here - don't know line length + ofb->port->mem_info.size = w << 1; + ofb->port->mem_info.size *= h; ++ */ + + return size; + } +-- +1.8.0 + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0006-omapfb-port-to-new-xserver-video-API.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0006-omapfb-port-to-new-xserver-video-API.patch new file mode 100644 index 000000000..d56729987 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0006-omapfb-port-to-new-xserver-video-API.patch @@ -0,0 +1,272 @@ +From 803ecf2909949e6152f4a81b6cbb92a4430679ac Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Fri, 23 Nov 2012 00:31:06 +0100 +Subject: [PATCH 6/6] omapfb: port to new xserver video API + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa +--- + src/compat-api.h | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/omapfb-driver.c | 41 ++++++++++++----------- + 2 files changed, 118 insertions(+), 19 deletions(-) + create mode 100644 src/compat-api.h + +diff --git a/src/compat-api.h b/src/compat-api.h +new file mode 100644 +index 0000000..b1591b1 +--- /dev/null ++++ b/src/compat-api.h +@@ -0,0 +1,96 @@ ++/* ++ * Copyright 2012 Red Hat, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the next ++ * paragraph) shall be included in all copies or substantial portions of the ++ * Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * DEALINGS IN THE SOFTWARE. ++ * ++ * Author: Dave Airlie ++ */ ++ ++/* this file provides API compat between server post 1.13 and pre it, ++ it should be reused inside as many drivers as possible */ ++#ifndef COMPAT_API_H ++#define COMPAT_API_H ++ ++#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR ++#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum] ++#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p ++#endif ++ ++#ifndef XF86_HAS_SCRN_CONV ++#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum] ++#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] ++#endif ++ ++#ifndef XF86_SCRN_INTERFACE ++ ++#define SCRN_ARG_TYPE int ++#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)] ++ ++#define SCREEN_ARG_TYPE int ++#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)] ++ ++#define SCREEN_INIT_ARGS_DECL int index, ScreenPtr pScreen, int argc, char **argv ++ ++#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask ++#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask ++ ++#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen ++#define CLOSE_SCREEN_ARGS scrnIndex, pScreen ++ ++#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags ++ ++#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags ++ ++#define FREE_SCREEN_ARGS_DECL int arg, int flags ++#define FREE_SCREEN_ARGS(x) (x)->scrnIndex, 0 ++ ++#define VT_FUNC_ARGS_DECL int arg, int flags ++#define VT_FUNC_ARGS(flags) pScrn->scrnIndex, (flags) ++ ++#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex) ++#else ++#define SCRN_ARG_TYPE ScrnInfoPtr ++#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1) ++ ++#define SCREEN_ARG_TYPE ScreenPtr ++#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1) ++ ++#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv ++ ++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask ++#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask ++ ++#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen ++#define CLOSE_SCREEN_ARGS pScreen ++ ++#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y ++#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode ++ ++#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg ++#define FREE_SCREEN_ARGS(x) (x) ++ ++#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg ++#define VT_FUNC_ARGS(flags) pScrn ++ ++#define XF86_ENABLEDISABLEFB_ARG(x) (x) ++ ++#endif ++ ++#endif +diff --git a/src/omapfb-driver.c b/src/omapfb-driver.c +index 07989f5..486ffa4 100644 +--- a/src/omapfb-driver.c ++++ b/src/omapfb-driver.c +@@ -44,6 +44,8 @@ + + #include "exa.h" + ++#include "compat-api.h" ++ + #ifdef HAVE_XEXTPROTO_71 + #include + #else +@@ -70,10 +72,10 @@ + + static Bool OMAPFBProbe(DriverPtr drv, int flags); + static Bool OMAPFBPreInit(ScrnInfoPtr pScrn, int flags); +-static Bool OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv); +-static Bool OMAPFBEnterVT(int scrnIndex, int flags); +-static void OMAPFBLeaveVT(int scrnIndex, int flags); +-static Bool OMAPFBSwitchMode(int scrnIndex, DisplayModePtr mode, int flags); ++static Bool OMAPFBScreenInit(SCREEN_INIT_ARGS_DECL); ++static Bool OMAPFBEnterVT(VT_FUNC_ARGS_DECL); ++static void OMAPFBLeaveVT(VT_FUNC_ARGS_DECL); ++static Bool OMAPFBSwitchMode(SWITCH_MODE_ARGS_DECL); + + static Bool + OMAPFBEnsureRec(ScrnInfoPtr pScrn) +@@ -481,7 +483,7 @@ OMAPFBXvScreenInit(ScreenPtr pScreen) + } + + static Bool +-OMAPFBCloseScreen(int scrnIndex, ScreenPtr pScreen) ++OMAPFBCloseScreen(CLOSE_SCREEN_ARGS_DECL) + { + ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + OMAPFBPtr ofb = OMAPFB(pScrn); +@@ -490,11 +492,11 @@ OMAPFBCloseScreen(int scrnIndex, ScreenPtr pScreen) + + pScreen->CloseScreen = ofb->CloseScreen; + +- return (*pScreen->CloseScreen)(scrnIndex, pScreen); ++ return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); + } + + static Bool +-OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) ++OMAPFBScreenInit(SCREEN_INIT_ARGS_DECL) + { + ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + OMAPFBPtr ofb = OMAPFB(pScrn); +@@ -516,7 +518,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + PROT_READ | PROT_WRITE, MAP_SHARED, + ofb->fd, 0); + if (ofb->fb == MAP_FAILED) { +- xf86DrvMsg(scrnIndex, X_ERROR, "Mapping framebuffer memory failed, wanted %d bytes.\n", ofb->mem_info.size); ++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Mapping framebuffer memory failed, wanted %d bytes.\n", ofb->mem_info.size); + return FALSE; + } + +@@ -526,7 +528,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + /* Only support TrueColor for now */ + if (!miSetVisualTypes(pScrn->depth, TrueColorMask, + pScrn->rgbBits, pScrn->defaultVisual)) { +- xf86DrvMsg(scrnIndex, X_ERROR, "visual type setup failed" ++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "visual type setup failed" + " for %d bits per pixel [1]\n", + pScrn->bitsPerPixel); + return FALSE; +@@ -534,7 +536,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + + /* Set up pixmap depth information */ + if (!miSetPixmapDepths()) { +- xf86DrvMsg(scrnIndex,X_ERROR,"pixmap depth setup failed\n"); ++ xf86DrvMsg(pScrn->scrnIndex,X_ERROR,"pixmap depth setup failed\n"); + return FALSE; + } + +@@ -546,7 +548,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + pScrn->virtualY, pScrn->xDpi, + pScrn->yDpi, pScrn->displayWidth, + pScrn->bitsPerPixel)) { +- xf86DrvMsg(scrnIndex, X_ERROR, "fbScreenInit failed\n"); ++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "fbScreenInit failed\n"); + return FALSE; + } + +@@ -567,7 +569,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + + /* Initialize XRender fallbacks */ + if (!fbPictureInit(pScreen, NULL, 0)) { +- xf86DrvMsg(scrnIndex, X_ERROR, "fbPictureInit failed\n"); ++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "fbPictureInit failed\n"); + return FALSE; + } + +@@ -579,7 +581,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + + /* Initialize default colormap */ + if (!miCreateDefColormap(pScreen)) { +- xf86DrvMsg(scrnIndex, X_ERROR, ++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "creating default colormap failed\n"); + return FALSE; + } +@@ -589,7 +591,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + /* This is non-fatal since we might be running against older + * kernel driver in which case we only do basic 2D stuff... + */ +- xf86DrvMsg(scrnIndex, X_ERROR, "Reading plane info failed\n"); ++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Reading plane info failed\n"); + } else if (!ofb->dss) { + + ofb->plane_info.enabled = 1; +@@ -602,7 +604,7 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + } + + if (ioctl (ofb->fd, OMAPFB_SETUP_PLANE, &ofb->plane_info)) { +- xf86DrvMsg(scrnIndex, X_ERROR, ++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "%s: Plane setup failed: %s\n", + __FUNCTION__, strerror(errno)); + return FALSE; +@@ -645,9 +647,10 @@ OMAPFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + return TRUE; + } + +-static Bool OMAPFBSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) ++static Bool OMAPFBSwitchMode(SWITCH_MODE_ARGS_DECL) + { +- return xf86SetSingleMode (xf86Screens[scrnIndex], mode, RR_Rotate_0); ++ SCRN_INFO_PTR(arg); ++ return xf86SetSingleMode (pScrn, mode, RR_Rotate_0); + } + + void +@@ -699,14 +702,14 @@ OMAPFBPrintCapabilities(ScrnInfoPtr pScrn, + /*** Unimplemented: */ + + static Bool +-OMAPFBEnterVT(int scrnIndex, int flags) ++OMAPFBEnterVT(VT_FUNC_ARGS_DECL) + { + xf86Msg(X_NOT_IMPLEMENTED, "%s\n", __FUNCTION__); + return TRUE; + } + + static void +-OMAPFBLeaveVT(int scrnIndex, int flags) ++OMAPFBLeaveVT(VT_FUNC_ARGS_DECL) + { + xf86Msg(X_NOT_IMPLEMENTED, "%s\n", __FUNCTION__); + } +-- +1.8.0 + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0007-always_include_xorg_server.h.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0007-always_include_xorg_server.h.patch new file mode 100644 index 000000000..dc0b9b3f4 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0007-always_include_xorg_server.h.patch @@ -0,0 +1,48 @@ +Fix errors with glibc 2.20 + +In file included from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/string.h:634:0, + from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/os.h:53, + from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/misc.h:115, + from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/xf86str.h:37, + from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/xf86.h:44, + 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: +/home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/os.h:579:1: error: expected identifier or '(' before '__extension__' + strndup(const char *str, size_t n); + ^ +In file included from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/string.h:634:0, + from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/os.h:53, + from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/misc.h:115, + from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/xf86str.h:37, + from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/xf86.h:44, + 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: +/home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/xorg/os.h:579:1: error: expected identifier or '(' before '__extension__' + strndup(const char *str, size_t n); + ^ + +Singed-off-by: Khem Raj + +Upstream-Status: Pending +Index: git/src/omapfb-xv-blizzard.c +=================================================================== +--- git.orig/src/omapfb-xv-blizzard.c 2014-08-28 05:16:25.684070587 -0700 ++++ git/src/omapfb-xv-blizzard.c 2014-08-28 19:05:39.440070587 -0700 +@@ -30,6 +30,7 @@ + * - + */ + ++#include + #include "xf86.h" + #include "xf86_OSlib.h" + #include "xf86xv.h" +Index: git/src/omapfb-xv-generic.c +=================================================================== +--- git.orig/src/omapfb-xv-generic.c 2014-08-28 05:16:25.684070587 -0700 ++++ git/src/omapfb-xv-generic.c 2014-08-28 19:05:51.780070587 -0700 +@@ -25,6 +25,7 @@ + * Generic functions for the XV driver + */ + ++#include + #include "xf86.h" + #include "xf86_OSlib.h" + #include "xf86xv.h" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb new file mode 100644 index 000000000..7ebb960f1 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb @@ -0,0 +1,37 @@ +require xorg-driver-video.inc + +SUMMARY = "X.Org X server -- Texas Instruments OMAP framebuffer driver" + +DESCRIPTION = "omapfb driver supports the basic Texas Instruments OMAP \ +framebuffer." + +LICENSE = "MIT-X & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=63e2cbac53863f60e2f43343fb34367f" +DEPENDS += "virtual/libx11" + +SRCREV = "33e36c12dde336edbdd34626dd8adfcaebc8fbb8" +PR = "${INC_PR}.7" +PV = "0.1.1+gitr${SRCPV}" + +# Blacklist debian-specific tags in upstream version check +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)(?!-)" + +SRC_URI = "git://anonscm.debian.org/collab-maint/xf86-video-omapfb.git \ + file://0001-Prevents-omapfb-from-from-crashing-when-pixelclock-o.patch \ + file://0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch \ + file://0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch \ + file://0003-force-plain-mode.patch \ + file://0004-blacklist-tv-out.patch \ + file://0005-Attempt-to-fix-VRFB.patch \ + file://0006-omapfb-port-to-new-xserver-video-API.patch \ + file://0007-always_include_xorg_server.h.patch \ +" + +S = "${WORKDIR}/git" + +CFLAGS += " -I${STAGING_INCDIR}/xorg " + +# Use overlay 2 on omap3 to enable other apps to use overlay 1 (e.g. dmai or omapfbplay) +do_compile_prepend_armv7a () { + sed -i -e s:fb1:fb2:g ${S}/src/omapfb-xv.c +} diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.4.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.4.bb new file mode 100644 index 000000000..fa251b50e --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.3.4.bb @@ -0,0 +1,21 @@ +require xorg-driver-video.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=a1f0610ebdc6f314a9fa5102a8c5c1b0" + +SUMMARY = "X.Org X server -- Generic Vesa video driver" + +DESCRIPTION = "vesa is an Xorg driver for generic VESA video cards. It \ +can drive most VESA-compatible video cards, but only makes use of the \ +basic standard VESA core that is common to these cards. The driver \ +supports depths 8, 15 16 and 24." + +PR = "${INC_PR}.0" + +DEPENDS += "virtual/libx11 randrproto libpciaccess" + +COMPATIBLE_HOST = '(i.86|x86_64).*-linux' + +RRECOMMENDS_${PN} += "xserver-xorg-module-libint10" + +SRC_URI[md5sum] = "a893c37c589f7a31cea929a5d896a0e2" +SRC_URI[sha256sum] = "7bddf4d879dd6f67088ecb203a31e12334aab980174bd0909930a21f32e251c1" diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch new file mode 100644 index 000000000..5bda720ce --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch @@ -0,0 +1,103 @@ +From da6612659a279bcb02f70622b53a3894fbc11052 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Fri, 9 Dec 2016 14:35:45 +0200 +Subject: [PATCH] Add option for vmwgfx + +Upstream-Status:Submitted + +Signed-off-by: Ross Burton +Signed-off-by: Jussi Kukkonen +--- + configure.ac | 51 +++++++++++++++++++++------------------------------ + 1 file changed, 21 insertions(+), 30 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 9f259ce..f3fec57 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -64,6 +64,13 @@ AC_ARG_ENABLE(vmwarectrl-client, + [VMWARECTRL=$enableval], [VMWARECTRL=no]) + AM_CONDITIONAL(BUILD_VMWARECTRL, [test "x$VMWARECTRL" = xyes]) + ++# Define a configure option to build the vmwgfx driver ++AC_ARG_ENABLE(vmwgfx, ++ AS_HELP_STRING([--disable-vmwgfx], ++ [Disable vmwgfx driver (KMS/3D) (default: enabled)]), ++ [VMWGFX="$enableval"], [VMWGFX="yes"]) ++AM_CONDITIONAL(BUILD_VMWGFX, test "x$VMWGFX" = xyes) ++ + # Store the list of server defined optional extensions in REQUIRED_MODULES + XORG_DRIVER_CHECK_EXT(RANDR, randrproto) + XORG_DRIVER_CHECK_EXT(RENDER, renderproto) +@@ -85,11 +92,6 @@ PKG_CHECK_EXISTS([xorg-server >= 1.4.99], + [AC_DEFINE([HAVE_XORG_SERVER_1_5_0], 1, + [Has version 1.5.0 or greater of the Xserver])]) + +-PKG_CHECK_EXISTS([xorg-server >= 1.7.0], +- [AC_DEFINE([HAVE_XORG_SERVER_1_7_0], 1, +- [Has version 1.7.0 or greater of the Xserver]) +- BUILD_VMWGFX=yes],[BUILD_VMWGFX=no]) +- + PKG_CHECK_EXISTS([xorg-server >= 1.12.0], + [AC_DEFINE([HAVE_XORG_SERVER_1_12_0], 1, + [Has version 1.12.0 or greater of the Xserver])]) +@@ -114,34 +116,22 @@ AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) + + AC_SUBST([moduledir]) + +-if test x$BUILD_VMWGFX = xyes; then +- PKG_CHECK_MODULES([LIBDRM], [libdrm],[],[BUILD_VMWGFX=no]) +-fi +-if test x$BUILD_VMWGFX = xyes; then +-# +-# Early versions of mesa 10 forgot to bump the XA major version number in +-# the xa_tracker.h header +-# +- PKG_CHECK_MODULES([XATRACKER], [xatracker >= 0.4.0], +- [PKG_CHECK_EXISTS([xatracker = 2.0.0], +- [AC_DEFINE([HAVE_XA_2], 1, +- [Has version 2 of XA])])], +- [BUILD_VMWGFX=no]) +-# +-# Check for prime. +-# ++AC_MSG_CHECKING([whether to build Kernel Mode Setting and 3D]) ++if test x$VMWGFX = xyes; then ++ AC_MSG_RESULT([yes]) ++ PKG_CHECK_MODULES([LIBDRM], [libdrm]) ++ # Check for prime. + PKG_CHECK_EXISTS([libdrm >= 2.4.38], + [AC_DEFINE([HAVE_LIBDRM_2_4_38], 1, + [Has version 2.4.38 or greater of libdrm])]) +-fi + +-DRIVER_NAME=vmware +-AC_SUBST([DRIVER_NAME]) +- +-AC_MSG_CHECKING([whether to build Kernel Mode Setting and 3D]) +-if test x$BUILD_VMWGFX = xyes; then +- AC_MSG_RESULT([yes]) +- AC_DEFINE([BUILD_VMWGFX], 1, [Building the vmwgfx driver path]) ++ # Early versions of mesa 10 forgot to bump the XA major version number ++ # in the xa_tracker.h header ++ PKG_CHECK_MODULES([XATRACKER], [xatracker >= 0.4.0], ++ [PKG_CHECK_EXISTS([xatracker = 2.0.0], ++ [AC_DEFINE([HAVE_XA_2], 1, ++ [Has version 2 of XA])])]) ++ AC_DEFINE([BUILD_VMWGFX], 1, [Building the vmwgfx driver path]) + libudev_check=yes + AC_ARG_WITH([libudev], + [AS_HELP_STRING([--without-libudev], +@@ -158,7 +148,8 @@ else + AC_MSG_RESULT([no]) + fi + +-AM_CONDITIONAL(BUILD_VMWGFX, test "x$BUILD_VMWGFX" = xyes) ++DRIVER_NAME=vmware ++AC_SUBST([DRIVER_NAME]) + + AC_CONFIG_FILES([ + Makefile +-- +2.1.4 + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.2.1.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.2.1.bb new file mode 100644 index 000000000..706d35d2f --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.2.1.bb @@ -0,0 +1,19 @@ +require xorg-driver-video.inc + +SUMMARY = "X.Org X server -- VMware SVGA display driver" + +DESCRIPTION = "vmware is an Xorg driver for VMware virtual video cards." + +LIC_FILES_CHKSUM = "file://COPYING;md5=5fcd7d437a959a15fbee8707747c6b53" + +DEPENDS += "virtual/libx11 xineramaproto videoproto libpciaccess" + +SRC_URI += "file://0002-add-option-for-vmwgfx.patch" + +SRC_URI[md5sum] = "4c3912e4d8947f6c2fc1ee9e2f211d74" +SRC_URI[sha256sum] = "e2f7f7101fba7f53b268e7a25908babbf155b3984fb5268b3d244eb6c11bf62b" + +COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)' + +PACKAGECONFIG ?= "" +PACKAGECONFIG[vmwgfx] = "--enable-vmwgfx, --disable-vmwgfx, libdrm virtual/mesa" diff --git a/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc b/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc new file mode 100644 index 000000000..bca0aade6 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc @@ -0,0 +1,42 @@ +SUMMARY = "X driver" +HOMEPAGE = "http://www.x.org" +BUGTRACKER = "https://bugs.freedesktop.org" +SECTION = "x11/drivers" +LICENSE = "MIT-X" + +PE = "2" +INC_PR = "r21" + +DEPENDS = "virtual/xserver xproto randrproto util-macros" + +SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2" + +FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so" + +inherit autotools pkgconfig distro_features_check +# depends on virtual/xserver +REQUIRED_DISTRO_FEATURES = "x11" + +# FIXME: We don't want to include the libtool archives (*.la) from modules +# directory, as they serve no useful purpose. Upstream should fix Makefile.am +do_install_append() { + find ${D}${libdir}/xorg/modules -regex ".*\.la$" | xargs rm -f -- +} + +# Function to add the relevant ABI dependency to drivers, which should be called +# from a PACKAGEFUNC. +def _add_xorg_abi_depends(d, name): + # Map of ABI names exposed in the dependencies to pkg-config variables + abis = { + "video": "abi_videodrv", + "input": "abi_xinput" + } + + output = os.popen("pkg-config xorg-server --variable=%s" % abis[name]).read() + mlprefix = d.getVar('MLPREFIX') or '' + abi = "%sxorg-abi-%s-%s" % (mlprefix, name, output.split(".")[0]) + + pn = d.getVar("PN") + d.appendVar('RDEPENDS_' + pn, ' ' + abi) + +SECURITY_LDFLAGS = "${SECURITY_X_LDFLAGS}" diff --git a/poky/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc b/poky/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc new file mode 100644 index 000000000..342067d6c --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc @@ -0,0 +1,12 @@ +require xorg-driver-common.inc + +DEPENDS += "inputproto kbproto " + +python add_xorg_abi_depends() { + _add_xorg_abi_depends(d, "input") +} +PACKAGEFUNCS =+ "add_xorg_abi_depends" + +FILES_${PN} += " ${libdir}/xorg/modules/input/*.so \ + ${datadir}/X11/xorg.conf.d \ + " diff --git a/poky/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc b/poky/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc new file mode 100644 index 000000000..b5862dae1 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc @@ -0,0 +1,8 @@ +require xorg-driver-common.inc + +DEPENDS =+ "renderproto videoproto xextproto fontsproto" + +python add_xorg_abi_depends() { + _add_xorg_abi_depends(d, "video") +} +PACKAGEFUNCS =+ "add_xorg_abi_depends" -- cgit v1.2.3