configure.ac                        |    2 
 man/radeon.man                      |    9 
 src/ati_pciids_gen.h                |   14 +
 src/atombios_output.c               |    5 
 src/drmmode_display.c               |   48 +++-
 src/evergreen_accel.c               |   67 +++++-
 src/evergreen_exa.c                 |  401 ++++++++++++------------------------
 src/evergreen_reg.h                 |    3 
 src/evergreen_shader.c              |   60 ++++-
 src/evergreen_shader.h              |   66 ++---
 src/evergreen_state.h               |   22 +
 src/evergreen_textured_videofuncs.c |   61 ++---
 src/pcidb/ati_pciids.csv            |   14 +
 src/r600_exa.c                      |  332 ++++++++++++++---------------
 src/r600_reg.h                      |   21 +
 src/r600_shader.c                   |   60 ++++-
 src/r600_shader.h                   |   80 +++----
 src/r600_state.h                    |    7 
 src/r600_textured_videofuncs.c      |   45 ++--
 src/r6xx_accel.c                    |   77 ++++++
 src/radeon.h                        |    5 
 src/radeon_atombios.c               |   28 +-
 src/radeon_chipinfo_gen.h           |   14 +
 src/radeon_chipset_gen.h            |   14 +
 src/radeon_dri2.c                   |   17 +
 src/radeon_driver.c                 |    5 
 src/radeon_exa.c                    |    5 
 src/radeon_exa_render.c             |    6 
 src/radeon_kms.c                    |   92 +++++---
 src/radeon_legacy_memory.c          |    2 
 src/radeon_output.c                 |    8 
 src/radeon_pci_chipset_gen.h        |   14 +
 src/radeon_pci_device_match_gen.h   |   14 +
 src/radeon_textured_video.c         |   48 ++--
 src/radeon_video.h                  |    1 
 35 files changed, 980 insertions(+), 687 deletions(-)

New commits:
commit 38d9368e59b2990bf32a028ece2132451b402350
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Thu Mar 17 18:59:55 2011 -0400

    bump for release
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/configure.ac b/configure.ac
index ec54478..6f72c2d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-ati],
-        [6.14.99],
+        [6.14.1],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-ati])
 

commit cdfc007eccc9b130fc08012deef304488eb6e469
Author: Dave Airlie <airl...@redhat.com>
Date:   Wed Mar 16 10:40:42 2011 +1000

    radeon/exa: correct function name
    
    this corrects the function name so it matches the contents.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/evergreen_exa.c b/src/evergreen_exa.c
index 553f05e..ae73e38 100644
--- a/src/evergreen_exa.c
+++ b/src/evergreen_exa.c
@@ -731,7 +731,7 @@ static Bool EVERGREENCheckCompositeTexture(PicturePtr pPict,
            RADEON_FALLBACK(("REPEAT_NONE unsupported for transformed xRGB 
source\n"));
     }
 
-    if (!radeon_transform_is_affine(pPict->transform))
+    if (!radeon_transform_is_affine_or_scaled(pPict->transform))
        RADEON_FALLBACK(("non-affine transforms not supported\n"));
 
     return TRUE;
diff --git a/src/r600_exa.c b/src/r600_exa.c
index 57e5c0f..0ed0ced 100644
--- a/src/r600_exa.c
+++ b/src/r600_exa.c
@@ -910,7 +910,7 @@ static Bool R600CheckCompositeTexture(PicturePtr pPict,
            RADEON_FALLBACK(("REPEAT_NONE unsupported for transformed xRGB 
source\n"));
     }
 
-    if (!radeon_transform_is_affine(pPict->transform))
+    if (!radeon_transform_is_affine_or_scaled(pPict->transform))
        RADEON_FALLBACK(("non-affine transforms not supported\n"));
 
     return TRUE;
diff --git a/src/radeon.h b/src/radeon.h
index 4f5095d..a6d20d7 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -1290,7 +1290,7 @@ extern void RADEONPMFini(ScrnInfoPtr pScrn);
 #ifdef USE_EXA
 /* radeon_exa.c */
 extern Bool RADEONSetupMemEXA(ScreenPtr pScreen);
-extern Bool radeon_transform_is_affine(PictTransformPtr t);
+extern Bool radeon_transform_is_affine_or_scaled(PictTransformPtr t);
 
 /* radeon_exa_funcs.c */
 extern void RADEONCopyCP(PixmapPtr pDst, int srcX, int srcY, int dstX,
diff --git a/src/radeon_exa.c b/src/radeon_exa.c
index 4f31b82..1c647b9 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -179,7 +179,7 @@ Bool RADEONGetPixmapOffsetPitch(PixmapPtr pPix, uint32_t 
*pitch_offset)
  *
  * transform may be null.
  */
-Bool radeon_transform_is_affine(PictTransformPtr t)
+Bool radeon_transform_is_affine_or_scaled(PictTransformPtr t)
 {
        if (t == NULL)
                return TRUE;
diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index 2e13b00..43d3555 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -379,7 +379,7 @@ static Bool R100CheckCompositeTexture(PicturePtr pPict,
            RADEON_FALLBACK(("REPEAT_NONE unsupported for transformed xRGB 
source\n"));
     }
 
-    if (!radeon_transform_is_affine(pPict->transform))
+    if (!radeon_transform_is_affine_or_scaled(pPict->transform))
        RADEON_FALLBACK(("non-affine transforms not supported\n"));
 
     return TRUE;
@@ -781,7 +781,7 @@ static Bool R200CheckCompositeTexture(PicturePtr pPict,
            RADEON_FALLBACK(("REPEAT_NONE unsupported for transformed xRGB 
source\n"));
     }
 
-    if (!radeon_transform_is_affine(pPict->transform))
+    if (!radeon_transform_is_affine_or_scaled(pPict->transform))
        RADEON_FALLBACK(("non-affine transforms not supported\n"));
 
     return TRUE;
@@ -1168,7 +1168,7 @@ static Bool R300CheckCompositeTexture(PicturePtr pPict,
            RADEON_FALLBACK(("REPEAT_NONE unsupported for transformed xRGB 
source\n"));
     }
 
-    if (!radeon_transform_is_affine(pPict->transform))
+    if (!radeon_transform_is_affine_or_scaled(pPict->transform))
        RADEON_FALLBACK(("non-affine transforms not supported\n"));
 
     return TRUE;

commit b93d7658f669f6dc1cfacebcfe955a1e113a537c
Author: Dave Airlie <airl...@redhat.com>
Date:   Wed Mar 16 10:37:22 2011 +1000

    radeon/exa: fix scaling check
    
    This caused a regression in firefox, as these numbers are xFixed
    values hence 1 is actually 65536.
    
    Should fix: https://bugzilla.redhat.com/show_bug.cgi?id=685084
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/radeon_exa.c b/src/radeon_exa.c
index aa3d55e..4f31b82 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -184,7 +184,7 @@ Bool radeon_transform_is_affine(PictTransformPtr t)
        if (t == NULL)
                return TRUE;
        /* the shaders don't handle scaling either */
-       return t->matrix[2][0] == 0 && t->matrix[2][1] == 0 && t->matrix[2][2] 
== 1;
+       return t->matrix[2][0] == 0 && t->matrix[2][1] == 0 && t->matrix[2][2] 
== IntToxFixed(1);
 }
 
 #if X_BYTE_ORDER == X_BIG_ENDIAN

commit 8567b8cd9e136ef69906e02286b3752db2404741
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Tue Mar 15 13:13:06 2011 -0400

    APU: no tiling yet
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 125a132..0760170 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -651,6 +651,10 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags)
            } else
                xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                           "R6xx+ KMS Color Tiling requires radeon drm 2.6.0 or 
newer\n");
+
+           /* don't support tiling on APUs yet */
+           if (info->ChipFamily == CHIP_FAMILY_PALM)
+               info->allowColorTiling = FALSE;
        } else
            info->allowColorTiling = xf86ReturnOptValBool(info->Options,
                                                          OPTION_COLOR_TILING, 
colorTilingDefault);

commit 4d350497012fa31a417ada662006e2d64db2a4b5
Author: Dave Airlie <airl...@redhat.com>
Date:   Tue Mar 15 10:32:19 2011 +1000

    radeon: exa shaders don't handle scaling either.
    
    rendercheck tsrccoords test fails.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/radeon_exa.c b/src/radeon_exa.c
index 3dbdcae..aa3d55e 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -183,7 +183,8 @@ Bool radeon_transform_is_affine(PictTransformPtr t)
 {
        if (t == NULL)
                return TRUE;
-       return t->matrix[2][0] == 0 && t->matrix[2][1] == 0;
+       /* the shaders don't handle scaling either */
+       return t->matrix[2][0] == 0 && t->matrix[2][1] == 0 && t->matrix[2][2] 
== 1;
 }
 
 #if X_BYTE_ORDER == X_BIG_ENDIAN

commit 6319a33cb7bd8dba1eaf47bee1e2608cee5d7600
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Wed Mar 2 19:38:04 2011 -0500

    kms: add cayman pci ids
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/src/ati_pciids_gen.h b/src/ati_pciids_gen.h
index f7b7569..598dd72 100644
--- a/src/ati_pciids_gen.h
+++ b/src/ati_pciids_gen.h
@@ -500,6 +500,20 @@
 #define PCI_CHIP_CEDAR_68F8 0x68F8
 #define PCI_CHIP_CEDAR_68F9 0x68F9
 #define PCI_CHIP_CEDAR_68FE 0x68FE
+#define PCI_CHIP_CAYMAN_6700 0x6700
+#define PCI_CHIP_CAYMAN_6701 0x6701
+#define PCI_CHIP_CAYMAN_6702 0x6702
+#define PCI_CHIP_CAYMAN_6703 0x6703
+#define PCI_CHIP_CAYMAN_6704 0x6704
+#define PCI_CHIP_CAYMAN_6705 0x6705
+#define PCI_CHIP_CAYMAN_6706 0x6706
+#define PCI_CHIP_CAYMAN_6707 0x6707
+#define PCI_CHIP_CAYMAN_6708 0x6708
+#define PCI_CHIP_CAYMAN_6709 0x6709
+#define PCI_CHIP_CAYMAN_6718 0x6718
+#define PCI_CHIP_CAYMAN_6719 0x6719
+#define PCI_CHIP_CAYMAN_671C 0x671C
+#define PCI_CHIP_CAYMAN_671D 0x671D
 #define PCI_CHIP_BARTS_6720 0x6720
 #define PCI_CHIP_BARTS_6721 0x6721
 #define PCI_CHIP_BARTS_6722 0x6722
diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv
index e8bfb4c..07454af 100644
--- a/src/pcidb/ati_pciids.csv
+++ b/src/pcidb/ati_pciids.csv
@@ -501,6 +501,20 @@
 "0x68F8","CEDAR_68F8","CEDAR",,,,,,"CEDAR"
 "0x68F9","CEDAR_68F9","CEDAR",,,,,,"ATI Radeon HD 5450"
 "0x68FE","CEDAR_68FE","CEDAR",,,,,,"CEDAR"
+"0x6700","CAYMAN_6700","CAYMAN",,,,,,"CAYMAN"
+"0x6701","CAYMAN_6701","CAYMAN",,,,,,"CAYMAN"
+"0x6702","CAYMAN_6702","CAYMAN",,,,,,"CAYMAN"
+"0x6703","CAYMAN_6703","CAYMAN",,,,,,"CAYMAN"
+"0x6704","CAYMAN_6704","CAYMAN",,,,,,"CAYMAN"
+"0x6705","CAYMAN_6705","CAYMAN",,,,,,"CAYMAN"
+"0x6706","CAYMAN_6706","CAYMAN",,,,,,"CAYMAN"
+"0x6707","CAYMAN_6707","CAYMAN",,,,,,"CAYMAN"
+"0x6708","CAYMAN_6708","CAYMAN",,,,,,"CAYMAN"
+"0x6709","CAYMAN_6709","CAYMAN",,,,,,"CAYMAN"
+"0x6718","CAYMAN_6718","CAYMAN",,,,,,"AMD Radeon HD 6900 Series"
+"0x6719","CAYMAN_6719","CAYMAN",,,,,,"AMD Radeon HD 6900 Series"
+"0x671C","CAYMAN_671C","CAYMAN",,,,,,"CAYMAN"
+"0x671D","CAYMAN_671D","CAYMAN",,,,,,"CAYMAN"
 "0x6720","BARTS_6720","BARTS",1,,,,,"AMD Radeon HD 6900M Series"
 "0x6721","BARTS_6721","BARTS",1,,,,,"Mobility Radeon HD 6000 Series"
 "0x6722","BARTS_6722","BARTS",,,,,,"BARTS"
diff --git a/src/radeon_chipinfo_gen.h b/src/radeon_chipinfo_gen.h
index a90fae7..2caeed9 100644
--- a/src/radeon_chipinfo_gen.h
+++ b/src/radeon_chipinfo_gen.h
@@ -420,6 +420,20 @@ static RADEONCardInfo RADEONCards[] = {
  { 0x68F8, CHIP_FAMILY_CEDAR, 0, 0, 0, 0, 0 },
  { 0x68F9, CHIP_FAMILY_CEDAR, 0, 0, 0, 0, 0 },
  { 0x68FE, CHIP_FAMILY_CEDAR, 0, 0, 0, 0, 0 },
+ { 0x6700, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x6701, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x6702, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x6703, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x6704, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x6705, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x6706, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x6707, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x6708, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x6709, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x6718, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x6719, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x671C, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
+ { 0x671D, CHIP_FAMILY_CAYMAN, 0, 0, 0, 0, 0 },
  { 0x6720, CHIP_FAMILY_BARTS, 1, 0, 0, 0, 0 },
  { 0x6721, CHIP_FAMILY_BARTS, 1, 0, 0, 0, 0 },
  { 0x6722, CHIP_FAMILY_BARTS, 0, 0, 0, 0, 0 },
diff --git a/src/radeon_chipset_gen.h b/src/radeon_chipset_gen.h
index 2af046c..e4c38f0 100644
--- a/src/radeon_chipset_gen.h
+++ b/src/radeon_chipset_gen.h
@@ -420,6 +420,20 @@ static SymTabRec RADEONChipsets[] = {
   { PCI_CHIP_CEDAR_68F8, "CEDAR" },
   { PCI_CHIP_CEDAR_68F9, "ATI Radeon HD 5450" },
   { PCI_CHIP_CEDAR_68FE, "CEDAR" },
+  { PCI_CHIP_CAYMAN_6700, "CAYMAN" },
+  { PCI_CHIP_CAYMAN_6701, "CAYMAN" },
+  { PCI_CHIP_CAYMAN_6702, "CAYMAN" },
+  { PCI_CHIP_CAYMAN_6703, "CAYMAN" },
+  { PCI_CHIP_CAYMAN_6704, "CAYMAN" },
+  { PCI_CHIP_CAYMAN_6705, "CAYMAN" },
+  { PCI_CHIP_CAYMAN_6706, "CAYMAN" },
+  { PCI_CHIP_CAYMAN_6707, "CAYMAN" },
+  { PCI_CHIP_CAYMAN_6708, "CAYMAN" },
+  { PCI_CHIP_CAYMAN_6709, "CAYMAN" },
+  { PCI_CHIP_CAYMAN_6718, "AMD Radeon HD 6900 Series" },
+  { PCI_CHIP_CAYMAN_6719, "AMD Radeon HD 6900 Series" },
+  { PCI_CHIP_CAYMAN_671C, "CAYMAN" },
+  { PCI_CHIP_CAYMAN_671D, "CAYMAN" },
   { PCI_CHIP_BARTS_6720, "AMD Radeon HD 6900M Series" },
   { PCI_CHIP_BARTS_6721, "Mobility Radeon HD 6000 Series" },
   { PCI_CHIP_BARTS_6722, "BARTS" },
diff --git a/src/radeon_pci_chipset_gen.h b/src/radeon_pci_chipset_gen.h
index b4b2a79..1165049 100644
--- a/src/radeon_pci_chipset_gen.h
+++ b/src/radeon_pci_chipset_gen.h
@@ -420,6 +420,20 @@ PciChipsets RADEONPciChipsets[] = {
  { PCI_CHIP_CEDAR_68F8, PCI_CHIP_CEDAR_68F8, RES_SHARED_VGA },
  { PCI_CHIP_CEDAR_68F9, PCI_CHIP_CEDAR_68F9, RES_SHARED_VGA },
  { PCI_CHIP_CEDAR_68FE, PCI_CHIP_CEDAR_68FE, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6700, PCI_CHIP_CAYMAN_6700, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6701, PCI_CHIP_CAYMAN_6701, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6702, PCI_CHIP_CAYMAN_6702, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6703, PCI_CHIP_CAYMAN_6703, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6704, PCI_CHIP_CAYMAN_6704, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6705, PCI_CHIP_CAYMAN_6705, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6706, PCI_CHIP_CAYMAN_6706, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6707, PCI_CHIP_CAYMAN_6707, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6708, PCI_CHIP_CAYMAN_6708, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6709, PCI_CHIP_CAYMAN_6709, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6718, PCI_CHIP_CAYMAN_6718, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_6719, PCI_CHIP_CAYMAN_6719, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_671C, PCI_CHIP_CAYMAN_671C, RES_SHARED_VGA },
+ { PCI_CHIP_CAYMAN_671D, PCI_CHIP_CAYMAN_671D, RES_SHARED_VGA },
  { PCI_CHIP_BARTS_6720, PCI_CHIP_BARTS_6720, RES_SHARED_VGA },
  { PCI_CHIP_BARTS_6721, PCI_CHIP_BARTS_6721, RES_SHARED_VGA },
  { PCI_CHIP_BARTS_6722, PCI_CHIP_BARTS_6722, RES_SHARED_VGA },
diff --git a/src/radeon_pci_device_match_gen.h 
b/src/radeon_pci_device_match_gen.h
index aa50306..4bebfeb 100644
--- a/src/radeon_pci_device_match_gen.h
+++ b/src/radeon_pci_device_match_gen.h
@@ -420,6 +420,20 @@ static const struct pci_id_match radeon_device_match[] = {
  ATI_DEVICE_MATCH( PCI_CHIP_CEDAR_68F8, 0 ),
  ATI_DEVICE_MATCH( PCI_CHIP_CEDAR_68F9, 0 ),
  ATI_DEVICE_MATCH( PCI_CHIP_CEDAR_68FE, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6700, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6701, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6702, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6703, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6704, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6705, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6706, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6707, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6708, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6709, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6718, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_6719, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_671C, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_CAYMAN_671D, 0 ),
  ATI_DEVICE_MATCH( PCI_CHIP_BARTS_6720, 0 ),
  ATI_DEVICE_MATCH( PCI_CHIP_BARTS_6721, 0 ),
  ATI_DEVICE_MATCH( PCI_CHIP_BARTS_6722, 0 ),

commit fd65def45a57e3242596274d270791df8abc8e29
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Thu Jan 13 17:02:31 2011 -0500

    kms: no accel yet for cayman
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index b618045..125a132 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -258,6 +258,7 @@ static Bool RADEONPreInitAccel_KMS(ScrnInfoPtr pScrn)
     }
 
     if (xf86ReturnOptValBool(info->Options, OPTION_NOACCEL, FALSE) ||
+       (info->ChipFamily >= CHIP_FAMILY_CAYMAN) ||
        (!RADEONIsAccelWorking(pScrn))) {
        xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                   "GPU accel disabled or not working, using shadowfb for 
KMS\n");

commit 585e2a3b803b6d3e070f2427e9cb49bab0949239
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Thu Jan 13 16:58:01 2011 -0500

    kms: add cayman chip family
    
    KMS only.  No UMS support for cayman.
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/src/radeon.h b/src/radeon.h
index 4c43717..4f5095d 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -363,6 +363,7 @@ typedef enum {
     CHIP_FAMILY_BARTS,
     CHIP_FAMILY_TURKS,
     CHIP_FAMILY_CAICOS,
+    CHIP_FAMILY_CAYMAN,
     CHIP_FAMILY_LAST
 } RADEONChipFamily;
 

commit 6835e22256ba7a74c02504383f63baaba7e87156
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Wed Mar 2 12:20:45 2011 -0500

    r6xx+: truncate point sampled coordinates
    
    By default the hardware rounds texcoords. However,
    for point sampled textures, the expected behavior is
    to truncate. When we have point sampled textures,
    set the truncate bit in the sampler.
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/src/evergreen_exa.c b/src/evergreen_exa.c
index e5e7559..553f05e 100644
--- a/src/evergreen_exa.c
+++ b/src/evergreen_exa.c
@@ -325,6 +325,7 @@ EVERGREENDoPrepareCopy(ScrnInfoPtr pScrn)
     tex_samp.clamp_z            = SQ_TEX_WRAP;
     tex_samp.xy_mag_filter      = SQ_TEX_XY_FILTER_POINT;
     tex_samp.xy_min_filter      = SQ_TEX_XY_FILTER_POINT;
+    tex_samp.mc_coord_truncate  = 1;
     tex_samp.z_filter           = SQ_TEX_Z_FILTER_NONE;
     tex_samp.mip_filter         = 0;                   /* no mipmap */
     evergreen_set_tex_sampler   (pScrn, &tex_samp);
@@ -973,6 +974,7 @@ static Bool EVERGREENTextureSetup(PicturePtr pPict, 
PixmapPtr pPix,
     case PictFilterNearest:
        tex_samp.xy_mag_filter      = SQ_TEX_XY_FILTER_POINT;
        tex_samp.xy_min_filter      = SQ_TEX_XY_FILTER_POINT;
+       tex_samp.mc_coord_truncate  = 1;
        break;
     case PictFilterBilinear:
        tex_samp.xy_mag_filter      = SQ_TEX_XY_FILTER_BILINEAR;
diff --git a/src/r600_exa.c b/src/r600_exa.c
index ab5e33b..57e5c0f 100644
--- a/src/r600_exa.c
+++ b/src/r600_exa.c
@@ -467,6 +467,7 @@ R600DoPrepareCopy(ScrnInfoPtr pScrn)
     tex_samp.clamp_z            = SQ_TEX_WRAP;
     tex_samp.xy_mag_filter      = SQ_TEX_XY_FILTER_POINT;
     tex_samp.xy_min_filter      = SQ_TEX_XY_FILTER_POINT;
+    tex_samp.mc_coord_truncate  = 1;
     tex_samp.z_filter           = SQ_TEX_Z_FILTER_NONE;
     tex_samp.mip_filter         = 0;                   /* no mipmap */
     r600_set_tex_sampler(pScrn, accel_state->ib, &tex_samp);
@@ -1115,6 +1116,7 @@ static Bool R600TextureSetup(PicturePtr pPict, PixmapPtr 
pPix,
     case PictFilterNearest:
        tex_samp.xy_mag_filter      = SQ_TEX_XY_FILTER_POINT;
        tex_samp.xy_min_filter      = SQ_TEX_XY_FILTER_POINT;
+       tex_samp.mc_coord_truncate  = 1;
        break;
     case PictFilterBilinear:
        tex_samp.xy_mag_filter      = SQ_TEX_XY_FILTER_BILINEAR;

commit 8a8862e4165dc5be779bce5e327a31da4826db3b
Author: Sedat Dilek <sedat.di...@googlemail.com>
Date:   Sat Feb 26 21:04:22 2011 +0100

    kms: Fix warning XNFprintf is deprecated (v2)
    
    The first take of my patch missed the breakage against pre-1.10
    xservers and now I know XNFasprintf() is not a 1:1 replacement
    for XNFprintf().
    The idea for the fix seemed to be so obvious, but as usual "really"
    test the patch you are sending to any ML.
    I am awfully sorry for the overhasty bad hack.
    Thanks to Alan and Alex for the help to fix it correctly, now.
    
    Tested-By: Sedat Dilek <sedat.di...@gmail.com>
    Signed-off-by: Sedat Dilek <sedat.di...@gmail.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 4f6f120..b618045 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -409,8 +409,13 @@ static Bool radeon_open_drm_master(ScrnInfoPtr pScrn)
        goto out;
     }
 
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,9,99,901,0)
+    XNFasprintf(&busid, "pci:%04x:%02x:%02x.%d",
+                dev->domain, dev->bus, dev->dev, dev->func);
+#else
     busid = XNFprintf("pci:%04x:%02x:%02x.%d",
                      dev->domain, dev->bus, dev->dev, dev->func);
+#endif
 
     info->dri2.drm_fd = drmOpen("radeon", busid);
     if (info->dri2.drm_fd == -1) {

commit 88304fe9c0ce69012d44a77a5368c35236511dac
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Mon Feb 28 11:29:19 2011 -0500

    kms: don't rotate if acceleration is not enabled
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index a972389..7873d57 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -445,6 +445,8 @@ drmmode_show_cursor (xf86CrtcPtr crtc)
 static void *
 drmmode_crtc_shadow_allocate(xf86CrtcPtr crtc, int width, int height)
 {
+       ScrnInfoPtr pScrn = crtc->scrn;
+       RADEONInfoPtr info = RADEONPTR(pScrn);
        drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
        drmmode_ptr drmmode = drmmode_crtc->drmmode;
        int size;
@@ -453,6 +455,13 @@ drmmode_crtc_shadow_allocate(xf86CrtcPtr crtc, int width, 
int height)
        unsigned long rotate_pitch;
        int base_align;
 
+       /* rotation requires acceleration */
+       if (info->r600_shadow_fb) {
+               xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                          "Rotation requires acceleration!\n");
+               return NULL;
+       }
+
        rotate_pitch =
                RADEON_ALIGN(width, drmmode_get_pitch_align(crtc->scrn, 
drmmode->cpp, 0)) * drmmode->cpp;
        height = RADEON_ALIGN(height, drmmode_get_height_align(crtc->scrn, 0));

commit 99141761e947e2153ed1a3bc485dc5716a22acb1
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Mon Feb 28 11:20:44 2011 -0500

    kms: don't enable tiling if accel is off
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 158dc57..4f6f120 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -625,25 +625,31 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags)
        goto fail;
     }
 
-    colorTilingDefault = info->ChipFamily >= CHIP_FAMILY_R300 &&
-                         info->ChipFamily <= CHIP_FAMILY_RS740;
-
-    if (info->ChipFamily >= CHIP_FAMILY_R600) {
-       /* set default group bytes, overridden by kernel info below */
-       info->group_bytes = 256;
-       info->have_tiling_info = FALSE;
-       if (info->dri->pKernelDRMVersion->version_minor >= 6) {
-           if (r600_get_tile_config(pScrn))
-               info->allowColorTiling = xf86ReturnOptValBool(info->Options,
-                                                             
OPTION_COLOR_TILING, colorTilingDefault);
-           else
-               info->allowColorTiling = FALSE;
+    if (!RADEONPreInitAccel_KMS(pScrn))              goto fail;
+
+    /* don't enable tiling if accel is not enabled */
+    if (!info->r600_shadow_fb) {
+       colorTilingDefault = info->ChipFamily >= CHIP_FAMILY_R300 &&
+           info->ChipFamily <= CHIP_FAMILY_RS740;
+
+       if (info->ChipFamily >= CHIP_FAMILY_R600) {
+           /* set default group bytes, overridden by kernel info below */
+           info->group_bytes = 256;
+           info->have_tiling_info = FALSE;
+           if (info->dri->pKernelDRMVersion->version_minor >= 6) {
+               if (r600_get_tile_config(pScrn))
+                   info->allowColorTiling = xf86ReturnOptValBool(info->Options,
+                                                                 
OPTION_COLOR_TILING, colorTilingDefault);
+               else
+                   info->allowColorTiling = FALSE;
+           } else
+               xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                          "R6xx+ KMS Color Tiling requires radeon drm 2.6.0 or 
newer\n");
        } else
-           xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                      "R6xx+ KMS Color Tiling requires radeon drm 2.6.0 or 
newer\n");
+           info->allowColorTiling = xf86ReturnOptValBool(info->Options,
+                                                         OPTION_COLOR_TILING, 
colorTilingDefault);
     } else
-       info->allowColorTiling = xf86ReturnOptValBool(info->Options,
-                                                     OPTION_COLOR_TILING, 
colorTilingDefault);
+       info->allowColorTiling = FALSE;
 
     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
         "KMS Color Tiling: %sabled\n", info->allowColorTiling ? "en" : "dis");
@@ -740,8 +746,6 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags)
        if (!xf86LoadSubModule(pScrn, "ramdac")) return FALSE;
     }
 
-    if (!RADEONPreInitAccel_KMS(pScrn))              goto fail;
-
     if (pScrn->modes == NULL) {
       xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No modes.\n");
       goto fail;

commit 7928c120fb629a782846bcd5734d9fa14cbb099d
Author: Dave Airlie <airl...@redhat.com>
Date:   Mon Feb 28 14:11:57 2011 +1000

    xv: fix height alignments for U/V planes
    
    The kernel CS checks showed we were incorrectly aligning the
    U/V allocations for when we used them as texture sources.
    
    This should fix
    https://bugs.freedesktop.org/show_bug.cgi?id=34567
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c
index 65a4871..c886ed0 100644
--- a/src/radeon_textured_video.c
+++ b/src/radeon_textured_video.c
@@ -248,7 +248,7 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
     BoxRec dstBox;
     int dst_width = width, dst_height = height;
     int aligned_height;
-
+    int h_align = drmmode_get_height_align(pScrn, 0);
     /* make the compiler happy */
     s2offset = s3offset = srcPitch2 = 0;
 
@@ -299,7 +299,7 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
            pPriv->hw_align = 64;
     }
 
-    aligned_height = RADEON_ALIGN(dst_height, drmmode_get_height_align(pScrn, 
0));
+    aligned_height = RADEON_ALIGN(dst_height, h_align);
 
     switch(id) {
     case FOURCC_YV12:
@@ -323,7 +323,7 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
        break;
     }
 
-    size = dstPitch * aligned_height + 2 * dstPitch2 * ((aligned_height + 1) 
>> 1);
+    size = dstPitch * aligned_height + 2 * dstPitch2 * 
RADEON_ALIGN(((aligned_height + 1) >> 1), h_align);
     size = RADEON_ALIGN(size, pPriv->hw_align);
 
     if (size != pPriv->size) {
@@ -401,9 +401,9 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
     }
     pPriv->src_pitch = dstPitch;
 
-    pPriv->planeu_offset = dstPitch * dst_height;
+    pPriv->planeu_offset = dstPitch * aligned_height;
     pPriv->planeu_offset = RADEON_ALIGN(pPriv->planeu_offset, pPriv->hw_align);
-    pPriv->planev_offset = pPriv->planeu_offset + dstPitch2 * ((dst_height + 
1) >> 1);
+    pPriv->planev_offset = pPriv->planeu_offset + dstPitch2 * 
RADEON_ALIGN(((aligned_height + 1) >> 1), h_align);
     pPriv->planev_offset = RADEON_ALIGN(pPriv->planev_offset, pPriv->hw_align);
 
     pPriv->size = size;

commit e55520c0e582f2a500b3b01c2cb78750e15256ca
Author: Michel Dänzer <daen...@vmware.com>
Date:   Sat Feb 26 15:27:59 2011 +0100

    Revert "kms: Fix warning XNFprintf is deprecated"
    
    This reverts commit cb4dc7ab66016d0c980800f8dbf71bbe993889d3.
    
    Looks like this caused https://bugs.freedesktop.org/attachment.cgi?id=43852 
,
    but even if it didn't, the following needs to be addressed first:
    
    cc1: warnings being treated as errors
    ../../src/radeon_kms.c: In function ‘radeon_open_drm_master’:
    ../../src/radeon_kms.c:413: error: passing argument 1 of ‘XNFasprintf’ from 
incompatible pointer type
    /usr/local/include/xorg/Xprintf.h:57: note: expected ‘char **’ but argument 
is of type ‘char *’
    ../../src/radeon_kms.c:413: error: passing argument 2 of ‘XNFasprintf’ 
makes pointer from integer without a cast
    /usr/local/include/xorg/Xprintf.h:57: note: expected ‘const char * 
restrict’ but argument is of type ‘uint16_t’
    ../../src/radeon_kms.c:413: error: assignment makes pointer from integer 
without a cast
    make[2]: *** [radeon_kms.lo] Error 1

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 82ee660..158dc57 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -408,13 +408,9 @@ static Bool radeon_open_drm_master(ScrnInfoPtr pScrn)
        info->dri2.drm_fd = pRADEONEnt->fd;
        goto out;
     }
-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,9,99,901,0)
-    busid = XNFasprintf("pci:%04x:%02x:%02x.%d",
-                       dev->domain, dev->bus, dev->dev, dev->func);
-#else
+
     busid = XNFprintf("pci:%04x:%02x:%02x.%d",
                      dev->domain, dev->bus, dev->dev, dev->func);
-#endif
 
     info->dri2.drm_fd = drmOpen("radeon", busid);
     if (info->dri2.drm_fd == -1) {

commit cb4dc7ab66016d0c980800f8dbf71bbe993889d3
Author: Sedat Dilek <sedat.di...@gmail.com>
Date:   Fri Feb 25 17:21:52 2011 -0500

    kms: Fix warning XNFprintf is deprecated
    
    Noticed when building ati/radeon ddx against xserver 1.10-rc3.
    
    [ build.log ]
    ../../src/radeon_kms.c:412:5: warning: 'XNFprintf' is deprecated (declared 
at /usr/include/xorg/os.h:273)
    
    agd5f: don't break the build against pre-1.10 xservers.
    
    Signed-off-by: Sedat Dilek <sedat.di...@gmail.com>
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 158dc57..82ee660 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -408,9 +408,13 @@ static Bool radeon_open_drm_master(ScrnInfoPtr pScrn)
        info->dri2.drm_fd = pRADEONEnt->fd;
        goto out;
     }
-
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,9,99,901,0)
+    busid = XNFasprintf("pci:%04x:%02x:%02x.%d",
+                       dev->domain, dev->bus, dev->dev, dev->func);
+#else
     busid = XNFprintf("pci:%04x:%02x:%02x.%d",
                      dev->domain, dev->bus, dev->dev, dev->func);
+#endif
 
     info->dri2.drm_fd = drmOpen("radeon", busid);
     if (info->dri2.drm_fd == -1) {

commit ecfdb209afe2aafc378baab8c511f5df7b000270
Author: Sedat Dilek <sedat.di...@googlemail.com>
Date:   Fri Feb 25 21:48:14 2011 +0100

    UMS: Fix build against xserver 1.10-rc3
    
    This issue was introduced due to last minute backout of RandR-1.4
    in xserver 1.10-rc3.
    
    Switch to "#ifdef RANDR_14_INTERFACE" as suggested by Keith Packard.
    See also <http://lists.x.org/archives/xorg-devel/2011-February/019643.html>.
    
    Note:
    The ddx needs a rebuild as the X video driver ABI changed to version 10.0.
    
    Reported-by: Alex Deucher <alexdeuc...@gmail.com>
    CC: Keith Packard <kei...@keithp.com>
    Signed-off-by: Sedat Dilek <sedat.di...@gmail.com>

diff --git a/src/radeon_output.c b/src/radeon_output.c
index 15cef06..ccde346 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -1622,7 +1622,7 @@ radeon_set_mode_for_property(xf86OutputPtr output)
        xf86CrtcPtr crtc = output->crtc;
 
        if (crtc->enabled) {
-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,9,99,901,0)
+#ifdef RANDR_14_INTERFACE
            xf86CrtcSetRec crtc_set_rec;
 
            crtc_set_rec.flags = (XF86CrtcSetMode |

commit 04293a3a84acd96ccdf8e5e865cf973325ca43a1
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Thu Feb 24 02:33:41 2011 -0500

    dri2: disable pageflipping for transformed displays
    
    Based on Ben's nouveau patch.
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
index e8e16ff..66df03c 100644
--- a/src/radeon_dri2.c
+++ b/src/radeon_dri2.c
@@ -626,12 +626,21 @@ radeon_dri2_schedule_flip(ScrnInfoPtr scrn, ClientPtr 
client,
 }
 
 static Bool
-can_exchange(DRI2BufferPtr front, DRI2BufferPtr back)
+can_exchange(ScrnInfoPtr pScrn,
+            DRI2BufferPtr front, DRI2BufferPtr back)
 {
     struct dri2_buffer_priv *front_priv = front->driverPrivate;
     struct dri2_buffer_priv *back_priv = back->driverPrivate;
     PixmapPtr front_pixmap = front_priv->pixmap;
     PixmapPtr back_pixmap = back_priv->pixmap;
+    xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
+    int i;
+
+    for (i = 0; i < xf86_config->num_crtc; i++) {
+       xf86CrtcPtr crtc = xf86_config->crtc[i];
+       if (crtc->enabled && crtc->rotatedData)
+           return FALSE;
+    }
 
     if (front_pixmap->drawable.width != back_pixmap->drawable.width)
        return FALSE;
@@ -712,7 +721,7 @@ void radeon_dri2_frame_event_handler(unsigned int frame, 
unsigned int tv_sec,
     case DRI2_FLIP:
        if (info->allowPageFlip &&
            DRI2CanFlip(drawable) &&
-           can_exchange(event->front, event->back) &&
+           can_exchange(scrn, event->front, event->back) &&
            radeon_dri2_schedule_flip(scrn,
                                      event->client,
                                      drawable,
@@ -727,7 +736,7 @@ void radeon_dri2_frame_event_handler(unsigned int frame, 
unsigned int tv_sec,
        /* else fall through to exchange/blit */
     case DRI2_SWAP:
        if (DRI2CanExchange(drawable) &&
-           can_exchange(event->front, event->back)) {
+           can_exchange(scrn, event->front, event->back)) {
            radeon_dri2_exchange_buffers(drawable, event->front, event->back);
            swap_type = DRI2_EXCHANGE_COMPLETE;
        } else {
@@ -1075,7 +1084,7 @@ static int radeon_dri2_schedule_swap(ClientPtr client, 
DrawablePtr draw,
     /* Flips need to be submitted one frame before */
     if (info->allowPageFlip &&
        DRI2CanFlip(draw) &&
-       can_exchange(front, back)) {
+       can_exchange(scrn, front, back)) {
        swap_type = DRI2_FLIP;
        flip = 1;
     }

commit 91070cfd75d5607c4a72ace780f830f0ddb40e84
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Wed Feb 23 00:55:28 2011 -0500

    Xv: use aligned height to calculate Xv buffer size
    
    Make sure it's large enough for the tiling mode so the
    CS checker doesn't complain.  Should fix:
    https://bugs.freedesktop.org/show_bug.cgi?id=34567
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c
index f2c8f6a..65a4871 100644
--- a/src/radeon_textured_video.c
+++ b/src/radeon_textured_video.c
@@ -247,6 +247,7 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
     int top, nlines, size;
     BoxRec dstBox;
     int dst_width = width, dst_height = height;
+    int aligned_height;
 
     /* make the compiler happy */
     s2offset = s3offset = srcPitch2 = 0;
@@ -298,6 +299,8 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
            pPriv->hw_align = 64;
     }
 
+    aligned_height = RADEON_ALIGN(dst_height, drmmode_get_height_align(pScrn, 
0));
+
     switch(id) {
     case FOURCC_YV12:
     case FOURCC_I420:
@@ -320,7 +323,7 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
        break;
     }
 
-    size = dstPitch * dst_height + 2 * dstPitch2 * ((dst_height + 1) >> 1);
+    size = dstPitch * aligned_height + 2 * dstPitch2 * ((aligned_height + 1) 
>> 1);
     size = RADEON_ALIGN(size, pPriv->hw_align);
 
     if (size != pPriv->size) {

commit acd54a48a6680956ed903fc890204c0c910b6712
Author: Mark Kettenis <kette...@openbsd.org>
Date:   Sun Feb 20 22:51:04 2011 +0100

    Properly restore CLOCK_CNTL_INDEX register
    
    RADEONRestore() restores the CLOCK_CNTL_INDEX register before calling
    RADEONRestorePLLRegisters(), which modifies the CLOCK_CNTL_INDEX register
    to access the PLL registers.  As a result we may end up with the wrong clock
    being selected when exiting X.  This happens on platforms where the driver
    doesn't save and restore the VGA state.
    
    Signed-off-by: Mark Kettenis <kette...@openbsd.org>

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 20a81e6..35c2761 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -5825,8 +5825,6 @@ static void RADEONRestore(ScrnInfoPtr pScrn)
        RADEONRestoreMemMapRegisters(pScrn, restore);
        avivo_restore(pScrn, restore);
     } else {
-       OUTREG(RADEON_CLOCK_CNTL_INDEX, restore->clock_cntl_index);
-       RADEONPllErrataAfterIndex(info);
        OUTREG(RADEON_RBBM_SOFT_RESET,  restore->rbbm_soft_reset);
        OUTREG(RADEON_DP_DATATYPE,      restore->dp_datatype);
        OUTREG(RADEON_GRPH_BUFFER_CNTL, restore->grph_buffer_cntl);
@@ -5852,6 +5850,9 @@ static void RADEONRestore(ScrnInfoPtr pScrn)
                RADEONRestoreTVRegisters(pScrn, restore);
        }
 
+       OUTREG(RADEON_CLOCK_CNTL_INDEX, restore->clock_cntl_index);
+       RADEONPllErrataAfterIndex(info);
+
        RADEONRestoreBIOSRegisters(pScrn, restore);
     }
 

commit d7c2ba4286ea32401c0026cb92ec167f7b5753d8
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Wed Feb 16 18:30:34 2011 -0500

    man: add btc chips to the list
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/man/radeon.man b/man/radeon.man
index 285cb39..295b194 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -184,6 +184,15 @@ Radeon HD 5970
 .TP 12
 .B PALM
 Radeon HD 6310/6250
+.TP 12
+.B BARTS
+Radeon HD 6850/6870
+.TP 12
+.B TURKS
+Radeon HD 6570/6670
+.TP 12
+.B CAICOS
+Radeon HD 6450
 .PD
 .SH CONFIGURATION DETAILS
 Please refer to __xconfigfile__(__filemansuffix__) for general configuration

commit d0f8bffbbc26818eccdd305ef142387dc4975bba
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Wed Feb 16 15:09:20 2011 -0500

    kms: add tiling support for evergreen/NI
    
    - requires 2.6.37 or newer
    - 1D only at the moment
    - disabled by default
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 269a850..158dc57 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -472,8 +472,38 @@ static Bool r600_get_tile_config(ScrnInfoPtr pScrn)
     info->tile_config = tmp;
     info->r7xx_bank_op = 0;
     if (info->ChipFamily >= CHIP_FAMILY_CEDAR) {
-       /* for now */
-       return FALSE;
+       if (info->dri->pKernelDRMVersion->version_minor >= 7) {
+           switch (info->tile_config & 0xf) {
+           case 0:
+                info->num_channels = 1;
+                break;
+           case 1:


-- 
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/e1q3iam-0003s6...@alioth.debian.org

Reply via email to