diff options
author | Thomas Hellstrom <thellstrom@vmware.com> | 2011-11-10 19:57:04 +0100 |
---|---|---|
committer | Thomas Hellstrom <thellstrom@vmware.com> | 2011-11-28 13:49:09 +0100 |
commit | 6ff96bcb5efce43c22fa661f3c2ba4b9faf66fcf (patch) | |
tree | 6da49353a2faf9d170f232d7a9880d3bae3b49d5 | |
parent | daf229150e03a6ac7a8d95ff1144bc9a85aa61da (diff) |
vmwgfx: Use the revised fifo hw version register when present
The driver implements the needed resource management required
to use that register.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
-rw-r--r-- | vmwgfx_fifo.c | 8 | ||||
-rw-r--r-- | vmwgfx_ioctl.c | 10 |
2 files changed, 15 insertions, 3 deletions
diff --git a/vmwgfx_fifo.c b/vmwgfx_fifo.c index 78740ef..1ada182 100644 --- a/vmwgfx_fifo.c +++ b/vmwgfx_fifo.c @@ -33,6 +33,7 @@ bool vmw_fifo_have_3d(struct vmw_private *dev_priv) { __le32 __iomem *fifo_mem = dev_priv->mmio_virt; uint32_t fifo_min, hwversion; + const struct vmw_fifo_state *fifo = &dev_priv->fifo; #ifdef VMWGFX_STANDALONE extern int force_no_3d; @@ -48,7 +49,12 @@ bool vmw_fifo_have_3d(struct vmw_private *dev_priv) if (fifo_min <= SVGA_FIFO_3D_HWVERSION * sizeof(unsigned int)) return false; - hwversion = ioread32(fifo_mem + SVGA_FIFO_3D_HWVERSION); + hwversion = ioread32(fifo_mem + + ((fifo->capabilities & + SVGA_FIFO_CAP_3D_HWVERSION_REVISED) ? + SVGA_FIFO_3D_HWVERSION_REVISED : + SVGA_FIFO_3D_HWVERSION)); + if (hwversion == 0) return false; diff --git a/vmwgfx_ioctl.c b/vmwgfx_ioctl.c index 3f63435..a9e2193 100644 --- a/vmwgfx_ioctl.c +++ b/vmwgfx_ioctl.c @@ -58,8 +58,14 @@ int vmw_getparam_ioctl(struct drm_device *dev, void *data, case DRM_VMW_PARAM_FIFO_HW_VERSION: { __le32 __iomem *fifo_mem = dev_priv->mmio_virt; - - param->value = ioread32(fifo_mem + SVGA_FIFO_3D_HWVERSION); + const struct vmw_fifo_state *fifo = &dev_priv->fifo; + + param->value = + ioread32(fifo_mem + + ((fifo->capabilities & + SVGA_FIFO_CAP_3D_HWVERSION_REVISED) ? + SVGA_FIFO_3D_HWVERSION_REVISED : + SVGA_FIFO_3D_HWVERSION)); break; } default: |