summaryrefslogtreecommitdiff
path: root/src/radeon_dri.c
diff options
context:
space:
mode:
authorVladimir Dergachev <volodya@mindspring.com>2004-12-12 16:05:35 +0000
committerVladimir Dergachev <volodya@mindspring.com>2004-12-12 16:05:35 +0000
commit36b92808e4ff1311f91543388c18cbe8e9eb4aab (patch)
tree6db8c8aa8db6cc665e44d832629170e6a4b58d98 /src/radeon_dri.c
parent68ea67ce98b8f3ad4c17f987e0e2b92f79a96fbf (diff)
Modified:
programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c programs/Xserver/hw/xfree86/drivers/ati/radeon_common.h programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h Add R300 (and later) DRM support, protected by X_R300_DRM option. Note: at the moment this is for 2d support only, if enabled running glxgears locks up my machine, but DMAForXv=yes works fine.
Diffstat (limited to 'src/radeon_dri.c')
-rw-r--r--src/radeon_dri.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/radeon_dri.c b/src/radeon_dri.c
index c32ab18..e99a6fe 100644
--- a/src/radeon_dri.c
+++ b/src/radeon_dri.c
@@ -1024,7 +1024,11 @@ static int RADEONDRIKernelInit(RADEONInfoPtr info, ScreenPtr pScreen)
drmRadeonInit drmInfo;
memset(&drmInfo, 0, sizeof(drmRadeonInit));
-
+ if ( (info->ChipFamily == CHIP_FAMILY_R300) ||
+ (info->ChipFamily == CHIP_FAMILY_R350) ||
+ (info->ChipFamily == CHIP_FAMILY_RV350) )
+ drmInfo.func = DRM_RADEON_INIT_R300_CP;
+ else
if ( info->ChipFamily >= CHIP_FAMILY_R200 )
drmInfo.func = DRM_RADEON_INIT_R200_CP;
else
@@ -1238,7 +1242,12 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
if ( info->ChipFamily >= CHIP_FAMILY_R200 )
pDRIInfo->clientDriverName = R200_DRIVER_NAME;
- else
+ else
+ if ( (info->ChipFamily == CHIP_FAMILY_R300) ||
+ (info->ChipFamily == CHIP_FAMILY_R350) ||
+ (info->ChipFamily == CHIP_FAMILY_RV350) ) {
+ pDRIInfo->clientDriverName = R300_DRIVER_NAME;
+ } else
pDRIInfo->clientDriverName = RADEON_DRIVER_NAME;
if (xf86LoaderCheckSymbol("DRICreatePCIBusID")) {
@@ -1371,6 +1380,9 @@ Bool RADEONDRIScreenInit(ScreenPtr pScreen)
} else if (info->ChipFamily >= CHIP_FAMILY_R200) {
req_minor = 5;
req_patch = 0;
+ } else if (info->ChipFamily >= CHIP_FAMILY_R300) {
+ req_minor = 12;
+ req_patch = 0;
} else {
#if X_BYTE_ORDER == X_LITTLE_ENDIAN
req_minor = 1;