diff options
author | Robert Bragg <bob@openedhand.com> | 2008-10-13 15:23:14 +0000 |
---|---|---|
committer | Robert Bragg <bob@openedhand.com> | 2008-10-13 15:23:14 +0000 |
commit | 10650210e775ab98f1b0bf4bd5292361f1807b0f (patch) | |
tree | 228cbf08681d0c323110f65f6b64790aa6505526 /meta/packages/xorg-driver | |
parent | 4c7fc919401ac29174e40d794e85d4d6c20de270 (diff) | |
download | openembedded-core-10650210e775ab98f1b0bf4bd5292361f1807b0f.tar.gz openembedded-core-10650210e775ab98f1b0bf4bd5292361f1807b0f.tar.bz2 openembedded-core-10650210e775ab98f1b0bf4bd5292361f1807b0f.tar.xz 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
Diffstat (limited to 'meta/packages/xorg-driver')
9 files changed, 246 insertions, 0 deletions
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 000000000..d17437db8 --- /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 000000000..e1b16788e --- /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 000000000..0bd90eaa4 --- /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 000000000..87c2a873e --- /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 000000000..f8c214931 --- /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 000000000..6cdeb3e70 --- /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 000000000..b35e43f6a --- /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 000000000..7f60295db --- /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 000000000..4df2b1cb0 --- /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" + |