Lines Matching refs:mstc
901 struct nv50_mstc *mstc; member
913 if (!msto->mstc) in nv50_real_outp()
915 return msto->mstc->mstm->outp; in nv50_real_outp()
922 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_payload() local
923 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_payload()
924 int vcpi = mstc->port->vcpi.vcpi, i; in nv50_msto_payload()
949 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_cleanup() local
950 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_cleanup()
957 drm_dp_mst_deallocate_vcpi(&mstm->mgr, mstc->port); in nv50_msto_cleanup()
959 msto->mstc = NULL; in nv50_msto_cleanup()
967 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_prepare() local
968 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_prepare()
983 if (mstc->port->vcpi.vcpi > 0) { in nv50_msto_prepare()
988 args.vcpi.pbn = mstc->port->vcpi.pbn; in nv50_msto_prepare()
989 args.vcpi.aligned_pbn = mstc->port->vcpi.aligned_pbn; in nv50_msto_prepare()
1009 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_msto_atomic_check() local
1010 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_atomic_check()
1016 mstc->native); in nv50_msto_atomic_check()
1036 slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr, mstc->port, in nv50_msto_atomic_check()
1063 struct nv50_mstc *mstc = NULL; in nv50_msto_enable() local
1073 mstc = nv50_mstc(connector); in nv50_msto_enable()
1074 mstm = mstc->mstm; in nv50_msto_enable()
1080 if (WARN_ON(!mstc)) in nv50_msto_enable()
1083 r = drm_dp_mst_allocate_vcpi(&mstm->mgr, mstc->port, armh->dp.pbn, in nv50_msto_enable()
1099 msto->mstc = mstc; in nv50_msto_enable()
1107 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_disable() local
1108 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_disable()
1110 drm_dp_mst_reset_vcpi_slots(&mstm->mgr, mstc->port); in nv50_msto_disable()
1166 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_atomic_best_encoder() local
1169 if (!(mstc->mstm->outp->dcb->heads & drm_crtc_mask(crtc))) in nv50_mstc_atomic_best_encoder()
1179 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_mode_valid() local
1180 struct nouveau_encoder *outp = mstc->mstm->outp; in nv50_mstc_mode_valid()
1192 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_get_modes() local
1195 mstc->edid = drm_dp_mst_get_edid(&mstc->connector, mstc->port->mgr, mstc->port); in nv50_mstc_get_modes()
1196 drm_connector_update_edid_property(&mstc->connector, mstc->edid); in nv50_mstc_get_modes()
1197 if (mstc->edid) in nv50_mstc_get_modes()
1198 ret = drm_add_edid_modes(&mstc->connector, mstc->edid); in nv50_mstc_get_modes()
1212 if (mstc->native) in nv50_mstc_get_modes()
1213 drm_mode_destroy(mstc->connector.dev, mstc->native); in nv50_mstc_get_modes()
1214 mstc->native = nouveau_conn_native_mode(&mstc->connector); in nv50_mstc_get_modes()
1222 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_atomic_check() local
1223 struct drm_dp_mst_topology_mgr *mgr = &mstc->mstm->mgr; in nv50_mstc_atomic_check()
1246 return drm_dp_atomic_release_vcpi_slots(state, mgr, mstc->port); in nv50_mstc_atomic_check()
1253 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_detect() local
1265 ret = drm_dp_mst_detect_port(connector, ctx, mstc->port->mgr, in nv50_mstc_detect()
1266 mstc->port); in nv50_mstc_detect()
1288 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_destroy() local
1290 drm_connector_cleanup(&mstc->connector); in nv50_mstc_destroy()
1291 drm_dp_mst_put_port_malloc(mstc->port); in nv50_mstc_destroy()
1293 kfree(mstc); in nv50_mstc_destroy()
1313 struct nv50_mstc *mstc; in nv50_mstc_new() local
1316 if (!(mstc = *pmstc = kzalloc(sizeof(*mstc), GFP_KERNEL))) in nv50_mstc_new()
1318 mstc->mstm = mstm; in nv50_mstc_new()
1319 mstc->port = port; in nv50_mstc_new()
1321 ret = drm_connector_init(dev, &mstc->connector, &nv50_mstc, in nv50_mstc_new()
1329 drm_connector_helper_add(&mstc->connector, &nv50_mstc_help); in nv50_mstc_new()
1331 mstc->connector.funcs->reset(&mstc->connector); in nv50_mstc_new()
1332 nouveau_conn_attach_properties(&mstc->connector); in nv50_mstc_new()
1338 drm_connector_attach_encoder(&mstc->connector, in nv50_mstc_new()
1342 drm_object_attach_property(&mstc->connector.base, dev->mode_config.path_property, 0); in nv50_mstc_new()
1343 drm_object_attach_property(&mstc->connector.base, dev->mode_config.tile_property, 0); in nv50_mstc_new()
1344 drm_connector_set_path_property(&mstc->connector, path); in nv50_mstc_new()
1364 struct nv50_mstc *mstc = msto->mstc; in nv50_mstm_cleanup() local
1365 if (mstc && mstc->mstm == mstm) in nv50_mstm_cleanup()
1386 struct nv50_mstc *mstc = msto->mstc; in nv50_mstm_prepare() local
1387 if (mstc && mstc->mstm == mstm) in nv50_mstm_prepare()
1404 struct nv50_mstc *mstc; in nv50_mstm_add_connector() local
1407 ret = nv50_mstc_new(mstm, port, path, &mstc); in nv50_mstm_add_connector()
1411 return &mstc->connector; in nv50_mstm_add_connector()