Subsequent patches will introduce reference counting APIs that are more consistent with similar APIs throughout the Linux kernel. These APIs use the _get() and _put() suffixes and will collide with this existing function. Rename the function to drm_mode_object_add() which is a slightly more accurate description of what it does. Also the kerneldoc for this function gives an indication that it's badly named because it doesn't actually acquire a reference to anything.
Unified · Split
| @@ -175,9 +175,9 @@ int drm_connector_init(struct drm_device *dev, · 174 unmodified lines | ||
| 175 | 175 | struct ida *connector_ida = |
| 176 | 176 | &drm_connector_enum_list[connector_type].ida; |
| 177 | 177 | |
| 178 | − ret = drm_mode_object_get_reg(dev, &connector->base, | |
| 179 | − DRM_MODE_OBJECT_CONNECTOR, | |
| 180 | − false, drm_connector_free); | |
| 178 | + ret = __drm_mode_object_add(dev, &connector->base, | |
| 179 | + DRM_MODE_OBJECT_CONNECTOR, | |
| 180 | + false, drm_connector_free); | |
| 181 | 181 | if (ret) |
| 182 | 182 | return ret; |
| 183 | 183 | |
| @@ -282,7 +282,7 @@ int drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc, · 281 unmodified lines | ||
| 282 | 282 | spin_lock_init(&crtc->commit_lock); |
| 283 | 283 | |
| 284 | 284 | drm_modeset_lock_init(&crtc->mutex); |
| 285 | − ret = drm_mode_object_get(dev, &crtc->base, DRM_MODE_OBJECT_CRTC); | |
| 285 | + ret = drm_mode_object_add(dev, &crtc->base, DRM_MODE_OBJECT_CRTC); | |
| 286 | 286 | if (ret) |
| 287 | 287 | return ret; |
| 288 | 288 | |
| @@ -98,15 +98,13 @@ int drm_mode_destroyblob_ioctl(struct drm_device *dev, · 97 unmodified lines | ||
| 98 | 98 | void *data, struct drm_file *file_priv); |
| 99 | 99 | |
| 100 | 100 | /* drm_mode_object.c */ |
| 101 | −int drm_mode_object_get_reg(struct drm_device *dev, | |
| 102 | − struct drm_mode_object *obj, | |
| 103 | − uint32_t obj_type, | |
| 104 | − bool register_obj, | |
| 105 | − void (*obj_free_cb)(struct kref *kref)); | |
| 101 | +int __drm_mode_object_add(struct drm_device *dev, struct drm_mode_object *obj, | |
| 102 | + uint32_t obj_type, bool register_obj, | |
| 103 | + void (*obj_free_cb)(struct kref *kref)); | |
| 104 | +int drm_mode_object_add(struct drm_device *dev, struct drm_mode_object *obj, | |
| 105 | + uint32_t obj_type); | |
| 106 | 106 | void drm_mode_object_register(struct drm_device *dev, |
| 107 | 107 | struct drm_mode_object *obj); |
| 108 | −int drm_mode_object_get(struct drm_device *dev, | |
| 109 | − struct drm_mode_object *obj, uint32_t obj_type); | |
| 110 | 108 | struct drm_mode_object *__drm_mode_object_find(struct drm_device *dev, |
| 111 | 109 | uint32_t id, uint32_t type); |
| 112 | 110 | void drm_mode_object_unregister(struct drm_device *dev, |
| @@ -110,7 +110,7 @@ int drm_encoder_init(struct drm_device *dev, · 109 unmodified lines | ||
| 110 | 110 | { |
| 111 | 111 | int ret; |
| 112 | 112 | |
| 113 | − ret = drm_mode_object_get(dev, &encoder->base, DRM_MODE_OBJECT_ENCODER); | |
| 113 | + ret = drm_mode_object_add(dev, &encoder->base, DRM_MODE_OBJECT_ENCODER); | |
| 114 | 114 | if (ret) |
| 115 | 115 | return ret; |
| 116 | 116 | |
| @@ -638,8 +638,8 @@ int drm_framebuffer_init(struct drm_device *dev, struct drm_framebuffer *fb, · 637 unmodified lines | ||
| 638 | 638 | |
| 639 | 639 | fb->funcs = funcs; |
| 640 | 640 | |
| 641 | − ret = drm_mode_object_get_reg(dev, &fb->base, DRM_MODE_OBJECT_FB, | |
| 642 | − false, drm_framebuffer_free); | |
| 641 | + ret = __drm_mode_object_add(dev, &fb->base, DRM_MODE_OBJECT_FB, | |
| 642 | + false, drm_framebuffer_free); | |
| 643 | 643 | if (ret) |
| 644 | 644 | goto out; |
| 645 | 645 | |
| @@ -31,11 +31,9 @@ · 30 unmodified lines | ||
| 31 | 31 | * Internal function to assign a slot in the object idr and optionally |
| 32 | 32 | * register the object into the idr. |
| 33 | 33 | */ |
| 34 | −int drm_mode_object_get_reg(struct drm_device *dev, | |
| 35 | − struct drm_mode_object *obj, | |
| 36 | − uint32_t obj_type, | |
| 37 | − bool register_obj, | |
| 38 | − void (*obj_free_cb)(struct kref *kref)) | |
| 34 | +int __drm_mode_object_add(struct drm_device *dev, struct drm_mode_object *obj, | |
| 35 | + uint32_t obj_type, bool register_obj, | |
| 36 | + void (*obj_free_cb)(struct kref *kref)) | |
| 39 | 37 | { |
| 40 | 38 | int ret; |
| 41 | 39 | |
| @@ -59,23 +57,21 @@ int drm_mode_object_get_reg(struct drm_device *dev, · 17 unmodified lines | ||
| 59 | 57 | } |
| 60 | 58 | |
| 61 | 59 | /** |
| 62 | − * drm_mode_object_get - allocate a new modeset identifier | |
| 60 | + * drm_mode_object_add - allocate a new modeset identifier | |
| 63 | 61 | * @dev: DRM device |
| 64 | 62 | * @obj: object pointer, used to generate unique ID |
| 65 | 63 | * @obj_type: object type |
| 66 | 64 | * |
| 67 | 65 | * Create a unique identifier based on @ptr in @dev's identifier space. Used |
| 68 | − * for tracking modes, CRTCs and connectors. Note that despite the _get postfix | |
| 69 | − * modeset identifiers are _not_ reference counted. Hence don't use this for | |
| 70 | − * reference counted modeset objects like framebuffers. | |
| 66 | + * for tracking modes, CRTCs and connectors. | |
| 71 | 67 | * |
| 72 | 68 | * Returns: |
| 73 | 69 | * Zero on success, error code on failure. |
| 74 | 70 | */ |
| 75 | −int drm_mode_object_get(struct drm_device *dev, | |
| 71 | +int drm_mode_object_add(struct drm_device *dev, | |
| 76 | 72 | struct drm_mode_object *obj, uint32_t obj_type) |
| 77 | 73 | { |
| 78 | − return drm_mode_object_get_reg(dev, obj, obj_type, true, NULL); | |
| 74 | + return __drm_mode_object_add(dev, obj, obj_type, true, NULL); | |
| 79 | 75 | } |
| 80 | 76 | |
| 81 | 77 | void drm_mode_object_register(struct drm_device *dev, |
| @@ -71,7 +71,7 @@ struct drm_display_mode *drm_mode_create(struct drm_device *dev) · 70 unmodified lines | ||
| 71 | 71 | if (!nmode) |
| 72 | 72 | return NULL; |
| 73 | 73 | |
| 74 | − if (drm_mode_object_get(dev, &nmode->base, DRM_MODE_OBJECT_MODE)) { | |
| 74 | + if (drm_mode_object_add(dev, &nmode->base, DRM_MODE_OBJECT_MODE)) { | |
| 75 | 75 | kfree(nmode); |
| 76 | 76 | return NULL; |
| 77 | 77 | } |
| @@ -88,7 +88,7 @@ int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane, · 87 unmodified lines | ||
| 88 | 88 | struct drm_mode_config *config = &dev->mode_config; |
| 89 | 89 | int ret; |
| 90 | 90 | |
| 91 | − ret = drm_mode_object_get(dev, &plane->base, DRM_MODE_OBJECT_PLANE); | |
| 91 | + ret = drm_mode_object_add(dev, &plane->base, DRM_MODE_OBJECT_PLANE); | |
| 92 | 92 | if (ret) |
| 93 | 93 | return ret; |
| 94 | 94 | |
| @@ -91,7 +91,7 @@ struct drm_property *drm_property_create(struct drm_device *dev, int flags, · 90 unmodified lines | ||
| 91 | 91 | goto fail; |
| 92 | 92 | } |
| 93 | 93 | |
| 94 | − ret = drm_mode_object_get(dev, &property->base, DRM_MODE_OBJECT_PROPERTY); | |
| 94 | + ret = drm_mode_object_add(dev, &property->base, DRM_MODE_OBJECT_PROPERTY); | |
| 95 | 95 | if (ret) |
| 96 | 96 | goto fail; |
| 97 | 97 | |
| @@ -570,8 +570,8 @@ drm_property_create_blob(struct drm_device *dev, size_t length, · 472 unmodified lines | ||
| 570 | 570 | if (data) |
| 571 | 571 | memcpy(blob->data, data, length); |
| 572 | 572 | |
| 573 | − ret = drm_mode_object_get_reg(dev, &blob->base, DRM_MODE_OBJECT_BLOB, | |
| 574 | − true, drm_property_free_blob); | |
| 573 | + ret = __drm_mode_object_add(dev, &blob->base, DRM_MODE_OBJECT_BLOB, | |
| 574 | + true, drm_property_free_blob); | |
| 575 | 575 | if (ret) { |
| 576 | 576 | kfree(blob); |
| 577 | 577 | return ERR_PTR(-EINVAL); |