[RFC PATCH 35/37] drm: property: Allow non-global blob properties
Daniel Stone
daniels at collabora.com
Wed Mar 18 21:33:34 PDT 2015
All blob properties currently go on the device-global property list,
which is reaped at device exit. Make the addition to the list optional,
to allow for user properties whose lifetime will be tied to their
drm_file.
Signed-off-by: Daniel Stone <daniels at collabora.com>
---
drivers/gpu/drm/drm_crtc.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index c1b3801..21e2052 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -4118,7 +4118,7 @@ done:
static struct drm_property_blob *
drm_property_create_blob(struct drm_device *dev, size_t length,
- const void *data)
+ const void *data, bool global)
{
struct drm_property_blob *blob;
int ret;
@@ -4140,7 +4140,10 @@ drm_property_create_blob(struct drm_device *dev, size_t length,
memcpy(blob->data, data, length);
- list_add_tail(&blob->head, &dev->mode_config.property_blob_list);
+ if (global)
+ list_add_tail(&blob->head,
+ &dev->mode_config.property_blob_list);
+
return blob;
}
@@ -4233,7 +4236,7 @@ int drm_mode_connector_set_path_property(struct drm_connector *connector,
int ret;
connector->path_blob_ptr = drm_property_create_blob(connector->dev,
- size, path);
+ size, path, true);
if (!connector->path_blob_ptr)
return -EINVAL;
@@ -4279,7 +4282,7 @@ int drm_mode_connector_set_tile_property(struct drm_connector *connector)
size = strlen(tile) + 1;
connector->tile_blob_ptr = drm_property_create_blob(connector->dev,
- size, tile);
+ size, tile, true);
if (!connector->tile_blob_ptr)
return -EINVAL;
@@ -4324,7 +4327,7 @@ int drm_mode_connector_update_edid_property(struct drm_connector *connector,
size = EDID_LENGTH * (1 + edid->extensions);
connector->edid_blob_ptr = drm_property_create_blob(connector->dev,
- size, edid);
+ size, edid, true);
if (!connector->edid_blob_ptr)
return -EINVAL;
--
2.3.2
More information about the dri-devel
mailing list