Fixes for xserver and omap* drivers
cover Fixes for xserver and omap* drivers
The following changes since commit 4bbe7a5067452b43bf3258b17e2a653a2273b476:
Revert "kern-tools: report missing config fragments by name" (2012-11-22 08:58:56 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib jansa/xorg
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=jansa/xorg
Martin Jansa (4):
xf86-video-omap: add xf86driproto dependency, drop --enable-neon and
improve DESCRIPTION
xserver-xorg: disable dri2 too when building without glx
PACKAGECONFIG
xf86-video-omapfb: revive driver which actually works and is tested
on real devices
xf86-video-omap: drop RPROVIDES/RREPLACES/RCONFLICTS
.../xorg-driver/xf86-video-omap_git.bb | 28 +- ...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 +++++++++++++++++ .../xorg-driver/xf86-video-omapfb_git.bb | 33 +++ .../recipes-graphics/xorg-xserver/xserver-xorg.inc | 4 +- 9 files changed, 788 insertions(+), 11 deletions(-) create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0003-force-plain-mode.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-blacklist-tv-out.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0005-Attempt-to-fix-VRFB.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0006-omapfb-port-to-new-xserver-video-API.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb
Signature · 1 line
1.8.0
PATCH 1/4 xf86-video-omap: add xf86driproto dependency, drop --enable-neon and improve DESCRIPTION
* xf86driproto was missing
* --enable-neon isn't supported by omap driver
* DESCRIPTION merged from meta-ti
http://git.yoctoproject.org/cgit/cgit.cgi/meta-ti/tree/recipes-graphics/xorg-driver/xf86-video-omap_git.bb?id=410dc026f2ee24a2346e7563a83f0181c79809cf
* this driver also depends PACKAGECONFIG[glx] used in xserver-xorg, without it dri2.h sometimes isn't built (it is autodetected only when dri2proto is built before xserver-xorg) and without dri2.h it now passes do_configure but fails later in do_compile
--- .../xorg-driver/xf86-video-omap_git.bb | 24 +++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-)
meta/recipes-graphics/xorg-driver/xf86-video-omap_git.bb +19 -5
@@ -2,19 +2,34 @@ require xorg-driver-video.inc SUMMARY = "X.Org X server -- Texas Instruments OMAP framebuffer driver" -DESCRIPTION = "omap driver supports the basic Texas Instruments OMAP \ -framebuffer." +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" +DEPENDS += "virtual/libx11 libdrm xf86driproto" RPROVIDES = "xf86-video-omapfb" RCONFLICTS = "xf86-video-omapfb" RREPLACES = "xf86-video-omapfb" SRCREV = "ae0394e687f1a77e966cf72f895da91840dffb8f" -PR = "${INC_PR}.1" +PR = "${INC_PR}.2" PV = "0.4.2+gitr${SRCPV}" SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-omap;protocol=git \
@@ -23,7 +38,6 @@ SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-omap;protocol=gi S = "${WORKDIR}/git" -EXTRA_OECONF_armv7a = " --enable-neon " CFLAGS += " -I${STAGING_INCDIR}/xorg " # Use overlay 2 on omap3 to enable other apps to use overlay 1 (e.g. dmai or omapfbplay)
Signature · 1 line
1.8.0
PATCH 2/4 xserver-xorg: disable dri2 too when building without glx PACKAGECONFIG
In reply to Martin Jansa* it was enabled when dri2proto was built before xserver-xorg
--- meta/recipes-graphics/xorg-xserver/xserver-xorg.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-graphics/xorg-xserver/xserver-xorg.inc +2 -2
@@ -13,7 +13,7 @@ PROVIDES = "virtual/xserver-xf86" PROVIDES += "virtual/xserver" PE = "2" -INC_PR = "r5" +INC_PR = "r6" XORG_PN = "xorg-server" SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2"
@@ -133,7 +133,7 @@ EXTRA_OECONF += "--with-fop=no \ PACKAGECONFIG ??= "udev ${@base_contains('DISTRO_FEATURES', 'opengl', 'glx', '', d)}" PACKAGECONFIG[udev] = "--enable-config-udev,--disable-config-udev,udev" PACKAGECONFIG[glx] = "--enable-dri --enable-dri2 --enable-glx --enable-glx-tls,\ - --disable-dri --disable-glx,\ + --disable-dri --disable-dri2 --disable-glx,\ xf86driproto dri2proto mesa-dri" do_install_append () {
Signature · 1 line
1.8.0
PATCH 3/4 xf86-video-omapfb: revive driver which actually works and is tested on real devices
In reply to Martin Jansa* 0006-omapfb-port-to-new-xserver-video-API.patch added to port it to new xserver video API
* other patches just updated headers to be able to git am them
--- ...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 +++++++++++++++++ .../xorg-driver/xf86-video-omapfb_git.bb | 33 +++ 7 files changed, 767 insertions(+) create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0003-force-plain-mode.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-blacklist-tv-out.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0005-Attempt-to-fix-VRFB.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0006-omapfb-port-to-new-xserver-video-API.patch create mode 100644 meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb
meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0001-Revert-Set-a-large-CRTC-upper-limit-to-not-prune-lar.patch new file +41 -0
@@ -0,0 +1,41 @@ +From 8fb7d0f99d4afbb574b30cb4f1e66a8f89d94ad5 Mon Sep 17 00:00:00 2001 +From: Koen Kooi <[email protected]> +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 <[email protected]> +--- + 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 +
meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0002-Revert-Set-virtual-size-when-configuring-framebuffer.patch new file +32 -0
@@ -0,0 +1,32 @@ +From 855c333ac0d16350f895f1d1b9391e9cbb0b6db4 Mon Sep 17 00:00:00 2001 +From: Koen Kooi <[email protected]> +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 <[email protected]> +--- + 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 +
meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0003-force-plain-mode.patch new file +31 -0
@@ -0,0 +1,31 @@ +From 252f44c072d3447a32127fc9afe5d0d40f3c510e Mon Sep 17 00:00:00 2001 +From: Koen Kooi <[email protected]> +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 <[email protected]> +Signed-off-by: Martin Jansa <[email protected]> +--- + 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 +
meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0004-blacklist-tv-out.patch new file +33 -0
@@ -0,0 +1,33 @@ +From cfa46b67f59115f6d8ef9414af60380749ff3eb3 Mon Sep 17 00:00:00 2001 +From: Koen Kooi <[email protected]> +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 <[email protected]> +Signed-off-by: Martin Jansa <[email protected]> +--- + 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 +
meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0005-Attempt-to-fix-VRFB.patch new file +325 -0
325 lines not on this page · raw message
meta/recipes-graphics/xorg-driver/xf86-video-omapfb/0006-omapfb-port-to-new-xserver-video-API.patch new file +272 -0
272 lines not on this page · raw message
meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb new file +33 -0
@@ -0,0 +1,33 @@ +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 = "28c006c94e57ea71df11ec4fff79d7ffcfc4860f" +PR = "${INC_PR}.7" +PV = "0.1.1+gitr${SRCPV}" + +SRC_URI = "git://git.pingu.fi/xf86-video-omapfb;protocol=http \ + 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 \ +" + +S = "${WORKDIR}/git" + +EXTRA_OECONF_armv7a = " --enable-neon " +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 +}
Signature · 1 line
1.8.0
PATCH 4/4 xf86-video-omap: drop RPROVIDES/RREPLACES/RCONFLICTS
In reply to Martin Jansa* without _${PN} suffix they are invalid:
opkg install bash-4.2# opkg install xf86-video-omapfb Package xf86-video-omap-doc is already installed on root.
* it's not upgrade to omapfb driver but different driver, so let BSP maintainers decide which one works for their MACHINE
* without this xf86-video-omap (or -doc, -dbg, ...) can be pulled to image even when XSERVER clearly says xf86-video-omapfb
--- meta/recipes-graphics/xorg-driver/xf86-video-omap_git.bb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
meta/recipes-graphics/xorg-driver/xf86-video-omap_git.bb +1 -5
@@ -24,12 +24,8 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=10ce5de3b111315ea652a5f74ec0c602" DEPENDS += "virtual/libx11 libdrm xf86driproto" -RPROVIDES = "xf86-video-omapfb" -RCONFLICTS = "xf86-video-omapfb" -RREPLACES = "xf86-video-omapfb" - SRCREV = "ae0394e687f1a77e966cf72f895da91840dffb8f" -PR = "${INC_PR}.2" +PR = "${INC_PR}.3" PV = "0.4.2+gitr${SRCPV}" SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-omap;protocol=git \
Signature · 1 line
1.8.0
hi,
Quoted 8 lines · Martin Jansa
Martin Jansa (4):
xf86-video-omap: add xf86driproto dependency, drop --enable-neon and
improve DESCRIPTION
xserver-xorg: disable dri2 too when building without glx
PACKAGECONFIG
xf86-video-omapfb: revive driver which actually works and is tested
on real devices
xf86-video-omap: drop RPROVIDES/RREPLACES/RCONFLICTS
so, I have tested this serie on pandaboard, using meta-ti layer for the BSP and poky (i used master-next branch which has these patches). I have tested with a couple of patches that I sent to meta-ti to revert the xf86-video-omap that we had in meta-ti. For the reference, i tested with this:
https://github.com/ndechesne/meta-ti/commits/test_new_xf-v-o (my new patches aren't merged yet in master).
i tested with xf86-video-omap, not -omapfb, and with a v3.4 kernel which I know has a working omapdrm driver.
it all looks good, the driver is loaded, and I tested resolution change, as well as rotation , both with xrandr command (i tested core-image-x11 image).
many thanks for sorting this out...
i have some questions... xf86-video-omap now clearly depends on opengl DISTRO_FEATURE (since dri cannot be disabled) for the xserver build. So if i build oe-core + meta-ti, it won't build as the xserver is built without dri/glx support there, and then xf86-video-omap won't build.
- how should we handle that? it doesn't sound quite right to enfore a
DISTRO feature in a recipe... but is it possible to have a check for opengl in the recipe? that would avoid a more cryptic build error..
- how can I make an oe-core+meta-ti to build for Panda with this
video driver? e.g. where should I set this DISTRO_FEATURE in meta-ti, outside of 'poky' distro, e.g. in a BSP layer?. I recall that we have this in the xserver recipe:
PACKAGECONFIG ??= "udev ${@base_contains('DISTRO_FEATURES', 'opengl', 'glx', '', d)}"
PACKAGECONFIG[udev] = "--enable-config-udev,--disable-config-udev,udev" PACKAGECONFIG[glx] = "--enable-dri --enable-dri2 --enable-glx --enable-glx-tls,\
--disable-dri --disable-dri2 --disable-glx,\
xf86driproto dri2proto mesa-dri"
thx
Quoted 27 lines · Nicolas Dechesne
hi,
Quoted 8 lines · Martin Jansa
Martin Jansa (4):
xf86-video-omap: add xf86driproto dependency, drop --enable-neon and
improve DESCRIPTION
xserver-xorg: disable dri2 too when building without glx
PACKAGECONFIG
xf86-video-omapfb: revive driver which actually works and is tested
on real devices
xf86-video-omap: drop RPROVIDES/RREPLACES/RCONFLICTSso, I have tested this serie on pandaboard, using meta-ti layer for the BSP and poky (i used master-next branch which has these patches). I have tested with a couple of patches that I sent to meta-ti to revert the xf86-video-omap that we had in meta-ti. For the reference, i tested with this:
https://github.com/ndechesne/meta-ti/commits/test_new_xf-v-o (my new patches aren't merged yet in master).i tested with xf86-video-omap, not -omapfb, and with a v3.4 kernel which I know has a working omapdrm driver.
it all looks good, the driver is loaded, and I tested resolution change, as well as rotation , both with xrandr command (i tested core-image-x11 image).
Quoted 7 lines
many thanks for sorting this out...
i have some questions... xf86-video-omap now clearly depends on opengl
DISTRO_FEATURE(since dri cannot be disabled) for the xserver build. So if i build oe-core + meta-ti, it won't build as the xserver is built without dri/glx support there, and then xf86-video-omap won't build.
True, unfortunately without 2/4 it did build in some cases, but that should be sorted now and fail in deterministic way. I think that without configure.patch in xf86-video-omap it would fail in do_configure already not in do_compile.
Maybe configure.patch should be reworked to only change AC_CHECK_FILE to "test -f" instead of changing configure.ac so much, but I'll keep that for Ross and upstream to decide.
Quoted 3 lines
- how should we handle that? it doesn't sound quite right to enfore a
DISTRO feature in a recipe... but is it possible to have a check for opengl in the recipe? that would avoid a more cryptic build error..
I think that python fragment with SkipPackage when opengl is not in DISTRO_FEATURE could improve that, but that's not 100% correct too as distro can change xserver PACKAGECONFIG (add glx) even without opengl in DISTRO_FEATURES).
Maybe add PACKAGECONFIG[glx] to xf86-video-omap with initial value set by opengl DISTRO_FEATURE (like xserver) does and then SkipPackage when it's not enabled.
Quoted 11 lines
- how can I make an oe-core+meta-ti to build for Panda with this
video driver? e.g. where should I set thisDISTRO_FEATUREin meta-ti, outside of 'poky' distro, e.g. in a BSP layer?. I recall that we have this in the xserver recipe:PACKAGECONFIG ??= "udev ${@base_contains('DISTRO_FEATURES', 'opengl', 'glx', '', d)}"
PACKAGECONFIG[udev] = "--enable-config-udev,--disable-config-udev,udev" PACKAGECONFIG[glx] = "--enable-dri --enable-dri2 --enable-glx --enable-glx-tls,\
--disable-dri --disable-dri2 --disable-glx,\
xf86driproto dri2proto mesa-dri"
Changing DISTRO_FEATURE in bsp layer is bad idea, proper error message should be enough to notify distro maintainer that something is missing in DISTRO_FEATURES/PACKAGECONFIG.
Cheers,
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
Quoted 5 lines · Nicolas Dechesne
i have some questions... xf86-video-omap now clearly depends on opengl
DISTRO_FEATURE(since dri cannot be disabled) for the xserver build. So if i build oe-core + meta-ti, it won't build as the xserver is built without dri/glx support there, and then xf86-video-omap won't build.
Add a new DISTRO_FEATURE for DRI?
Ross