diff options
Diffstat (limited to 'drivers/gpu/drm/udl/udl_main.c')
| -rw-r--r-- | drivers/gpu/drm/udl/udl_main.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/udl/udl_main.c b/drivers/gpu/drm/udl/udl_main.c index 0e2a376cb075..853f147036f6 100644 --- a/drivers/gpu/drm/udl/udl_main.c +++ b/drivers/gpu/drm/udl/udl_main.c @@ -315,6 +315,10 @@ int udl_init(struct udl_device *udl)  	DRM_DEBUG("\n"); +	udl->dmadev = usb_intf_get_dma_device(to_usb_interface(dev->dev)); +	if (!udl->dmadev) +		drm_warn(dev, "buffer sharing not supported"); /* not an error */ +  	mutex_init(&udl->gem_lock);  	if (!udl_parse_vendor_descriptor(udl)) { @@ -343,12 +347,18 @@ int udl_init(struct udl_device *udl)  err:  	if (udl->urbs.count)  		udl_free_urb_list(dev); +	put_device(udl->dmadev);  	DRM_ERROR("%d\n", ret);  	return ret;  }  int udl_drop_usb(struct drm_device *dev)  { +	struct udl_device *udl = to_udl(dev); +  	udl_free_urb_list(dev); +	put_device(udl->dmadev); +	udl->dmadev = NULL; +  	return 0;  }  |