diff options
author | David Dawes <dawes@xfree86.org> | 2003-04-24 03:01:40 +0000 |
---|---|---|
committer | David Dawes <dawes@xfree86.org> | 2003-04-24 03:01:40 +0000 |
commit | 00522cedd6ee3027d2858909d34e862fa21e6e28 (patch) | |
tree | 546580556e6e90a6a1844cf4b6ff94eb245726cd | |
parent | 9d603b0abe3d1ab2a383ee9f33f27900f9eb1d5e (diff) |
Single/dual rasterizer quiescence patch for the glint/gamma DRI driver
(#5685, Sven Luther).
-rw-r--r-- | linux/gamma.h | 7 | ||||
-rw-r--r-- | linux/gamma_dma.c | 2 | ||||
-rw-r--r-- | linux/gamma_drm.h | 1 | ||||
-rw-r--r-- | linux/gamma_drv.h | 1 |
4 files changed, 9 insertions, 2 deletions
diff --git a/linux/gamma.h b/linux/gamma.h index bff3f909..da8f52bb 100644 --- a/linux/gamma.h +++ b/linux/gamma.h @@ -90,8 +90,11 @@ #define __HAVE_DMA_QUIESCENT 1 #define DRIVER_DMA_QUIESCENT() do { \ - /* FIXME ! */ \ - gamma_dma_quiescent_single(dev); \ + drm_gamma_private_t *dev_priv = \ + (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; \ } while (0) diff --git a/linux/gamma_dma.c b/linux/gamma_dma.c index baa6b287..691c55a4 100644 --- a/linux/gamma_dma.c +++ b/linux/gamma_dma.c @@ -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) ); + dev_priv->num_rast = init->num_rast; + list_for_each(list, &dev->maplist->head) { drm_map_list_t *r_list = list_entry(list, drm_map_list_t, head); if( r_list->map && diff --git a/linux/gamma_drm.h b/linux/gamma_drm.h index 0d58b07b..20819ded 100644 --- a/linux/gamma_drm.h +++ b/linux/gamma_drm.h @@ -84,6 +84,7 @@ typedef struct drm_gamma_init { unsigned int mmio2; unsigned int mmio3; unsigned int buffers_offset; + int num_rast; } drm_gamma_init_t; #endif /* _GAMMA_DRM_H_ */ diff --git a/linux/gamma_drv.h b/linux/gamma_drv.h index 36affa68..3e0e3e65 100644 --- a/linux/gamma_drv.h +++ b/linux/gamma_drv.h @@ -40,6 +40,7 @@ typedef struct drm_gamma_private { drm_map_t *mmio1; drm_map_t *mmio2; drm_map_t *mmio3; + int num_rast; } drm_gamma_private_t; /* gamma_dma.c */ |