Lines Matching refs:mstc

673 	struct nv50_mstc *mstc;  member
681 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_payload() local
682 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_payload()
683 int vcpi = mstc->port->vcpi.vcpi, i; in nv50_msto_payload()
708 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_cleanup() local
709 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_cleanup()
716 drm_dp_mst_deallocate_vcpi(&mstm->mgr, mstc->port); in nv50_msto_cleanup()
718 msto->mstc = NULL; in nv50_msto_cleanup()
727 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_prepare() local
728 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_prepare()
743 if (mstc->port->vcpi.vcpi > 0) { in nv50_msto_prepare()
748 args.vcpi.pbn = mstc->port->vcpi.pbn; in nv50_msto_prepare()
749 args.vcpi.aligned_pbn = mstc->port->vcpi.aligned_pbn; in nv50_msto_prepare()
769 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_msto_atomic_check() local
770 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_atomic_check()
789 mstc->port, in nv50_msto_atomic_check()
798 mstc->native); in nv50_msto_atomic_check()
807 struct nv50_mstc *mstc = NULL; in nv50_msto_enable() local
817 mstc = nv50_mstc(connector); in nv50_msto_enable()
818 mstm = mstc->mstm; in nv50_msto_enable()
824 if (WARN_ON(!mstc)) in nv50_msto_enable()
827 r = drm_dp_mst_allocate_vcpi(&mstm->mgr, mstc->port, armh->dp.pbn, in nv50_msto_enable()
840 switch (mstc->connector.display_info.bpc) { in nv50_msto_enable()
850 msto->mstc = mstc; in nv50_msto_enable()
858 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_disable() local
859 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_disable()
861 drm_dp_mst_reset_vcpi_slots(&mstm->mgr, mstc->port); in nv50_msto_disable()
918 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_atomic_best_encoder() local
920 return &mstc->mstm->msto[head->base.index]->encoder; in nv50_mstc_atomic_best_encoder()
926 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_best_encoder() local
928 return &mstc->mstm->msto[0]->encoder; in nv50_mstc_best_encoder()
941 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_get_modes() local
944 mstc->edid = drm_dp_mst_get_edid(&mstc->connector, mstc->port->mgr, mstc->port); in nv50_mstc_get_modes()
945 drm_connector_update_edid_property(&mstc->connector, mstc->edid); in nv50_mstc_get_modes()
946 if (mstc->edid) in nv50_mstc_get_modes()
947 ret = drm_add_edid_modes(&mstc->connector, mstc->edid); in nv50_mstc_get_modes()
949 if (!mstc->connector.display_info.bpc) in nv50_mstc_get_modes()
950 mstc->connector.display_info.bpc = 8; in nv50_mstc_get_modes()
952 if (mstc->native) in nv50_mstc_get_modes()
953 drm_mode_destroy(mstc->connector.dev, mstc->native); in nv50_mstc_get_modes()
954 mstc->native = nouveau_conn_native_mode(&mstc->connector); in nv50_mstc_get_modes()
962 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_atomic_check() local
963 struct drm_dp_mst_topology_mgr *mgr = &mstc->mstm->mgr; in nv50_mstc_atomic_check()
986 return drm_dp_atomic_release_vcpi_slots(state, mgr, mstc->port); in nv50_mstc_atomic_check()
1001 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_detect() local
1012 conn_status = drm_dp_mst_detect_port(connector, mstc->port->mgr, in nv50_mstc_detect()
1013 mstc->port); in nv50_mstc_detect()
1023 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_destroy() local
1025 drm_connector_cleanup(&mstc->connector); in nv50_mstc_destroy()
1026 drm_dp_mst_put_port_malloc(mstc->port); in nv50_mstc_destroy()
1028 kfree(mstc); in nv50_mstc_destroy()
1048 struct nv50_mstc *mstc; in nv50_mstc_new() local
1051 if (!(mstc = *pmstc = kzalloc(sizeof(*mstc), GFP_KERNEL))) in nv50_mstc_new()
1053 mstc->mstm = mstm; in nv50_mstc_new()
1054 mstc->port = port; in nv50_mstc_new()
1056 ret = drm_connector_init(dev, &mstc->connector, &nv50_mstc, in nv50_mstc_new()
1064 drm_connector_helper_add(&mstc->connector, &nv50_mstc_help); in nv50_mstc_new()
1066 mstc->connector.funcs->reset(&mstc->connector); in nv50_mstc_new()
1067 nouveau_conn_attach_properties(&mstc->connector); in nv50_mstc_new()
1070 drm_connector_attach_encoder(&mstc->connector, &mstm->msto[i]->encoder); in nv50_mstc_new()
1072 drm_object_attach_property(&mstc->connector.base, dev->mode_config.path_property, 0); in nv50_mstc_new()
1073 drm_object_attach_property(&mstc->connector.base, dev->mode_config.tile_property, 0); in nv50_mstc_new()
1074 drm_connector_set_path_property(&mstc->connector, path); in nv50_mstc_new()
1094 struct nv50_mstc *mstc = msto->mstc; in nv50_mstm_cleanup() local
1095 if (mstc && mstc->mstm == mstm) in nv50_mstm_cleanup()
1116 struct nv50_mstc *mstc = msto->mstc; in nv50_mstm_prepare() local
1117 if (mstc && mstc->mstm == mstm) in nv50_mstm_prepare()
1134 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstm_destroy_connector() local
1136 drm_connector_unregister(&mstc->connector); in nv50_mstm_destroy_connector()
1138 drm_fb_helper_remove_one_connector(&drm->fbcon->helper, &mstc->connector); in nv50_mstm_destroy_connector()
1140 drm_connector_put(&mstc->connector); in nv50_mstm_destroy_connector()
1158 struct nv50_mstc *mstc; in nv50_mstm_add_connector() local
1161 ret = nv50_mstc_new(mstm, port, path, &mstc); in nv50_mstm_add_connector()
1165 return &mstc->connector; in nv50_mstm_add_connector()