On Tue, Mar 12, 2019 at 10:15 PM Manasi Navare <manasi.d.navare@xxxxxxxxx> wrote: > > Current driver sets the tile property only for DP MST connectors. > However there are some tiled displays where each SST connector > carries a single tile. So we need to attach this property object > for every connector and set it for every connector (DP SST and MST). > Plus since the tile information is obtained as a result of EDID > parsing, the best place to update tile property is where we update > edid property. > Also now we dont need to explicitly set this now for MST connectors. > > This has been tested with xrandr --props and modetest and verified > that TILE property is exposed correctly. > > Cc: Dave Airlie <airlied@xxxxxxxxxx> > Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> > Cc: Daniel Vetter <daniel.vetter@xxxxxxxxx> > Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > Signed-off-by: Manasi Navare <manasi.d.navare@xxxxxxxxx> Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/drm_connector.c | 13 ++++++++++++- > drivers/gpu/drm/drm_dp_mst_topology.c | 1 - > 2 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c > index 07d65a16c623..2355124849db 100644 > --- a/drivers/gpu/drm/drm_connector.c > +++ b/drivers/gpu/drm/drm_connector.c > @@ -245,6 +245,7 @@ int drm_connector_init(struct drm_device *dev, > INIT_LIST_HEAD(&connector->modes); > mutex_init(&connector->mutex); > connector->edid_blob_ptr = NULL; > + connector->tile_blob_ptr = NULL; > connector->status = connector_status_unknown; > connector->display_info.panel_orientation = > DRM_MODE_PANEL_ORIENTATION_UNKNOWN; > @@ -272,6 +273,9 @@ int drm_connector_init(struct drm_device *dev, > drm_object_attach_property(&connector->base, > config->non_desktop_property, > 0); > + drm_object_attach_property(&connector->base, > + config->tile_property, > + 0); > > if (drm_core_check_feature(dev, DRIVER_ATOMIC)) { > drm_object_attach_property(&connector->base, config->prop_crtc_id, 0); > @@ -1712,6 +1716,8 @@ EXPORT_SYMBOL(drm_connector_set_path_property); > * This looks up the tile information for a connector, and creates a > * property for userspace to parse if it exists. The property is of > * the form of 8 integers using ':' as a separator. > + * This is used for dual port tiled displays with DisplayPort SST > + * or DisplayPort MST connectors. > * > * Returns: > * Zero on success, errno on failure. > @@ -1755,6 +1761,9 @@ EXPORT_SYMBOL(drm_connector_set_tile_property); > * > * This function creates a new blob modeset object and assigns its id to the > * connector's edid property. > + * Since we also parse tile information from EDID's displayID block, we also > + * set the connector's tile property here. See drm_connector_set_tile_property() > + * for more details. > * > * Returns: > * Zero on success, negative errno on failure. > @@ -1796,7 +1805,9 @@ int drm_connector_update_edid_property(struct drm_connector *connector, > edid, > &connector->base, > dev->mode_config.edid_property); > - return ret; > + if (ret) > + return ret; > + return drm_connector_set_tile_property(connector); > } > EXPORT_SYMBOL(drm_connector_update_edid_property); > > diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c > index dc7ac0c60547..c630ed157994 100644 > --- a/drivers/gpu/drm/drm_dp_mst_topology.c > +++ b/drivers/gpu/drm/drm_dp_mst_topology.c > @@ -3022,7 +3022,6 @@ struct edid *drm_dp_mst_get_edid(struct drm_connector *connector, struct drm_dp_ > edid = drm_edid_duplicate(port->cached_edid); > else { > edid = drm_get_edid(connector, &port->aux.ddc); > - drm_connector_set_tile_property(connector); > } > port->has_audio = drm_detect_monitor_audio(edid); > drm_dp_mst_topology_put_port(port); > -- > 2.19.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx