ChangeLog             |  157 +++++++++++
 configure.ac          |  118 ++++++++
 debian/changelog      |   29 ++
 debian/control        |    8 
 debian/patches/series |    1 
 man/r128.man          |   21 +
 src/Makefile.am       |    8 
 src/compat-api.h      |   99 +++++++
 src/r128.h            |   98 ++++++-
 src/r128_accel.c      |   48 +++
 src/r128_cursor.c     |   56 ++--
 src/r128_dga.c        |   20 -
 src/r128_dri.c        |   90 +++++-
 src/r128_driver.c     |  469 ++++++++++++++++++++++-----------
 src/r128_exa.c        |  493 +++++++++++++++++++++++++++++++++++
 src/r128_exa_render.c |  695 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/r128_misc.c       |    3 
 src/r128_probe.c      |    4 
 src/r128_probe.h      |   14 -
 src/r128_video.c      |  158 ++++++++---
 20 files changed, 2329 insertions(+), 260 deletions(-)

New commits:
commit 521324de2e6a8da6d97704e4c7d7c31454e220a5
Author: Michele Cane <michele.c...@gmail.com>
Date:   Fri Sep 6 16:27:59 2013 +0200

    Bump Standards-Version to 3.9.4, no changes needed.

diff --git a/debian/changelog b/debian/changelog
index ff8429f..bb0cf5c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,12 @@
 xserver-xorg-video-r128 (6.9.1-1) UNRELEASED; urgency=low
 
+  [ Maarten Lankhorst ]
   * New upstream release.
   * Bump Standards-Version to 3.9.3
 
+  [ Michele Cane ]
+  * Bump Standards-Version to 3.9.4, no changes deeded.
+
  -- Maarten Lankhorst <maarten.lankho...@canonical.com>  Wed, 18 Jul 2012 
16:13:52 +0200
 
 xserver-xorg-video-r128 (6.8.2-1) unstable; urgency=low
diff --git a/debian/control b/debian/control
index 45eec5e..04b28ac 100644
--- a/debian/control
+++ b/debian/control
@@ -21,7 +21,7 @@ Build-Depends:
  x11proto-xf86dri-dev,
  quilt,
  xutils-dev
-Standards-Version: 3.9.3
+Standards-Version: 3.9.4
 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-r128
 Vcs-Browser: 
http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-r128.git
 

commit 1aae585e509241bde988a043ad9808137cc3d8a2
Author: Timo Aaltonen <tjaal...@ubuntu.com>
Date:   Mon Oct 1 12:26:04 2012 +0300

    update the changelogs

diff --git a/ChangeLog b/ChangeLog
index bb89291..938043d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,126 @@
+commit ef4467b4aac70b9a8a1ef1194eb02d7551be2602
+Author: Dave Airlie <airl...@redhat.com>
+Date:   Fri Sep 28 11:25:17 2012 +1000
+
+    r128: bump to 6.9.1
+    
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+
+commit 1793fe6e84a0ee4e4924d90e9e777213a6a5ea20
+Author: Dave Airlie <airl...@redhat.com>
+Date:   Fri Sep 28 11:24:53 2012 +1000
+
+    fix make distcheck
+    
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+
+commit e0222a5f5e7cad482044a542e4b1ebc32f774648
+Author: Dave Airlie <airl...@redhat.com>
+Date:   Fri Sep 28 11:22:40 2012 +1000
+
+    r128: bump release to 6.9.0
+    
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+
+commit e8b741e8fd4acebd79ee495cdd5437746ae80c39
+Author: Dave Airlie <airl...@redhat.com>
+Date:   Fri Sep 28 11:20:41 2012 +1000
+
+    r128: enable EXA by default if XAA isn't available at build time.
+    
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+
+commit 4ecd6e67fbbfd52e0ac77a6c48bd3c6a6d5598e7
+Author: Connor Behan <connor.be...@gmail.com>
+Date:   Fri Aug 31 00:19:21 2012 -0700
+
+    Scale Xv with the vertical stretch ratio
+    
+    If we are using a resolution lower than the native resolution of the
+    flat panel, the video overlay needs to know this. Otherwise a black bar
+    appears beneath the video. This is essentially Conn's patch from the bug
+    tracker except it doesn't always rely on info->PanelYRes. ACPI events
+    can change this without the driver's knowledge.
+    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=6493
+    
+    Signed-off-by: Connor Behan <connor.be...@gmail.com>
+
+commit 7f279e9d4e329ccb95de16f205ea4cd0ab37a65b
+Author: Connor Behan <connor.be...@gmail.com>
+Date:   Wed Aug 29 16:06:39 2012 -0700
+
+    Remove nested preprocessor checks
+    
+    When checking for R128DRI and RENDER, it is better to use two lines
+    instead of four.
+    
+    Signed-off-by: Connor Behan <connor.be...@gmail.com>
+
+commit deb05ac9cf58608b3d8d9947f52e9bcc5e0ae6b5
+Author: Connor Behan <connor.be...@gmail.com>
+Date:   Mon Jul 30 14:28:05 2012 +1000
+
+    Fix build without XAA again
+    
+    referring to info->accel instead of info->accelOn
+    
+    Signed-off-by: Connor Behan <connor.be...@gmail.com>
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+
+commit 310d998b7bb6d1befb1001deb565fb51a4b17013
+Author: Connor Behan <connor.be...@gmail.com>
+Date:   Fri Jul 27 11:49:38 2012 +1000
+
+    r128: fix missing preprocessor check for R128DRI
+    
+    This fixes one build problem seen in tinderbox.
+    
+    [airlied: split out from larger patch]
+    Signed-off-by: Connor Behan <connor.be...@gmail.com>
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+
+commit f83ee3144236bcca35eeadee2924e8bc15092447
+Author: Connor Behan <connor.be...@gmail.com>
+Date:   Tue Jul 17 22:53:17 2012 -0700
+
+    Fix build without EXA
+    
+    The offscreen area used by EXA needs to be declared even with lazy
+    evaluation.
+    
+    Signed-off-by: Connor Behan <connor.be...@gmail.com>
+
+commit 599c69a9cbf78c8717fb9ec92d9e764d9b358cf3
+Author: Connor Behan <connor.be...@gmail.com>
+Date:   Tue Jul 17 22:33:43 2012 -0700
+
+    Make debug mode work again
+    
+    The source should not assume that debugging is turned off. It should
+    build even if the user edits r128.h and enables it.
+    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=47785
+    
+    Signed-off-by: Connor Behan <connor.be...@gmail.com>
+
+commit c16d4e8bc068cb8127fa95347d26c7b80258f816
+Author: Connor Behan <connor.be...@gmail.com>
+Date:   Mon Jul 16 12:56:00 2012 -0700
+
+    Add EXA support
+    
+    This introduces EXA acceleration which can improve performance and allow
+    2D acceleration to be used without XAA. Implemented hooks are Solid,
+    Copy and Composite. They appear to pass all rendercheck tests, except
+    the gradient test which XAA also fails. Tested on multiple color depths,
+    with and without DRI, with and without the composite extension. Hardware
+    cursor, Xvideo and page flipping are supported as well.
+    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=47866
+    
+    [ Michel Dänzer: Drop unrelated addition of #include "r128_version.h" ]
+    
+    Signed-off-by: Connor Behan <connor.be...@gmail.com>
+    Signed-off-by: Michel Dänzer <michel.daen...@amd.com>
+
 commit a4231073010096f689df72c1f8f1453852f28d81
 Author: Dave Airlie <airl...@redhat.com>
 Date:   Tue Jul 17 16:05:09 2012 +1000
diff --git a/debian/changelog b/debian/changelog
index ef69746..ff8429f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-video-r128 (6.8.4-1) UNRELEASED; urgency=low
+xserver-xorg-video-r128 (6.9.1-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * Bump Standards-Version to 3.9.3

commit ef4467b4aac70b9a8a1ef1194eb02d7551be2602
Author: Dave Airlie <airl...@redhat.com>
Date:   Fri Sep 28 11:25:17 2012 +1000

    r128: bump to 6.9.1
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/configure.ac b/configure.ac
index c5cbc69..38dc9bd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-r128],
-        [6.9.0],
+        [6.9.1],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-r128])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 1793fe6e84a0ee4e4924d90e9e777213a6a5ea20
Author: Dave Airlie <airl...@redhat.com>
Date:   Fri Sep 28 11:24:53 2012 +1000

    fix make distcheck
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/Makefile.am b/src/Makefile.am
index 4ee9725..23e6c49 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -53,4 +53,5 @@ EXTRA_DIST = \
        r128_reg.h \
        r128_sarea.h \
        r128_version.h \
+       r128_exa_render.c \
        atipcirename.h

commit e0222a5f5e7cad482044a542e4b1ebc32f774648
Author: Dave Airlie <airl...@redhat.com>
Date:   Fri Sep 28 11:22:40 2012 +1000

    r128: bump release to 6.9.0
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/configure.ac b/configure.ac
index edb65a3..c5cbc69 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-r128],
-        [6.8.4],
+        [6.9.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-r128])
 AC_CONFIG_SRCDIR([Makefile.am])

commit e8b741e8fd4acebd79ee495cdd5437746ae80c39
Author: Dave Airlie <airl...@redhat.com>
Date:   Fri Sep 28 11:20:41 2012 +1000

    r128: enable EXA by default if XAA isn't available at build time.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/r128_driver.c b/src/r128_driver.c
index ae16e97..a062a60 100644
--- a/src/r128_driver.c
+++ b/src/r128_driver.c
@@ -2251,6 +2251,11 @@ Bool R128ScreenInit(SCREEN_INIT_ARGS_DECL)
 
     R128TRACE(("R128ScreenInit %x %d\n", pScrn->memPhysBase, pScrn->fbOffset));
     info->useEXA = FALSE;
+#ifdef USE_EXA
+#ifndef HAVE_XAA_H
+    info->useEXA = TRUE;
+#endif
+#endif
 
 #ifdef USE_EXA
     optstr = (char *)xf86GetOptValString(info->Options, OPTION_ACCELMETHOD);

commit 4ecd6e67fbbfd52e0ac77a6c48bd3c6a6d5598e7
Author: Connor Behan <connor.be...@gmail.com>
Date:   Fri Aug 31 00:19:21 2012 -0700

    Scale Xv with the vertical stretch ratio
    
    If we are using a resolution lower than the native resolution of the
    flat panel, the video overlay needs to know this. Otherwise a black bar
    appears beneath the video. This is essentially Conn's patch from the bug
    tracker except it doesn't always rely on info->PanelYRes. ACPI events
    can change this without the driver's knowledge.
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=6493
    
    Signed-off-by: Connor Behan <connor.be...@gmail.com>

diff --git a/src/r128_video.c b/src/r128_video.c
index 4507b30..bb5a655 100644
--- a/src/r128_video.c
+++ b/src/r128_video.c
@@ -661,13 +661,25 @@ R128DisplayVideo422(
     R128InfoPtr info = R128PTR(pScrn);
     unsigned char *R128MMIO = info->MMIO;
     R128PortPrivPtr pPriv = info->adaptor->pPortPrivates[0].ptr;
-    int v_inc, h_inc, step_by, tmp;
+    int v_inc, h_inc, step_by, tmp, v_inc_shift;
     int p1_h_accum_init, p23_h_accum_init;
     int p1_v_accum_init;
+    Bool rmx_active;
 
     R128ECP(pScrn, pPriv);
 
-    v_inc = (src_h << 20) / drw_h;
+    v_inc_shift = 20;
+    if (pScrn->currentMode->Flags & V_INTERLACE)
+        v_inc_shift++;
+    if (pScrn->currentMode->Flags & V_DBLSCAN)
+        v_inc_shift--;
+    
+    rmx_active = INREG(R128_FP_VERT_STRETCH) & R128_VERT_STRETCH_ENABLE;
+    if (rmx_active) {
+        v_inc = ((src_h * pScrn->currentMode->CrtcVDisplay / info->PanelYRes) 
<< v_inc_shift) / drw_h;
+    } else {
+        v_inc = (src_h << v_inc_shift) / drw_h;
+    }
     h_inc = (src_w << (12 + pPriv->ecp_div)) / drw_w;
     step_by = 1;
 
@@ -735,11 +747,23 @@ R128DisplayVideo420(
     R128InfoPtr info = R128PTR(pScrn);
     unsigned char *R128MMIO = info->MMIO;
     R128PortPrivPtr pPriv = info->adaptor->pPortPrivates[0].ptr;
-    int v_inc, h_inc, step_by, tmp, leftUV;
+    int v_inc, h_inc, step_by, tmp, leftUV, v_inc_shift;
     int p1_h_accum_init, p23_h_accum_init;
     int p1_v_accum_init, p23_v_accum_init;
-
-    v_inc = (src_h << 20) / drw_h;
+    Bool rmx_active;
+
+    v_inc_shift = 20;
+    if (pScrn->currentMode->Flags & V_INTERLACE)
+        v_inc_shift++;
+    if (pScrn->currentMode->Flags & V_DBLSCAN)
+        v_inc_shift--;
+    
+    rmx_active = INREG(R128_FP_VERT_STRETCH) & R128_VERT_STRETCH_ENABLE;
+    if (rmx_active) {
+        v_inc = ((src_h * pScrn->currentMode->CrtcVDisplay / info->PanelYRes) 
<< v_inc_shift) / drw_h;
+    } else {
+        v_inc = (src_h << v_inc_shift) / drw_h;
+    }
     h_inc = (src_w << (12 + pPriv->ecp_div)) / drw_w;
     step_by = 1;
 

commit 7f279e9d4e329ccb95de16f205ea4cd0ab37a65b
Author: Connor Behan <connor.be...@gmail.com>
Date:   Wed Aug 29 16:06:39 2012 -0700

    Remove nested preprocessor checks
    
    When checking for R128DRI and RENDER, it is better to use two lines
    instead of four.
    
    Signed-off-by: Connor Behan <connor.be...@gmail.com>

diff --git a/src/r128.h b/src/r128.h
index 9b2556f..9c0ecb6 100644
--- a/src/r128.h
+++ b/src/r128.h
@@ -284,8 +284,7 @@ struct r128_2d_state {
     uint32_t dp_src_frgd_clr;
     uint32_t dp_src_bkgd_clr;
     uint32_t default_sc_bottom_right;
-#ifdef R128DRI
-#ifdef RENDER
+#if defined(R128DRI) && defined(RENDER)
     Bool has_mask;
     int x_offset;
     int y_offset;
@@ -296,7 +295,6 @@ struct r128_2d_state {
     PixmapPtr src_pix;
     PixmapPtr msk_pix;
 #endif
-#endif
 };
 #endif
 
diff --git a/src/r128_exa.c b/src/r128_exa.c
index b3e2406..2a628a8 100644
--- a/src/r128_exa.c
+++ b/src/r128_exa.c
@@ -335,8 +335,7 @@ R128Done(PixmapPtr pPixmap)
     R128InfoPtr   info      = R128PTR(pScrn);
 
     info->state_2d.in_use = FALSE;
-#ifdef R128DRI
-#ifdef RENDER
+#if defined(R128DRI) && defined(RENDER)
     if (info->state_2d.src_pix) {
         pScreen->DestroyPixmap(info->state_2d.src_pix);
        info->state_2d.src_pix = NULL;
@@ -346,7 +345,6 @@ R128Done(PixmapPtr pPixmap)
        info->state_2d.msk_pix = NULL;
     }
 #endif
-#endif
 }
 
 #ifdef R128DRI

commit deb05ac9cf58608b3d8d9947f52e9bcc5e0ae6b5
Author: Connor Behan <connor.be...@gmail.com>
Date:   Mon Jul 30 14:28:05 2012 +1000

    Fix build without XAA again
    
    referring to info->accel instead of info->accelOn
    
    Signed-off-by: Connor Behan <connor.be...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/r128_accel.c b/src/r128_accel.c
index 1df4eb8..1b8c023 100644
--- a/src/r128_accel.c
+++ b/src/r128_accel.c
@@ -1875,7 +1875,6 @@ Bool R128AccelInit(ScreenPtr pScreen)
 {
     ScrnInfoPtr   pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr   info  = R128PTR(pScrn);
-    XAAInfoRecPtr a;
 
 #ifdef USE_EXA
     if (info->useEXA) {
@@ -1895,15 +1894,18 @@ Bool R128AccelInit(ScreenPtr pScreen)
        info->ExaDriver = exaDriverAlloc();
        if (!info->ExaDriver) {
            xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Could not allocate EXA 
driver...\n");
-           info->accel = FALSE;
+           info->accelOn = FALSE;
        }
 
        return TRUE;
     }
 #endif
+
 #ifndef HAVE_XAA_H
     return FALSE;
 #else
+    XAAInfoRecPtr a;
+
     if (!info->useEXA) {
         if (!xf86LoadSubModule(pScrn, "xaa")) return FALSE;
     }

commit 310d998b7bb6d1befb1001deb565fb51a4b17013
Author: Connor Behan <connor.be...@gmail.com>
Date:   Fri Jul 27 11:49:38 2012 +1000

    r128: fix missing preprocessor check for R128DRI
    
    This fixes one build problem seen in tinderbox.
    
    [airlied: split out from larger patch]
    Signed-off-by: Connor Behan <connor.be...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/r128_exa.c b/src/r128_exa.c
index 8fb8b64..b3e2406 100644
--- a/src/r128_exa.c
+++ b/src/r128_exa.c
@@ -142,6 +142,7 @@ static void Emit2DState(ScrnInfoPtr pScrn)
     if (has_src) OUTREG(R128_SRC_PITCH_OFFSET, 
info->state_2d.src_pitch_offset);
 }
 
+#ifdef R128DRI
 static void EmitCCE2DState(ScrnInfoPtr pScrn)
 {
     R128InfoPtr   info      = R128PTR(pScrn);
@@ -166,6 +167,7 @@ static void EmitCCE2DState(ScrnInfoPtr pScrn)
 
     ADVANCE_RING();
 }
+#endif
 
 /* EXA Callbacks */
 

commit 1592e880e50acceb83883bdbcd55197cda50059d
Author: Maarten Lankhorst <maarten.lankho...@canonical.com>
Date:   Wed Jul 18 16:17:18 2012 +0200

    Add missing misc:Depends to shut up lintian

diff --git a/debian/control b/debian/control
index eba422e..45eec5e 100644
--- a/debian/control
+++ b/debian/control
@@ -46,7 +46,9 @@ Description: X.Org X server -- ATI r128 display driver
 
 Package: xserver-xorg-video-r128-dbg
 Architecture: any
-Depends: xserver-xorg-video-r128 (= ${binary:Version})
+Depends:
+ xserver-xorg-video-r128 (= ${binary:Version}),
+ ${misc:Depends},
 Section: debug
 Priority: extra
 Description: X.Org X server -- ATI r128 display driver (debugging symbols)

commit 10ff322effd588ae9ece92e19a3885915d959eae
Author: Maarten Lankhorst <maarten.lankho...@canonical.com>
Date:   Wed Jul 18 16:15:03 2012 +0200

    Bump Standards-Version to 3.9.3

diff --git a/debian/changelog b/debian/changelog
index f8774b1..ef69746 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 xserver-xorg-video-r128 (6.8.4-1) UNRELEASED; urgency=low
 
   * New upstream release.
+  * Bump Standards-Version to 3.9.3
 
  -- Maarten Lankhorst <maarten.lankho...@canonical.com>  Wed, 18 Jul 2012 
16:13:52 +0200
 
diff --git a/debian/control b/debian/control
index 5567265..eba422e 100644
--- a/debian/control
+++ b/debian/control
@@ -21,7 +21,7 @@ Build-Depends:
  x11proto-xf86dri-dev,
  quilt,
  xutils-dev
-Standards-Version: 3.9.1
+Standards-Version: 3.9.3
 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-r128
 Vcs-Browser: 
http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-r128.git
 
diff --git a/debian/patches/series b/debian/patches/series
index e69de29..fdffa2a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -0,0 +1 @@
+# placeholder

commit 1dd257e2ae08b4ecf373431b1e1cb05c5421bf73
Author: Maarten Lankhorst <maarten.lankho...@canonical.com>
Date:   Wed Jul 18 16:14:41 2012 +0200

    New upstream release.

diff --git a/debian/changelog b/debian/changelog
index 499a397..f8774b1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-r128 (6.8.4-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Maarten Lankhorst <maarten.lankho...@canonical.com>  Wed, 18 Jul 2012 
16:13:52 +0200
+
 xserver-xorg-video-r128 (6.8.2-1) unstable; urgency=low
 
   * New upstream release.

commit c0418e1fb0407fcdfa665386ddd33ebad219d7a8
Author: Maarten Lankhorst <maarten.lankho...@canonical.com>
Date:   Wed Jul 18 16:13:46 2012 +0200

    Bump changelog.

diff --git a/ChangeLog b/ChangeLog
index eb9ceaf..bb89291 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,37 @@
+commit a4231073010096f689df72c1f8f1453852f28d81
+Author: Dave Airlie <airl...@redhat.com>
+Date:   Tue Jul 17 16:05:09 2012 +1000
+
+    xf86-video-r128: bump to version 6.8.4
+    
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+
+commit 16df5622c550c64711a25a9d8ece9152c3047a94
+Author: Dave Airlie <airl...@gmail.com>
+Date:   Sun Jul 15 17:14:10 2012 +1000
+
+    r128: drop XAA support.
+    
+    this just makes XAA conditional.
+    
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+
+commit 734e9ff97b81af732ab7065761212e8eb8f6aa3c
+Author: Dave Airlie <airl...@redhat.com>
+Date:   Mon Jul 2 12:26:11 2012 +0100
+
+    r128: bump 6.8.3 release
+    
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+
+commit b027633fcfc0e226b78036e27c66ccd76542e43f
+Author: Dave Airlie <airl...@redhat.com>
+Date:   Wed Jun 6 11:02:27 2012 +0100
+
+    r128: port to new compat API.
+    
+    Signed-off-by: Dave Airlie <airl...@redhat.com>
+
 commit 1ac4cd4b41d0e8232660df78ff136df1214f3907
 Author: Alan Coopersmith <alan.coopersm...@oracle.com>
 Date:   Fri Mar 23 19:23:54 2012 -0700

commit f83ee3144236bcca35eeadee2924e8bc15092447
Author: Connor Behan <connor.be...@gmail.com>
Date:   Tue Jul 17 22:53:17 2012 -0700

    Fix build without EXA
    
    The offscreen area used by EXA needs to be declared even with lazy
    evaluation.
    
    Signed-off-by: Connor Behan <connor.be...@gmail.com>

diff --git a/src/r128_cursor.c b/src/r128_cursor.c
index 974a6d5..b76913c 100644
--- a/src/r128_cursor.c
+++ b/src/r128_cursor.c
@@ -261,6 +261,8 @@ Bool R128CursorInit(ScreenPtr pScreen)
     FBAreaPtr             fbarea  = NULL;
 #ifdef USE_EXA
     ExaOffscreenArea*    osArea  = NULL;
+#else
+    void*                osArea  = NULL;
 #endif
     int                   width;
     int                   height;
diff --git a/src/r128_driver.c b/src/r128_driver.c
index f4a5e1b..ae16e97 100644
--- a/src/r128_driver.c
+++ b/src/r128_driver.c
@@ -2244,6 +2244,8 @@ Bool R128ScreenInit(SCREEN_INIT_ARGS_DECL)
     Bool       noAccel;
 #ifdef USE_EXA
     ExaOffscreenArea*     osArea = NULL;
+#else
+    void*                osArea = NULL;
 #endif
     char *optstr;
 

commit 599c69a9cbf78c8717fb9ec92d9e764d9b358cf3
Author: Connor Behan <connor.be...@gmail.com>
Date:   Tue Jul 17 22:33:43 2012 -0700

    Make debug mode work again
    
    The source should not assume that debugging is turned off. It should
    build even if the user edits r128.h and enables it.
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=47785
    
    Signed-off-by: Connor Behan <connor.be...@gmail.com>

diff --git a/src/r128.h b/src/r128.h
index fe42f79..9b2556f 100644
--- a/src/r128.h
+++ b/src/r128.h
@@ -118,6 +118,7 @@
 #define R128_VBIOS_SIZE 0x00010000
 
 #if R128_DEBUG
+#include "r128_version.h"
 
 #define R128TRACE(x)                                          \
     do {                                                      \
diff --git a/src/r128_driver.c b/src/r128_driver.c
index bb03e80..f4a5e1b 100644
--- a/src/r128_driver.c
+++ b/src/r128_driver.c
@@ -3043,11 +3043,11 @@ static void R128RestorePLL2Registers(ScrnInfoPtr pScrn, 
R128SavePtr restore)
               restore->p2pll_ref_div,
               restore->p2pll_div_0,
               restore->htotal_cntl2,
-              INPLL(pScrn, RADEON_P2PLL_CNTL)));
+              INPLL(pScrn, R128_P2PLL_CNTL)));
     R128TRACE(("Wrote: rd=%d, fd=%d, pd=%d\n",
-              restore->p2pll_ref_div & RADEON_P2PLL_REF_DIV_MASK,
-              restore->p2pll_div_0 & RADEON_P2PLL_FB3_DIV_MASK,
-              (restore->p2pll_div_0 & RADEON_P2PLL_POST3_DIV_MASK) >>16));
+              restore->p2pll_ref_div & R128_P2PLL_REF_DIV_MASK,
+              restore->p2pll_div_0 & R128_P2PLL_FB0_DIV_MASK,
+              (restore->p2pll_div_0 & R128_P2PLL_POST0_DIV_MASK) >>16));
 
     usleep(5000); /* Let the clock to lock */
 
@@ -3895,8 +3895,8 @@ static void R128InitPLLRegisters(ScrnInfoPtr pScrn, 
R128SavePtr save,
 }
 
 /* Define PLL2 registers for requested video mode. */
-static void R128InitPLL2Registers(R128SavePtr save, R128PLLPtr pll,
-                                  double dot_clock)
+static void R128InitPLL2Registers(ScrnInfoPtr pScrn, R128SavePtr save,
+                                  R128PLLPtr pll, double dot_clock)
 {
     unsigned long freq = dot_clock * 100;
     struct {
@@ -4158,7 +4158,7 @@ static Bool R128Init(ScrnInfoPtr pScrn, DisplayModePtr 
mode, R128SavePtr save)
         if (!R128InitCrtc2Registers(pScrn, save, 
              pScrn->currentMode,info)) 
             return FALSE;
-        R128InitPLL2Registers(save, &info->pll, dot_clock);
+        R128InitPLL2Registers(pScrn, save, &info->pll, dot_clock);
         if (!R128InitDDA2Registers(pScrn, save, &info->pll, info, mode))
            return FALSE;
     }

commit c16d4e8bc068cb8127fa95347d26c7b80258f816
Author: Connor Behan <connor.be...@gmail.com>
Date:   Mon Jul 16 12:56:00 2012 -0700

    Add EXA support
    
    This introduces EXA acceleration which can improve performance and allow
    2D acceleration to be used without XAA. Implemented hooks are Solid,
    Copy and Composite. They appear to pass all rendercheck tests, except
    the gradient test which XAA also fails. Tested on multiple color depths,
    with and without DRI, with and without the composite extension. Hardware
    cursor, Xvideo and page flipping are supported as well.
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=47866
    
    [ Michel Dänzer: Drop unrelated addition of #include "r128_version.h" ]
    
    Signed-off-by: Connor Behan <connor.be...@gmail.com>
    Signed-off-by: Michel Dänzer <michel.daen...@amd.com>

diff --git a/configure.ac b/configure.ac
index e45a402..edb65a3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -63,6 +63,11 @@ AC_ARG_ENABLE(dri, AS_HELP_STRING([--disable-dri],
               [DRI="$enableval"],
               [DRI=auto])
 
+AC_ARG_ENABLE(exa, AS_HELP_STRING([--disable-exa],
+                                 [Disable EXA support [[default=enabled]]]),
+              [EXA="$enableval"],
+              [EXA=yes])
+
 # Store the list of server defined optional extensions in REQUIRED_MODULES
 XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
 XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
@@ -112,6 +117,39 @@ fi
 
 SAVE_CPPFLAGS="$CPPFLAGS"
 CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
+# Properly handle EXA.
+AC_MSG_CHECKING([whether to enable EXA support])
+if test "x$EXA" = xyes; then
+        AC_MSG_RESULT(yes)
+
+        SAVE_CPPFLAGS="$CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
+        AC_CHECK_HEADER(exa.h,
+                       [have_exa_h="yes"], [have_exa_h="no"])
+        CPPFLAGS="$SAVE_CPPFLAGS"
+else
+        AC_MSG_RESULT(no)
+fi
+
+SAVE_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
+if test "x$have_exa_h" = xyes; then
+        AC_MSG_CHECKING([whether EXA version is at least 2.0.0])
+        AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
+#include "exa.h"
+#if EXA_VERSION_MAJOR < 2
+#error OLD EXA!
+#endif
+                          ]])],
+                          [USE_EXA=yes],
+                          [USE_EXA=no])
+        AC_MSG_RESULT($USE_EXA)
+
+        if test "x$USE_EXA" = xyes; then
+                AC_DEFINE(USE_EXA, 1, [Build support for Exa])
+        fi
+fi
+
 AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
              [XSERVER_LIBPCIACCESS=yes],[XSERVER_LIBPCIACCESS=no],
              [#include "xorg-server.h"])
@@ -143,6 +181,66 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then
 fi
 AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
 
+# Checks for headers/macros for byte swapping
+# Known variants:
+#      <byteswap.h> bswap_16, bswap_32, bswap_64  (glibc)
+#      <sys/endian.h> __swap16, __swap32, __swap64 (OpenBSD)
+#      <sys/endian.h> bswap16, bswap32, bswap64 (other BSD's)
+#      and a fallback to local macros if none of the above are found
+
+# if <byteswap.h> is found, assume it's the correct version
+AC_CHECK_HEADERS([byteswap.h])
+
+# if <sys/endian.h> is found, have to check which version
+AC_CHECK_HEADER([sys/endian.h], [HAVE_SYS_ENDIAN_H="yes"], 
[HAVE_SYS_ENDIAN_H="no"])
+
+if test "x$HAVE_SYS_ENDIAN_H" = "xyes" ; then
+       AC_MSG_CHECKING([for __swap16 variant of <sys/endian.h> byteswapping 
macros])
+       AC_LINK_IFELSE([AC_LANG_PROGRAM([
+#include <sys/types.h>
+#include <sys/endian.h>
+ ], [
+int a = 1, b;
+b = __swap16(a);
+ ])
+], [SYS_ENDIAN__SWAP='yes'], [SYS_ENDIAN__SWAP='no'])
+       AC_MSG_RESULT([$SYS_ENDIAN__SWAP])
+
+       AC_MSG_CHECKING([for bswap16 variant of <sys/endian.h> byteswapping 
macros])
+       AC_LINK_IFELSE([AC_LANG_PROGRAM([
+#include <sys/types.h>
+#include <sys/endian.h>
+ ], [
+int a = 1, b;
+b = bswap16(a);
+ ])
+], [SYS_ENDIAN_BSWAP='yes'], [SYS_ENDIAN_BSWAP='no'])
+       AC_MSG_RESULT([$SYS_ENDIAN_BSWAP])
+
+       if test "$SYS_ENDIAN_BSWAP" = "yes" ; then
+               USE_SYS_ENDIAN_H=yes
+               BSWAP=bswap
+       else
+               if test "$SYS_ENDIAN__SWAP" = "yes" ; then
+                       USE_SYS_ENDIAN_H=yes
+                       BSWAP=__swap
+               else
+                       USE_SYS_ENDIAN_H=no
+               fi
+       fi
+
+       if test "$USE_SYS_ENDIAN_H" = "yes" ; then
+           AC_DEFINE([USE_SYS_ENDIAN_H], 1,
+               [Define to use byteswap macros from <sys/endian.h>])
+           AC_DEFINE_UNQUOTED([bswap_16], ${BSWAP}16,
+                       [Define to 16-bit byteswap macro])
+           AC_DEFINE_UNQUOTED([bswap_32], ${BSWAP}32,
+                       [Define to 32-bit byteswap macro])
+           AC_DEFINE_UNQUOTED([bswap_64], ${BSWAP}64,
+                       [Define to 64-bit byteswap macro])
+       fi
+fi
+
 AC_SUBST([moduledir])
 
 DRIVER_NAME=r128
diff --git a/man/r128.man b/man/r128.man
index 4ba933d..d490f93 100644
--- a/man/r128.man
+++ b/man/r128.man
@@ -57,6 +57,27 @@ Enables or disables all hardware acceleration.  The default 
is to
 .B enable
 hardware acceleration.
 .TP
+.BI "Option \*qEnablePageFlip\*q \*q" boolean \*q
+Enable page flipping for 3D acceleration. This will increase performance
+but not work correctly in some rare cases, hence the default is
+.B off.
+.TP
+.BI "Option \*qRenderAccel\*q \*q" boolean \*q
+Enables or disables hardware Render acceleration.  It is only supported when
+using EXA acceleration and DRI.  The default is to
+.B enable
+Render acceleration.
+.TP
+.BI "Option \*qAccelMethod\*q \*q" "string" \*q
+Chooses between available acceleration architectures.  Valid options are
+.B XAA
+and
+.B EXA.
+XAA is the traditional acceleration architecture and support for it is very
+stable.  EXA is a newer acceleration architecture with better performance for
+the Render and Composite extensions.  The default is
+.B XAA.
+.TP
 .BI "Option \*qDac6Bit\*q \*q" boolean \*q
 Enables or disables the use of 6 bits per color component when in 8 bpp
 mode (emulates VGA mode).  By default, all 8 bits per color component
diff --git a/src/Makefile.am b/src/Makefile.am
index f8bc8d1..4ee9725 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,6 +30,10 @@ if DRI
 R128_DRI_SRCS = r128_dri.c
 endif
 
+if USE_EXA
+R128_EXA_SRCS = r128_exa.c
+endif
+
 AM_CFLAGS = @XORG_CFLAGS@ @DRI_CFLAGS@
 
 r128_drv_la_LTLIBRARIES = r128_drv.la
@@ -37,7 +41,7 @@ r128_drv_la_LDFLAGS = -module -avoid-version
 r128_drv_ladir = @moduledir@/drivers
 r128_drv_la_SOURCES = \
        r128_accel.c r128_cursor.c r128_dga.c r128_driver.c \
-       r128_video.c r128_misc.c r128_probe.c $(R128_DRI_SRCS)
+       r128_video.c r128_misc.c r128_probe.c $(R128_EXA_SRCS) $(R128_DRI_SRCS)
 
 EXTRA_DIST = \
         compat-api.h \
diff --git a/src/r128.h b/src/r128.h
index bee1562..fe42f79 100644
--- a/src/r128.h
+++ b/src/r128.h
@@ -43,6 +43,11 @@
                                /* PCI support */
 #include "xf86Pci.h"
 
+                               /* EXA support */
+#ifdef USE_EXA
+#include "exa.h"
+#endif
+
                                /* XAA and Cursor Support */
 #ifdef HAVE_XAA_H
 #include "xaa.h"
@@ -75,6 +80,36 @@
 
 #include "r128_probe.h"
 
+#if HAVE_BYTESWAP_H
+#include <byteswap.h>
+#elif defined(USE_SYS_ENDIAN_H)
+#include <sys/endian.h>
+#else
+#define bswap_16(value)  \
+        ((((value) & 0xff) << 8) | ((value) >> 8))
+
+#define bswap_32(value) \
+        (((uint32_t)bswap_16((uint16_t)((value) & 0xffff)) << 16) | \
+        (uint32_t)bswap_16((uint16_t)((value) >> 16)))
+
+#define bswap_64(value) \
+        (((uint64_t)bswap_32((uint32_t)((value) & 0xffffffff)) \
+            << 32) | \
+        (uint64_t)bswap_32((uint32_t)((value) >> 32)))
+#endif
+
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+#define le32_to_cpu(x) bswap_32(x)
+#define le16_to_cpu(x) bswap_16(x)
+#define cpu_to_le32(x) bswap_32(x)
+#define cpu_to_le16(x) bswap_16(x)
+#else
+#define le32_to_cpu(x) (x)
+#define le16_to_cpu(x) (x)
+#define cpu_to_le32(x) (x)
+#define cpu_to_le16(x) (x)
+#endif
+
 #define R128_DEBUG          0   /* Turn off debugging output               */
 #define R128_IDLE_RETRY    32   /* Fall out of idle loops after this count */
 #define R128_TIMEOUT  2000000   /* Fall out of wait loops after this count */
@@ -83,6 +118,7 @@
 #define R128_VBIOS_SIZE 0x00010000
 
 #if R128_DEBUG
+
 #define R128TRACE(x)                                          \
     do {                                                      \
        ErrorF("(**) %s(%d): ", R128_NAME, pScrn->scrnIndex); \
@@ -233,6 +269,36 @@ typedef enum
     MT_STV
 } R128MonitorType;
 


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1vhx1n-0002ra...@vasks.debian.org

Reply via email to