Lines Matching refs:minor

217 	struct drm_minor *minor;  in drm_minor_alloc()  local
221 minor = kzalloc(sizeof(*minor), GFP_KERNEL); in drm_minor_alloc()
222 if (!minor) in drm_minor_alloc()
225 minor->type = type; in drm_minor_alloc()
226 minor->dev = dev; in drm_minor_alloc()
241 minor->index = r; in drm_minor_alloc()
243 minor->kdev = drm_sysfs_minor_alloc(minor); in drm_minor_alloc()
244 if (IS_ERR(minor->kdev)) { in drm_minor_alloc()
245 r = PTR_ERR(minor->kdev); in drm_minor_alloc()
249 *drm_minor_get_slot(dev, type) = minor; in drm_minor_alloc()
254 idr_remove(&drm_minors_idr, minor->index); in drm_minor_alloc()
257 kfree(minor); in drm_minor_alloc()
263 struct drm_minor **slot, *minor; in drm_minor_free() local
267 minor = *slot; in drm_minor_free()
268 if (!minor) in drm_minor_free()
272 put_device(minor->kdev); in drm_minor_free()
276 idr_remove(&drm_minors_idr, minor->index); in drm_minor_free()
279 kfree(minor); in drm_minor_free()
285 struct drm_minor *minor; in drm_minor_register() local
291 minor = *drm_minor_get_slot(dev, type); in drm_minor_register()
292 if (!minor) in drm_minor_register()
296 ret = drm_debugfs_init(minor, minor->index, drm_debugfs_root); in drm_minor_register()
302 ret = device_add(minor->kdev); in drm_minor_register()
309 idr_replace(&drm_minors_idr, minor, minor->index); in drm_minor_register()
312 DRM_DEBUG("new minor registered %d\n", minor->index); in drm_minor_register()
317 drm_debugfs_cleanup(minor); in drm_minor_register()
324 struct drm_minor *minor; in drm_minor_unregister() local
327 minor = *drm_minor_get_slot(dev, type); in drm_minor_unregister()
329 if (!minor || !device_is_registered(minor->kdev)) in drm_minor_unregister()
331 if (!minor) in drm_minor_unregister()
337 idr_replace(&drm_minors_idr, NULL, minor->index); in drm_minor_unregister()
341 device_del(minor->kdev); in drm_minor_unregister()
343 dev_set_drvdata(minor->kdev, NULL); /* safety belt */ in drm_minor_unregister()
344 drm_debugfs_cleanup(minor); in drm_minor_unregister()
358 struct drm_minor *minor; in drm_minor_acquire() local
362 minor = idr_find(&drm_minors_idr, minor_id); in drm_minor_acquire()
363 if (minor) in drm_minor_acquire()
364 drm_dev_get(minor->dev); in drm_minor_acquire()
367 if (!minor) { in drm_minor_acquire()
369 } else if (drm_dev_is_unplugged(minor->dev)) { in drm_minor_acquire()
370 drm_dev_put(minor->dev); in drm_minor_acquire()
374 return minor; in drm_minor_acquire()
377 void drm_minor_release(struct drm_minor *minor) in drm_minor_release() argument
379 drm_dev_put(minor->dev); in drm_minor_release()
822 struct drm_minor *minor; in create_compat_control_link() local
829 minor = *drm_minor_get_slot(dev, DRM_MINOR_PRIMARY); in create_compat_control_link()
830 if (!minor) in create_compat_control_link()
842 name = kasprintf(GFP_KERNEL, "controlD%d", minor->index + 64); in create_compat_control_link()
847 ret = sysfs_create_link(minor->kdev->kobj.parent, in create_compat_control_link()
848 &minor->kdev->kobj, in create_compat_control_link()
861 struct drm_minor *minor; in remove_compat_control_link() local
867 minor = *drm_minor_get_slot(dev, DRM_MINOR_PRIMARY); in remove_compat_control_link()
868 if (!minor) in remove_compat_control_link()
871 name = kasprintf(GFP_KERNEL, "controlD%d", minor->index); in remove_compat_control_link()
876 sysfs_remove_link(minor->kdev->kobj.parent, name); in remove_compat_control_link()
939 driver->name, driver->major, driver->minor, in drm_dev_register()
1045 struct drm_minor *minor;
1051 minor = drm_minor_acquire(iminor(inode));
1052 if (IS_ERR(minor)) {
1053 err = PTR_ERR(minor);
1057 new_fops = fops_get(minor->dev->driver->fops);
1070 drm_minor_release(minor);