Single/dual rasterizer quiescence patch for the glint/gamma DRI driver

(#5685, Sven Luther).
main
David Dawes 2003-04-24 03:01:40 +00:00
parent 9d603b0abe
commit 00522cedd6
4 changed files with 9 additions and 2 deletions

View File

@ -90,8 +90,11 @@
#define __HAVE_DMA_QUIESCENT 1 #define __HAVE_DMA_QUIESCENT 1
#define DRIVER_DMA_QUIESCENT() do { \ #define DRIVER_DMA_QUIESCENT() do { \
/* FIXME ! */ \ drm_gamma_private_t *dev_priv = \
gamma_dma_quiescent_single(dev); \ (drm_gamma_private_t *)dev->dev_private; \
if (dev_priv->num_rast == 2) \
gamma_dma_quiescent_dual(dev); \
else gamma_dma_quiescent_single(dev); \
return 0; \ return 0; \
} while (0) } while (0)

View File

@ -583,6 +583,8 @@ static int gamma_do_init_dma( drm_device_t *dev, drm_gamma_init_t *init )
memset( dev_priv, 0, sizeof(drm_gamma_private_t) ); memset( dev_priv, 0, sizeof(drm_gamma_private_t) );
dev_priv->num_rast = init->num_rast;
list_for_each(list, &dev->maplist->head) { list_for_each(list, &dev->maplist->head) {
drm_map_list_t *r_list = list_entry(list, drm_map_list_t, head); drm_map_list_t *r_list = list_entry(list, drm_map_list_t, head);
if( r_list->map && if( r_list->map &&

View File

@ -84,6 +84,7 @@ typedef struct drm_gamma_init {
unsigned int mmio2; unsigned int mmio2;
unsigned int mmio3; unsigned int mmio3;
unsigned int buffers_offset; unsigned int buffers_offset;
int num_rast;
} drm_gamma_init_t; } drm_gamma_init_t;
#endif /* _GAMMA_DRM_H_ */ #endif /* _GAMMA_DRM_H_ */

View File

@ -40,6 +40,7 @@ typedef struct drm_gamma_private {
drm_map_t *mmio1; drm_map_t *mmio1;
drm_map_t *mmio2; drm_map_t *mmio2;
drm_map_t *mmio3; drm_map_t *mmio3;
int num_rast;
} drm_gamma_private_t; } drm_gamma_private_t;
/* gamma_dma.c */ /* gamma_dma.c */