diff options
Diffstat (limited to 'drivers/gpu/drm/via/via_map.c')
-rw-r--r-- | drivers/gpu/drm/via/via_map.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/via/via_map.c b/drivers/gpu/drm/via/via_map.c index 1f18225..6cca9a7 100644 --- a/drivers/gpu/drm/via/via_map.c +++ b/drivers/gpu/drm/via/via_map.c @@ -104,12 +104,15 @@ int via_driver_load(struct drm_device *dev, unsigned long chipset) dev_priv->chipset = chipset; - idr_init(&dev->object_name_idr); - - pci_set_master(dev->pdev); + ret = drm_sman_init(&dev_priv->sman, 2, 12, 8); + if (ret) { + kfree(dev_priv); + return ret; + } ret = drm_vblank_init(dev, 1); if (ret) { + drm_sman_takedown(&dev_priv->sman); kfree(dev_priv); return ret; } @@ -121,8 +124,7 @@ int via_driver_unload(struct drm_device *dev) { drm_via_private_t *dev_priv = dev->dev_private; - idr_remove_all(&dev_priv->object_idr); - idr_destroy(&dev_priv->object_idr); + drm_sman_takedown(&dev_priv->sman); kfree(dev_priv); |