This one looks fine to me.
Reviewed-by: Todd Previte tprevite@gmail.com
Dave Airlie mailto:airlied@gmail.com Tuesday, May 20, 2014 7:54 PM From: Dave Airlie airlied@redhat.com
This property will be used by the MST code to provide userspace with a path to parse so it can recognise connectors around hotplugs.
Signed-off-by: Dave Airlie airlied@redhat.com
drivers/gpu/drm/drm_crtc.c | 26 ++++++++++++++++++++++++++ include/drm/drm_crtc.h | 5 +++++ 2 files changed, 31 insertions(+)
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 8bf87a6..06b9255 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -1165,6 +1165,7 @@ static int drm_mode_create_standard_connector_properties(struct drm_device *dev) { struct drm_property *edid; struct drm_property *dpms;
- struct drm_property *dev_path;
/*
- Standard properties (apply to all connectors)
@@ -1179,6 +1180,12 @@ static int drm_mode_create_standard_connector_properties(struct drm_device *dev) ARRAY_SIZE(drm_dpms_enum_list)); dev->mode_config.dpms_property = dpms;
- dev_path = drm_property_create(dev,
- DRM_MODE_PROP_BLOB |
- DRM_MODE_PROP_IMMUTABLE,
- "PATH", 0);
- dev->mode_config.path_property = dev_path;
return 0; }
@@ -3637,6 +3644,25 @@ done: return ret; }
+int drm_mode_connector_set_path_property(struct drm_connector *connector,
- char *path)
+{
- struct drm_device *dev = connector->dev;
- int ret, size;
- size = strlen(path) + 1;
- connector->path_blob_ptr = drm_property_create_blob(connector->dev,
- size, path);
- if (!connector->path_blob_ptr)
- return -EINVAL;
- ret = drm_object_property_set_value(&connector->base,
- dev->mode_config.path_property,
- connector->path_blob_ptr->base.id);
- return ret;
+} +EXPORT_SYMBOL(drm_mode_connector_set_path_property);
/**
- drm_mode_connector_update_edid_property - update the edid property
of a connector
- @connector: drm connector
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 55bc523..e33959b 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h @@ -500,6 +500,8 @@ struct drm_connector { struct drm_property_blob *edid_blob_ptr; struct drm_object_properties properties;
- struct drm_property_blob *path_blob_ptr;
uint8_t polled; /* DRM_CONNECTOR_POLL_* */
/* requested DPMS state */ @@ -774,6 +776,7 @@ struct drm_mode_config { struct list_head property_blob_list; struct drm_property *edid_property; struct drm_property *dpms_property;
- struct drm_property *path_property;
struct drm_property *plane_type_property;
/* DVI-I properties */ @@ -926,6 +929,8 @@ extern void drm_mode_config_init(struct drm_device *dev); extern void drm_mode_config_reset(struct drm_device *dev); extern void drm_mode_config_cleanup(struct drm_device *dev);
+extern int drm_mode_connector_set_path_property(struct drm_connector *connector,
- char *path);
extern int drm_mode_connector_update_edid_property(struct drm_connector *connector, struct edid *edid); extern int drm_object_property_set_value(struct drm_mode_object *obj, Dave Airlie mailto:airlied@gmail.com Tuesday, May 20, 2014 7:54 PM Hey,
So this set is pretty close to what I think we should be merging initially,
Since the last set, it makes fbcon and suspend/resume work a lot better,
I've also fixed a couple of bugs in -intel that make things work a lot better.
I've bashed on this a bit using kms-flip from intel-gpu-tools, hacked to add 3 monitor support.
It still generates a fair few i915 state checker backtraces, and some of them are fairly hard to work out, it might be we should just tone down the state checker for encoders/connectors with no actual hw backing them.
Dave.
Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx