[Intel-gfx] [PATCH] drm/dp: Set the connector's TILE property even for DP SST connectors
Alex Deucher
alexdeucher at gmail.com
Wed Mar 13 18:48:36 UTC 2019
On Tue, Mar 12, 2019 at 10:15 PM Manasi Navare
<manasi.d.navare at intel.com> 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 at redhat.com>
> Cc: Jani Nikula <jani.nikula at linux.intel.com>
> Cc: Daniel Vetter <daniel.vetter at intel.com>
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: Manasi Navare <manasi.d.navare at intel.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the Intel-gfx
mailing list