[PATCH 1/8][RESEND] vmwgfx: Use the revised fifo hw version register when present
Thomas Hellstrom
thellstrom at vmware.com
Thu Dec 15 04:29:14 PST 2011
Dave,
Please pull this series into drm-fixes for 3.2!
Thanks,
Thomas
On 11/28/2011 01:19 PM, Thomas Hellstrom wrote:
> The driver implements the needed resource management required
> to use that register.
>
> Signed-off-by: Thomas Hellstrom<thellstrom at vmware.com>
> Reviewed-by: Jakob Bornecrantz<jakob at vmware.com>
> ---
> drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 8 +++++++-
> drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 8 +++++++-
> 2 files changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
> index 03bbc2a..a0c2f12 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
> +++ b/drivers/gpu/drm/vmwgfx/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;
>
> if (!(dev_priv->capabilities& SVGA_CAP_EXTENDED_FIFO))
> return false;
> @@ -41,7 +42,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/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
> index 3f63435..a9e2193 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
> +++ b/drivers/gpu/drm/vmwgfx/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:
>
More information about the dri-devel
mailing list