diff options
Diffstat (limited to 'drivers/gpu/drm/drm_stub.c')
-rw-r--r-- | drivers/gpu/drm/drm_stub.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index 6d7b083c5b77..bbd40eaf9821 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c | |||
@@ -429,6 +429,11 @@ int drm_put_minor(struct drm_minor **minor_p) | |||
429 | return 0; | 429 | return 0; |
430 | } | 430 | } |
431 | 431 | ||
432 | static void drm_unplug_minor(struct drm_minor *minor) | ||
433 | { | ||
434 | drm_sysfs_device_remove(minor); | ||
435 | } | ||
436 | |||
432 | /** | 437 | /** |
433 | * Called via drm_exit() at module unload time or when pci device is | 438 | * Called via drm_exit() at module unload time or when pci device is |
434 | * unplugged. | 439 | * unplugged. |
@@ -492,3 +497,21 @@ void drm_put_dev(struct drm_device *dev) | |||
492 | kfree(dev); | 497 | kfree(dev); |
493 | } | 498 | } |
494 | EXPORT_SYMBOL(drm_put_dev); | 499 | EXPORT_SYMBOL(drm_put_dev); |
500 | |||
501 | void drm_unplug_dev(struct drm_device *dev) | ||
502 | { | ||
503 | /* for a USB device */ | ||
504 | if (drm_core_check_feature(dev, DRIVER_MODESET)) | ||
505 | drm_unplug_minor(dev->control); | ||
506 | drm_unplug_minor(dev->primary); | ||
507 | |||
508 | mutex_lock(&drm_global_mutex); | ||
509 | |||
510 | drm_device_set_unplugged(dev); | ||
511 | |||
512 | if (dev->open_count == 0) { | ||
513 | drm_put_dev(dev); | ||
514 | } | ||
515 | mutex_unlock(&drm_global_mutex); | ||
516 | } | ||
517 | EXPORT_SYMBOL(drm_unplug_dev); | ||