From d6af902ff74d4a384c2dd9acb9540d637f588bc6 Mon Sep 17 00:00:00 2001 From: Felix Kuehling Date: Sun, 9 Jan 2005 19:49:21 +0000 Subject: Improved workaround for Savage3D DMA lockup to emit NOPs only before the first indexed drawing command of a cmdbuf or if a wait command was emitted since the last indexed drawing command. --- shared-core/savage_drv.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'shared-core/savage_drv.h') diff --git a/shared-core/savage_drv.h b/shared-core/savage_drv.h index 9af12472..726c54fc 100644 --- a/shared-core/savage_drv.h +++ b/shared-core/savage_drv.h @@ -30,11 +30,11 @@ #define DRIVER_NAME "savage" #define DRIVER_DESC "Savage3D/MX/IX, Savage4, SuperSavage, Twister, ProSavage[DDR]" -#define DRIVER_DATE "20050106" +#define DRIVER_DATE "20050109" #define DRIVER_MAJOR 2 #define DRIVER_MINOR 1 -#define DRIVER_PATCHLEVEL 0 +#define DRIVER_PATCHLEVEL 1 /* Interface history: * * 1.x The DRM driver from the VIA/S3 code drop, basically a dummy @@ -153,6 +153,9 @@ typedef struct drm_savage_private { drm_savage_state_t state; + /* after emitting a wait cmd Savage3D needs 63 nops before next DMA */ + unsigned int waiting; + /* config/hardware-dependent function pointers */ int (*wait_fifo)(struct drm_savage_private *dev_priv, unsigned int n); int (*wait_evnt)(struct drm_savage_private *dev_priv, uint16_t e); -- cgit v1.2.3