Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3af9e98d authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drm/dp: cache edid for mst physical output ports"

parents 07bc54f4 9682ac93
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -1228,9 +1228,8 @@ static void drm_dp_add_port(struct drm_dp_mst_branch *mstb,
			drm_dp_put_port(port);
			goto out;
		}
		if ((port->pdt == DP_PEER_DEVICE_DP_LEGACY_CONV ||
		     port->pdt == DP_PEER_DEVICE_SST_SINK) &&
		    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->cached_edid = drm_get_edid(port->connector, &port->aux.ddc);
			drm_connector_set_tile_property(port->connector);
		}
@@ -1268,6 +1267,13 @@ static void drm_dp_update_port(struct drm_dp_mst_branch *mstb,
		}
	}
	if (old_pdt != port->pdt && !port->input) {
		if ((old_pdt == DP_PEER_DEVICE_DP_LEGACY_CONV ||
		     old_pdt == DP_PEER_DEVICE_SST_SINK) &&
		    port->port_num < DP_MST_LOGICAL_PORT_0) {
			kfree(port->cached_edid);
			port->cached_edid = NULL;
		}

		drm_dp_port_teardown_pdt(port, old_pdt);

		if (drm_dp_port_setup_pdt(port))