diff options
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index f47ff2c05466..a6e8f687fa64 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | |||
| @@ -209,6 +209,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) | |||
| 209 | { | 209 | { |
| 210 | struct vmw_private *dev_priv; | 210 | struct vmw_private *dev_priv; |
| 211 | int ret; | 211 | int ret; |
| 212 | uint32_t svga_id; | ||
| 212 | 213 | ||
| 213 | dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL); | 214 | dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL); |
| 214 | if (unlikely(dev_priv == NULL)) { | 215 | if (unlikely(dev_priv == NULL)) { |
| @@ -239,6 +240,16 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) | |||
| 239 | dev_priv->mmio_start = pci_resource_start(dev->pdev, 2); | 240 | dev_priv->mmio_start = pci_resource_start(dev->pdev, 2); |
| 240 | 241 | ||
| 241 | mutex_lock(&dev_priv->hw_mutex); | 242 | mutex_lock(&dev_priv->hw_mutex); |
| 243 | |||
| 244 | vmw_write(dev_priv, SVGA_REG_ID, SVGA_ID_2); | ||
| 245 | svga_id = vmw_read(dev_priv, SVGA_REG_ID); | ||
| 246 | if (svga_id != SVGA_ID_2) { | ||
| 247 | ret = -ENOSYS; | ||
| 248 | DRM_ERROR("Unsuported SVGA ID 0x%x\n", svga_id); | ||
| 249 | mutex_unlock(&dev_priv->hw_mutex); | ||
| 250 | goto out_err0; | ||
| 251 | } | ||
| 252 | |||
| 242 | dev_priv->capabilities = vmw_read(dev_priv, SVGA_REG_CAPABILITIES); | 253 | dev_priv->capabilities = vmw_read(dev_priv, SVGA_REG_CAPABILITIES); |
| 243 | 254 | ||
| 244 | if (dev_priv->capabilities & SVGA_CAP_GMR) { | 255 | if (dev_priv->capabilities & SVGA_CAP_GMR) { |
