Lines Matching refs:aconnector

196 static bool validate_dsc_caps_on_connector(struct amdgpu_dm_connector *aconnector)
198 struct dc_sink *dc_sink = aconnector->dc_sink;
199 struct drm_dp_mst_port *port = aconnector->port;
202 aconnector->dsc_aux = drm_dp_mst_dsc_aux_for_port(port);
204 if (!aconnector->dsc_aux)
207 if (drm_dp_dpcd_read(aconnector->dsc_aux, DP_DSC_SUPPORT, dsc_caps, 16) < 0)
210 if (!dc_dsc_parse_dsc_dpcd(aconnector->dc_link->ctx->dc,
221 struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
224 if (!aconnector)
227 if (!aconnector->edid) {
229 edid = drm_dp_mst_get_edid(connector, &aconnector->mst_port->mst_mgr, aconnector->port);
233 &aconnector->base,
238 aconnector->edid = edid;
241 if (aconnector->dc_sink && aconnector->dc_sink->sink_signal == SIGNAL_TYPE_VIRTUAL) {
242 dc_sink_release(aconnector->dc_sink);
243 aconnector->dc_sink = NULL;
246 if (!aconnector->dc_sink) {
249 .link = aconnector->dc_link,
252 aconnector->dc_link,
253 (uint8_t *)aconnector->edid,
254 (aconnector->edid->extensions + 1) * EDID_LENGTH,
257 dc_sink->priv = aconnector;
259 aconnector->dc_sink = dc_sink;
261 if (aconnector->dc_sink) {
263 connector, aconnector->edid);
266 if (!validate_dsc_caps_on_connector(aconnector))
267 memset(&aconnector->dc_sink->sink_dsc_caps,
268 0, sizeof(aconnector->dc_sink->sink_dsc_caps));
274 &aconnector->base, aconnector->edid);
276 ret = drm_add_edid_modes(connector, aconnector->edid);
292 struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
293 struct amdgpu_dm_connector *master = aconnector->mst_port;
296 aconnector->port);
306 struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
311 mst_port = aconnector->port;
312 mst_mgr = &aconnector->mst_port->mst_mgr;
383 struct amdgpu_dm_connector *aconnector;
386 aconnector = kzalloc(sizeof(*aconnector), GFP_KERNEL);
387 if (!aconnector)
390 connector = &aconnector->base;
391 aconnector->port = port;
392 aconnector->mst_port = master;
399 kfree(aconnector);
406 aconnector,
411 aconnector->mst_encoder = dm_dp_create_fake_mst_encoder(master);
412 drm_connector_attach_encoder(&aconnector->base,
413 &aconnector->mst_encoder->base);
433 aconnector, connector->base.id, aconnector->mst_port);
448 struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
451 aconnector, connector->base.id, aconnector->mst_port);
453 if (aconnector->dc_sink) {
455 dc_link_remove_remote_sink(aconnector->dc_link,
456 aconnector->dc_sink);
457 dc_sink_release(aconnector->dc_sink);
458 aconnector->dc_sink = NULL;
487 struct amdgpu_dm_connector *aconnector)
489 aconnector->dm_dp_aux.aux.name = "dmdc";
490 aconnector->dm_dp_aux.aux.dev = aconnector->base.kdev;
491 aconnector->dm_dp_aux.aux.transfer = dm_dp_aux_transfer;
492 aconnector->dm_dp_aux.ddc_service = aconnector->dc_link->ddc;
494 drm_dp_aux_register(&aconnector->dm_dp_aux.aux);
495 drm_dp_cec_register_connector(&aconnector->dm_dp_aux.aux,
496 &aconnector->base);
498 if (aconnector->base.connector_type == DRM_MODE_CONNECTOR_eDP)
501 aconnector->mst_mgr.cbs = &dm_mst_cbs;
503 &aconnector->mst_mgr,
505 &aconnector->dm_dp_aux.aux,
508 aconnector->connector_id);
753 struct amdgpu_dm_connector *aconnector;
771 aconnector = (struct amdgpu_dm_connector *)stream->dm_stream_context;
772 params[count].port = aconnector->port;
846 struct amdgpu_dm_connector *aconnector;
857 aconnector = (struct amdgpu_dm_connector *)stream->dm_stream_context;
859 if (!aconnector || !aconnector->dc_sink)
862 if (!aconnector->dc_sink->sink_dsc_caps.dsc_dec_caps.is_dsc_supported)
868 mutex_lock(&aconnector->mst_mgr.lock);
870 mutex_unlock(&aconnector->mst_mgr.lock);
873 mutex_unlock(&aconnector->mst_mgr.lock);