? Makefile ? ati.patch.1 ? ati.patch.2 ? r128.4.html ? r128._man ? radeon.4.html ? radeon._man Index: radeon_accel.c =================================================================== RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c,v retrieving revision 1.37 diff -u -r1.37 radeon_accel.c --- radeon_accel.c 19 Feb 2004 22:38:12 -0000 1.37 +++ radeon_accel.c 26 May 2004 02:50:08 -0000 @@ -169,6 +169,31 @@ CARD32 rbbm_soft_reset; CARD32 host_path_cntl; + /* The following RBBM_SOFT_RESET sequence can help un-wedge + * an R300 after the command processor got stuck. + */ + rbbm_soft_reset = INREG(RADEON_RBBM_SOFT_RESET); + OUTREG(RADEON_RBBM_SOFT_RESET, (rbbm_soft_reset | + RADEON_SOFT_RESET_CP | + RADEON_SOFT_RESET_HI | + RADEON_SOFT_RESET_SE | + RADEON_SOFT_RESET_RE | + RADEON_SOFT_RESET_PP | + RADEON_SOFT_RESET_E2 | + RADEON_SOFT_RESET_RB)); + INREG(RADEON_RBBM_SOFT_RESET); + OUTREG(RADEON_RBBM_SOFT_RESET, (rbbm_soft_reset & (CARD32) + ~(RADEON_SOFT_RESET_CP | + RADEON_SOFT_RESET_HI | + RADEON_SOFT_RESET_SE | + RADEON_SOFT_RESET_RE | + RADEON_SOFT_RESET_PP | + RADEON_SOFT_RESET_E2 | + RADEON_SOFT_RESET_RB))); + INREG(RADEON_RBBM_SOFT_RESET); + OUTREG(RADEON_RBBM_SOFT_RESET, rbbm_soft_reset); + INREG(RADEON_RBBM_SOFT_RESET); + RADEONEngineFlush(pScrn); clock_cntl_index = INREG(RADEON_CLOCK_CNTL_INDEX); Index: radeon_common.h =================================================================== RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_common.h,v retrieving revision 1.9 diff -u -r1.9 radeon_common.h --- radeon_common.h 13 Dec 2003 22:07:22 -0000 1.9 +++ radeon_common.h 26 May 2004 02:50:09 -0000 @@ -91,7 +91,8 @@ enum { DRM_RADEON_INIT_CP = 0x01, DRM_RADEON_CLEANUP_CP = 0x02, - DRM_RADEON_INIT_R200_CP = 0x03 + DRM_RADEON_INIT_R200_CP = 0x03, + DRM_RADEON_INIT_R300_CP = 0x04 } func; unsigned long sarea_priv_offset; int is_pci; Index: radeon_dri.c =================================================================== RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c,v retrieving revision 1.40 diff -u -r1.40 radeon_dri.c --- radeon_dri.c 10 Nov 2003 18:41:22 -0000 1.40 +++ radeon_dri.c 26 May 2004 02:50:10 -0000 @@ -1024,6 +1024,11 @@ 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) || (info->ChipFamily == CHIP_FAMILY_RV250) || (info->ChipFamily == CHIP_FAMILY_RV280) ) @@ -1237,8 +1242,12 @@ if ( (info->ChipFamily == CHIP_FAMILY_R200) || (info->ChipFamily == CHIP_FAMILY_RV250) || - (info->ChipFamily == CHIP_FAMILY_RV280) ) + (info->ChipFamily == CHIP_FAMILY_RV280)) pDRIInfo->clientDriverName = R200_DRIVER_NAME; + 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; @@ -1367,6 +1376,9 @@ (info->ChipFamily == CHIP_FAMILY_RV280)) { req_minor = 5; req_patch = 0; + } else if (info->ChipFamily >= CHIP_FAMILY_R300) { + req_minor = 11; + req_patch = 1; } else { #if X_BYTE_ORDER == X_LITTLE_ENDIAN req_minor = 1; Index: radeon_driver.c =================================================================== RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v retrieving revision 1.122 diff -u -r1.122 radeon_driver.c --- radeon_driver.c 22 Apr 2004 13:54:07 -0000 1.122 +++ radeon_driver.c 26 May 2004 02:50:14 -0000 @@ -4342,10 +4342,18 @@ } else if ((info->ChipFamily == CHIP_FAMILY_R300) || (info->ChipFamily == CHIP_FAMILY_R350) || (info->ChipFamily == CHIP_FAMILY_RV350)) { + #if 0 info->directRenderingEnabled = FALSE; xf86DrvMsg(scrnIndex, X_WARNING, "Direct rendering not yet supported on " "Radeon 9500/9700 and newer cards\n"); + #else + xf86DrvMsg(scrnIndex, X_WARNING, + "Direct rendering support is highly experimental for " + "Radeon 9500/9700 and newer cards\n"); + info->directRenderingEnabled = + RADEONDRIScreenInit(pScreen); + #endif } else { if (info->IsSecondary) info->directRenderingEnabled = FALSE; Index: radeon_version.h =================================================================== RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h,v retrieving revision 1.11 diff -u -r1.11 radeon_version.h --- radeon_version.h 5 Jan 2004 16:42:05 -0000 1.11 +++ radeon_version.h 26 May 2004 02:50:14 -0000 @@ -38,6 +38,7 @@ #define RADEON_NAME "RADEON" #define RADEON_DRIVER_NAME "radeon" #define R200_DRIVER_NAME "r200" +#define R300_DRIVER_NAME "r300" #define RADEON_VERSION_MAJOR 4 #define RADEON_VERSION_MINOR 0