rpms/xorg-x11-drv-ati/devel radeon-modeset.patch, 1.34, 1.35 xorg-x11-drv-ati.spec, 1.152, 1.153
Dave Airlie
airlied at fedoraproject.org
Thu Mar 5 07:29:21 UTC 2009
Author: airlied
Update of /cvs/pkgs/rpms/xorg-x11-drv-ati/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv1904
Modified Files:
radeon-modeset.patch xorg-x11-drv-ati.spec
Log Message:
* Thu Mar 05 2009 Dave Airlie <airlied at redhat.com> 6.11.0-4
- modeset: fixup radeon Xv with latest kernel
radeon-modeset.patch:
Index: radeon-modeset.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/devel/radeon-modeset.patch,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- radeon-modeset.patch 3 Mar 2009 09:20:16 -0000 1.34
+++ radeon-modeset.patch 5 Mar 2009 07:28:48 -0000 1.35
@@ -1,3 +1,12 @@
+commit e66aba3c88e6bbd8abe0f481da28872fa17a4f57
+Author: Dave Airlie <airlied at redhat.com>
+Date: Thu Mar 5 16:05:41 2009 +1000
+
+ radeon: add support for relocatable CRTC inside VLINE
+
+ We cannot let userspace decide which CRTC it wants because its userspace
+ and might not own the crtc, so we need to provide a way to relocate it
+
commit 00c0032dac820986b84effdb37c5cc1884eabcaf
Author: Dave Airlie <airlied at redhat.com>
Date: Tue Mar 3 15:30:21 2009 +1000
@@ -3278,7 +3287,7 @@
+int radeon_bo_gem_name_buffer(dri_bo *bo, uint32_t *name);
+#endif
diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
-index eabd87d..582b80f 100644
+index eabd87d..8712a74 100644
--- a/src/radeon_commonfuncs.c
+++ b/src/radeon_commonfuncs.c
@@ -62,12 +62,15 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
@@ -3317,7 +3326,89 @@
OUT_ACCEL_REG(R300_GB_SELECT, 0);
OUT_ACCEL_REG(R300_GB_ENABLE, 0);
FINISH_ACCEL();
-@@ -712,7 +717,7 @@ void FUNC_NAME(RADEONWaitForIdle)(ScrnInfoPtr pScrn)
+@@ -626,6 +631,39 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
+
+ }
+
++#if defined(ACCEL_CP) && defined(XF86DRM_MODE)
++void drmmode_wait_for_vline(ScrnInfoPtr pScrn, PixmapPtr pPix,
++ int crtc, int start, int stop)
++{
++ RADEONInfoPtr info = RADEONPTR(pScrn);
++ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
++ uint32_t offset;
++ drmmode_crtc_private_ptr drmmode_crtc = xf86_config->crtc[crtc]->driver_private;
++ ACCEL_PREAMBLE();
++
++ BEGIN_ACCEL(3);
++
++ if (IS_AVIVO_VARIANT) {
++ uint32_t reg = AVIVO_D1MODE_VLINE_START_END; /* this is just a marker */
++ OUT_ACCEL_REG(reg,
++ ((start << AVIVO_D1MODE_VLINE_START_SHIFT) |
++ (stop << AVIVO_D1MODE_VLINE_END_SHIFT) |
++ AVIVO_D1MODE_VLINE_INV));
++ } else {
++ OUT_ACCEL_REG(RADEON_CRTC_GUI_TRIG_VLINE, /* another placeholder */
++ ((start << RADEON_CRTC_GUI_TRIG_VLINE_START_SHIFT) |
++ (stop << RADEON_CRTC_GUI_TRIG_VLINE_END_SHIFT) |
++ RADEON_CRTC_GUI_TRIG_VLINE_INV));
++ }
++ OUT_ACCEL_REG(RADEON_WAIT_UNTIL, (RADEON_WAIT_CRTC_VLINE |
++ RADEON_ENG_DISPLAY_SELECT_CRTC0));
++
++ OUT_RING(CP_PACKET3(RADEON_CP_PACKET3_NOP, 0));
++ OUT_RING(drmmode_crtc->mode_crtc->crtc_id);
++ FINISH_ACCEL();
++}
++#endif
++
+ /* inserts a wait for vline in the command stream */
+ void FUNC_NAME(RADEONWaitForVLine)(ScrnInfoPtr pScrn, PixmapPtr pPix,
+ int crtc, int start, int stop)
+@@ -644,16 +682,19 @@ void FUNC_NAME(RADEONWaitForVLine)(ScrnInfoPtr pScrn, PixmapPtr pPix,
+ if (!xf86_config->crtc[crtc]->enabled)
+ return;
+
++ if (info->drm_mode_setting) {
++ if (pPix != pScrn->pScreen->GetScreenPixmap(pScrn->pScreen))
++ return;
++ } else {
++ if (info->useEXA)
+ #ifdef USE_EXA
+- if (info->useEXA)
+- offset = exaGetPixmapOffset(pPix);
+- else
++ offset = exaGetPixmapOffset(pPix);
++ else
+ #endif
+- offset = pPix->devPrivate.ptr - info->FB;
+-
+- /* if drawing to front buffer */
+- if (offset != 0)
+- return;
++ offset = pPix->devPrivate.ptr - info->FB;
++ if (offset != 0)
++ return;
++ }
+
+ start = max(start, 0);
+ stop = min(stop, xf86_config->crtc[crtc]->mode.VDisplay);
+@@ -661,6 +702,13 @@ void FUNC_NAME(RADEONWaitForVLine)(ScrnInfoPtr pScrn, PixmapPtr pPix,
+ if (start > xf86_config->crtc[crtc]->mode.VDisplay)
+ return;
+
++#if defined(ACCEL_CP) && defined(XF86DRM_MODE)
++ if (info->drm_mode_setting) {
++ drmmode_wait_for_vline(pScrn, pPix, crtc, start, stop);
++ return;
++ }
++#endif
++
+ BEGIN_ACCEL(2);
+
+ if (IS_AVIVO_VARIANT) {
+@@ -712,7 +760,7 @@ void FUNC_NAME(RADEONWaitForIdle)(ScrnInfoPtr pScrn)
#ifdef ACCEL_CP
/* Make sure the CP is idle first */
Index: xorg-x11-drv-ati.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/devel/xorg-x11-drv-ati.spec,v
retrieving revision 1.152
retrieving revision 1.153
diff -u -r1.152 -r1.153
--- xorg-x11-drv-ati.spec 3 Mar 2009 09:20:16 -0000 1.152
+++ xorg-x11-drv-ati.spec 5 Mar 2009 07:28:50 -0000 1.153
@@ -5,7 +5,7 @@
Summary: Xorg X11 ati video driver
Name: xorg-x11-drv-ati
Version: 6.11.0
-Release: 3%{?dist}
+Release: 4%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
@@ -76,6 +76,9 @@
%{_mandir}/man4/radeon.4*
%changelog
+* Thu Mar 05 2009 Dave Airlie <airlied at redhat.com> 6.11.0-4
+- modeset: fixup radeon Xv with latest kernel
+
* Tue Mar 03 2009 Dave Airlie <airlied at redhat.com> 6.11.0-3
- initial support for dynamic fb resize
More information about the fedora-extras-commits
mailing list