From 94202cbfbca05a503acdc1cca2f8409d141173af Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexdeucher@gmail.com>
Date: Fri, 1 Aug 2014 21:55:40 +0200
Subject: radeon: enable hawaii accel conditionally (v3)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Only if the kernel has the new CP firmware.

v2: check value of ACCEL_WORKING2
v3 (Andreas Boll):
 - check for value 2 or 3 of ACCEL_WORKING2
 - update man page

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> (v2)
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com>

diff --git a/man/radeon.man b/man/radeon.man
index 802f6c2..7dde040 100644
--- man/radeon.man
+++ man/radeon.man
@@ -229,8 +229,7 @@ Selects software cursor.  The default is
 Enables or disables all hardware acceleration.
 .br
 The default is
-.B on
-except for HAWAII.
+.B on.
 .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_kms.c b/src/radeon_kms.c
index a5e77ef..171d919 100644
--- src/radeon_kms.c
+++ src/radeon_kms.c
@@ -387,8 +387,12 @@ static Bool RADEONIsAccelWorking(ScrnInfoPtr pScrn)
         }
         return FALSE;
     }
-    if (tmp)
+    if (info->ChipFamily == CHIP_FAMILY_HAWAII) {
+        if (tmp == 2 || tmp == 3)
+            return TRUE;
+    } else if (tmp) {
         return TRUE;
+    }
     return FALSE;
 }
 
@@ -486,8 +490,7 @@ static Bool RADEONPreInitAccel_KMS(ScrnInfoPtr pScrn)
 	info->is_fast_fb = TRUE;
     }
 
-    if (!xf86ReturnOptValBool(info->Options, OPTION_ACCEL,
-			     info->ChipFamily != CHIP_FAMILY_HAWAII) ||
+    if (!xf86ReturnOptValBool(info->Options, OPTION_ACCEL, TRUE) ||
 	(!RADEONIsAccelWorking(pScrn))) {
 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
 		   "GPU accel disabled or not working, using shadowfb for KMS\n");
-- 
cgit v0.10.2

