diff options
Diffstat (limited to 'drivers/gpu/drm/drm_stub.c')
| -rw-r--r-- | drivers/gpu/drm/drm_stub.c | 92 | 
1 files changed, 5 insertions, 87 deletions
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index a0c365f2e52..d1ad57450df 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c @@ -156,6 +156,9 @@ static void drm_master_destroy(struct kref *kref)  		master->unique_len = 0;  	} +	kfree(dev->devname); +	dev->devname = NULL; +  	list_for_each_entry_safe(pt, next, &master->magicfree, head) {  		list_del(&pt->head);  		drm_ht_remove_item(&master->magiclist, &pt->hash_item); @@ -224,7 +227,7 @@ int drm_dropmaster_ioctl(struct drm_device *dev, void *data,  	return 0;  } -static int drm_fill_in_dev(struct drm_device * dev, struct pci_dev *pdev, +int drm_fill_in_dev(struct drm_device *dev,  			   const struct pci_device_id *ent,  			   struct drm_driver *driver)  { @@ -245,14 +248,6 @@ static int drm_fill_in_dev(struct drm_device * dev, struct pci_dev *pdev,  	idr_init(&dev->drw_idr); -	dev->pdev = pdev; -	dev->pci_device = pdev->device; -	dev->pci_vendor = pdev->vendor; - -#ifdef __alpha__ -	dev->hose = pdev->sysdata; -#endif -  	if (drm_ht_create(&dev->map_hash, 12)) {  		return -ENOMEM;  	} @@ -321,7 +316,7 @@ static int drm_fill_in_dev(struct drm_device * dev, struct pci_dev *pdev,   * create the proc init entry via proc_init(). This routines assigns   * minor numbers to secondary heads of multi-headed cards   */ -static int drm_get_minor(struct drm_device *dev, struct drm_minor **minor, int type) +int drm_get_minor(struct drm_device *dev, struct drm_minor **minor, int type)  {  	struct drm_minor *new_minor;  	int ret; @@ -388,83 +383,6 @@ err_idr:  }  /** - * Register. - * - * \param pdev - PCI device structure - * \param ent entry from the PCI ID table with device type flags - * \return zero on success or a negative number on failure. - * - * Attempt to gets inter module "drm" information. If we are first - * then register the character device and inter module information. - * Try and register, if we fail to register, backout previous work. - */ -int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent, -		struct drm_driver *driver) -{ -	struct drm_device *dev; -	int ret; - -	DRM_DEBUG("\n"); - -	dev = kzalloc(sizeof(*dev), GFP_KERNEL); -	if (!dev) -		return -ENOMEM; - -	ret = pci_enable_device(pdev); -	if (ret) -		goto err_g1; - -	pci_set_master(pdev); -	if ((ret = drm_fill_in_dev(dev, pdev, ent, driver))) { -		printk(KERN_ERR "DRM: Fill_in_dev failed.\n"); -		goto err_g2; -	} - -	if (drm_core_check_feature(dev, DRIVER_MODESET)) { -		pci_set_drvdata(pdev, dev); -		ret = drm_get_minor(dev, &dev->control, DRM_MINOR_CONTROL); -		if (ret) -			goto err_g2; -	} - -	if ((ret = drm_get_minor(dev, &dev->primary, DRM_MINOR_LEGACY))) -		goto err_g3; - -	if (dev->driver->load) { -		ret = dev->driver->load(dev, ent->driver_data); -		if (ret) -			goto err_g4; -	} - -        /* setup the grouping for the legacy output */ -	if (drm_core_check_feature(dev, DRIVER_MODESET)) { -		ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group); -		if (ret) -			goto err_g4; -	} - -	list_add_tail(&dev->driver_item, &driver->device_list); - -	DRM_INFO("Initialized %s %d.%d.%d %s for %s on minor %d\n", -		 driver->name, driver->major, driver->minor, driver->patchlevel, -		 driver->date, pci_name(pdev), dev->primary->index); - -	return 0; - -err_g4: -	drm_put_minor(&dev->primary); -err_g3: -	if (drm_core_check_feature(dev, DRIVER_MODESET)) -		drm_put_minor(&dev->control); -err_g2: -	pci_disable_device(pdev); -err_g1: -	kfree(dev); -	return ret; -} -EXPORT_SYMBOL(drm_get_dev); - -/**   * Put a secondary minor number.   *   * \param sec_minor - structure to be released  |