Lines Matching refs:mstc
935 struct nv50_mstc *mstc; member
947 if (!msto->mstc) in nv50_real_outp()
949 return msto->mstc->mstm->outp; in nv50_real_outp()
956 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_payload() local
957 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_payload()
958 int vcpi = mstc->port->vcpi.vcpi, i; in nv50_msto_payload()
983 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_cleanup() local
984 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_cleanup()
991 drm_dp_mst_deallocate_vcpi(&mstm->mgr, mstc->port); in nv50_msto_cleanup()
993 msto->mstc = NULL; in nv50_msto_cleanup()
1001 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_prepare() local
1002 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_prepare()
1017 if (mstc->port->vcpi.vcpi > 0) { in nv50_msto_prepare()
1022 args.vcpi.pbn = mstc->port->vcpi.pbn; in nv50_msto_prepare()
1023 args.vcpi.aligned_pbn = mstc->port->vcpi.aligned_pbn; in nv50_msto_prepare()
1043 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_msto_atomic_check() local
1044 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_atomic_check()
1050 mstc->native); in nv50_msto_atomic_check()
1070 slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr, mstc->port, in nv50_msto_atomic_check()
1098 struct nv50_mstc *mstc = NULL; in nv50_msto_atomic_enable() local
1108 mstc = nv50_mstc(connector); in nv50_msto_atomic_enable()
1109 mstm = mstc->mstm; in nv50_msto_atomic_enable()
1115 if (WARN_ON(!mstc)) in nv50_msto_atomic_enable()
1118 r = drm_dp_mst_allocate_vcpi(&mstm->mgr, mstc->port, asyh->dp.pbn, asyh->dp.tu); in nv50_msto_atomic_enable()
1133 msto->mstc = mstc; in nv50_msto_atomic_enable()
1141 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_atomic_disable() local
1142 struct nv50_mstm *mstm = mstc->mstm; in nv50_msto_atomic_disable()
1144 drm_dp_mst_reset_vcpi_slots(&mstm->mgr, mstc->port); in nv50_msto_atomic_disable()
1202 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_atomic_best_encoder() local
1205 if (!(mstc->mstm->outp->dcb->heads & drm_crtc_mask(crtc))) in nv50_mstc_atomic_best_encoder()
1215 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_mode_valid() local
1216 struct nouveau_encoder *outp = mstc->mstm->outp; in nv50_mstc_mode_valid()
1228 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_get_modes() local
1231 mstc->edid = drm_dp_mst_get_edid(&mstc->connector, mstc->port->mgr, mstc->port); in nv50_mstc_get_modes()
1232 drm_connector_update_edid_property(&mstc->connector, mstc->edid); in nv50_mstc_get_modes()
1233 if (mstc->edid) in nv50_mstc_get_modes()
1234 ret = drm_add_edid_modes(&mstc->connector, mstc->edid); in nv50_mstc_get_modes()
1248 if (mstc->native) in nv50_mstc_get_modes()
1249 drm_mode_destroy(mstc->connector.dev, mstc->native); in nv50_mstc_get_modes()
1250 mstc->native = nouveau_conn_native_mode(&mstc->connector); in nv50_mstc_get_modes()
1258 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_atomic_check() local
1259 struct drm_dp_mst_topology_mgr *mgr = &mstc->mstm->mgr; in nv50_mstc_atomic_check()
1282 return drm_dp_atomic_release_vcpi_slots(state, mgr, mstc->port); in nv50_mstc_atomic_check()
1289 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_detect() local
1301 ret = drm_dp_mst_detect_port(connector, ctx, mstc->port->mgr, in nv50_mstc_detect()
1302 mstc->port); in nv50_mstc_detect()
1324 struct nv50_mstc *mstc = nv50_mstc(connector); in nv50_mstc_destroy() local
1326 drm_connector_cleanup(&mstc->connector); in nv50_mstc_destroy()
1327 drm_dp_mst_put_port_malloc(mstc->port); in nv50_mstc_destroy()
1329 kfree(mstc); in nv50_mstc_destroy()
1349 struct nv50_mstc *mstc; in nv50_mstc_new() local
1352 if (!(mstc = *pmstc = kzalloc(sizeof(*mstc), GFP_KERNEL))) in nv50_mstc_new()
1354 mstc->mstm = mstm; in nv50_mstc_new()
1355 mstc->port = port; in nv50_mstc_new()
1357 ret = drm_connector_init(dev, &mstc->connector, &nv50_mstc, in nv50_mstc_new()
1365 drm_connector_helper_add(&mstc->connector, &nv50_mstc_help); in nv50_mstc_new()
1367 mstc->connector.funcs->reset(&mstc->connector); in nv50_mstc_new()
1368 nouveau_conn_attach_properties(&mstc->connector); in nv50_mstc_new()
1374 drm_connector_attach_encoder(&mstc->connector, in nv50_mstc_new()
1378 drm_object_attach_property(&mstc->connector.base, dev->mode_config.path_property, 0); in nv50_mstc_new()
1379 drm_object_attach_property(&mstc->connector.base, dev->mode_config.tile_property, 0); in nv50_mstc_new()
1380 drm_connector_set_path_property(&mstc->connector, path); in nv50_mstc_new()
1400 struct nv50_mstc *mstc = msto->mstc; in nv50_mstm_cleanup() local
1401 if (mstc && mstc->mstm == mstm) in nv50_mstm_cleanup()
1422 struct nv50_mstc *mstc = msto->mstc; in nv50_mstm_prepare() local
1423 if (mstc && mstc->mstm == mstm) in nv50_mstm_prepare()
1440 struct nv50_mstc *mstc; in nv50_mstm_add_connector() local
1443 ret = nv50_mstc_new(mstm, port, path, &mstc); in nv50_mstm_add_connector()
1447 return &mstc->connector; in nv50_mstm_add_connector()