diff options
author | David Herrmann <dh.herrmann@gmail.com> | 2014-01-29 06:57:05 -0500 |
---|---|---|
committer | David Herrmann <dh.herrmann@gmail.com> | 2014-03-16 07:25:18 -0400 |
commit | afcdbc867460b7ee4119bf4904e60f0e171c6dfb (patch) | |
tree | a467a391c5dea20bbdcdde74921cbe938dfa1819 | |
parent | bd9dfa98187f6cb671e60d9df0801378e8a99ad9 (diff) |
drm: rename drm_unplug/get_minor() to drm_minor_register/unregister()
drm_get_minor() no longer allocates objects, and drm_unplug_minor() is now
the exact reverse of it. Rename it to _register/unregister() so their
name actually says what they do.
Furthermore, remove the direct minor-ptr and instead pass the minor-type.
This way we know the actual slot of the minor and can reset it if
required.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | drivers/gpu/drm/drm_stub.c | 54 |
1 files changed, 17 insertions, 37 deletions
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index e46c0904a706..488600013e35 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c | |||
@@ -302,18 +302,7 @@ static void drm_minor_free(struct drm_device *dev, unsigned int type) | |||
302 | } | 302 | } |
303 | } | 303 | } |
304 | 304 | ||
305 | /** | 305 | static int drm_minor_register(struct drm_device *dev, unsigned int type) |
306 | * drm_get_minor - Register DRM minor | ||
307 | * @dev: DRM device | ||
308 | * @type: Type of minor | ||
309 | * | ||
310 | * Register minor of given type. | ||
311 | * Caller must hold the global DRM mutex. | ||
312 | * | ||
313 | * RETURNS: | ||
314 | * 0 on success, negative error code on failure. | ||
315 | */ | ||
316 | static int drm_get_minor(struct drm_device *dev, unsigned int type) | ||
317 | { | 306 | { |
318 | struct drm_minor *new_minor; | 307 | struct drm_minor *new_minor; |
319 | int ret; | 308 | int ret; |
@@ -362,18 +351,11 @@ err_mem: | |||
362 | return ret; | 351 | return ret; |
363 | } | 352 | } |
364 | 353 | ||
365 | /** | 354 | static void drm_minor_unregister(struct drm_device *dev, unsigned int type) |
366 | * drm_unplug_minor - Unplug DRM minor | ||
367 | * @minor: Minor to unplug | ||
368 | * | ||
369 | * Unplugs the given DRM minor but keeps the object. So after this returns, | ||
370 | * minor->dev is still valid so existing open-files can still access it to get | ||
371 | * device information from their drm_file ojects. | ||
372 | * If the minor is already unplugged or if @minor is NULL, nothing is done. | ||
373 | * The global DRM mutex must be held by the caller. | ||
374 | */ | ||
375 | static void drm_unplug_minor(struct drm_minor *minor) | ||
376 | { | 355 | { |
356 | struct drm_minor *minor; | ||
357 | |||
358 | minor = *drm_minor_get_slot(dev, type); | ||
377 | if (!minor || !minor->kdev) | 359 | if (!minor || !minor->kdev) |
378 | return; | 360 | return; |
379 | 361 | ||
@@ -448,11 +430,9 @@ EXPORT_SYMBOL(drm_put_dev); | |||
448 | void drm_unplug_dev(struct drm_device *dev) | 430 | void drm_unplug_dev(struct drm_device *dev) |
449 | { | 431 | { |
450 | /* for a USB device */ | 432 | /* for a USB device */ |
451 | if (drm_core_check_feature(dev, DRIVER_MODESET)) | 433 | drm_minor_unregister(dev, DRM_MINOR_LEGACY); |
452 | drm_unplug_minor(dev->control); | 434 | drm_minor_unregister(dev, DRM_MINOR_RENDER); |
453 | if (dev->render) | 435 | drm_minor_unregister(dev, DRM_MINOR_CONTROL); |
454 | drm_unplug_minor(dev->render); | ||
455 | drm_unplug_minor(dev->primary); | ||
456 | 436 | ||
457 | mutex_lock(&drm_global_mutex); | 437 | mutex_lock(&drm_global_mutex); |
458 | 438 | ||
@@ -623,15 +603,15 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags) | |||
623 | 603 | ||
624 | mutex_lock(&drm_global_mutex); | 604 | mutex_lock(&drm_global_mutex); |
625 | 605 | ||
626 | ret = drm_get_minor(dev, DRM_MINOR_CONTROL); | 606 | ret = drm_minor_register(dev, DRM_MINOR_CONTROL); |
627 | if (ret) | 607 | if (ret) |
628 | goto err_minors; | 608 | goto err_minors; |
629 | 609 | ||
630 | ret = drm_get_minor(dev, DRM_MINOR_RENDER); | 610 | ret = drm_minor_register(dev, DRM_MINOR_RENDER); |
631 | if (ret) | 611 | if (ret) |
632 | goto err_minors; | 612 | goto err_minors; |
633 | 613 | ||
634 | ret = drm_get_minor(dev, DRM_MINOR_LEGACY); | 614 | ret = drm_minor_register(dev, DRM_MINOR_LEGACY); |
635 | if (ret) | 615 | if (ret) |
636 | goto err_minors; | 616 | goto err_minors; |
637 | 617 | ||
@@ -656,9 +636,9 @@ err_unload: | |||
656 | if (dev->driver->unload) | 636 | if (dev->driver->unload) |
657 | dev->driver->unload(dev); | 637 | dev->driver->unload(dev); |
658 | err_minors: | 638 | err_minors: |
659 | drm_unplug_minor(dev->control); | 639 | drm_minor_unregister(dev, DRM_MINOR_LEGACY); |
660 | drm_unplug_minor(dev->render); | 640 | drm_minor_unregister(dev, DRM_MINOR_RENDER); |
661 | drm_unplug_minor(dev->primary); | 641 | drm_minor_unregister(dev, DRM_MINOR_CONTROL); |
662 | out_unlock: | 642 | out_unlock: |
663 | mutex_unlock(&drm_global_mutex); | 643 | mutex_unlock(&drm_global_mutex); |
664 | return ret; | 644 | return ret; |
@@ -690,8 +670,8 @@ void drm_dev_unregister(struct drm_device *dev) | |||
690 | list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) | 670 | list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) |
691 | drm_rmmap(dev, r_list->map); | 671 | drm_rmmap(dev, r_list->map); |
692 | 672 | ||
693 | drm_unplug_minor(dev->control); | 673 | drm_minor_unregister(dev, DRM_MINOR_LEGACY); |
694 | drm_unplug_minor(dev->render); | 674 | drm_minor_unregister(dev, DRM_MINOR_RENDER); |
695 | drm_unplug_minor(dev->primary); | 675 | drm_minor_unregister(dev, DRM_MINOR_CONTROL); |
696 | } | 676 | } |
697 | EXPORT_SYMBOL(drm_dev_unregister); | 677 | EXPORT_SYMBOL(drm_dev_unregister); |