xserver-xorg-video-ati: Changes to 'debian-experimental'
ChangeLog | 151 ++++++++++++++++++++++++++++++++
aclocal.m4 | 2
config.h.in | 3
configure | 65 +++++++++++++
configure.ac | 8 +
debian/changelog | 8 +
debian/control | 2
ltmain.sh | 2
src/AtomBios/includes/CD_Common_Types.h | 4
src/atombios_crtc.c | 2
src/atombios_output.c | 94 +++++++++----------
src/legacy_output.c | 4
src/radeon_accel.c | 2
src/radeon_atombios.c | 24 ++---
src/radeon_commonfuncs.c | 25 +++--
src/radeon_crtc.c | 16 +++
src/radeon_cursor.c | 31 +++++-
src/radeon_driver.c | 44 +++++++++
src/radeon_exa.c | 4
src/radeon_exa_funcs.c | 7 +
src/radeon_exa_render.c | 22 ++--
src/radeon_output.c | 53 +++++++++++
src/radeon_probe.h | 4
src/radeon_reg.h | 21 +++-
src/radeon_textured_video.c | 2
src/radeon_textured_videofuncs.c | 2
src/radeon_video.c | 17 ++-
27 files changed, 516 insertions(+), 103 deletions(-)
New commits:
commit 647d94a74775a121104f4c6cb7f7792a88f84500
Author: Brice Goglin <bgoglin@debian.org>
Date: Mon May 12 13:42:04 2008 +0200
Prepare changelog for upload
diff --git a/debian/changelog b/debian/changelog
index 22c7ddb..a2a8f1f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
-xserver-xorg-video-ati (1:6.8.1~git20080512.94bf8f01-1) UNRELEASED; urgency=low
+xserver-xorg-video-ati (1:6.8.1~git20080512.94bf8f01-1) experimental; urgency=low
* New upstream snapshot, up to commit 94bf8f01.
+ Fix some DPMS-related brief blanking, closes: #467105.
* Build-depend on dpkg-dev >= 1.14.17 for dpkg-shlibdeps --warnings.
- -- Brice Goglin <bgoglin@debian.org> Mon, 12 May 2008 13:40:44 +0200
+ -- Brice Goglin <bgoglin@debian.org> Mon, 12 May 2008 13:41:04 +0200
xserver-xorg-video-ati (1:6.8.1~git20080417.c5d62fa0-1) experimental; urgency=low
commit d246a462e5b10110ec36aca9542584d08d0ed0b0
Author: Brice Goglin <bgoglin@debian.org>
Date: Mon May 12 13:41:00 2008 +0200
Build-depend on dpkg-dev >= 1.14.17 for dpkg-shlibdeps --warnings
diff --git a/debian/changelog b/debian/changelog
index 5b41b2f..22c7ddb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,8 +2,9 @@ xserver-xorg-video-ati (1:6.8.1~git20080512.94bf8f01-1) UNRELEASED; urgency=low
* New upstream snapshot, up to commit 94bf8f01.
+ Fix some DPMS-related brief blanking, closes: #467105.
+ * Build-depend on dpkg-dev >= 1.14.17 for dpkg-shlibdeps --warnings.
- -- Brice Goglin <bgoglin@debian.org> Mon, 12 May 2008 13:37:22 +0200
+ -- Brice Goglin <bgoglin@debian.org> Mon, 12 May 2008 13:40:44 +0200
xserver-xorg-video-ati (1:6.8.1~git20080417.c5d62fa0-1) experimental; urgency=low
diff --git a/debian/control b/debian/control
index cd4a644..b6277b7 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,7 @@ Section: x11
Priority: optional
Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Uploaders: David Nusinow <dnusinow@debian.org>, Drew Parsons <dparsons@debian.org>, Brice Goglin <bgoglin@debian.org>
-Build-Depends: debhelper (>= 5), pkg-config, xserver-xorg-dev (>= 2:1.4), x11proto-gl-dev, x11proto-xext-dev, x11proto-core-dev, x11proto-video-dev, x11proto-xinerama-dev, x11proto-xf86misc-dev, libgl1-mesa-dev | libgl-dev, x11proto-fonts-dev, x11proto-randr-dev (>= 1.2), x11proto-render-dev, libdrm-dev (>> 2.2) [!hurd-i386], x11proto-xf86dri-dev, quilt
+Build-Depends: debhelper (>= 5), pkg-config, xserver-xorg-dev (>= 2:1.4), x11proto-gl-dev, x11proto-xext-dev, x11proto-core-dev, x11proto-video-dev, x11proto-xinerama-dev, x11proto-xf86misc-dev, libgl1-mesa-dev | libgl-dev, x11proto-fonts-dev, x11proto-randr-dev (>= 1.2), x11proto-render-dev, libdrm-dev (>> 2.2) [!hurd-i386], x11proto-xf86dri-dev, quilt, dpkg-dev (>= 1.14.17)
Standards-Version: 3.7.3
Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-ati
Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-ati.git
commit 40b26b2e133568a725e9fa9b0ee620ecd5879d18
Author: Brice Goglin <bgoglin@debian.org>
Date: Mon May 12 13:38:30 2008 +0200
New upstream release snapshot
diff --git a/ChangeLog b/ChangeLog
index 27b81ae..3a7699d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,154 @@
+commit 94bf8f01bd43cb103fffecfe04d04a214f892baf
+Author: Dave Airlie <airlied@redhat.com>
+Date: Mon May 12 20:02:51 2008 +1000
+
+ radeon: fix set_cursor_colours remove fb offset
+
+commit 1d0f1d31e2ed1d91ee87cb3e02ce48c8c07aa418
+Author: Dave Airlie <airlied@redhat.com>
+Date: Mon May 12 15:44:35 2008 +1000
+
+ radeon: rs485 vs rs485m.. mobile? non-mobile? bi?
+
+ So it appears we have in the wild two chipsets with the same PCI ID (0x1002:0x5974)
+ that are mobile and non-mobile.
+
+ the RH bug references is a desktop system.
+ The Dell Vostro 1100 also has this chipset with LVDS bits.
+
+commit 25e0c3945a51ae8c14b3a847ec75a256e1397f24
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon May 12 10:28:33 2008 +1000
+
+ radeon: add initial support for cloning outputs. (single-CRTC cards only)
+
+ airlied - This code was originally written by Alex, and I've modified it to
+ only run on single-CRTC cards for now until we can test it some more.
+
+commit 94405eb1c9e4e0ababc6aef03b753d6ed9eb7838
+Author: Alex Deucher <alex@t41p.hsd1.va.comcast.net>
+Date: Fri May 9 05:28:44 2008 -0400
+
+ RADEON: fixup ifdef from last commit
+
+commit 18e20bc22a55ecfee9798c01079d7b24d19f0051
+Author: Alex Deucher <alex@t41p.hsd1.va.comcast.net>
+Date: Thu May 8 08:45:51 2008 -0400
+
+ RADEON: disable MMIO paths for EXA composite/texvid on IGP/R5xx
+
+ The MMIO paths eventually lead to a hang on r5xx/IGP. I haven't
+ been able to find out why yet.
+
+commit c3532268875fd24e6519bea2fb1b814d612bbdb4
+Author: Dave Airlie <airlied@linux.ie>
+Date: Wed May 7 02:37:18 2008 +1000
+
+ radeon: fix zaphod EXA with texture video
+
+commit ffc437f3606ab8ceba1ff152e4bb08988a58b54c
+Author: Dave Airlie <airlied@linux.ie>
+Date: Wed May 7 02:30:28 2008 +1000
+
+ avivo: fix zaphod cursor in theory
+
+commit e36ef14e3a1087e1fe41baa26ade2937f396001f
+Author: Dave Airlie <airlied@linux.ie>
+Date: Wed May 7 01:39:28 2008 +1000
+
+ radeon: fix textured-xv on zaphod
+
+commit 8fc19bee27c0f151d2ab3354f6ac0992b358436d
+Author: Dave Airlie <airlied@linux.ie>
+Date: Wed May 7 01:38:24 2008 +1000
+
+ radeon: zaphod: fix render accel for EXA
+
+commit fc41b9042a5220a8419cc7b69ca3850cae6b903c
+Author: Dave Airlie <airlied@linux.ie>
+Date: Wed May 7 01:32:23 2008 +1000
+
+ radeon: fix EXA pixmap offset on zaphod
+
+commit 4568cb820d567c6909a4be956d7e79b91232535e
+Author: Dave Airlie <airlied@linux.ie>
+Date: Wed May 7 01:19:39 2008 +1000
+
+ radeon: zaphod fixes for pciaccess not allowing multiple MMIO maps
+
+commit ca81fa086b21633a7fd926833fb6d1d4fa080646
+Author: Dave Airlie <airlied@linux.ie>
+Date: Wed May 7 01:12:01 2008 +1000
+
+ radeon: zaphod fix for cursor on second head
+
+ We don't need to add fbOffset here as the mmap we have of the framebuffer
+ starts half way.
+
+commit 24b60c8965f6a0b3f0c2bb1e7236b4d6642c5918
+Author: Julien Cristau <jcristau@debian.org>
+Date: Fri May 2 15:30:45 2008 -0400
+
+ Add a test for __GLIBC__ to CD_Common_Types.h.
+
+ Atombios redefines the standard types but the definitions conflict
+ with the ones from glibc (causes build failures on GNU/Hurd
+ and GNU/kFreeBSD).
+
+commit f051359ac09c6b9416e39b9ca7d9dc0880aa1557
+Author: thegraze <thegraze@googlemail.com>
+Date: Fri May 2 14:02:16 2008 -0400
+
+ ATOM: add support for DragonFlyBSD
+
+commit 3d469cbc3225d890a895dac7cbc1ab7e08054b48
+Author: Alex Deucher <alex@cube.(none)>
+Date: Wed Apr 30 18:33:04 2008 -0400
+
+ RADEON: lock the cursors when updating
+
+ this should fix occasional corruption seen when updating
+ the cursor.
+
+commit 445b71021843665ba32f37b2ce5c9d2857c07cc7
+Author: Alex Deucher <alex@cube.(none)>
+Date: Tue Apr 29 21:01:41 2008 -0400
+
+ RADEON: assorted fixes
+
+ - free rotate pixmaps on VT switch
+ - save crtc/output status so we only turn on
+ crtcs/outputs if they are off
+ - show/hide cursors when changing modes
+
+commit 070cce5255a5c311f9d8b85ec54bd56655014933
+Author: Stephan Wolf <stephan@letzte-bankreihe.de>
+Date: Mon Apr 28 11:26:37 2008 -0400
+
+ R3xx+: further fix for IGP chips
+
+ see bug 15538
+
+commit 211e0041c7fc2df494b77428553943a2b526ee4e
+Author: Alex Deucher <alex@cube.(none)>
+Date: Sun Apr 27 21:08:00 2008 -0400
+
+ IGP: fix EXA composite corruption
+
+commit 656b06bdde129ca4fc370f5a2cf7311c9179b0ff
+Author: Alex Deucher <alex@botch2.com>
+Date: Sun Apr 27 20:20:49 2008 -0400
+
+ RADEON: remove duplicate register define
+
+ Also add more bit defs to wait_until register
+
+commit 8a9820a3aa49bc667f90ac291a27e4d7b4ae38b3
+Author: Alex Deucher <alex@botch2.com>
+Date: Sun Apr 27 19:02:22 2008 -0400
+
+ RADEON: decrease crtc/output verbosity
+
commit c5d62fa0e8f52c3264ff9db3ff10cdf5a806bfc0
Author: Owen Taylor <otaylor@huygens.home.fishsoup.net>
Date: Thu Apr 17 13:14:53 2008 +0200
diff --git a/aclocal.m4 b/aclocal.m4
index ebc910c..62b902b 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -21,7 +21,7 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-# serial 52 Debian 1.5.26-3 AC_PROG_LIBTOOL
+# serial 52 Debian 1.5.26-4 AC_PROG_LIBTOOL
# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
diff --git a/config.h.in b/config.h.in
index 91eecd1..e04b01a 100644
--- a/config.h.in
+++ b/config.h.in
@@ -11,6 +11,9 @@
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
+/* have new FreeShadow API */
+#undef HAVE_FREE_SHADOW
+
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
diff --git a/configure b/configure
index 6262e98..2947b1a 100755
--- a/configure
+++ b/configure
@@ -22161,6 +22161,71 @@ _ACEOF
fi
+{ echo "$as_me:$LINENO: checking whether xf86RotateFreeShadow is declared" >&5
+echo $ECHO_N "checking whether xf86RotateFreeShadow is declared... $ECHO_C" >&6; }
+if test "${ac_cv_have_decl_xf86RotateFreeShadow+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <xorg-server.h>
+ #include <windowstr.h>
+ #include <xf86Crtc.h>
+
+int
+main ()
+{
+#ifndef xf86RotateFreeShadow
+ (void) xf86RotateFreeShadow;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_have_decl_xf86RotateFreeShadow=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_have_decl_xf86RotateFreeShadow=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_xf86RotateFreeShadow" >&5
+echo "${ECHO_T}$ac_cv_have_decl_xf86RotateFreeShadow" >&6; }
+if test $ac_cv_have_decl_xf86RotateFreeShadow = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_FREE_SHADOW 1
+_ACEOF
+
+fi
+
+
+
{ echo "$as_me:$LINENO: checking whether XSERVER_LIBPCIACCESS is declared" >&5
echo $ECHO_N "checking whether XSERVER_LIBPCIACCESS is declared... $ECHO_C" >&6; }
if test "${ac_cv_have_decl_XSERVER_LIBPCIACCESS+set}" = set; then
diff --git a/debian/changelog b/debian/changelog
index 0e951f8..5b41b2f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-video-ati (1:6.8.1~git20080512.94bf8f01-1) UNRELEASED; urgency=low
+
+ * New upstream snapshot, up to commit 94bf8f01.
+ + Fix some DPMS-related brief blanking, closes: #467105.
+
+ -- Brice Goglin <bgoglin@debian.org> Mon, 12 May 2008 13:37:22 +0200
+
xserver-xorg-video-ati (1:6.8.1~git20080417.c5d62fa0-1) experimental; urgency=low
* New upstream snapshot, up to commit c5d62fa0.
diff --git a/ltmain.sh b/ltmain.sh
index bba8b1c..0bf3848 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -43,7 +43,7 @@ EXIT_FAILURE=1
PROGRAM=ltmain.sh
PACKAGE=libtool
-VERSION="1.5.26 Debian 1.5.26-3"
+VERSION="1.5.26 Debian 1.5.26-4"
TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
commit 94bf8f01bd43cb103fffecfe04d04a214f892baf
Author: Dave Airlie <airlied@redhat.com>
Date: Mon May 12 20:02:51 2008 +1000
radeon: fix set_cursor_colours remove fb offset
diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c
index 42f9a85..d68d64b 100644
--- a/src/radeon_cursor.c
+++ b/src/radeon_cursor.c
@@ -256,7 +256,7 @@ radeon_crtc_set_cursor_colors (xf86CrtcPtr crtc, int bg, int fg)
ScrnInfoPtr pScrn = crtc->scrn;
RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
RADEONInfoPtr info = RADEONPTR(pScrn);
- CARD32 *pixels = (CARD32 *)(pointer)(info->FB + radeon_crtc->cursor_offset + pScrn->fbOffset);
+ CARD32 *pixels = (CARD32 *)(pointer)(info->FB + radeon_crtc->cursor_offset);
int pixel, i;
CURSOR_SWAPPING_DECL_MMIO
commit 1d0f1d31e2ed1d91ee87cb3e02ce48c8c07aa418
Author: Dave Airlie <airlied@redhat.com>
Date: Mon May 12 15:44:35 2008 +1000
radeon: rs485 vs rs485m.. mobile? non-mobile? bi?
So it appears we have in the wild two chipsets with the same PCI ID (0x1002:0x5974)
that are mobile and non-mobile.
the RH bug references is a desktop system.
The Dell Vostro 1100 also has this chipset with LVDS bits.
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 2701f57..2acc1e9 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1624,6 +1624,13 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "DELL server detected, force to special setup\n");
}
break;
+ case PCI_CHIP_RS482_5974:
+ /* RH BZ 444586 - non mobility version
+ * Dell appear to have the Vostro 1100 with a mobility part with the same pci-id */
+ if ((PCI_SUB_VENDOR_ID(info->PciInfo) == 0x1462) &&
+ (PCI_SUB_DEVICE_ID(info->PciInfo) == 0x7141)) {
+ info->IsMobility = FALSE;
+ }
default:
break;
}
commit 25e0c3945a51ae8c14b3a847ec75a256e1397f24
Author: Alex Deucher <alexdeucher@gmail.com>
Date: Mon May 12 10:28:33 2008 +1000
radeon: add initial support for cloning outputs. (single-CRTC cards only)
airlied - This code was originally written by Alex, and I've modified it to
only run on single-CRTC cards for now until we can test it some more.
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 907d824..9b2494b 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -2676,10 +2676,48 @@ static RADEONMacModel RADEONDetectMacModel(ScrnInfoPtr pScrn)
#endif /* __powerpc__ */
+static int
+radeon_output_clones (ScrnInfoPtr pScrn, xf86OutputPtr output)
+{
+ RADEONOutputPrivatePtr radeon_output = output->driver_private;
+ RADEONEntPtr pRADEONEnt = RADEONEntPriv(output->scrn);
+ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR (pScrn);
+ int o;
+ int index_mask = 0;
+
+ /*
+ * cards without a CRTC2 really need cloning enabled
+ * for cards with 2 CRTC this may need more testing
+ */
+ if (pRADEONEnt->HasCRTC2)
+ return index_mask;
+
+ /* LVDS is too wacky */
+ if (radeon_output->type == OUTPUT_LVDS)
+ return index_mask;
+
+ for (o = 0; o < config->num_output; o++) {
+ xf86OutputPtr clone = config->output[o];
+ RADEONOutputPrivatePtr radeon_clone = clone->driver_private;
+ if (output == clone) /* don't clone yourself */
+ continue;
+ else if (radeon_clone->type == OUTPUT_LVDS) /* LVDS */
+ continue;
+ else if ((radeon_output->DACType == DAC_TVDAC) &&
+ (radeon_clone->DACType == DAC_TVDAC)) /* shared tvdac */
+ continue;
+ else
+ index_mask |= (1 << o);
+ }
+
+ return index_mask;
+}
+
/*
* initialise the static data sos we don't have to re-do at randr change */
Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
{
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
RADEONInfoPtr info = RADEONPTR(pScrn);
RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
xf86OutputPtr output;
@@ -2881,6 +2919,12 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
}
}
+ for (i = 0; i < xf86_config->num_output; i++) {
+ xf86OutputPtr output = xf86_config->output[i];
+
+ output->possible_clones = radeon_output_clones(pScrn, output);
+ }
+
return TRUE;
}
commit 94405eb1c9e4e0ababc6aef03b753d6ed9eb7838
Author: Alex Deucher <alex@t41p.hsd1.va.comcast.net>
Date: Fri May 9 05:28:44 2008 -0400
RADEON: fixup ifdef from last commit
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index ab890ad..1a55e28 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -537,9 +537,11 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
"unsupported on R600 and newer cards.\n");
else if (IS_R300_3D || IS_R500_3D) {
+ if ((info->ChipFamily < CHIP_FAMILY_RS400)
#ifdef XF86DRI
- if ((info->ChipFamily < CHIP_FAMILY_RS400) || (info->directRenderingEnabled)) {
+ || (info->directRenderingEnabled)
#endif
+ ) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
"enabled for R300/R400/R500 type cards.\n");
info->exa->CheckComposite = R300CheckComposite;
@@ -547,10 +549,8 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
FUNC_NAME(R300PrepareComposite);
info->exa->Composite = FUNC_NAME(RadeonComposite);
info->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite);
-#ifdef XF86DRI
} else
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "EXA Composite requires CP on R5xx/IGP\n");
-#endif
} else if ((info->ChipFamily == CHIP_FAMILY_RV250) ||
(info->ChipFamily == CHIP_FAMILY_RV280) ||
(info->ChipFamily == CHIP_FAMILY_RS300) ||
diff --git a/src/radeon_video.c b/src/radeon_video.c
index 1c13dcd..4cd3513 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -286,19 +286,19 @@ void RADEONInitVideo(ScreenPtr pScreen)
}
if (info->ChipFamily != CHIP_FAMILY_RV250) {
+ if ((info->ChipFamily < CHIP_FAMILY_RS400)
#ifdef XF86DRI
- if ((info->ChipFamily < CHIP_FAMILY_RS400) || (info->directRenderingEnabled)) {
+ || (info->directRenderingEnabled)
#endif
- texturedAdaptor = RADEONSetupImageTexturedVideo(pScreen);
- if (texturedAdaptor != NULL) {
- adaptors[num_adaptors++] = texturedAdaptor;
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Set up textured video\n");
+ ) {
+ texturedAdaptor = RADEONSetupImageTexturedVideo(pScreen);
+ if (texturedAdaptor != NULL) {
+ adaptors[num_adaptors++] = texturedAdaptor;
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Set up textured video\n");
+ } else
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Failed to set up textured video\n");
} else
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Failed to set up textured video\n");
-#ifdef XF86DRI
- } else
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Textured video requires CP on R5xx/IGP\n");
-#endif
} else
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Textured video disabled on RV250 due to HW bug\n");
commit 18e20bc22a55ecfee9798c01079d7b24d19f0051
Author: Alex Deucher <alex@t41p.hsd1.va.comcast.net>
Date: Thu May 8 08:45:51 2008 -0400
RADEON: disable MMIO paths for EXA composite/texvid on IGP/R5xx
The MMIO paths eventually lead to a hang on r5xx/IGP. I haven't
been able to find out why yet.
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index 272ffa9..ab890ad 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -537,6 +537,9 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
"unsupported on R600 and newer cards.\n");
else if (IS_R300_3D || IS_R500_3D) {
+#ifdef XF86DRI
+ if ((info->ChipFamily < CHIP_FAMILY_RS400) || (info->directRenderingEnabled)) {
+#endif
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
"enabled for R300/R400/R500 type cards.\n");
info->exa->CheckComposite = R300CheckComposite;
@@ -544,6 +547,10 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
FUNC_NAME(R300PrepareComposite);
info->exa->Composite = FUNC_NAME(RadeonComposite);
info->exa->DoneComposite = FUNC_NAME(RadeonDoneComposite);
+#ifdef XF86DRI
+ } else
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "EXA Composite requires CP on R5xx/IGP\n");
+#endif
} else if ((info->ChipFamily == CHIP_FAMILY_RV250) ||
(info->ChipFamily == CHIP_FAMILY_RV280) ||
(info->ChipFamily == CHIP_FAMILY_RS300) ||
diff --git a/src/radeon_video.c b/src/radeon_video.c
index 216cd65..1c13dcd 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -286,12 +286,19 @@ void RADEONInitVideo(ScreenPtr pScreen)
}
if (info->ChipFamily != CHIP_FAMILY_RV250) {
+#ifdef XF86DRI
+ if ((info->ChipFamily < CHIP_FAMILY_RS400) || (info->directRenderingEnabled)) {
+#endif
texturedAdaptor = RADEONSetupImageTexturedVideo(pScreen);
if (texturedAdaptor != NULL) {
adaptors[num_adaptors++] = texturedAdaptor;
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Set up textured video\n");
} else
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Failed to set up textured video\n");
+#ifdef XF86DRI
+ } else
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Textured video requires CP on R5xx/IGP\n");
+#endif
} else
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Textured video disabled on RV250 due to HW bug\n");
commit c3532268875fd24e6519bea2fb1b814d612bbdb4
Author: Dave Airlie <airlied@linux.ie>
Date: Wed May 7 02:37:18 2008 +1000
radeon: fix zaphod EXA with texture video
diff --git a/src/radeon_exa.c b/src/radeon_exa.c
index 9e5fc5b..fa6ac0d 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -402,7 +402,7 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
else
screen_size = pScrn->virtualY * byteStride;
- info->exa->memoryBase = info->FB + pScrn->fbOffset;
+ info->exa->memoryBase = info->FB;
info->exa->memorySize = info->FbMapSize - info->FbSecureSize;
info->exa->offScreenBase = screen_size;
diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c
index 0a6598d..5d153e7 100644
--- a/src/radeon_textured_video.c
+++ b/src/radeon_textured_video.c
@@ -226,7 +226,7 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
left = (x1 >> 16) & ~1;
npixels = ((((x2 + 0xffff) >> 16) + 1) & ~1) - left;
- pPriv->src_offset = pPriv->video_offset + info->fbLocation;
+ pPriv->src_offset = pPriv->video_offset + info->fbLocation + pScrn->fbOffset;
pPriv->src_addr = (CARD8 *)(info->FB + pPriv->video_offset + (top * dstPitch));
pPriv->src_pitch = dstPitch;
pPriv->size = size;
commit ffc437f3606ab8ceba1ff152e4bb08988a58b54c
Author: Dave Airlie <airlied@linux.ie>
Date: Wed May 7 02:30:28 2008 +1000
avivo: fix zaphod cursor in theory
diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c
index 983aefb..42f9a85 100644
--- a/src/radeon_cursor.c
+++ b/src/radeon_cursor.c
@@ -92,6 +92,7 @@
static void
avivo_setup_cursor(xf86CrtcPtr crtc, Bool enable)
{
+ ScrnInfoPtr pScrn = crtc->scrn;
RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
RADEONInfoPtr info = RADEONPTR(crtc->scrn);
unsigned char *RADEONMMIO = info->MMIO;
@@ -100,7 +101,7 @@ avivo_setup_cursor(xf86CrtcPtr crtc, Bool enable)
if (enable) {
OUTREG(AVIVO_D1CUR_SURFACE_ADDRESS + radeon_crtc->crtc_offset,
- info->fbLocation + radeon_crtc->cursor_offset);
+ info->fbLocation + radeon_crtc->cursor_offset + pScrn->fbOffset);
OUTREG(AVIVO_D1CUR_SIZE + radeon_crtc->crtc_offset,
((CURSOR_WIDTH - 1) << 16) | (CURSOR_HEIGHT - 1));
OUTREG(AVIVO_D1CUR_CONTROL + radeon_crtc->crtc_offset,
commit e36ef14e3a1087e1fe41baa26ade2937f396001f
Author: Dave Airlie <airlied@linux.ie>
Date: Wed May 7 01:39:28 2008 +1000
radeon: fix textured-xv on zaphod
diff --git a/src/radeon_textured_videofuncs.c b/src/radeon_textured_videofuncs.c
index f7069f0..b0286a6 100644
--- a/src/radeon_textured_videofuncs.c
+++ b/src/radeon_textured_videofuncs.c
@@ -88,7 +88,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
#ifdef USE_EXA
if (info->useEXA) {
- dst_offset = exaGetPixmapOffset(pPixmap) + info->fbLocation;
+ dst_offset = exaGetPixmapOffset(pPixmap) + info->fbLocation + pScrn->fbOffset;
dst_pitch = exaGetPixmapPitch(pPixmap);
} else
#endif
commit 8fc19bee27c0f151d2ab3354f6ac0992b358436d
Author: Dave Airlie <airlied@linux.ie>
Date: Wed May 7 01:38:24 2008 +1000
radeon: zaphod: fix render accel for EXA
diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index ec3c06d..54b0272 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -362,7 +362,7 @@ static Bool FUNC_NAME(R100TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
ACCEL_PREAMBLE();
txpitch = exaGetPixmapPitch(pPix);
- txoffset = exaGetPixmapOffset(pPix) + info->fbLocation;
+ txoffset = exaGetPixmapOffset(pPix) + info->fbLocation + pScrn->fbOffset;
if ((txoffset & 0x1f) != 0)
RADEON_FALLBACK(("Bad texture offset 0x%x\n", (int)txoffset));
@@ -544,13 +544,13 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op,
pixel_shift = pDst->drawable.bitsPerPixel >> 4;
- dst_offset = exaGetPixmapOffset(pDst) + info->fbLocation;
+ dst_offset = exaGetPixmapOffset(pDst) + info->fbLocation + pScrn->fbOffset;
dst_pitch = exaGetPixmapPitch(pDst);
colorpitch = dst_pitch >> pixel_shift;
if (RADEONPixmapIsColortiled(pDst))
colorpitch |= RADEON_COLOR_TILE_ENABLE;
- dst_offset = exaGetPixmapOffset(pDst) + info->fbLocation;
+ dst_offset = exaGetPixmapOffset(pDst) + info->fbLocation + pScrn->fbOffset;
dst_pitch = exaGetPixmapPitch(pDst);
if ((dst_offset & 0x0f) != 0)
RADEON_FALLBACK(("Bad destination offset 0x%x\n", (int)dst_offset));
@@ -675,7 +675,7 @@ static Bool FUNC_NAME(R200TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
ACCEL_PREAMBLE();
txpitch = exaGetPixmapPitch(pPix);
- txoffset = exaGetPixmapOffset(pPix) + info->fbLocation;
+ txoffset = exaGetPixmapOffset(pPix) + info->fbLocation + pScrn->fbOffset;
if ((txoffset & 0x1f) != 0)
RADEON_FALLBACK(("Bad texture offset 0x%x\n", (int)txoffset));
@@ -843,7 +843,7 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture,
pixel_shift = pDst->drawable.bitsPerPixel >> 4;
- dst_offset = exaGetPixmapOffset(pDst) + info->fbLocation;
+ dst_offset = exaGetPixmapOffset(pDst) + info->fbLocation + pScrn->fbOffset;
dst_pitch = exaGetPixmapPitch(pDst);
colorpitch = dst_pitch >> pixel_shift;
if (RADEONPixmapIsColortiled(pDst))
@@ -1001,7 +1001,7 @@ static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
TRACE;
txpitch = exaGetPixmapPitch(pPix);
- txoffset = exaGetPixmapOffset(pPix) + info->fbLocation;
+ txoffset = exaGetPixmapOffset(pPix) + info->fbLocation + pScrn->fbOffset;
if ((txoffset & 0x1f) != 0)
RADEON_FALLBACK(("Bad texture offset 0x%x\n", (int)txoffset));
@@ -1198,7 +1198,7 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
pixel_shift = pDst->drawable.bitsPerPixel >> 4;
- dst_offset = exaGetPixmapOffset(pDst) + info->fbLocation;
+ dst_offset = exaGetPixmapOffset(pDst) + info->fbLocation + pScrn->fbOffset;
dst_pitch = exaGetPixmapPitch(pDst);
colorpitch = dst_pitch >> pixel_shift;
commit fc41b9042a5220a8419cc7b69ca3850cae6b903c
Author: Dave Airlie <airlied@linux.ie>
Date: Wed May 7 01:32:23 2008 +1000
radeon: fix EXA pixmap offset on zaphod
diff --git a/src/radeon_exa.c b/src/radeon_exa.c
index a6ededa..9e5fc5b 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -189,7 +189,7 @@ Bool RADEONGetPixmapOffsetPitch(PixmapPtr pPix, CARD32 *pitch_offset)
if (bpp == 24)
bpp = 8;
- offset = exaGetPixmapOffset(pPix) + info->fbLocation;
+ offset = exaGetPixmapOffset(pPix) + info->fbLocation + pScrn->fbOffset;
pitch = exaGetPixmapPitch(pPix);
return RADEONGetOffsetPitch(pPix, bpp, pitch_offset, offset, pitch);
commit 4568cb820d567c6909a4be956d7e79b91232535e
Author: Dave Airlie <airlied@linux.ie>
Date: Wed May 7 01:19:39 2008 +1000
radeon: zaphod fixes for pciaccess not allowing multiple MMIO maps
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 202a190..2701f57 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -357,6 +357,12 @@ static void RADEONFreeRec(ScrnInfoPtr pScrn)
static Bool RADEONMapMMIO(ScrnInfoPtr pScrn)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
+ RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
+
+ if (pRADEONEnt->MMIO) {
+ info->MMIO = pRADEONEnt->MMIO;
+ return TRUE;
+ }
#ifndef XSERVER_LIBPCIACCESS
@@ -367,7 +373,6 @@ static Bool RADEONMapMMIO(ScrnInfoPtr pScrn)
info->MMIOSize);
if (!info->MMIO) return FALSE;
-
#else
void** result = (void**)&info->MMIO;
@@ -386,6 +391,7 @@ static Bool RADEONMapMMIO(ScrnInfoPtr pScrn)
#endif
+ pRADEONEnt->MMIO = info->MMIO;
return TRUE;
}
@@ -395,6 +401,13 @@ static Bool RADEONMapMMIO(ScrnInfoPtr pScrn)
static Bool RADEONUnmapMMIO(ScrnInfoPtr pScrn)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
+ RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
+
+ if (info->IsPrimary || info->IsSecondary) {
+ /* never unmap on zaphod */
+ info->MMIO = NULL;
+ return TRUE;
+ }
#ifndef XSERVER_LIBPCIACCESS
xf86UnMapVidMem(pScrn->scrnIndex, info->MMIO, info->MMIOSize);
@@ -402,6 +415,7 @@ static Bool RADEONUnmapMMIO(ScrnInfoPtr pScrn)
pci_device_unmap_range(info->PciInfo, info->MMIO, info->MMIOSize);
#endif
+ pRADEONEnt->MMIO = NULL;
info->MMIO = NULL;
return TRUE;
}
diff --git a/src/radeon_probe.h b/src/radeon_probe.h
index 7983970..f03e997 100644
--- a/src/radeon_probe.h
+++ b/src/radeon_probe.h
@@ -588,6 +588,7 @@ typedef struct
RADEONSaveRec ModeReg; /* Current mode */
RADEONSaveRec SavedReg; /* Original (text) mode */
+ void *MMIO; /* Map of MMIO region */
} RADEONEntRec, *RADEONEntPtr;
/* radeon_probe.c */
commit ca81fa086b21633a7fd926833fb6d1d4fa080646
Author: Dave Airlie <airlied@linux.ie>
Date: Wed May 7 01:12:01 2008 +1000
radeon: zaphod fix for cursor on second head
We don't need to add fbOffset here as the mmap we have of the framebuffer
starts half way.
diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c
index b82484e..983aefb 100644
--- a/src/radeon_cursor.c
+++ b/src/radeon_cursor.c
@@ -298,7 +298,7 @@ radeon_crtc_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
RADEONInfoPtr info = RADEONPTR(pScrn);
CURSOR_SWAPPING_DECL_MMIO
- CARD32 *d = (CARD32 *)(pointer)(info->FB + radeon_crtc->cursor_offset + pScrn->fbOffset);
+ CARD32 *d = (CARD32 *)(pointer)(info->FB + radeon_crtc->cursor_offset);
RADEONCTRACE(("RADEONLoadCursorARGB\n"));
commit 24b60c8965f6a0b3f0c2bb1e7236b4d6642c5918
Author: Julien Cristau <jcristau@debian.org>
Date: Fri May 2 15:30:45 2008 -0400
Add a test for __GLIBC__ to CD_Common_Types.h.
Atombios redefines the standard types but the definitions conflict
with the ones from glibc (causes build failures on GNU/Hurd
and GNU/kFreeBSD).
diff --git a/src/AtomBios/includes/CD_Common_Types.h b/src/AtomBios/includes/CD_Common_Types.h
index e80be23..c60b652 100644
--- a/src/AtomBios/includes/CD_Common_Types.h
+++ b/src/AtomBios/includes/CD_Common_Types.h
@@ -51,7 +51,9 @@ Revision History:
// typedef __int64 int64_t;
typedef unsigned __int32 uint32_t;
typedef __int32 int32_t;
-#elif defined (__linux__) || defined (__NetBSD__) || defined(__sun) || defined(__OpenBSD__) || defined (__FreeBSD__) || defined(__DragonFly__)
+#elif defined (__linux__) || defined (__NetBSD__) \
+ || defined(__sun) || defined(__OpenBSD__) \
+ || defined (__FreeBSD__) || defined(__DragonFly__) || defined(__GLIBC__)
typedef unsigned int uint32_t;
typedef int int32_t;
#else
commit f051359ac09c6b9416e39b9ca7d9dc0880aa1557
Author: thegraze <thegraze@googlemail.com>
Date: Fri May 2 14:02:16 2008 -0400
ATOM: add support for DragonFlyBSD
diff --git a/src/AtomBios/includes/CD_Common_Types.h b/src/AtomBios/includes/CD_Common_Types.h
index bc18c42..e80be23 100644
--- a/src/AtomBios/includes/CD_Common_Types.h
+++ b/src/AtomBios/includes/CD_Common_Types.h
@@ -51,7 +51,7 @@ Revision History:
// typedef __int64 int64_t;
typedef unsigned __int32 uint32_t;
typedef __int32 int32_t;
-#elif defined (__linux__) || defined (__NetBSD__) || defined(__sun) || defined(__OpenBSD__) || defined (__FreeBSD__)
+#elif defined (__linux__) || defined (__NetBSD__) || defined(__sun) || defined(__OpenBSD__) || defined (__FreeBSD__) || defined(__DragonFly__)
typedef unsigned int uint32_t;
typedef int int32_t;
#else
commit 3d469cbc3225d890a895dac7cbc1ab7e08054b48
Author: Alex Deucher <alex@cube.(none)>
Date: Wed Apr 30 18:33:04 2008 -0400
RADEON: lock the cursors when updating
this should fix occasional corruption seen when updating
the cursor.
diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c
index de64dee..b82484e 100644
--- a/src/radeon_cursor.c
+++ b/src/radeon_cursor.c
@@ -108,6 +108,24 @@ avivo_setup_cursor(xf86CrtcPtr crtc, Bool enable)
}
}
+static void
+avivo_lock_cursor(xf86CrtcPtr crtc, Bool lock)
+{
+ RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
+ RADEONInfoPtr info = RADEONPTR(crtc->scrn);
+ unsigned char *RADEONMMIO = info->MMIO;
+ CARD32 tmp;
+
+ tmp = INREG(AVIVO_D1CUR_UPDATE + radeon_crtc->crtc_offset);
+
+ if (lock)
+ tmp |= AVIVO_D1CURSOR_UPDATE_LOCK;
+ else
+ tmp &= ~AVIVO_D1CURSOR_UPDATE_LOCK;
+
+ OUTREG(AVIVO_D1CUR_UPDATE + radeon_crtc->crtc_offset, tmp);
+}
+
void
radeon_crtc_show_cursor (xf86CrtcPtr crtc)
{
@@ -118,10 +136,12 @@ radeon_crtc_show_cursor (xf86CrtcPtr crtc)
unsigned char *RADEONMMIO = info->MMIO;
if (IS_AVIVO_VARIANT) {
+ avivo_lock_cursor(crtc, TRUE);
OUTREG(AVIVO_D1CUR_CONTROL + radeon_crtc->crtc_offset,
Reply to: