summaryrefslogtreecommitdiff
path: root/src/radeon_kms.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-08-20 16:55:21 -0400
committerAlex Deucher <alexdeucher@gmail.com>2010-08-20 16:55:21 -0400
commit6930d2c981221757b1e11ef194809f085753a611 (patch)
treebc0315f106229488603ba9ef009581772fb9bdcc /src/radeon_kms.c
parentbdd41fecdb19c83c6c7b793016b61d38065dcd13 (diff)
Add initial EXA and Xv support for evergreen
Based on the r6xx/r7xx code updated for evergreen. Still causes GPU hangs in some cases. We haven't tracked down why yet. Might be related to constant buffer persistence. Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Diffstat (limited to 'src/radeon_kms.c')
-rw-r--r--src/radeon_kms.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index ba13071f..b7626483 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -202,8 +202,18 @@ static Bool RADEONIsAccelWorking(ScrnInfoPtr pScrn)
int r;
uint32_t tmp;
+#ifndef RADEON_INFO_ACCEL_WORKING
+#define RADEON_INFO_ACCEL_WORKING 0x03
+#endif
+#ifndef RADEON_INFO_ACCEL_WORKING2
+#define RADEON_INFO_ACCEL_WORKING2 0x05
+#endif
+
memset(&ginfo, 0, sizeof(ginfo));
- ginfo.request = 0x3;
+ if (info->dri->pKernelDRMVersion->version_minor >= 5)
+ ginfo.request = RADEON_INFO_ACCEL_WORKING2;
+ else
+ ginfo.request = RADEON_INFO_ACCEL_WORKING;
ginfo.value = (uintptr_t)&tmp;
r = drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_INFO, &ginfo, sizeof(ginfo));
if (r) {
@@ -230,7 +240,6 @@ static Bool RADEONPreInitAccel_KMS(ScrnInfoPtr pScrn)
}
if (xf86ReturnOptValBool(info->Options, OPTION_NOACCEL, FALSE) ||
- (info->ChipFamily >= CHIP_FAMILY_CEDAR) ||
(!RADEONIsAccelWorking(pScrn))) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"GPU accel disabled or not working, using shadowfb for KMS\n");