Lines Matching refs:radeon_connector
13 static struct radeon_encoder *radeon_dp_create_fake_mst_encoder(struct radeon_connector *connector);
113 static int radeon_dp_mst_update_stream_attribs(struct radeon_connector *mst_conn, in radeon_dp_mst_update_stream_attribs()
120 struct radeon_connector *radeon_connector; in radeon_dp_mst_update_stream_attribs() local
128 radeon_connector = to_radeon_connector(connector); in radeon_dp_mst_update_stream_attribs()
129 if (!radeon_connector->is_mst_connector) in radeon_dp_mst_update_stream_attribs()
132 if (radeon_connector->mst_port != mst_conn) in radeon_dp_mst_update_stream_attribs()
135 subenc = radeon_connector->mst_encoder; in radeon_dp_mst_update_stream_attribs()
191 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_mst_get_ddc_modes() local
192 struct radeon_connector *master = radeon_connector->mst_port; in radeon_dp_mst_get_ddc_modes()
196 edid = drm_dp_mst_get_edid(connector, &master->mst_mgr, radeon_connector->port); in radeon_dp_mst_get_ddc_modes()
197 radeon_connector->edid = edid; in radeon_dp_mst_get_ddc_modes()
199 if (radeon_connector->edid) { in radeon_dp_mst_get_ddc_modes()
200 drm_connector_update_edid_property(&radeon_connector->base, radeon_connector->edid); in radeon_dp_mst_get_ddc_modes()
201 ret = drm_add_edid_modes(&radeon_connector->base, radeon_connector->edid); in radeon_dp_mst_get_ddc_modes()
204 drm_connector_update_edid_property(&radeon_connector->base, NULL); in radeon_dp_mst_get_ddc_modes()
231 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_mst_best_encoder() local
233 return &radeon_connector->mst_encoder->base; in radeon_mst_best_encoder()
245 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_mst_detect() local
246 struct radeon_connector *master = radeon_connector->mst_port; in radeon_dp_mst_detect()
248 return drm_dp_mst_detect_port(connector, &master->mst_mgr, radeon_connector->port); in radeon_dp_mst_detect()
254 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_mst_connector_destroy() local
255 struct radeon_encoder *radeon_encoder = radeon_connector->mst_encoder; in radeon_dp_mst_connector_destroy()
260 kfree(radeon_connector); in radeon_dp_mst_connector_destroy()
274 struct radeon_connector *master = container_of(mgr, struct radeon_connector, mst_mgr); in radeon_dp_add_mst_connector()
276 struct radeon_connector *radeon_connector; in radeon_dp_add_mst_connector() local
279 radeon_connector = kzalloc(sizeof(*radeon_connector), GFP_KERNEL); in radeon_dp_add_mst_connector()
280 if (!radeon_connector) in radeon_dp_add_mst_connector()
283 radeon_connector->is_mst_connector = true; in radeon_dp_add_mst_connector()
284 connector = &radeon_connector->base; in radeon_dp_add_mst_connector()
285 radeon_connector->port = port; in radeon_dp_add_mst_connector()
286 radeon_connector->mst_port = master; in radeon_dp_add_mst_connector()
291 radeon_connector->mst_encoder = radeon_dp_create_fake_mst_encoder(master); in radeon_dp_add_mst_connector()
313 struct radeon_connector *master = container_of(mgr, struct radeon_connector, mst_mgr); in radeon_dp_destroy_mst_connector()
332 radeon_connector *radeon_mst_find_connector(struct drm_encoder *encoder) in radeon_mst_find_connector()
338 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_mst_find_connector() local
341 if (!radeon_connector->is_mst_connector) in radeon_mst_find_connector()
346 return radeon_connector; in radeon_mst_find_connector()
358 struct radeon_connector *radeon_connector = radeon_mst_find_connector(&radeon_encoder->base); in radeon_dp_mst_prepare_pll() local
362 if (radeon_connector) { in radeon_dp_mst_prepare_pll()
363 radeon_connector->pixelclock_for_modeset = mode->clock; in radeon_dp_mst_prepare_pll()
364 if (radeon_connector->base.display_info.bpc) in radeon_dp_mst_prepare_pll()
365 radeon_crtc->bpc = radeon_connector->base.display_info.bpc; in radeon_dp_mst_prepare_pll()
386 struct radeon_connector *radeon_connector; in radeon_mst_encoder_dpms() local
396 radeon_connector = radeon_mst_find_connector(encoder); in radeon_mst_encoder_dpms()
397 if (!radeon_connector) in radeon_mst_encoder_dpms()
442 slots = drm_dp_find_vcpi_slots(&radeon_connector->mst_port->mst_mgr, in radeon_mst_encoder_dpms()
444 ret = drm_dp_mst_allocate_vcpi(&radeon_connector->mst_port->mst_mgr, in radeon_mst_encoder_dpms()
445 radeon_connector->port, in radeon_mst_encoder_dpms()
447 ret = drm_dp_update_payload_part1(&radeon_connector->mst_port->mst_mgr); in radeon_mst_encoder_dpms()
450 radeon_connector->mst_port->hpd.hpd, true); in radeon_mst_encoder_dpms()
453 radeon_dp_mst_update_stream_attribs(radeon_connector->mst_port, primary); in radeon_mst_encoder_dpms()
456 fixed_pbn_per_slot = drm_int2fixp(radeon_connector->mst_port->mst_mgr.pbn_div); in radeon_mst_encoder_dpms()
462 ret = drm_dp_check_act_status(&radeon_connector->mst_port->mst_mgr); in radeon_mst_encoder_dpms()
464 ret = drm_dp_update_payload_part2(&radeon_connector->mst_port->mst_mgr); in radeon_mst_encoder_dpms()
475 drm_dp_mst_reset_vcpi_slots(&radeon_connector->mst_port->mst_mgr, mst_enc->port); in radeon_mst_encoder_dpms()
476 ret = drm_dp_update_payload_part1(&radeon_connector->mst_port->mst_mgr); in radeon_mst_encoder_dpms()
478 drm_dp_check_act_status(&radeon_connector->mst_port->mst_mgr); in radeon_mst_encoder_dpms()
480 drm_dp_update_payload_part2(&radeon_connector->mst_port->mst_mgr); in radeon_mst_encoder_dpms()
482 drm_dp_mst_deallocate_vcpi(&radeon_connector->mst_port->mst_mgr, mst_enc->port); in radeon_mst_encoder_dpms()
485 radeon_dp_mst_update_stream_attribs(radeon_connector->mst_port, primary); in radeon_mst_encoder_dpms()
488 radeon_connector->mst_port->hpd.hpd, false); in radeon_mst_encoder_dpms()
536 struct radeon_connector *radeon_connector; in radeon_mst_encoder_prepare() local
541 radeon_connector = radeon_mst_find_connector(encoder); in radeon_mst_encoder_prepare()
542 if (!radeon_connector) { in radeon_mst_encoder_prepare()
556 mst_enc->port = radeon_connector->port; in radeon_mst_encoder_prepare()
601 radeon_dp_create_fake_mst_encoder(struct radeon_connector *connector) in radeon_dp_create_fake_mst_encoder()
650 radeon_dp_mst_init(struct radeon_connector *radeon_connector) in radeon_dp_mst_init() argument
652 struct drm_device *dev = radeon_connector->base.dev; in radeon_dp_mst_init()
654 if (!radeon_connector->ddc_bus->has_aux) in radeon_dp_mst_init()
657 radeon_connector->mst_mgr.cbs = &mst_cbs; in radeon_dp_mst_init()
658 return drm_dp_mst_topology_mgr_init(&radeon_connector->mst_mgr, dev, in radeon_dp_mst_init()
659 &radeon_connector->ddc_bus->aux, 16, 6, in radeon_dp_mst_init()
660 radeon_connector->base.base.id); in radeon_dp_mst_init()
664 radeon_dp_mst_probe(struct radeon_connector *radeon_connector) in radeon_dp_mst_probe() argument
666 struct radeon_connector_atom_dig *dig_connector = radeon_connector->con_priv; in radeon_dp_mst_probe()
667 struct drm_device *dev = radeon_connector->base.dev; in radeon_dp_mst_probe()
681 ret = drm_dp_dpcd_read(&radeon_connector->ddc_bus->aux, DP_MSTM_CAP, msg, in radeon_dp_mst_probe()
693 drm_dp_mst_topology_mgr_set_mst(&radeon_connector->mst_mgr, in radeon_dp_mst_probe()
699 radeon_dp_mst_check_status(struct radeon_connector *radeon_connector) in radeon_dp_mst_check_status() argument
701 struct radeon_connector_atom_dig *dig_connector = radeon_connector->con_priv; in radeon_dp_mst_check_status()
710 dret = drm_dp_dpcd_read(&radeon_connector->ddc_bus->aux, in radeon_dp_mst_check_status()
715 ret = drm_dp_mst_hpd_irq(&radeon_connector->mst_mgr, esi, &handled); in radeon_dp_mst_check_status()
720 wret = drm_dp_dpcd_write(&radeon_connector->ddc_bus->aux, in radeon_dp_mst_check_status()
726 dret = drm_dp_dpcd_read(&radeon_connector->ddc_bus->aux, in radeon_dp_mst_check_status()
739 drm_dp_mst_topology_mgr_set_mst(&radeon_connector->mst_mgr, in radeon_dp_mst_check_status()
754 struct radeon_connector *radeon_connector; in radeon_debugfs_mst_info() local
763 radeon_connector = to_radeon_connector(connector); in radeon_debugfs_mst_info()
764 dig_connector = radeon_connector->con_priv; in radeon_debugfs_mst_info()
765 if (radeon_connector->is_mst_connector) in radeon_debugfs_mst_info()
769 drm_dp_mst_dump_topology(m, &radeon_connector->mst_mgr); in radeon_debugfs_mst_info()
771 for (i = 0; i < radeon_connector->enabled_attribs; i++) in radeon_debugfs_mst_info()
773 radeon_connector->cur_stream_attribs[i].fe, in radeon_debugfs_mst_info()
774 radeon_connector->cur_stream_attribs[i].slots); in radeon_debugfs_mst_info()