diff options
author | Ville Syrjälä <[email protected]> | 2016-10-26 12:05:55 +0300 |
---|---|---|
committer | Daniel Vetter <[email protected]> | 2016-10-26 18:53:44 +0200 |
commit | 4da5caa6a6f82cda3193bca855235b87debf78bd (patch) | |
tree | 6ba1c8129beff272d08e6aab1c16367aeca02de5 | |
parent | 36e3fa6a38e135e9478a2f75dec9bf6ff1e6480e (diff) |
drm/dp/mst: Check peer device type before attempting EDID read
Only certain types of pdts have the DDC bus registered, so check for
that before we attempt the EDID read. Othwewise we risk playing around
with an i2c adapter that doesn't actually exist.
Cc: [email protected]
Cc: Carlos Santa <[email protected]>
Cc: Kirill A. Shutemov <[email protected]>
Tested-by: Carlos Santa <[email protected]>
Tested-by: Kirill A. Shutemov <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97666
Signed-off-by: Ville Syrjälä <[email protected]>
Signed-off-by: Daniel Vetter <[email protected]>
Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
-rw-r--r-- | drivers/gpu/drm/drm_dp_mst_topology.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c index ba13f9d8720b..aa644487749c 100644 --- a/drivers/gpu/drm/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/drm_dp_mst_topology.c @@ -1160,7 +1160,9 @@ static void drm_dp_add_port(struct drm_dp_mst_branch *mstb, drm_dp_put_port(port); goto out; } - if (port->port_num >= DP_MST_LOGICAL_PORT_0) { + if ((port->pdt == DP_PEER_DEVICE_DP_LEGACY_CONV || + port->pdt == DP_PEER_DEVICE_SST_SINK) && + port->port_num >= DP_MST_LOGICAL_PORT_0) { port->cached_edid = drm_get_edid(port->connector, &port->aux.ddc); drm_mode_connector_set_tile_property(port->connector); } |