Lines Matching refs:msto

940 	struct nv50_msto *msto;  in nv50_real_outp()  local
945 msto = nv50_msto(encoder); in nv50_real_outp()
946 if (!msto->mstc) in nv50_real_outp()
948 return msto->mstc->mstm->outp; in nv50_real_outp()
955 struct nv50_msto *msto) in nv50_msto_cleanup() argument
957 struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev); in nv50_msto_cleanup()
959 drm_atomic_get_mst_payload_state(mst_state, msto->mstc->port); in nv50_msto_cleanup()
961 NV_ATOMIC(drm, "%s: msto cleanup\n", msto->encoder.name); in nv50_msto_cleanup()
963 if (msto->disabled) { in nv50_msto_cleanup()
964 msto->mstc = NULL; in nv50_msto_cleanup()
965 msto->disabled = false; in nv50_msto_cleanup()
966 } else if (msto->enabled) { in nv50_msto_cleanup()
968 msto->enabled = false; in nv50_msto_cleanup()
976 struct nv50_msto *msto) in nv50_msto_prepare() argument
978 struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev); in nv50_msto_prepare()
979 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_prepare()
990 (0x0100 << msto->head->base.index), in nv50_msto_prepare()
993 NV_ATOMIC(drm, "%s: msto prepare\n", msto->encoder.name); in nv50_msto_prepare()
998 if (msto->disabled) { in nv50_msto_prepare()
1001 if (msto->enabled) in nv50_msto_prepare()
1011 msto->encoder.name, msto->head->base.base.name, in nv50_msto_prepare()
1087 struct nv50_msto *msto = nv50_msto(encoder); in nv50_msto_atomic_enable() local
1088 struct nv50_head *head = msto->head; in nv50_msto_atomic_enable()
1099 if (connector->state->best_encoder == &msto->encoder) { in nv50_msto_atomic_enable()
1121 msto->mstc = mstc; in nv50_msto_atomic_enable()
1122 msto->enabled = true; in nv50_msto_atomic_enable()
1129 struct nv50_msto *msto = nv50_msto(encoder); in nv50_msto_atomic_disable() local
1130 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_atomic_disable()
1133 mstm->outp->update(mstm->outp, msto->head->base.index, NULL, 0, 0); in nv50_msto_atomic_disable()
1137 msto->disabled = true; in nv50_msto_atomic_disable()
1150 struct nv50_msto *msto = nv50_msto(encoder); in nv50_msto_destroy() local
1151 drm_encoder_cleanup(&msto->encoder); in nv50_msto_destroy()
1152 kfree(msto); in nv50_msto_destroy()
1163 struct nv50_msto *msto; in nv50_msto_new() local
1166 msto = kzalloc(sizeof(*msto), GFP_KERNEL); in nv50_msto_new()
1167 if (!msto) in nv50_msto_new()
1170 ret = drm_encoder_init(dev, &msto->encoder, &nv50_msto, in nv50_msto_new()
1173 kfree(msto); in nv50_msto_new()
1177 drm_encoder_helper_add(&msto->encoder, &nv50_msto_help); in nv50_msto_new()
1178 msto->encoder.possible_crtcs = drm_crtc_mask(&head->base.base); in nv50_msto_new()
1179 msto->head = head; in nv50_msto_new()
1180 return msto; in nv50_msto_new()
1195 return &nv50_head(crtc)->msto->encoder; in nv50_mstc_atomic_best_encoder()
1341 &nv50_head(crtc)->msto->encoder); in nv50_mstc_new()
1364 struct nv50_msto *msto = nv50_msto(encoder); in nv50_mstm_cleanup() local
1365 struct nv50_mstc *mstc = msto->mstc; in nv50_mstm_cleanup()
1367 nv50_msto_cleanup(state, mst_state, &mstm->mgr, msto); in nv50_mstm_cleanup()
1387 struct nv50_msto *msto = nv50_msto(encoder); in nv50_mstm_prepare() local
1388 struct nv50_mstc *mstc = msto->mstc; in nv50_mstm_prepare()
1389 if (mstc && mstc->mstm == mstm && msto->disabled) in nv50_mstm_prepare()
1390 nv50_msto_prepare(state, mst_state, &mstm->mgr, msto); in nv50_mstm_prepare()
1399 struct nv50_msto *msto = nv50_msto(encoder); in nv50_mstm_prepare() local
1400 struct nv50_mstc *mstc = msto->mstc; in nv50_mstm_prepare()
1401 if (mstc && mstc->mstm == mstm && !msto->disabled) in nv50_mstm_prepare()
1402 nv50_msto_prepare(state, mst_state, &mstm->mgr, msto); in nv50_mstm_prepare()
2770 head->msto = nv50_msto_new(dev, head, i); in nv50_display_create()
2771 if (IS_ERR(head->msto)) { in nv50_display_create()
2772 ret = PTR_ERR(head->msto); in nv50_display_create()
2773 head->msto = NULL; in nv50_display_create()
2787 head->msto->encoder.possible_crtcs = crtcs; in nv50_display_create()