diff options
author | Dave Airlie <airlied@redhat.com> | 2014-06-05 00:01:31 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2014-07-07 21:40:23 -0400 |
commit | 43aba7eb0dc052d84e88f3569ea3f030868d49b2 (patch) | |
tree | bc53dc854ba0327bb10339e0442ee6e640fec28b /drivers/gpu/drm/drm_crtc.c | |
parent | 65c2a89c30ed63db15fbbdba41b74e5f47278897 (diff) |
drm: add a path blob property
This property will be used by the MST code to provide userspace
with a path to parse so it can recognise connectors around hotplugs.
Reviewed-by: Todd Previte <tprevite@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/drm_crtc.c')
-rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index f939b058953c..bd7422676638 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c | |||
@@ -1257,6 +1257,7 @@ static int drm_mode_create_standard_connector_properties(struct drm_device *dev) | |||
1257 | { | 1257 | { |
1258 | struct drm_property *edid; | 1258 | struct drm_property *edid; |
1259 | struct drm_property *dpms; | 1259 | struct drm_property *dpms; |
1260 | struct drm_property *dev_path; | ||
1260 | 1261 | ||
1261 | /* | 1262 | /* |
1262 | * Standard properties (apply to all connectors) | 1263 | * Standard properties (apply to all connectors) |
@@ -1271,6 +1272,12 @@ static int drm_mode_create_standard_connector_properties(struct drm_device *dev) | |||
1271 | ARRAY_SIZE(drm_dpms_enum_list)); | 1272 | ARRAY_SIZE(drm_dpms_enum_list)); |
1272 | dev->mode_config.dpms_property = dpms; | 1273 | dev->mode_config.dpms_property = dpms; |
1273 | 1274 | ||
1275 | dev_path = drm_property_create(dev, | ||
1276 | DRM_MODE_PROP_BLOB | | ||
1277 | DRM_MODE_PROP_IMMUTABLE, | ||
1278 | "PATH", 0); | ||
1279 | dev->mode_config.path_property = dev_path; | ||
1280 | |||
1274 | return 0; | 1281 | return 0; |
1275 | } | 1282 | } |
1276 | 1283 | ||
@@ -3755,6 +3762,25 @@ done: | |||
3755 | return ret; | 3762 | return ret; |
3756 | } | 3763 | } |
3757 | 3764 | ||
3765 | int drm_mode_connector_set_path_property(struct drm_connector *connector, | ||
3766 | char *path) | ||
3767 | { | ||
3768 | struct drm_device *dev = connector->dev; | ||
3769 | int ret, size; | ||
3770 | size = strlen(path) + 1; | ||
3771 | |||
3772 | connector->path_blob_ptr = drm_property_create_blob(connector->dev, | ||
3773 | size, path); | ||
3774 | if (!connector->path_blob_ptr) | ||
3775 | return -EINVAL; | ||
3776 | |||
3777 | ret = drm_object_property_set_value(&connector->base, | ||
3778 | dev->mode_config.path_property, | ||
3779 | connector->path_blob_ptr->base.id); | ||
3780 | return ret; | ||
3781 | } | ||
3782 | EXPORT_SYMBOL(drm_mode_connector_set_path_property); | ||
3783 | |||
3758 | /** | 3784 | /** |
3759 | * drm_mode_connector_update_edid_property - update the edid property of a connector | 3785 | * drm_mode_connector_update_edid_property - update the edid property of a connector |
3760 | * @connector: drm connector | 3786 | * @connector: drm connector |