Loading drivers/gpu/drm/drm_drv.c +24 −14 Original line number Diff line number Diff line Loading @@ -313,9 +313,10 @@ void drm_minor_release(struct drm_minor *minor) * callbacks implemented by the driver. The driver then needs to initialize all * the various subsystems for the drm device like memory management, vblank * handling, modesetting support and intial output configuration plus obviously * initialize all the corresponding hardware bits. Finally when everything is up * and running and ready for userspace the device instance can be published * using drm_dev_register(). * initialize all the corresponding hardware bits. An important part of this is * also calling drm_dev_set_unique() to set the userspace-visible unique name of * this device instance. Finally when everything is up and running and ready for * userspace the device instance can be published using drm_dev_register(). * * There is also deprecated support for initalizing device instances using * bus-specific helpers and the ->load() callback. But due to Loading @@ -337,17 +338,6 @@ void drm_minor_release(struct drm_minor *minor) * dev_priv field of &drm_device. */ static int drm_dev_set_unique(struct drm_device *dev, const char *name) { if (!name) return -EINVAL; kfree(dev->unique); dev->unique = kstrdup(name, GFP_KERNEL); return dev->unique ? 0 : -ENOMEM; } /** * drm_put_dev - Unregister and release a DRM device * @dev: DRM device Loading Loading @@ -764,6 +754,26 @@ void drm_dev_unregister(struct drm_device *dev) } EXPORT_SYMBOL(drm_dev_unregister); /** * drm_dev_set_unique - Set the unique name of a DRM device * @dev: device of which to set the unique name * @name: unique name * * Sets the unique name of a DRM device using the specified string. Drivers * can use this at driver probe time if the unique name of the devices they * drive is static. * * Return: 0 on success or a negative error code on failure. */ int drm_dev_set_unique(struct drm_device *dev, const char *name) { kfree(dev->unique); dev->unique = kstrdup(name, GFP_KERNEL); return dev->unique ? 0 : -ENOMEM; } EXPORT_SYMBOL(drm_dev_set_unique); /* * DRM Core * The DRM core module initializes all global DRM objects and makes them Loading include/drm/drmP.h +1 −0 Original line number Diff line number Diff line Loading @@ -1050,6 +1050,7 @@ void drm_dev_ref(struct drm_device *dev); void drm_dev_unref(struct drm_device *dev); int drm_dev_register(struct drm_device *dev, unsigned long flags); void drm_dev_unregister(struct drm_device *dev); int drm_dev_set_unique(struct drm_device *dev, const char *name); struct drm_minor *drm_minor_acquire(unsigned int minor_id); void drm_minor_release(struct drm_minor *minor); Loading Loading
drivers/gpu/drm/drm_drv.c +24 −14 Original line number Diff line number Diff line Loading @@ -313,9 +313,10 @@ void drm_minor_release(struct drm_minor *minor) * callbacks implemented by the driver. The driver then needs to initialize all * the various subsystems for the drm device like memory management, vblank * handling, modesetting support and intial output configuration plus obviously * initialize all the corresponding hardware bits. Finally when everything is up * and running and ready for userspace the device instance can be published * using drm_dev_register(). * initialize all the corresponding hardware bits. An important part of this is * also calling drm_dev_set_unique() to set the userspace-visible unique name of * this device instance. Finally when everything is up and running and ready for * userspace the device instance can be published using drm_dev_register(). * * There is also deprecated support for initalizing device instances using * bus-specific helpers and the ->load() callback. But due to Loading @@ -337,17 +338,6 @@ void drm_minor_release(struct drm_minor *minor) * dev_priv field of &drm_device. */ static int drm_dev_set_unique(struct drm_device *dev, const char *name) { if (!name) return -EINVAL; kfree(dev->unique); dev->unique = kstrdup(name, GFP_KERNEL); return dev->unique ? 0 : -ENOMEM; } /** * drm_put_dev - Unregister and release a DRM device * @dev: DRM device Loading Loading @@ -764,6 +754,26 @@ void drm_dev_unregister(struct drm_device *dev) } EXPORT_SYMBOL(drm_dev_unregister); /** * drm_dev_set_unique - Set the unique name of a DRM device * @dev: device of which to set the unique name * @name: unique name * * Sets the unique name of a DRM device using the specified string. Drivers * can use this at driver probe time if the unique name of the devices they * drive is static. * * Return: 0 on success or a negative error code on failure. */ int drm_dev_set_unique(struct drm_device *dev, const char *name) { kfree(dev->unique); dev->unique = kstrdup(name, GFP_KERNEL); return dev->unique ? 0 : -ENOMEM; } EXPORT_SYMBOL(drm_dev_set_unique); /* * DRM Core * The DRM core module initializes all global DRM objects and makes them Loading
include/drm/drmP.h +1 −0 Original line number Diff line number Diff line Loading @@ -1050,6 +1050,7 @@ void drm_dev_ref(struct drm_device *dev); void drm_dev_unref(struct drm_device *dev); int drm_dev_register(struct drm_device *dev, unsigned long flags); void drm_dev_unregister(struct drm_device *dev); int drm_dev_set_unique(struct drm_device *dev, const char *name); struct drm_minor *drm_minor_acquire(unsigned int minor_id); void drm_minor_release(struct drm_minor *minor); Loading