Lines Matching refs:msto
653 struct nv50_msto *msto[4]; member
678 nv50_msto_payload(struct nv50_msto *msto) in nv50_msto_payload() argument
680 struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev); in nv50_msto_payload()
681 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_payload()
687 NV_ATOMIC(drm, "%s: vcpi %d\n", msto->encoder.name, vcpi); in nv50_msto_payload()
705 nv50_msto_cleanup(struct nv50_msto *msto) in nv50_msto_cleanup() argument
707 struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev); in nv50_msto_cleanup()
708 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_cleanup()
711 if (!msto->disabled) in nv50_msto_cleanup()
714 NV_ATOMIC(drm, "%s: msto cleanup\n", msto->encoder.name); in nv50_msto_cleanup()
718 msto->mstc = NULL; in nv50_msto_cleanup()
719 msto->head = NULL; in nv50_msto_cleanup()
720 msto->disabled = false; in nv50_msto_cleanup()
724 nv50_msto_prepare(struct nv50_msto *msto) in nv50_msto_prepare() argument
726 struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev); in nv50_msto_prepare()
727 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_prepare()
737 (0x0100 << msto->head->base.index), in nv50_msto_prepare()
742 NV_ATOMIC(drm, "%s: msto prepare\n", msto->encoder.name); in nv50_msto_prepare()
744 struct drm_dp_payload *payload = nv50_msto_payload(msto); in nv50_msto_prepare()
754 msto->encoder.name, msto->head->base.base.name, in nv50_msto_prepare()
806 struct nv50_msto *msto = nv50_msto(encoder); in nv50_msto_enable() local
816 if (connector->state->best_encoder == &msto->encoder) { in nv50_msto_enable()
849 msto->head = head; in nv50_msto_enable()
850 msto->mstc = mstc; in nv50_msto_enable()
857 struct nv50_msto *msto = nv50_msto(encoder); in nv50_msto_disable() local
858 struct nv50_mstc *mstc = msto->mstc; in nv50_msto_disable()
863 mstm->outp->update(mstm->outp, msto->head->base.index, NULL, 0, 0); in nv50_msto_disable()
867 msto->disabled = true; in nv50_msto_disable()
880 struct nv50_msto *msto = nv50_msto(encoder); in nv50_msto_destroy() local
881 drm_encoder_cleanup(&msto->encoder); in nv50_msto_destroy()
882 kfree(msto); in nv50_msto_destroy()
894 struct nv50_msto *msto; in nv50_msto_new() local
897 if (!(msto = *pmsto = kzalloc(sizeof(*msto), GFP_KERNEL))) in nv50_msto_new()
900 ret = drm_encoder_init(dev, &msto->encoder, &nv50_msto, in nv50_msto_new()
908 drm_encoder_helper_add(&msto->encoder, &nv50_msto_help); in nv50_msto_new()
909 msto->encoder.possible_crtcs = heads; in nv50_msto_new()
920 return &mstc->mstm->msto[head->base.index]->encoder; in nv50_mstc_atomic_best_encoder()
928 return &mstc->mstm->msto[0]->encoder; in nv50_mstc_best_encoder()
1069 for (i = 0; i < ARRAY_SIZE(mstm->msto) && mstm->msto[i]; i++) in nv50_mstc_new()
1070 drm_connector_attach_encoder(&mstc->connector, &mstm->msto[i]->encoder); in nv50_mstc_new()
1093 struct nv50_msto *msto = nv50_msto(encoder); in nv50_mstm_cleanup() local
1094 struct nv50_mstc *mstc = msto->mstc; in nv50_mstm_cleanup()
1096 nv50_msto_cleanup(msto); in nv50_mstm_cleanup()
1115 struct nv50_msto *msto = nv50_msto(encoder); in nv50_mstm_prepare() local
1116 struct nv50_mstc *mstc = msto->mstc; in nv50_mstm_prepare()
1118 nv50_msto_prepare(msto); in nv50_mstm_prepare()
1369 i, &mstm->msto[i]); in nv50_mstm_new()