diff options
Diffstat (limited to 'drivers/gpu/drm/drm_usb.c')
| -rw-r--r-- | drivers/gpu/drm/drm_usb.c | 57 | 
1 files changed, 6 insertions, 51 deletions
diff --git a/drivers/gpu/drm/drm_usb.c b/drivers/gpu/drm/drm_usb.c index 87664723b9ce..b179b70e7853 100644 --- a/drivers/gpu/drm/drm_usb.c +++ b/drivers/gpu/drm/drm_usb.c @@ -7,57 +7,20 @@ int drm_get_usb_dev(struct usb_interface *interface,  		    struct drm_driver *driver)  {  	struct drm_device *dev; -	struct usb_device *usbdev;  	int ret;  	DRM_DEBUG("\n"); -	dev = kzalloc(sizeof(*dev), GFP_KERNEL); +	dev = drm_dev_alloc(driver, &interface->dev);  	if (!dev)  		return -ENOMEM; -	usbdev = interface_to_usbdev(interface); -	dev->usbdev = usbdev; -	dev->dev = &interface->dev; - -	mutex_lock(&drm_global_mutex); - -	ret = drm_fill_in_dev(dev, NULL, driver); -	if (ret) { -		printk(KERN_ERR "DRM: Fill_in_dev failed.\n"); -		goto err_g1; -	} - +	dev->usbdev = interface_to_usbdev(interface);  	usb_set_intfdata(interface, dev); -	ret = drm_get_minor(dev, &dev->control, DRM_MINOR_CONTROL); -	if (ret) -		goto err_g1; - -	if (drm_core_check_feature(dev, DRIVER_RENDER) && drm_rnodes) { -		ret = drm_get_minor(dev, &dev->render, DRM_MINOR_RENDER); -		if (ret) -			goto err_g11; -	} -	ret = drm_get_minor(dev, &dev->primary, DRM_MINOR_LEGACY); +	ret = drm_dev_register(dev, 0);  	if (ret) -		goto err_g2; - -	if (dev->driver->load) { -		ret = dev->driver->load(dev, 0); -		if (ret) -			goto err_g3; -	} - -	/* setup the grouping for the legacy output */ -	ret = drm_mode_group_init_legacy_group(dev, -					       &dev->primary->mode_group); -	if (ret) -		goto err_g3; - -	list_add_tail(&dev->driver_item, &driver->device_list); - -	mutex_unlock(&drm_global_mutex); +		goto err_free;  	DRM_INFO("Initialized %s %d.%d.%d %s on minor %d\n",  		 driver->name, driver->major, driver->minor, driver->patchlevel, @@ -65,16 +28,8 @@ int drm_get_usb_dev(struct usb_interface *interface,  	return 0; -err_g3: -	drm_put_minor(&dev->primary); -err_g2: -	if (dev->render) -		drm_put_minor(&dev->render); -err_g11: -	drm_put_minor(&dev->control); -err_g1: -	kfree(dev); -	mutex_unlock(&drm_global_mutex); +err_free: +	drm_dev_free(dev);  	return ret;  }  | 
