configure.ac                      |   24 +++++--
 man/radeon.man                    |   25 ++++---
 src/ati_pciids_gen.h              |   16 ++++
 src/drmmode_display.c             |   28 ++++----
 src/evergreen_accel.c             |    2 
 src/pcidb/ati_pciids.csv          |   16 ++++
 src/radeon.h                      |   21 ++++--
 src/radeon_chipinfo_gen.h         |   16 ++++
 src/radeon_chipset_gen.h          |   16 ++++
 src/radeon_dri2.c                 |    9 ++
 src/radeon_glamor.c               |   37 +++++++----
 src/radeon_kms.c                  |  127 +++++++++++++++++++++++++++-----------
 src/radeon_pci_chipset_gen.h      |   16 ++++
 src/radeon_pci_device_match_gen.h |   16 ++++
 src/radeon_probe.c                |    5 +
 src/radeon_probe.h                |    9 ++
 16 files changed, 300 insertions(+), 83 deletions(-)

New commits:
commit 906a0ec9224146098bb4581486129d2934d36495
Author: Maarten Lankhorst <maarten.lankho...@canonical.com>
Date:   Wed Jun 25 16:10:21 2014 +0200

    bump version for release

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

commit cc615d06db0332fc6e673b55632bcc7bf957b44b
Author: Michel Dänzer <michel.daen...@amd.com>
Date:   Wed Jun 4 16:58:53 2014 +0900

    Rename Option "NoAccel" to "Accel"
    
    Removes the need for a double negation when forcing acceleration on.
    
    Note that this change is backwards compatible, as the option parser
    automagically handles the 'No' prefix.
    
    Reviewed-by: Alex Deucher <alexander.deuc...@amd.com>

diff --git a/man/radeon.man b/man/radeon.man
index 65b880c..802f6c2 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -225,12 +225,12 @@ are supported:
 Selects software cursor.  The default is
 .B off.
 .TP
-.BI "Option \*qNoAccel\*q \*q" boolean \*q
+.BI "Option \*qAccel\*q \*q" boolean \*q
 Enables or disables all hardware acceleration.
 .br
-The default is to
-.B enable
-hardware acceleration.
+The default is
+.B on
+except for HAWAII.
 .TP
 .BI "Option \*qZaphodHeads\*q \*q" string \*q
 Specify the RandR output(s) to use with zaphod mode for a particular driver
diff --git a/src/radeon.h b/src/radeon.h
index 136a430..eac6ed5 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -135,7 +135,7 @@
 #endif
 
 typedef enum {
-    OPTION_NOACCEL,
+    OPTION_ACCEL,
     OPTION_SW_CURSOR,
     OPTION_PAGE_FLIP,
     OPTION_EXA_PIXMAPS,
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index ceaf575..707d0c7 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -59,7 +59,7 @@ extern SymTabRec RADEONChipsets[];
 static Bool radeon_setup_kernel_mem(ScreenPtr pScreen);
 
 const OptionInfoRec RADEONOptions_KMS[] = {
-    { OPTION_NOACCEL,        "NoAccel",          OPTV_BOOLEAN, {0}, FALSE },
+    { OPTION_ACCEL,          "Accel",            OPTV_BOOLEAN, {0}, FALSE },
     { OPTION_SW_CURSOR,      "SWcursor",         OPTV_BOOLEAN, {0}, FALSE },
     { OPTION_PAGE_FLIP,      "EnablePageFlip",   OPTV_BOOLEAN, {0}, FALSE },
     { OPTION_COLOR_TILING,   "ColorTiling",      OPTV_BOOLEAN, {0}, FALSE },
@@ -499,8 +499,8 @@ static Bool RADEONPreInitAccel_KMS(ScrnInfoPtr pScrn)
        info->is_fast_fb = TRUE;
     }
 
-    if (xf86ReturnOptValBool(info->Options, OPTION_NOACCEL,
-                            info->ChipFamily == CHIP_FAMILY_HAWAII) ||
+    if (!xf86ReturnOptValBool(info->Options, OPTION_ACCEL,
+                            info->ChipFamily != CHIP_FAMILY_HAWAII) ||
        (!RADEONIsAccelWorking(pScrn))) {
        xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                   "GPU accel disabled or not working, using shadowfb for 
KMS\n");

commit 851b2cf8714618843725f6d067915375485ade9d
Author: Adam Jackson <a...@redhat.com>
Date:   Wed May 21 09:34:32 2014 -0400

    kms: Use own thunk function instead of shadowUpdatePackedWeak
    
    I plan to delete the Weak functions from a future server.
    
    Signed-off-by: Adam Jackson <a...@redhat.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 5e052e4..ceaf575 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -212,6 +212,12 @@ radeonShadowWindow(ScreenPtr screen, CARD32 row, CARD32 
offset, int mode,
     return ((uint8_t *)info->front_bo->ptr + row * stride + offset);
 }
 
+static void
+radeonUpdatePacked(ScreenPtr pScreen, shadowBufPtr pBuf)
+{
+    shadowUpdatePacked(pScreen, pBuf);
+}
+
 static Bool RADEONCreateScreenResources_KMS(ScreenPtr pScreen)
 {
     ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
@@ -232,7 +238,7 @@ static Bool RADEONCreateScreenResources_KMS(ScreenPtr 
pScreen)
     if (info->r600_shadow_fb) {
        pixmap = pScreen->GetScreenPixmap(pScreen);
 
-       if (!shadowAdd(pScreen, pixmap, shadowUpdatePackedWeak(),
+       if (!shadowAdd(pScreen, pixmap, radeonUpdatePacked,
                       radeonShadowWindow, 0, NULL))
            return FALSE;
     }

commit b2dba2906f0b2284f17f53fd5251ba0f03d52a8b
Author: Michel Dänzer <michel.daen...@amd.com>
Date:   Thu May 15 16:07:53 2014 +0900

    Don't disable acceleration on >= SI on attempts to force EXA
    
    Also make this case clear in the log file:
    
     (WW) RADEON(0): EXA not supported, using glamor
    
    Reviewed-by: Alex Deucher <alexander.deuc...@amd.com>

diff --git a/src/radeon_glamor.c b/src/radeon_glamor.c
index 4aea51d..210ddcf 100644
--- a/src/radeon_glamor.c
+++ b/src/radeon_glamor.c
@@ -90,8 +90,13 @@ radeon_glamor_pre_init(ScrnInfoPtr scrn)
        if (s == NULL && info->ChipFamily < CHIP_FAMILY_TAHITI)
                return FALSE;
 
-       if (s && strcasecmp(s, "glamor") != 0)
-               return FALSE;
+       if (s && strcasecmp(s, "glamor") != 0) {
+               if (info->ChipFamily >= CHIP_FAMILY_TAHITI)
+                       xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+                                  "EXA not supported, using glamor\n");
+               else
+                       return FALSE;
+       }
 
        if (info->ChipFamily < CHIP_FAMILY_R300) {
                xf86DrvMsg(scrn->scrnIndex, X_ERROR,

commit be1469cc23aba46daf3293b3d09c5f2e792e7f42
Author: Alex Deucher <alexander.deuc...@amd.com>
Date:   Fri May 2 17:48:07 2014 -0400

    radeon: enable tiling for mullins
    
    Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index fb93f8a..5e052e4 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -889,13 +889,13 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags)
             * with proper bit, in the meantime you need to set tiling option in
             * xorg configuration files
             */
-           info->ChipFamily <= CHIP_FAMILY_HAWAII &&
+           info->ChipFamily <= CHIP_FAMILY_MULLINS &&
            !info->is_fast_fb;
 
        /* 2D color tiling */
        if (info->ChipFamily >= CHIP_FAMILY_R600) {
                info->allowColorTiling2D = xf86ReturnOptValBool(info->Options, 
OPTION_COLOR_TILING_2D,
-                                                                
info->ChipFamily <= CHIP_FAMILY_HAWAII);
+                                                                
info->ChipFamily <= CHIP_FAMILY_MULLINS);
        }
 
        if (info->ChipFamily >= CHIP_FAMILY_R600) {

commit 2ae8e4b8d12f5c9bab6655eb8cd3c5c1d5cfb10e
Author: Samuel Li <samuel...@amd.com>
Date:   Tue Nov 12 15:30:42 2013 -0500

    radeon: add Mullins pci ids.
    
    Signed-off-by: Samuel Li <samuel...@amd.com>
    Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
    Reviewed-by: Michel Dänzer <michel.daen...@amd.com>

diff --git a/src/ati_pciids_gen.h b/src/ati_pciids_gen.h
index eb57992..94c8fc8 100644
--- a/src/ati_pciids_gen.h
+++ b/src/ati_pciids_gen.h
@@ -722,6 +722,22 @@
 #define PCI_CHIP_KABINI_983D 0x983D
 #define PCI_CHIP_KABINI_983E 0x983E
 #define PCI_CHIP_KABINI_983F 0x983F
+#define PCI_CHIP_MULLINS_9850 0x9850
+#define PCI_CHIP_MULLINS_9851 0x9851
+#define PCI_CHIP_MULLINS_9852 0x9852
+#define PCI_CHIP_MULLINS_9853 0x9853
+#define PCI_CHIP_MULLINS_9854 0x9854
+#define PCI_CHIP_MULLINS_9855 0x9855
+#define PCI_CHIP_MULLINS_9856 0x9856
+#define PCI_CHIP_MULLINS_9857 0x9857
+#define PCI_CHIP_MULLINS_9858 0x9858
+#define PCI_CHIP_MULLINS_9859 0x9859
+#define PCI_CHIP_MULLINS_985A 0x985A
+#define PCI_CHIP_MULLINS_985B 0x985B
+#define PCI_CHIP_MULLINS_985C 0x985C
+#define PCI_CHIP_MULLINS_985D 0x985D
+#define PCI_CHIP_MULLINS_985E 0x985E
+#define PCI_CHIP_MULLINS_985F 0x985F
 #define PCI_CHIP_KAVERI_1304 0x1304
 #define PCI_CHIP_KAVERI_1305 0x1305
 #define PCI_CHIP_KAVERI_1306 0x1306
diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv
index 8469a2a..e334230 100644
--- a/src/pcidb/ati_pciids.csv
+++ b/src/pcidb/ati_pciids.csv
@@ -723,6 +723,22 @@
 "0x983D","KABINI_983D","KABINI",,1,,,1,"KABINI"
 "0x983E","KABINI_983E","KABINI",,1,,,1,"KABINI"
 "0x983F","KABINI_983F","KABINI",,1,,,1,"KABINI"
+"0x9850","MULLINS_9850","MULLINS",1,1,,,1,"MULLINS"
+"0x9851","MULLINS_9851","MULLINS",1,1,,,1,"MULLINS"
+"0x9852","MULLINS_9852","MULLINS",1,1,,,1,"MULLINS"
+"0x9853","MULLINS_9853","MULLINS",1,1,,,1,"MULLINS"
+"0x9854","MULLINS_9854","MULLINS",1,1,,,1,"MULLINS"
+"0x9845","MULLINS_9855","MULLINS",1,1,,,1,"MULLINS"
+"0x9856","MULLINS_9856","MULLINS",1,1,,,1,"MULLINS"
+"0x9857","MULLINS_9857","MULLINS",1,1,,,1,"MULLINS"
+"0x9858","MULLINS_9858","MULLINS",1,1,,,1,"MULLINS"
+"0x9859","MULLINS_9859","MULLINS",1,1,,,1,"MULLINS"
+"0x985A","MULLINS_985A","MULLINS",1,1,,,1,"MULLINS"
+"0x985B","MULLINS_985B","MULLINS",1,1,,,1,"MULLINS"
+"0x985C","MULLINS_985C","MULLINS",1,1,,,1,"MULLINS"
+"0x985D","MULLINS_985D","MULLINS",1,1,,,1,"MULLINS"
+"0x985E","MULLINS_985E","MULLINS",1,1,,,1,"MULLINS"
+"0x985F","MULLINS_985F","MULLINS",1,1,,,1,"MULLINS"
 "0x1304","KAVERI_1304","KAVERI",1,1,,,1,"KAVERI"
 "0x1305","KAVERI_1305","KAVERI",,1,,,1,"KAVERI"
 "0x1306","KAVERI_1306","KAVERI",1,1,,,1,"KAVERI"
diff --git a/src/radeon_chipinfo_gen.h b/src/radeon_chipinfo_gen.h
index fc9474b..4f6e3bc 100644
--- a/src/radeon_chipinfo_gen.h
+++ b/src/radeon_chipinfo_gen.h
@@ -642,6 +642,22 @@ static RADEONCardInfo RADEONCards[] = {
  { 0x983D, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
  { 0x983E, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
  { 0x983F, CHIP_FAMILY_KABINI, 0, 1, 0, 0, 1 },
+ { 0x9850, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x9851, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x9852, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x9853, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x9854, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x9855, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x9856, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x9857, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x9858, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x9859, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x985A, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x985B, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x985C, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x985D, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x985E, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
+ { 0x985F, CHIP_FAMILY_MULLINS, 1, 1, 0, 0, 1 },
  { 0x1304, CHIP_FAMILY_KAVERI, 1, 1, 0, 0, 1 },
  { 0x1305, CHIP_FAMILY_KAVERI, 0, 1, 0, 0, 1 },
  { 0x1306, CHIP_FAMILY_KAVERI, 1, 1, 0, 0, 1 },
diff --git a/src/radeon_chipset_gen.h b/src/radeon_chipset_gen.h
index afab6b0..03a413e 100644
--- a/src/radeon_chipset_gen.h
+++ b/src/radeon_chipset_gen.h
@@ -642,6 +642,22 @@ SymTabRec RADEONChipsets[] = {
   { PCI_CHIP_KABINI_983D, "KABINI" },
   { PCI_CHIP_KABINI_983E, "KABINI" },
   { PCI_CHIP_KABINI_983F, "KABINI" },
+  { PCI_CHIP_MULLINS_9850, "MULLINS" },
+  { PCI_CHIP_MULLINS_9851, "MULLINS" },
+  { PCI_CHIP_MULLINS_9852, "MULLINS" },
+  { PCI_CHIP_MULLINS_9853, "MULLINS" },
+  { PCI_CHIP_MULLINS_9854, "MULLINS" },
+  { PCI_CHIP_MULLINS_9855, "MULLINS" },
+  { PCI_CHIP_MULLINS_9856, "MULLINS" },
+  { PCI_CHIP_MULLINS_9857, "MULLINS" },
+  { PCI_CHIP_MULLINS_9858, "MULLINS" },
+  { PCI_CHIP_MULLINS_9859, "MULLINS" },
+  { PCI_CHIP_MULLINS_985A, "MULLINS" },
+  { PCI_CHIP_MULLINS_985B, "MULLINS" },
+  { PCI_CHIP_MULLINS_985C, "MULLINS" },
+  { PCI_CHIP_MULLINS_985D, "MULLINS" },
+  { PCI_CHIP_MULLINS_985E, "MULLINS" },
+  { PCI_CHIP_MULLINS_985F, "MULLINS" },
   { PCI_CHIP_KAVERI_1304, "KAVERI" },
   { PCI_CHIP_KAVERI_1305, "KAVERI" },
   { PCI_CHIP_KAVERI_1306, "KAVERI" },
diff --git a/src/radeon_pci_chipset_gen.h b/src/radeon_pci_chipset_gen.h
index da4440b..a9b186c 100644
--- a/src/radeon_pci_chipset_gen.h
+++ b/src/radeon_pci_chipset_gen.h
@@ -642,6 +642,22 @@ static PciChipsets RADEONPciChipsets[] = {
  { PCI_CHIP_KABINI_983D, PCI_CHIP_KABINI_983D, RES_SHARED_VGA },
  { PCI_CHIP_KABINI_983E, PCI_CHIP_KABINI_983E, RES_SHARED_VGA },
  { PCI_CHIP_KABINI_983F, PCI_CHIP_KABINI_983F, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_9850, PCI_CHIP_MULLINS_9850, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_9851, PCI_CHIP_MULLINS_9851, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_9852, PCI_CHIP_MULLINS_9852, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_9853, PCI_CHIP_MULLINS_9853, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_9854, PCI_CHIP_MULLINS_9854, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_9855, PCI_CHIP_MULLINS_9855, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_9856, PCI_CHIP_MULLINS_9856, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_9857, PCI_CHIP_MULLINS_9857, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_9858, PCI_CHIP_MULLINS_9858, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_9859, PCI_CHIP_MULLINS_9859, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_985A, PCI_CHIP_MULLINS_985A, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_985B, PCI_CHIP_MULLINS_985B, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_985C, PCI_CHIP_MULLINS_985C, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_985D, PCI_CHIP_MULLINS_985D, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_985E, PCI_CHIP_MULLINS_985E, RES_SHARED_VGA },
+ { PCI_CHIP_MULLINS_985F, PCI_CHIP_MULLINS_985F, RES_SHARED_VGA },
  { PCI_CHIP_KAVERI_1304, PCI_CHIP_KAVERI_1304, RES_SHARED_VGA },
  { PCI_CHIP_KAVERI_1305, PCI_CHIP_KAVERI_1305, RES_SHARED_VGA },
  { PCI_CHIP_KAVERI_1306, PCI_CHIP_KAVERI_1306, RES_SHARED_VGA },
diff --git a/src/radeon_pci_device_match_gen.h 
b/src/radeon_pci_device_match_gen.h
index d4b3763..a73d9c1 100644
--- a/src/radeon_pci_device_match_gen.h
+++ b/src/radeon_pci_device_match_gen.h
@@ -642,6 +642,22 @@ static const struct pci_id_match radeon_device_match[] = {
  ATI_DEVICE_MATCH( PCI_CHIP_KABINI_983D, 0 ),
  ATI_DEVICE_MATCH( PCI_CHIP_KABINI_983E, 0 ),
  ATI_DEVICE_MATCH( PCI_CHIP_KABINI_983F, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_9850, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_9851, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_9852, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_9853, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_9854, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_9855, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_9856, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_9857, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_9858, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_9859, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_985A, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_985B, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_985C, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_985D, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_985E, 0 ),
+ ATI_DEVICE_MATCH( PCI_CHIP_MULLINS_985F, 0 ),
  ATI_DEVICE_MATCH( PCI_CHIP_KAVERI_1304, 0 ),
  ATI_DEVICE_MATCH( PCI_CHIP_KAVERI_1305, 0 ),
  ATI_DEVICE_MATCH( PCI_CHIP_KAVERI_1306, 0 ),

commit 5c86a3461597647224c33d5190b4531aeeb2655f
Author: Samuel Li <samuel...@amd.com>
Date:   Thu Apr 17 15:17:28 2014 -0400

    radeon: add support for Mullins.
    
    Signed-off-by: Samuel Li <samuel...@amd.com>
    Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
    Reviewed-by: Michel Dänzer <michel.daen...@amd.com>

diff --git a/man/radeon.man b/man/radeon.man
index f6a825d..65b880c 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -208,6 +208,9 @@ KABINI APUs
 .TP 12
 .B HAWAII
 Radeon R9 series
+.TP 12
+.B MULLINS
+MULLINS APUs
 .PD
 .SH CONFIGURATION DETAILS
 Please refer to __xconfigfile__(__filemansuffix__) for general configuration
diff --git a/src/radeon_probe.h b/src/radeon_probe.h
index 9500189..3fe4644 100644
--- a/src/radeon_probe.h
+++ b/src/radeon_probe.h
@@ -116,6 +116,7 @@ typedef enum {
     CHIP_FAMILY_KAVERI,
     CHIP_FAMILY_KABINI,
     CHIP_FAMILY_HAWAII,
+    CHIP_FAMILY_MULLINS,
     CHIP_FAMILY_LAST
 } RADEONChipFamily;
 

commit fdb90ffc50acbb7d5ba0598470f9feeac6ce55fc
Author: Alex Deucher <alexander.deuc...@amd.com>
Date:   Fri May 2 17:45:45 2014 -0400

    radeon: require libdrm_radeon 2.4.54 for mullins support
    
    Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>

diff --git a/configure.ac b/configure.ac
index 9086bb6..dc2a656 100644
--- a/configure.ac
+++ b/configure.ac
@@ -71,7 +71,7 @@ XORG_DRIVER_CHECK_EXT(XV, videoproto)
 XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
 
 # Checks for libraries.
-PKG_CHECK_MODULES(LIBDRM, [libdrm >= 2.4.51])
+PKG_CHECK_MODULES(LIBDRM, [libdrm >= 2.4.54])
 PKG_CHECK_MODULES(LIBDRM_RADEON, [libdrm_radeon])
 
 # Obtain compiler/linker options for the driver dependencies

commit 06e3c8c53ef4bd159f5864eabf726438d008b49a
Author: Dave Airlie <airl...@redhat.com>
Date:   Wed Apr 23 13:39:42 2014 +1000

    radeon: fix use-after-free in modesetting cleanup
    
    noticed while looking at something else.
    
    Reviewed-by: Michel Dänzer <michel.daen...@amd.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 02bdf9e..bd8e701 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -958,8 +958,8 @@ drmmode_output_destroy(xf86OutputPtr output)
        }
        for (i = 0; i < drmmode_output->mode_output->count_encoders; i++) {
                drmModeFreeEncoder(drmmode_output->mode_encoders[i]);
-               free(drmmode_output->mode_encoders);
        }
+       free(drmmode_output->mode_encoders);
        free(drmmode_output->props);
        drmModeFreeConnector(drmmode_output->mode_output);
        free(drmmode_output);

commit dbac18c361f9e514ecb40d0617f9d68b65a542e0
Author: Michel Dänzer <michel.daen...@amd.com>
Date:   Mon Apr 28 17:51:56 2014 +0900

    Revert "Adapt to load_cursor_argb signature change in xserver 1.15.99.902"
    
    This reverts commit 48d3dbc8a0d3bfde88f46e402e530438f9317715.
    
    xserver Git has been updated to be backwards compatible with the
    previous API.

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index fc99128..02bdf9e 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -590,11 +590,7 @@ drmmode_set_cursor_position (xf86CrtcPtr crtc, int x, int 
y)
        drmModeMoveCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, x, y);
 }
 
-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,15,99,902,0)
-static Bool
-#else
 static void
-#endif
 drmmode_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
 {
        ScrnInfoPtr pScrn = crtc->scrn;
@@ -609,10 +605,6 @@ drmmode_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
 
        for (i = 0; i < cursor_size; i++)
                ptr[i] = cpu_to_le32(image[i]);
-
-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,15,99,902,0)
-       return TRUE;
-#endif
 }
 
 

commit c84230d686c078aac1dc98d82153f8b02521b2e1
Author: Michel Dänzer <michel.daen...@amd.com>
Date:   Fri Apr 25 09:17:51 2014 +0900

    dri2: Handle PRIME for source buffer as well in radeon_dri2_copy_region2
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77810
    
    Reviewed-by: Alex Deucher <alexander.deuc...@amd.com>

diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
index d47b035..9a9918b 100644
--- a/src/radeon_dri2.c
+++ b/src/radeon_dri2.c
@@ -409,7 +409,14 @@ radeon_dri2_copy_region2(ScreenPtr pScreen,
     dst_drawable = &dst_private->pixmap->drawable;
 
     if (src_private->attachment == DRI2BufferFrontLeft) {
-        src_drawable = drawable;
+#ifdef USE_DRI2_PRIME
+       if (drawable->pScreen != pScreen) {
+           src_drawable = DRI2UpdatePrime(drawable, src_buffer);
+           if (!src_drawable)
+               return;
+       } else
+#endif
+           src_drawable = drawable;
     }
     if (dst_private->attachment == DRI2BufferFrontLeft) {
 #ifdef USE_DRI2_PRIME

commit 48d3dbc8a0d3bfde88f46e402e530438f9317715
Author: Michel Dänzer <michel.daen...@amd.com>
Date:   Tue Apr 15 17:45:35 2014 +0900

    Adapt to load_cursor_argb signature change in xserver 1.15.99.902
    
    Apart from the compiler warning below, not doing this may result in
    accidentally using software cursors.
    
    ../../src/drmmode_display.c:808:5: warning: initialization from 
incompatible pointer type [enabled by default]
         .load_cursor_argb = drmmode_load_cursor_argb,
         ^
    ../../src/drmmode_display.c:808:5: warning: (near initialization for 
'drmmode_crtc_funcs.load_cursor_argb') [enabled by default]
    
    Reviewed-by: Alex Deucher <alexander.deuc...@amd.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 02bdf9e..fc99128 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -590,7 +590,11 @@ drmmode_set_cursor_position (xf86CrtcPtr crtc, int x, int 
y)
        drmModeMoveCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, x, y);
 }
 
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,15,99,902,0)
+static Bool
+#else
 static void
+#endif
 drmmode_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
 {
        ScrnInfoPtr pScrn = crtc->scrn;
@@ -605,6 +609,10 @@ drmmode_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
 
        for (i = 0; i < cursor_size; i++)
                ptr[i] = cpu_to_le32(image[i]);
+
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,15,99,902,0)
+       return TRUE;
+#endif
 }
 
 

commit 409786a8f780d78a83bf0bddea5d37117ff6fa39
Author: Michel Dänzer <michel.daen...@amd.com>
Date:   Thu Apr 10 11:43:04 2014 +0900

    glamor: Fix test for creating shared pixmaps
    
    The pixmap usage hint is not a bitmask in general. The test for
    CREATE_PIXMAP_USAGE_SHARED was incorrectly triggering for a glamor internal
    usage hint being added in the xserver tree.
    
    Tested-by: Ed Tomlinson <edt...@gmail.com>

diff --git a/src/radeon.h b/src/radeon.h
index f364b67..136a430 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -794,6 +794,13 @@ enum {
     RADEON_CREATE_PIXMAP_SZBUFFER              = 0x80000000, /* for eg */
 };
 
+#define RADEON_CREATE_PIXMAP_TILING_FLAGS      \
+    (RADEON_CREATE_PIXMAP_TILING_MICRO_SQUARE |        \
+     RADEON_CREATE_PIXMAP_TILING_MACRO |       \
+     RADEON_CREATE_PIXMAP_TILING_MICRO |       \
+     RADEON_CREATE_PIXMAP_DEPTH |              \
+     RADEON_CREATE_PIXMAP_SZBUFFER)
+
 
 /* Compute log base 2 of val. */
 static __inline__ int
diff --git a/src/radeon_glamor.c b/src/radeon_glamor.c
index 7f1247c..4aea51d 100644
--- a/src/radeon_glamor.c
+++ b/src/radeon_glamor.c
@@ -172,12 +172,14 @@ Bool radeon_glamor_pixmap_is_offscreen(PixmapPtr pixmap)
        return priv && priv->bo;
 }
 
-#ifdef CREATE_PIXMAP_USAGE_SHARED
-#define RADEON_CREATE_PIXMAP_SHARED (CREATE_PIXMAP_USAGE_SHARED | 
RADEON_CREATE_PIXMAP_DRI2)
-#else
-#define RADEON_CREATE_PIXMAP_SHARED RADEON_CREATE_PIXMAP_DRI2
+#ifndef CREATE_PIXMAP_USAGE_SHARED
+#define CREATE_PIXMAP_USAGE_SHARED RADEON_CREATE_PIXMAP_DRI2
 #endif
 
+#define RADEON_CREATE_PIXMAP_SHARED(usage) \
+       (((usage) & ~RADEON_CREATE_PIXMAP_TILING_FLAGS) == 
RADEON_CREATE_PIXMAP_DRI2 || \
+        (usage) == CREATE_PIXMAP_USAGE_SHARED)
+
 static PixmapPtr
 radeon_glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
                        unsigned usage)
@@ -186,7 +188,7 @@ radeon_glamor_create_pixmap(ScreenPtr screen, int w, int h, 
int depth,
        struct radeon_pixmap *priv;
        PixmapPtr pixmap, new_pixmap = NULL;
 
-       if (!(usage & RADEON_CREATE_PIXMAP_SHARED)) {
+       if (!RADEON_CREATE_PIXMAP_SHARED(usage)) {
                pixmap = glamor_create_pixmap(screen, w, h, depth, usage);
                if (pixmap)
                        return pixmap;
@@ -229,7 +231,7 @@ radeon_glamor_create_pixmap(ScreenPtr screen, int w, int h, 
int depth,
        return pixmap;
 
 fallback_glamor:
-       if (usage & RADEON_CREATE_PIXMAP_SHARED) {
+       if (RADEON_CREATE_PIXMAP_SHARED(usage)) {
        /* XXX need further work to handle the DRI2 failure case.
         * Glamor don't know how to handle a BO only pixmap. Put
         * a warning indicator here.

commit aecf1c4e5f4718adcfb85836830d065d3f4f97a5
Author: Michel Dänzer <michel.daen...@amd.com>
Date:   Thu Apr 10 15:10:56 2014 +0900

    dri2: Fix conflicting CreatePixmap usage flag definitions
    
    RADEON_CREATE_PIXMAP_TILING_MICRO_SQUARE was the same as
    RADEON_CREATE_PIXMAP_DRI2.
    
    Disambiguate the definitions and rearrange them to try and prevent this
    from happening again.
    
    Tested-by: Ed Tomlinson <edt...@gmail.com>

diff --git a/src/radeon.h b/src/radeon.h
index f1817e7..f364b67 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -786,12 +786,12 @@ static __inline__ void RADEON_SYNC(RADEONInfoPtr info, 
ScrnInfoPtr pScrn)
 }
 
 enum {
-    RADEON_CREATE_PIXMAP_DRI2 = 0x08000000,
-    RADEON_CREATE_PIXMAP_TILING_MACRO = 0x10000000,
-    RADEON_CREATE_PIXMAP_TILING_MICRO = 0x20000000,
-    RADEON_CREATE_PIXMAP_DEPTH = 0x40000000, /* for r200 */
-    RADEON_CREATE_PIXMAP_SZBUFFER = 0x80000000, /* for eg */
-    RADEON_CREATE_PIXMAP_TILING_MICRO_SQUARE = 0x8000000,
+    RADEON_CREATE_PIXMAP_DRI2                  = 0x04000000,
+    RADEON_CREATE_PIXMAP_TILING_MICRO_SQUARE   = 0x08000000,
+    RADEON_CREATE_PIXMAP_TILING_MACRO          = 0x10000000,
+    RADEON_CREATE_PIXMAP_TILING_MICRO          = 0x20000000,
+    RADEON_CREATE_PIXMAP_DEPTH                 = 0x40000000, /* for r200 */
+    RADEON_CREATE_PIXMAP_SZBUFFER              = 0x80000000, /* for eg */
 };
 
 

commit b50da3b96c212086cb58501dbe988d64f1f35b6d
Author: Hans de Goede <hdego...@redhat.com>
Date:   Fri Apr 11 09:44:37 2014 +0200

    Fix building on older servers without xf86platformBus.h
    
    Signed-off-by: Hans de Goede <hdego...@redhat.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index f7f0a0d..fb93f8a 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -593,7 +593,7 @@ static int radeon_get_drm_master_fd(ScrnInfoPtr pScrn)
     char *busid;
     int fd;
 
-#if defined(ODEV_ATTRIB_FD)
+#ifdef XF86_PDEV_SERVER_FD
     if (pRADEONEnt->platform_dev) {
         fd = xf86_get_platform_device_int_attrib(pRADEONEnt->platform_dev,
                                                  ODEV_ATTRIB_FD, -1);
diff --git a/src/radeon_probe.h b/src/radeon_probe.h
index 4f5e645..9500189 100644
--- a/src/radeon_probe.h
+++ b/src/radeon_probe.h
@@ -37,12 +37,16 @@
 #define _RADEON_PROBE_H_ 1
 
 #include <stdint.h>
+#include "xorg-server.h"
 #include "xf86str.h"
 #include "xf86DDC.h"
 #include "randrstr.h"
 
 #include "xf86Crtc.h"
+
+#ifdef XSERVER_PLATFORM_BUS
 #include "xf86platformBus.h"
+#endif
 
 #include "compat-api.h"
 #include "exa.h"
@@ -137,7 +141,9 @@ typedef struct
     int fd_ref;
     unsigned long     fd_wakeup_registered; /* server generation for which fd 
has been registered for wakeup handling */
     int fd_wakeup_ref;
+#ifdef XSERVER_PLATFORM_BUS
     struct xf86_platform_device *platform_dev;
+#endif
 } RADEONEntRec, *RADEONEntPtr;
 
 extern const OptionInfoRec *RADEONOptionsWeak(void);

commit ed0cfbb4fe77146b0b38f777bc28f3a4ea6da07f
Author: Hans de Goede <hdego...@redhat.com>
Date:   Fri Mar 7 13:27:30 2014 +0100

    Add support for server managed fds
    
    Signed-off-by: Hans de Goede <hdego...@redhat.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index c0f9762..f7f0a0d 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -180,7 +180,11 @@ static void RADEONFreeRec(ScrnInfoPtr pScrn)
         pRADEONEnt = pPriv->ptr;
         pRADEONEnt->fd_ref--;
         if (!pRADEONEnt->fd_ref) {
-            drmClose(pRADEONEnt->fd);
+#ifdef XF86_PDEV_SERVER_FD
+            if (!(pRADEONEnt->platform_dev &&
+                    pRADEONEnt->platform_dev->flags & XF86_PDEV_SERVER_FD))
+#endif
+                drmClose(pRADEONEnt->fd);
             pRADEONEnt->fd = 0;
         }
     }
@@ -584,10 +588,20 @@ static Bool RADEONPreInitChipType_KMS(ScrnInfoPtr pScrn)
 static int radeon_get_drm_master_fd(ScrnInfoPtr pScrn)
 {
     RADEONInfoPtr  info   = RADEONPTR(pScrn);
+    RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
     struct pci_device *dev = info->PciInfo;
     char *busid;
     int fd;
 
+#if defined(ODEV_ATTRIB_FD)
+    if (pRADEONEnt->platform_dev) {
+        fd = xf86_get_platform_device_int_attrib(pRADEONEnt->platform_dev,
+                                                 ODEV_ATTRIB_FD, -1);
+        if (fd != -1)
+            return fd;
+    }
+#endif
+
 #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);
@@ -1107,6 +1121,39 @@ static Bool RADEONSaveScreen_KMS(ScreenPtr pScreen, int 
mode)
     return TRUE;
 }
 
+static Bool radeon_set_drm_master(ScrnInfoPtr pScrn)
+{
+    RADEONInfoPtr  info  = RADEONPTR(pScrn);
+    RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
+    int err;
+
+#ifdef XF86_PDEV_SERVER_FD
+    if (pRADEONEnt->platform_dev &&
+            (pRADEONEnt->platform_dev->flags & XF86_PDEV_SERVER_FD))
+        return TRUE;
+#endif
+
+    err = drmSetMaster(info->dri2.drm_fd);
+    if (err)
+        ErrorF("Unable to retrieve master\n");
+
+    return err == 0;
+}
+
+static void radeon_drop_drm_master(ScrnInfoPtr pScrn)
+{
+    RADEONInfoPtr  info  = RADEONPTR(pScrn);
+    RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
+
+#ifdef XF86_PDEV_SERVER_FD
+    if (pRADEONEnt->platform_dev &&
+            (pRADEONEnt->platform_dev->flags & XF86_PDEV_SERVER_FD))
+        return;
+#endif
+
+    drmDropMaster(info->dri2.drm_fd);
+}
+
 /* Called at the end of each server generation.  Restore the original
  * text mode, unmap video memory, and unwrap and call the saved
  * CloseScreen function.
@@ -1133,7 +1180,7 @@ static Bool RADEONCloseScreen_KMS(CLOSE_SCREEN_ARGS_DECL)
     if (info->accel_state->use_vbos)
         radeon_vbo_free_lists(pScrn);
 
-    drmDropMaster(info->dri2.drm_fd);
+    radeon_drop_drm_master(pScrn);
 
     drmmode_fini(pScrn, &info->drmmode);
     if (info->dri2.enabled)
@@ -1168,7 +1215,6 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL)
     int            subPixelOrder = SubPixelUnknown;
     char*          s;
     void *front_ptr;
-    int ret;
 
     pScrn->fbOffset = 0;
 
@@ -1179,11 +1225,9 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL)
                          pScrn->defaultVisual)) return FALSE;
     miSetPixmapDepths ();
 
-    ret = drmSetMaster(info->dri2.drm_fd);
-    if (ret) {
-        ErrorF("Unable to retrieve master\n");
+    if (!radeon_set_drm_master(pScrn))
         return FALSE;
-    }
+
     info->directRenderingEnabled = FALSE;
     if (info->r600_shadow_fb == FALSE)
         info->directRenderingEnabled = radeon_dri2_screen_init(pScreen);
@@ -1396,15 +1440,12 @@ Bool RADEONEnterVT_KMS(VT_FUNC_ARGS_DECL)
 {
     SCRN_INFO_PTR(arg);
     RADEONInfoPtr  info  = RADEONPTR(pScrn);
-    int ret;
 
     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
                   "RADEONEnterVT_KMS\n");
 
+    radeon_set_drm_master(pScrn);
 
-    ret = drmSetMaster(info->dri2.drm_fd);
-    if (ret)
-       ErrorF("Unable to retrieve master\n");
     info->accel_state->XInited3D = FALSE;
     info->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN;
 
@@ -1425,7 +1466,7 @@ void RADEONLeaveVT_KMS(VT_FUNC_ARGS_DECL)
     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
                   "RADEONLeaveVT_KMS\n");
 
-    drmDropMaster(info->dri2.drm_fd);
+    radeon_drop_drm_master(pScrn);
 
     xf86RotateFreeShadow(pScrn);
 
diff --git a/src/radeon_probe.c b/src/radeon_probe.c
index 2d3c58e..ad1e96e 100644
--- a/src/radeon_probe.c
+++ b/src/radeon_probe.c
@@ -202,6 +202,10 @@ RADEONDriverFunc(ScrnInfoPtr scrn, xorgDriverFuncOp op, 
void *data)
            flag = (CARD32 *)data;
            (*flag) = 0;
            return TRUE;
+#if XORG_VERSION_CURRENT > XORG_VERSION_NUMERIC(1,15,99,0,0)
+       case SUPPORTS_SERVER_FDS:
+           return TRUE;
+#endif
        default:
            return FALSE;
     }
@@ -272,6 +276,7 @@ radeon_platform_probe(DriverPtr pDriver,
             pRADEONEnt = pPriv->ptr;
             pRADEONEnt->HasSecondary = TRUE;
         }
+        pRADEONEnt->platform_dev = dev;
     }
 
     free(pEnt);
diff --git a/src/radeon_probe.h b/src/radeon_probe.h
index cea6695..4f5e645 100644
--- a/src/radeon_probe.h
+++ b/src/radeon_probe.h
@@ -42,6 +42,7 @@
 #include "randrstr.h"
 
 #include "xf86Crtc.h"
+#include "xf86platformBus.h"
 
 #include "compat-api.h"
 #include "exa.h"
@@ -136,6 +137,7 @@ typedef struct
     int fd_ref;
     unsigned long     fd_wakeup_registered; /* server generation for which fd 
has been registered for wakeup handling */
     int fd_wakeup_ref;
+    struct xf86_platform_device *platform_dev;
 } RADEONEntRec, *RADEONEntPtr;
 
 extern const OptionInfoRec *RADEONOptionsWeak(void);

commit 3d7861fe112f25874319d4cdc12b745fbcd359cf
Author: Hans de Goede <hdego...@redhat.com>
Date:   Mon Mar 17 10:38:13 2014 +0100

    Add radeon_get_drm_master_fd helper function
    
    This is a preparation patch for adding server-managed-fd support without it
    turning into a goto fest.
    
    Signed-off-by: Hans de Goede <hdego...@redhat.com>

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 16a1b5f..c0f9762 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -581,23 +581,12 @@ static Bool RADEONPreInitChipType_KMS(ScrnInfoPtr pScrn)
     return TRUE;
 }
 
-static Bool radeon_open_drm_master(ScrnInfoPtr pScrn)
+static int radeon_get_drm_master_fd(ScrnInfoPtr pScrn)
 {
     RADEONInfoPtr  info   = RADEONPTR(pScrn);
-    RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
     struct pci_device *dev = info->PciInfo;
     char *busid;
-    drmSetVersion sv;
-    int err;
-
-    if (pRADEONEnt->fd) {
-       xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                  " reusing fd for second head\n");
-
-       info->drmmode.fd = info->dri2.drm_fd = pRADEONEnt->fd;
-       pRADEONEnt->fd_ref++;
-       return TRUE;
-    }
+    int fd;
 
 #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,9,99,901,0)
     XNFasprintf(&busid, "pci:%04x:%02x:%02x.%d",
@@ -607,16 +596,35 @@ static Bool radeon_open_drm_master(ScrnInfoPtr pScrn)
                      dev->domain, dev->bus, dev->dev, dev->func);
 #endif
 
-    info->dri2.drm_fd = drmOpen(NULL, busid);
-    if (info->dri2.drm_fd == -1) {
-
+    fd = drmOpen(NULL, busid);
+    if (fd == -1)
        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
                   "[drm] Failed to open DRM device for %s: %s\n",
                   busid, strerror(errno));
-       free(busid);
-       return FALSE;
-    }
+
     free(busid);
+    return fd;
+}
+
+static Bool radeon_open_drm_master(ScrnInfoPtr pScrn)
+{
+    RADEONInfoPtr  info   = RADEONPTR(pScrn);
+    RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
+    drmSetVersion sv;
+    int err;
+


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/e1wzoow-0004qf...@moszumanska.debian.org

Reply via email to