summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Bragg <bob@openedhand.com>2008-10-13 15:23:14 +0000
committerRobert Bragg <bob@openedhand.com>2008-10-13 15:23:14 +0000
commit10650210e775ab98f1b0bf4bd5292361f1807b0f (patch)
tree228cbf08681d0c323110f65f6b64790aa6505526
parent4c7fc919401ac29174e40d794e85d4d6c20de270 (diff)
downloadopenembedded-core-10650210e775ab98f1b0bf4bd5292361f1807b0f.tar.gz
openembedded-core-10650210e775ab98f1b0bf4bd5292361f1807b0f.tar.bz2
openembedded-core-10650210e775ab98f1b0bf4bd5292361f1807b0f.zip
Adds support for GEM + DRI2
DRI2 is disabled by default though since running with metacity-clutter seems to cause a lock up. git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5484 311d38ba-8fff-0310-9ca6-ca027cbcb966
-rw-r--r--meta/conf/distro/include/poky-fixed-revisions.inc6
-rw-r--r--meta/conf/distro/include/preferred-xorg-versions.inc23
-rw-r--r--meta/conf/distro/poky.conf1
-rw-r--r--meta/conf/machine/eee901.conf2
-rw-r--r--meta/packages/drm/libdrm_git.bb17
-rw-r--r--meta/packages/mesa/mesa-dri_7.2.bb1
-rw-r--r--meta/packages/mesa/mesa-dri_git.bb10
-rw-r--r--meta/packages/xorg-driver/xf86-input-keyboard_git.bb9
-rw-r--r--meta/packages/xorg-driver/xf86-input-mouse_git.bb9
-rw-r--r--meta/packages/xorg-driver/xf86-input-synaptics_git.bb9
-rwxr-xr-xmeta/packages/xorg-driver/xf86-video-intel-dri2/002_avoid_duplicate_SaveHWState.patch12
-rwxr-xr-xmeta/packages/xorg-driver/xf86-video-intel-dri2/004_reduce_driver_boottime.patch95
-rwxr-xr-xmeta/packages/xorg-driver/xf86-video-intel-dri2/005_disable_sdvo_TV_port_restoreHW.patch31
-rwxr-xr-xmeta/packages/xorg-driver/xf86-video-intel-dri2/006_disable_check_lvds_panelpower_status.patch29
-rwxr-xr-xmeta/packages/xorg-driver/xf86-video-intel-dri2/007_disable_tiling_and_enable_UXA.patch28
-rw-r--r--meta/packages/xorg-driver/xf86-video-intel-dri2_git.bb24
-rw-r--r--meta/packages/xorg-proto/dri2proto_1.99.1git.bb9
-rw-r--r--meta/packages/xorg-proto/inputproto-native_1.9.99.5git.bb (renamed from meta/packages/xorg-proto/inputproto-native_1.4.4.bb)0
-rw-r--r--meta/packages/xorg-proto/inputproto-sdk_1.9.99.5git.bb (renamed from meta/packages/xorg-proto/inputproto-sdk_1.4.4.bb)0
-rw-r--r--meta/packages/xorg-proto/inputproto_1.9.99.5git.bb10
-rw-r--r--meta/packages/xorg-proto/renderproto-sdk_0.9.3.bb3
-rw-r--r--meta/packages/xorg-proto/renderproto_0.9.3.bb7
-rw-r--r--meta/packages/xorg-proto/xextproto-native_7.0.3.bb3
-rw-r--r--meta/packages/xorg-proto/xextproto-sdk_7.0.3.bb3
-rw-r--r--meta/packages/xorg-proto/xextproto_7.0.3.bb (renamed from meta/packages/xorg-proto/inputproto_1.4.4.bb)2
-rw-r--r--meta/packages/xorg-proto/xproto-native_7.0.13.bb3
-rw-r--r--meta/packages/xorg-proto/xproto-sdk_7.0.13.bb3
-rw-r--r--meta/packages/xorg-proto/xproto_7.0.13.bb6
-rw-r--r--meta/packages/xorg-xserver/xserver-xf86-dri-lite.inc16
-rw-r--r--meta/packages/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch13
-rwxr-xr-xmeta/packages/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch12
-rwxr-xr-xmeta/packages/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch23
-rwxr-xr-xmeta/packages/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch37
-rw-r--r--meta/packages/xorg-xserver/xserver-xf86-dri-lite_1.5.0.bb4
-rw-r--r--meta/packages/xorg-xserver/xserver-xf86-dri-lite_git.bb9
35 files changed, 445 insertions, 24 deletions
diff --git a/meta/conf/distro/include/poky-fixed-revisions.inc b/meta/conf/distro/include/poky-fixed-revisions.inc
index d7e0a5a453..eb9f60913f 100644
--- a/meta/conf/distro/include/poky-fixed-revisions.inc
+++ b/meta/conf/distro/include/poky-fixed-revisions.inc
@@ -154,7 +154,11 @@ SRCREV_pn-usbpath = "3172"
SRCREV_pn-xserver-kdrive-glamo ?= "a51364e2f23d4b6331c5ed613ce3f7e15f8e540f"
SRCREV_pn-gsm0710muxd ?= "6fecc78198dd821bbe29efd096bd8fecd855179d"
SRCREV_pn-gsmd2 ?= "963f34df8fa3ff4b301079dcf86e9acea6b6fe0f"
-SRCREV_pn-metacity-clutter ?= "389ce295417bdd99bf583026f7f1dedae29650da"
+SRCREV_pn-metacity-clutter ?= "b52f1df75af8216b13539431283fd1cfaa33cf51"
+SRCREV_pn-dri2proto ?= "abb1edc487543c26856afdbe6a7e2c088a1e82ee"
+SRCREV_pn-inputproto ?= "2166b77ea60bd9cd87f1311a2e7d461db071cb07"
+SRCREV_pn-inputproto-native ?= "2166b77ea60bd9cd87f1311a2e7d461db071cb07"
+SRCREV_pn-inputproto-sdk ?= "2166b77ea60bd9cd87f1311a2e7d461db071cb07"
#
# Preferred Versions:
diff --git a/meta/conf/distro/include/preferred-xorg-versions.inc b/meta/conf/distro/include/preferred-xorg-versions.inc
index 29fa815686..887cc31bbc 100644
--- a/meta/conf/distro/include/preferred-xorg-versions.inc
+++ b/meta/conf/distro/include/preferred-xorg-versions.inc
@@ -18,9 +18,9 @@ PREFERRED_VERSION_fontsproto-native ?= "2.0.2"
PREFERRED_VERSION_gccmakedep ?= "1.0.2"
PREFERRED_VERSION_glproto ?= "1.4.9"
PREFERRED_VERSION_imake ?= "1.0.2"
-PREFERRED_VERSION_inputproto ?= "1.4.4"
-PREFERRED_VERSION_inputproto-native ?= "1.4.4"
-PREFERRED_VERSION_inputproto-sdk ?= "1.4.3"
+PREFERRED_VERSION_inputproto ?= "1.9.99.5+git${SRCREV}"
+PREFERRED_VERSION_inputproto-native ?= "1.9.99.5+git${SRCREV}"
+PREFERRED_VERSION_inputproto-sdk ?= "1.9.99.5+git${SRCREV}"
PREFERRED_VERSION_kbproto ?= "1.0.3"
PREFERRED_VERSION_kbproto-native ?= "1.0.3"
PREFERRED_VERSION_kbproto-sdk ?= "1.0.3"
@@ -88,8 +88,8 @@ PREFERRED_VERSION_printproto ?= "1.0.4"
PREFERRED_VERSION_randrproto ?= "1.2.1"
PREFERRED_VERSION_randrproto-sdk ?= "1.2.1"
PREFERRED_VERSION_recordproto ?= "1.13.2"
-PREFERRED_VERSION_renderproto ?= "0.9.2"
-PREFERRED_VERSION_renderproto-sdk ?= "0.9.2"
+PREFERRED_VERSION_renderproto ?= "0.9.3"
+PREFERRED_VERSION_renderproto-sdk ?= "0.9.3"
PREFERRED_VERSION_resourceproto ?= "1.0.2"
PREFERRED_VERSION_scrnsaverproto ?= "1.1.0"
PREFERRED_VERSION_trapproto ?= "3.4.3"
@@ -104,14 +104,15 @@ PREFERRED_VERSION_xcmiscproto-native ?= "1.1.2"
PREFERRED_VERSION_xcmiscproto-sdk ?= "1.1.2"
PREFERRED_VERSION_xdpyinfo ?= "1.0.2"
PREFERRED_VERSION_xev ?= "1.0.3"
-PREFERRED_VERSION_xextproto ?= "7.0.2"
-PREFERRED_VERSION_xextproto-native ?= "7.0.2"
-PREFERRED_VERSION_xextproto-sdk ?= "7.0.2"
+PREFERRED_VERSION_xextproto ?= "7.0.3"
+PREFERRED_VERSION_xextproto-native ?= "7.0.3"
+PREFERRED_VERSION_xextproto-sdk ?= "7.0.3"
PREFERRED_VERSION_xf86bigfontproto ?= "1.1.2"
PREFERRED_VERSION_xf86bigfontproto-native ?= "1.1.2"
PREFERRED_VERSION_xf86bigfontproto-sdk ?= "1.1.2"
PREFERRED_VERSION_xf86dgaproto ?= "2.0.3"
PREFERRED_VERSION_xf86driproto ?= "2.0.3"
+PREFERRED_VERSION_dri2proto ?= "1.99.1+git${SRCREV}"
PREFERRED_VERSION_xf86miscproto ?= "0.9.2"
PREFERRED_VERSION_xf86rushproto ?= "1.1.2"
PREFERRED_VERSION_xf86vidmodeproto ?= "2.2.2"
@@ -121,9 +122,9 @@ PREFERRED_VERSION_xineramaproto ?= "1.1.2"
PREFERRED_VERSION_xmodmap ?= "1.0.3"
PREFERRED_VERSION_xorg-cf-files ?= "1.0.2"
PREFERRED_VERSION_xprop ?= "1.0.4"
-PREFERRED_VERSION_xproto ?= "7.0.12"
-PREFERRED_VERSION_xproto-native ?= "7.0.12"
-PREFERRED_VERSION_xproto-sdk ?= "7.0.12"
+PREFERRED_VERSION_xproto ?= "7.0.13"
+PREFERRED_VERSION_xproto-native ?= "7.0.13"
+PREFERRED_VERSION_xproto-sdk ?= "7.0.13"
PREFERRED_VERSION_xproxymanagementprotocol ?= "1.0.2"
PREFERRED_VERSION_xrandr ?= "1.2.3"
PREFERRED_VERSION_xrdb ?= "1.0.5"
diff --git a/meta/conf/distro/poky.conf b/meta/conf/distro/poky.conf
index efa6845dfc..09d86f1d2e 100644
--- a/meta/conf/distro/poky.conf
+++ b/meta/conf/distro/poky.conf
@@ -79,6 +79,7 @@ PREFERRED_PROVIDER_virtual/libgl ?= "mesa-xlib"
PREFERRED_PROVIDER_virtual/update-alternatives ?= "update-alternatives-cworth"
PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "opkg-native"
PREFERRED_PROVIDER_virtual/libx11 ?= "libx11-diet"
+PREFERRED_PROVIDER_xf86-video-intel ?= xf86-video-intel
VIRTUAL-RUNTIME_update-alternatives ?= "update-alternatives-cworth"
diff --git a/meta/conf/machine/eee901.conf b/meta/conf/machine/eee901.conf
index f6dbe333aa..54f630d56c 100644
--- a/meta/conf/machine/eee901.conf
+++ b/meta/conf/machine/eee901.conf
@@ -17,7 +17,7 @@ PREFERRED_PROVIDER_virtual/kernel = "linux-moblin"
PREFERRED_PROVIDER_virtual/libx11 = "libx11-trim"
PREFERRED_PROVIDER_virtual/libgl = "mesa-dri"
PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86-dri-lite"
-XSERVER = "xserver-xf86-dri-lite \
+XSERVER ?= "xserver-xf86-dri-lite \
xf86-input-mouse \
xf86-input-keyboard \
xf86-input-synaptics \
diff --git a/meta/packages/drm/libdrm_git.bb b/meta/packages/drm/libdrm_git.bb
new file mode 100644
index 0000000000..e05e16bb04
--- /dev/null
+++ b/meta/packages/drm/libdrm_git.bb
@@ -0,0 +1,17 @@
+SECTION = "x11/base"
+LICENSE = "MIT"
+SRC_URI = "git://anongit.freedesktop.org/git/mesa/drm;protocol=git"
+PROVIDES = "drm"
+
+S = ${WORKDIR}/git
+
+PR = "r0"
+PV = "2.4.0+git${SRCREV}"
+
+LEAD_SONAME = "libdrm.so"
+
+inherit autotools pkgconfig
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/meta/packages/mesa/mesa-dri_7.2.bb b/meta/packages/mesa/mesa-dri_7.2.bb
index 76a51da382..c96863fd7a 100644
--- a/meta/packages/mesa/mesa-dri_7.2.bb
+++ b/meta/packages/mesa/mesa-dri_7.2.bb
@@ -5,7 +5,6 @@ LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes expat"
DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}"
-PE = "1"
PR = "r4"
# most of our targets do not have DRI so will use mesa-xlib
diff --git a/meta/packages/mesa/mesa-dri_git.bb b/meta/packages/mesa/mesa-dri_git.bb
index 6aedeaa1c0..5bd5c7ad71 100644
--- a/meta/packages/mesa/mesa-dri_git.bb
+++ b/meta/packages/mesa/mesa-dri_git.bb
@@ -5,14 +5,20 @@ LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes expat"
DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}"
-PV = "7.2+git${SRCREV}"
-PR = "r2"
+PV = "7.3.0+git${SRCREV}"
+PR = "r0"
+# most of our targets do not have DRI so will use mesa-xlib
DEFAULT_PREFERENCE = "-1"
+# ASUS EeePC 901 has DRI support so use mesa-dri by default
+DEFAULT_PREFERENCE_eee901 = "1"
+
SRC_URI = "git://anongit.freedesktop.org/git/mesa/mesa;protocol=git"
S = "${WORKDIR}/git"
+PACKAGES =+ "${PN}-xprogs"
+
FILES_${PN} += "${libdir}/dri/*.so"
FILES_${PN}-dbg += "${libdir}/dri/.debug/*"
diff --git a/meta/packages/xorg-driver/xf86-input-keyboard_git.bb b/meta/packages/xorg-driver/xf86-input-keyboard_git.bb
new file mode 100644
index 0000000000..d17437db82
--- /dev/null
+++ b/meta/packages/xorg-driver/xf86-input-keyboard_git.bb
@@ -0,0 +1,9 @@
+require xf86-input-common.inc
+
+DESCRIPTION = "X.Org X server -- keyboard input driver"
+
+PV = "1.3.1+git${SRCREV}"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-keyboard;protocol=git"
+S = "${WORKDIR}/git"
+
diff --git a/meta/packages/xorg-driver/xf86-input-mouse_git.bb b/meta/packages/xorg-driver/xf86-input-mouse_git.bb
new file mode 100644
index 0000000000..e1b16788e8
--- /dev/null
+++ b/meta/packages/xorg-driver/xf86-input-mouse_git.bb
@@ -0,0 +1,9 @@
+require xf86-input-common.inc
+
+DESCRIPTION = "X.Org X server -- mouse input driver"
+
+PV = "1.3.0+git${SRCREV}"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-mouse;protocol=git"
+S = "${WORKDIR}/git"
+
diff --git a/meta/packages/xorg-driver/xf86-input-synaptics_git.bb b/meta/packages/xorg-driver/xf86-input-synaptics_git.bb
new file mode 100644
index 0000000000..0bd90eaa4f
--- /dev/null
+++ b/meta/packages/xorg-driver/xf86-input-synaptics_git.bb
@@ -0,0 +1,9 @@
+require xf86-input-common.inc
+
+DESCRIPTION = "X.Org X server -- keyboard input driver"
+
+PV = "0.15.2+git${SRCREV}"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-input-synaptics;protocol=git"
+S = "${WORKDIR}/git"
+
diff --git a/meta/packages/xorg-driver/xf86-video-intel-dri2/002_avoid_duplicate_SaveHWState.patch b/meta/packages/xorg-driver/xf86-video-intel-dri2/002_avoid_duplicate_SaveHWState.patch
new file mode 100755
index 0000000000..87c2a873eb
--- /dev/null
+++ b/meta/packages/xorg-driver/xf86-video-intel-dri2/002_avoid_duplicate_SaveHWState.patch
@@ -0,0 +1,12 @@
+diff -urN xf86-video-intel-2.5.96.0/src/i830_driver.c xf86-video-intel-2.5.96.0.new/src/i830_driver.c
+--- xf86-video-intel-2.5.96.0/src/i830_driver.c 2008-09-13 06:58:45.000000000 +0800
++++ xf86-video-intel-2.5.96.0.new/src/i830_driver.c 2008-09-25 21:22:08.000000000 +0800
+@@ -1782,7 +1782,7 @@
+ return FALSE;
+
+ pI830 = I830PTR(pScrn);
+- pI830->SaveGeneration = -1;
++ pI830->SaveGeneration = serverGeneration;
+ pI830->pEnt = pEnt;
+ pI830->use_drm_mode = drm_mode_setting;
+
diff --git a/meta/packages/xorg-driver/xf86-video-intel-dri2/004_reduce_driver_boottime.patch b/meta/packages/xorg-driver/xf86-video-intel-dri2/004_reduce_driver_boottime.patch
new file mode 100755
index 0000000000..f8c214931e
--- /dev/null
+++ b/meta/packages/xorg-driver/xf86-video-intel-dri2/004_reduce_driver_boottime.patch
@@ -0,0 +1,95 @@
+diff -urN xf86-video-intel-2.5.96.0/src/i830_display.c xf86-video-intel-2.5.96.0.new/src/i830_display.c
+--- xf86-video-intel-2.5.96.0/src/i830_display.c 2008-09-11 05:10:10.000000000 +0800
++++ xf86-video-intel-2.5.96.0.new/src/i830_display.c 2008-09-25 21:27:42.000000000 +0800
+@@ -376,7 +376,7 @@
+ i830WaitForVblank(ScrnInfoPtr pScreen)
+ {
+ /* Wait for 20ms, i.e. one cycle at 50hz. */
+- usleep(30000);
++ usleep(21000);
+ }
+
+ void
+diff -urN xf86-video-intel-2.5.96.0/src/i830_driver.c xf86-video-intel-2.5.96.0.new/src/i830_driver.c
+--- xf86-video-intel-2.5.96.0/src/i830_driver.c 2008-09-25 21:23:52.000000000 +0800
++++ xf86-video-intel-2.5.96.0.new/src/i830_driver.c 2008-09-25 21:30:13.000000000 +0800
+@@ -2293,7 +2293,7 @@
+ static void
+ i830_dpll_settle(void)
+ {
+- usleep(10000); /* 10 ms *should* be plenty */
++ usleep(150); /* 10 ms *should* be plenty */
+ }
+
+ static Bool
+@@ -2315,14 +2315,12 @@
+ xf86OutputPtr output = xf86_config->output[i];
+ output->funcs->dpms(output, DPMSModeOff);
+ }
+- i830WaitForVblank(pScrn);
+
+ /* Disable pipes */
+ for (i = 0; i < xf86_config->num_crtc; i++) {
+ xf86CrtcPtr crtc = xf86_config->crtc[i];
+ crtc->funcs->dpms(crtc, DPMSModeOff);
+ }
+- i830WaitForVblank(pScrn);
+
+ if (IS_MOBILE(pI830) && !IS_I830(pI830))
+ OUTREG(LVDS, pI830->saveLVDS);
+@@ -2369,11 +2367,13 @@
+ OUTREG(FPA0, pI830->saveFPA0);
+ OUTREG(FPA1, pI830->saveFPA1);
+ OUTREG(DPLL_A, pI830->saveDPLL_A);
++ POSTING_READ(DPLL_A);
+ i830_dpll_settle();
+ if (IS_I965G(pI830))
+ OUTREG(DPLL_A_MD, pI830->saveDPLL_A_MD);
+ else
+ OUTREG(DPLL_A, pI830->saveDPLL_A);
++ POSTING_READ(DPLL_A);
+ i830_dpll_settle();
+
+ /* Restore mode config */
+@@ -2409,13 +2409,11 @@
+ DISPPLANE_SEL_PIPE_A) {
+ OUTREG(DSPACNTR, pI830->saveDSPACNTR);
+ OUTREG(DSPABASE, INREG(DSPABASE));
+- i830WaitForVblank(pScrn);
+ }
+ if ((pI830->saveDSPBCNTR & DISPPLANE_SEL_PIPE_MASK) ==
+ DISPPLANE_SEL_PIPE_A) {
+ OUTREG(DSPBCNTR, pI830->saveDSPBCNTR);
+ OUTREG(DSPBBASE, INREG(DSPBBASE));
+- i830WaitForVblank(pScrn);
+ }
+
+ /* See note about pipe programming above */
+@@ -2430,11 +2428,13 @@
+ OUTREG(FPB0, pI830->saveFPB0);
+ OUTREG(FPB1, pI830->saveFPB1);
+ OUTREG(DPLL_B, pI830->saveDPLL_B);
++ POSTING_READ(DPLL_B);
+ i830_dpll_settle();
+ if (IS_I965G(pI830))
+ OUTREG(DPLL_B_MD, pI830->saveDPLL_B_MD);
+ else
+ OUTREG(DPLL_B, pI830->saveDPLL_B);
++ POSTING_READ(DPLL_B);
+ i830_dpll_settle();
+
+ /* Restore mode config */
+@@ -2468,13 +2468,11 @@
+ DISPPLANE_SEL_PIPE_B) {
+ OUTREG(DSPACNTR, pI830->saveDSPACNTR);
+ OUTREG(DSPABASE, INREG(DSPABASE));
+- i830WaitForVblank(pScrn);
+ }
+ if ((pI830->saveDSPBCNTR & DISPPLANE_SEL_PIPE_MASK) ==
+ DISPPLANE_SEL_PIPE_B) {
+ OUTREG(DSPBCNTR, pI830->saveDSPBCNTR);
+ OUTREG(DSPBBASE, INREG(DSPBBASE));
+- i830WaitForVblank(pScrn);
+ }
+ }
+
diff --git a/meta/packages/xorg-driver/xf86-video-intel-dri2/005_disable_sdvo_TV_port_restoreHW.patch b/meta/packages/xorg-driver/xf86-video-intel-dri2/005_disable_sdvo_TV_port_restoreHW.patch
new file mode 100755
index 0000000000..6cdeb3e70f
--- /dev/null
+++ b/meta/packages/xorg-driver/xf86-video-intel-dri2/005_disable_sdvo_TV_port_restoreHW.patch
@@ -0,0 +1,31 @@
+diff -urN xf86-video-intel-2.5.96.0/src/i830_driver.c xf86-video-intel-2.5.96.0.new/src/i830_driver.c
+--- xf86-video-intel-2.5.96.0/src/i830_driver.c 2008-09-25 21:32:45.000000000 +0800
++++ xf86-video-intel-2.5.96.0.new/src/i830_driver.c 2008-09-25 21:34:19.000000000 +0800
+@@ -912,6 +912,7 @@
+ if (IS_MOBILE(pI830) && !IS_I830(pI830))
+ i830_lvds_init(pScrn);
+
++#if 0
+ if (IS_I9XX(pI830)) {
+ if (INREG(SDVOB) & SDVO_DETECTED) {
+ Bool found = i830_sdvo_init(pScrn, SDVOB);
+@@ -931,7 +932,8 @@
+ }
+ if (IS_I9XX(pI830) && IS_MOBILE(pI830))
+ i830_tv_init(pScrn);
+-
++#endif
++
+ for (o = 0; o < config->num_output; o++)
+ {
+ xf86OutputPtr output = config->output[o];
+@@ -1612,7 +1614,9 @@
+ PreInitCleanup(pScrn);
+ return FALSE;
+ }
++#if 0
+ RestoreHWState(pScrn);
++#endif
+
+ /* XXX This should go away, replaced by xf86Crtc.c support for it */
+ pI830->rotation = RR_Rotate_0;
diff --git a/meta/packages/xorg-driver/xf86-video-intel-dri2/006_disable_check_lvds_panelpower_status.patch b/meta/packages/xorg-driver/xf86-video-intel-dri2/006_disable_check_lvds_panelpower_status.patch
new file mode 100755
index 0000000000..b35e43f6ae
--- /dev/null
+++ b/meta/packages/xorg-driver/xf86-video-intel-dri2/006_disable_check_lvds_panelpower_status.patch
@@ -0,0 +1,29 @@
+diff -urN xf86-video-intel-2.5.96.0/src/i830_lvds.c xf86-video-intel-2.5.96.0.new/src/i830_lvds.c
+--- xf86-video-intel-2.5.96.0/src/i830_lvds.c 2008-09-01 05:27:39.000000000 +0800
++++ xf86-video-intel-2.5.96.0.new/src/i830_lvds.c 2008-09-25 21:36:13.000000000 +0800
+@@ -404,10 +404,11 @@
+ dev_priv->backlight_duty_cycle = dev_priv->backlight_max;
+
+ OUTREG(PP_CONTROL, INREG(PP_CONTROL) | POWER_TARGET_ON);
++#if 0
+ do {
+ pp_status = INREG(PP_STATUS);
+ } while ((pp_status & PP_ON) == 0);
+-
++#endif
+ dev_priv->set_backlight(output, dev_priv->backlight_duty_cycle);
+ dev_priv->dpmsoff = FALSE;
+ } else {
+@@ -420,10 +421,11 @@
+ dev_priv->set_backlight(output, 0);
+
+ OUTREG(PP_CONTROL, INREG(PP_CONTROL) & ~POWER_TARGET_ON);
++#if 0
+ do {
+ pp_status = INREG(PP_STATUS);
+ } while (pp_status & PP_ON);
+-
++#endif
+ dev_priv->dpmsoff = TRUE;
+ }
+ }
diff --git a/meta/packages/xorg-driver/xf86-video-intel-dri2/007_disable_tiling_and_enable_UXA.patch b/meta/packages/xorg-driver/xf86-video-intel-dri2/007_disable_tiling_and_enable_UXA.patch
new file mode 100755
index 0000000000..7f60295db2
--- /dev/null
+++ b/meta/packages/xorg-driver/xf86-video-intel-dri2/007_disable_tiling_and_enable_UXA.patch
@@ -0,0 +1,28 @@
+diff -urN xf86-video-intel-2.5.96.0/src/i830_driver.c xf86-video-intel-2.5.96.0.new/src/i830_driver.c
+--- xf86-video-intel-2.5.96.0/src/i830_driver.c 2008-09-27 18:19:07.000000000 +0800
++++ xf86-video-intel-2.5.96.0.new/src/i830_driver.c 2008-09-27 18:20:13.000000000 +0800
+@@ -1511,12 +1511,12 @@
+ * for example. :)
+ */
+ if (!(pI830->accel == ACCEL_NONE)) {
+-#ifdef I830_USE_UXA
+- pI830->accel = ACCEL_UXA;
+-#endif
+ #ifdef I830_USE_EXA
+ pI830->accel = ACCEL_EXA;
+ #endif
++#ifdef I830_USE_UXA
++ pI830->accel = ACCEL_UXA;
++#endif
+ #if I830_USE_XAA + I830_USE_EXA + I830_USE_UXA >= 2
+ from = X_DEFAULT;
+ if ((s = (char *)xf86GetOptValString(pI830->Options,
+@@ -3106,7 +3106,7 @@
+ #endif
+
+ /* Enable tiling by default */
+- pI830->tiling = TRUE;
++ pI830->tiling = FALSE;
+
+ /* Allow user override if they set a value */
+ if (xf86IsOptionSet(pI830->Options, OPTION_TILING)) {
diff --git a/meta/packages/xorg-driver/xf86-video-intel-dri2_git.bb b/meta/packages/xorg-driver/xf86-video-intel-dri2_git.bb
new file mode 100644
index 0000000000..4df2b1cb08
--- /dev/null
+++ b/meta/packages/xorg-driver/xf86-video-intel-dri2_git.bb
@@ -0,0 +1,24 @@
+require xf86-video-common.inc
+
+DESCRIPTION = "X.Org X server -- Intel i8xx, i9xx display driver"
+DEPENDS += "virtual/libx11 libxvmc drm dri2proto glproto \
+ virtual/libgl xineramaproto libpciaccess"
+PROVIDES = "xf86-video-intel"
+
+PE = "1"
+PR = "r0"
+PV = "1.5.0+git${SRCREV}"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel;protocol=git;branch=dri2 \
+ file://002_avoid_duplicate_SaveHWState.patch;patch=1 \
+ file://004_reduce_driver_boottime.patch;patch=1 \
+ file://005_disable_sdvo_TV_port_restoreHW.patch;patch=1 \
+ file://006_disable_check_lvds_panelpower_status.patch;patch=1 \
+ file://007_disable_tiling_and_enable_UXA.patch;patch=1"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST = '(i.86.*-linux)'
+
+EXTRA_OECONF = "--enable-dri --disable-static"
+
diff --git a/meta/packages/xorg-proto/dri2proto_1.99.1git.bb b/meta/packages/xorg-proto/dri2proto_1.99.1git.bb
new file mode 100644
index 0000000000..35b4e1f149
--- /dev/null
+++ b/meta/packages/xorg-proto/dri2proto_1.99.1git.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "DRI2 extension headers"
+
+require xorg-proto-common.inc
+
+PV = "1.99.1+git${SRCREV}"
+
+SRC_URI = "git://git.freedesktop.org/git/xorg/proto/dri2proto;protocol=git"
+S = "${WORKDIR}/git"
+
diff --git a/meta/packages/xorg-proto/inputproto-native_1.4.4.bb b/meta/packages/xorg-proto/inputproto-native_1.9.99.5git.bb
index b6ce61142f..b6ce61142f 100644
--- a/meta/packages/xorg-proto/inputproto-native_1.4.4.bb
+++ b/meta/packages/xorg-proto/inputproto-native_1.9.99.5git.bb
diff --git a/meta/packages/xorg-proto/inputproto-sdk_1.4.4.bb b/meta/packages/xorg-proto/inputproto-sdk_1.9.99.5git.bb
index f0e1985bf9..f0e1985bf9 100644
--- a/meta/packages/xorg-proto/inputproto-sdk_1.4.4.bb
+++ b/meta/packages/xorg-proto/inputproto-sdk_1.9.99.5git.bb
diff --git a/meta/packages/xorg-proto/inputproto_1.9.99.5git.bb b/meta/packages/xorg-proto/inputproto_1.9.99.5git.bb
new file mode 100644
index 0000000000..5c62eb44da
--- /dev/null
+++ b/meta/packages/xorg-proto/inputproto_1.9.99.5git.bb
@@ -0,0 +1,10 @@
+require xorg-proto-common.inc
+
+PR = "r1"
+PE = "1"
+PV = "1.9.99.5+git${SRCREV}"
+
+SRC_URI = "git://anongit.freedesktop.org/git/xorg/proto/inputproto;protocol=git"
+S = "${WORKDIR}/git"
+
+XORG_PN = "inputproto"
diff --git a/meta/packages/xorg-proto/renderproto-sdk_0.9.3.bb b/meta/packages/xorg-proto/renderproto-sdk_0.9.3.bb
new file mode 100644
index 0000000000..25ab90827f
--- /dev/null
+++ b/meta/packages/xorg-proto/renderproto-sdk_0.9.3.bb
@@ -0,0 +1,3 @@
+require renderproto_${PV}.bb
+
+inherit sdk
diff --git a/meta/packages/xorg-proto/renderproto_0.9.3.bb b/meta/packages/xorg-proto/renderproto_0.9.3.bb
new file mode 100644
index 0000000000..d4e0983a8b
--- /dev/null
+++ b/meta/packages/xorg-proto/renderproto_0.9.3.bb
@@ -0,0 +1,7 @@
+require xorg-proto-common.inc
+
+CONFLICTS = "renderext"
+PR = "r1"
+PE = "1"
+
+XORG_PN = "renderproto"
diff --git a/meta/packages/xorg-proto/xextproto-native_7.0.3.bb b/meta/packages/xorg-proto/xextproto-native_7.0.3.bb
new file mode 100644
index 0000000000..2529e62ca2
--- /dev/null
+++ b/meta/packages/xorg-proto/xextproto-native_7.0.3.bb
@@ -0,0 +1,3 @@
+require xextproto_${PV}.bb
+
+inherit native
diff --git a/meta/packages/xorg-proto/xextproto-sdk_7.0.3.bb b/meta/packages/xorg-proto/xextproto-sdk_7.0.3.bb
new file mode 100644
index 0000000000..3b182a02ff
--- /dev/null
+++ b/meta/packages/xorg-proto/xextproto-sdk_7.0.3.bb
@@ -0,0 +1,3 @@
+require xextproto_${PV}.bb
+
+inherit sdk
diff --git a/meta/packages/xorg-proto/inputproto_1.4.4.bb b/meta/packages/xorg-proto/xextproto_7.0.3.bb
index e3a8b09f2b..829d3cbe1e 100644
--- a/meta/packages/xorg-proto/inputproto_1.4.4.bb
+++ b/meta/packages/xorg-proto/xextproto_7.0.3.bb
@@ -3,4 +3,4 @@ require xorg-proto-common.inc
PR = "r1"
PE = "1"
-XORG_PN = "inputproto"
+XORG_PN = "xextproto"
diff --git a/meta/packages/xorg-proto/xproto-native_7.0.13.bb b/meta/packages/xorg-proto/xproto-native_7.0.13.bb
new file mode 100644
index 0000000000..5dde8a7d4a
--- /dev/null
+++ b/meta/packages/xorg-proto/xproto-native_7.0.13.bb
@@ -0,0 +1,3 @@
+require xproto_${PV}.bb
+
+inherit native
diff --git a/meta/packages/xorg-proto/xproto-sdk_7.0.13.bb b/meta/packages/xorg-proto/xproto-sdk_7.0.13.bb
new file mode 100644
index 0000000000..1c1a934bb0
--- /dev/null
+++ b/meta/packages/xorg-proto/xproto-sdk_7.0.13.bb
@@ -0,0 +1,3 @@
+require xproto_${PV}.bb
+
+inherit sdk
diff --git a/meta/packages/xorg-proto/xproto_7.0.13.bb b/meta/packages/xorg-proto/xproto_7.0.13.bb
new file mode 100644
index 0000000000..1adf55d97a
--- /dev/null
+++ b/meta/packages/xorg-proto/xproto_7.0.13.bb
@@ -0,0 +1,6 @@
+require xorg-proto-common.inc
+
+PR = "r1"
+PE = "1"
+
+XORG_PN = "xproto"
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite.inc b/meta/packages/xorg-xserver/xserver-xf86-dri-lite.inc
index 6caf889d1d..227be4ec0c 100644
--- a/meta/packages/xorg-xserver/xserver-xf86-dri-lite.inc
+++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite.inc
@@ -1,8 +1,6 @@
require xserver-xf86-common.inc
-PROVIDES += "xserver-xf86-dri-lite"
-
-PROTO_DEPS = "randrproto renderproto fixesproto damageproto xextproto xproto xf86dgaproto xf86miscproto xf86rushproto xf86vidmodeproto xf86bigfontproto compositeproto recordproto resourceproto videoproto scrnsaverproto evieext trapproto xineramaproto fontsproto kbproto inputproto bigreqsproto xcmiscproto glproto xf86driproto dri2proto"
+PROTO_DEPS = "randrproto renderproto fixesproto damageproto xextproto xproto xf86dgaproto xf86miscproto xf86rushproto xf86vidmodeproto xf86bigfontproto compositeproto recordproto resourceproto videoproto scrnsaverproto evieext trapproto xineramaproto fontsproto kbproto inputproto bigreqsproto xcmiscproto glproto"
LIB_DEPS = "pixman mesa-dri libxfont xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess openssl"
@@ -12,24 +10,28 @@ RDEPENDS = "hal xorg-minimal-fonts"
FILES_${PN} += "${bindir}/Xorg "
-EXTRA_OECONF += "--disable-cfb \
- --disable-afb \
- --disable-mfb \
+EXTRA_OECONF += "--disable-static \
+ --disable-acfb \
+ --disable-ccfb \
+ --disable-mcfb \
--disable-dga \
--disable-xinerama \
--disable-xf86misc \
--disable-xorgcfg \
+ --disable-record \
--disable-dmx \
--disable-xnest \
--disable-xvfb \
--enable-composite \
- --enable-dri \
--enable-glx-tls \
--sysconfdir=/etc/X11 \
--localstatedir=/var \
+ --with-pic \
+ --with-int10=x86emu \
--with-fontdir=/usr/share/fonts/X11 \
--with-xkb-output=/var/lib/xkb \
ac_cv_file__usr_share_sgml_X11_defs_ent=no"
# Due to mesa-dri
COMPATIBLE_HOST = '(i.86.*-linux)'
+
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
new file mode 100644
index 0000000000..565832eed8
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
@@ -0,0 +1,13 @@
+Index: git/os/osdep.h
+===================================================================
+--- git.orig/os/osdep.h 2008-10-07 18:38:21.000000000 +0100
++++ git/os/osdep.h 2008-10-07 18:39:36.000000000 +0100
+@@ -92,7 +92,7 @@
+ * like sysconf(_SC_OPEN_MAX) is not supported.
+ */
+
+-#if OPEN_MAX <= 256
++#if 0
+ #define MAXSOCKS (OPEN_MAX - 1)
+ #else
+ #define MAXSOCKS 256
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
new file mode 100755
index 0000000000..3d2fa1669a
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
@@ -0,0 +1,12 @@
+diff -urN xorg-server-1.5.99.1/hw/xfree86/dri2/dri2.c xorg-server-1.5.99.1.new/hw/xfree86/dri2/dri2.c
+--- xorg-server-1.5.99.1/hw/xfree86/dri2/dri2.c 2008-09-01 03:26:37.000000000 +0800
++++ xorg-server-1.5.99.1.new/hw/xfree86/dri2/dri2.c 2008-09-18 00:28:16.000000000 +0800
+@@ -39,7 +39,7 @@
+ #include "scrnintstr.h"
+ #include "windowstr.h"
+ #include "dri2.h"
+-#include <GL/internal/dri_sarea.h>
++//#include <GL/internal/dri_sarea.h>
+
+ #include "xf86.h"
+
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
new file mode 100755
index 0000000000..7ff3658d0c
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
@@ -0,0 +1,23 @@
+commit 67b9b3a77a8b86eef03af36a0f4be3a07411efee
+Author: Eric Anholt <eric@anholt.net>
+Date: Thu Sep 11 16:18:17 2008 -0700
+
+ Enable DRI2 build.
+
+diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
+index eff2c31..98d7ec8 100644
+--- a/hw/xfree86/Makefile.am
++++ b/hw/xfree86/Makefile.am
+@@ -4,9 +4,9 @@ if DRI
+ DRI_SUBDIR = dri
+ endif
+
+-#if DRI2
+-#DRI2_SUBDIR = dri2
+-#endif
++if DRI2
++DRI2_SUBDIR = dri2
++endif
+
+ if XF86UTILS
+ XF86UTILS_SUBDIR = utils
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
new file mode 100755
index 0000000000..8e4033e9a3
--- /dev/null
+++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
@@ -0,0 +1,37 @@
+diff --git a/os/log.c b/os/log.c
+index 0860847..2c46f1a 100644
+--- a/os/log.c
++++ b/os/log.c
+@@ -255,6 +255,32 @@ LogVWrite(int verb, const char *f, va_list args)
+ static char tmpBuffer[1024];
+ int len = 0;
+
++ struct timeval time;
++ time_t tv_sec;
++ suseconds_t tv_usec;
++ static Bool first = TRUE;
++ static time_t start_tv_sec;
++ static suseconds_t start_usec;
++ int diff_sec, diff_usec;
++
++ gettimeofday(&time, NULL);
++ tv_sec = time.tv_sec;
++ tv_usec = time.tv_usec;
++ if (first == TRUE) {
++ start_tv_sec = tv_sec;
++ start_usec = tv_usec;
++ first = FALSE;
++ }
++ diff_sec = (int)difftime(tv_sec, start_tv_sec);
++ diff_usec = (tv_usec - start_usec);
++ if (diff_usec < 0) {
++ diff_sec--;
++ diff_usec += 1000000;
++ }
++ sprintf(tmpBuffer, "[%d sec: %06d usec]", diff_sec , diff_usec);
++ len = strlen(tmpBuffer);
++ fwrite(tmpBuffer, len, 1, logFile);
++
+ /*
+ * Since a va_list can only be processed once, write the string to a
+ * buffer, and then write the buffer out to the appropriate output
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite_1.5.0.bb b/meta/packages/xorg-xserver/xserver-xf86-dri-lite_1.5.0.bb
index bc5aa493e5..c9bd3f9fbe 100644
--- a/meta/packages/xorg-xserver/xserver-xf86-dri-lite_1.5.0.bb
+++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite_1.5.0.bb
@@ -3,6 +3,10 @@ require xserver-xf86-dri-lite.inc
PE = "1"
PR = "r3"
+PROTO_DEPS += "xf86driproto"
+
SRC_URI += "file://drmfix.patch;patch=1 \
file://libdri-xinerama-symbol.patch;patch=1 "
+EXTRA_OECONF += "--enable-dri"
+
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite_git.bb b/meta/packages/xorg-xserver/xserver-xf86-dri-lite_git.bb
index e45702664b..39e286570e 100644
--- a/meta/packages/xorg-xserver/xserver-xf86-dri-lite_git.bb
+++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite_git.bb
@@ -4,8 +4,17 @@ PE = "1"
PR = "r2"
PV = "1.5.0+git${SRCREV}"
+PROTO_DEPS += "xf86driproto"
+
DEFAULT_PREFERENCE = "-1"
SRC_URI = "git://anongit.freedesktop.org/git/xorg/xserver;protocol=git \
+ file://xorg.conf \
file://libdri-xinerama-symbol.patch;patch=1"
+# Misc build failure for master HEAD
+SRC_URI += "file://fix_open_max_preprocessor_error.patch;patch=1"
+
+EXTRA_OECONF += "--enable-dri"
+
+S = "${WORKDIR}/git"