Lines Matching refs:outp
421 nv50_outp_get_new_connector(struct nouveau_encoder *outp, in nv50_outp_get_new_connector() argument
426 struct drm_encoder *encoder = to_drm_encoder(outp); in nv50_outp_get_new_connector()
438 nv50_outp_get_old_connector(struct nouveau_encoder *outp, in nv50_outp_get_old_connector() argument
443 struct drm_encoder *encoder = to_drm_encoder(outp); in nv50_outp_get_old_connector()
915 return msto->mstc->mstm->outp; in nv50_real_outp()
932 mstm->outp->base.base.name, i, payload->vcpi, in nv50_msto_payload()
975 .base.hasht = mstm->outp->dcb->hasht, in nv50_msto_prepare()
976 .base.hashm = (0xf0ff & mstm->outp->dcb->hashm) | in nv50_msto_prepare()
1089 nv50_outp_acquire(mstm->outp, false /*XXX: MST audio.*/); in nv50_msto_enable()
1091 if (mstm->outp->link & 1) in nv50_msto_enable()
1096 mstm->outp->update(mstm->outp, head->base.index, armh, proto, in nv50_msto_enable()
1112 mstm->outp->update(mstm->outp, msto->head->base.index, NULL, 0, 0); in nv50_msto_disable()
1169 if (!(mstc->mstm->outp->dcb->heads & drm_crtc_mask(crtc))) in nv50_mstc_atomic_best_encoder()
1180 struct nouveau_encoder *outp = mstc->mstm->outp; in nv50_mstc_mode_valid() local
1186 return nv50_dp_mode_valid(connector, outp, mode, NULL); in nv50_mstc_mode_valid()
1311 struct drm_device *dev = mstm->outp->base.base.dev; in nv50_mstc_new()
1335 if (!(mstm->outp->dcb->heads & drm_crtc_mask(crtc))) in nv50_mstc_new()
1352 struct nouveau_drm *drm = nouveau_drm(mstm->outp->base.base.dev); in nv50_mstm_cleanup()
1356 NV_ATOMIC(drm, "%s: mstm cleanup\n", mstm->outp->base.base.name); in nv50_mstm_cleanup()
1361 drm_for_each_encoder(encoder, mstm->outp->base.base.dev) { in nv50_mstm_cleanup()
1376 struct nouveau_drm *drm = nouveau_drm(mstm->outp->base.base.dev); in nv50_mstm_prepare()
1380 NV_ATOMIC(drm, "%s: mstm prepare\n", mstm->outp->base.base.name); in nv50_mstm_prepare()
1383 drm_for_each_encoder(encoder, mstm->outp->base.base.dev) { in nv50_mstm_prepare()
1394 nv50_outp_release(mstm->outp); in nv50_mstm_prepare()
1465 struct nouveau_encoder *outp = mstm->outp; in nv50_mstm_enable() local
1472 .base.hasht = outp->dcb->hasht, in nv50_mstm_enable()
1473 .base.hashm = outp->dcb->hashm, in nv50_mstm_enable()
1476 struct nouveau_drm *drm = nouveau_drm(outp->base.base.dev); in nv50_mstm_enable()
1483 nv50_mstm_detect(struct nouveau_encoder *outp) in nv50_mstm_detect() argument
1485 struct nv50_mstm *mstm = outp->dp.mstm; in nv50_mstm_detect()
1517 nv50_mstm_fini(struct nouveau_encoder *outp) in nv50_mstm_fini() argument
1519 struct nv50_mstm *mstm = outp->dp.mstm; in nv50_mstm_fini()
1528 mutex_lock(&outp->dp.hpd_irq_lock); in nv50_mstm_fini()
1530 mutex_unlock(&outp->dp.hpd_irq_lock); in nv50_mstm_fini()
1537 nv50_mstm_init(struct nouveau_encoder *outp, bool runtime) in nv50_mstm_init() argument
1539 struct nv50_mstm *mstm = outp->dp.mstm; in nv50_mstm_init()
1551 mutex_lock(&outp->dp.hpd_irq_lock); in nv50_mstm_init()
1553 mutex_unlock(&outp->dp.hpd_irq_lock); in nv50_mstm_init()
1571 nv50_mstm_new(struct nouveau_encoder *outp, struct drm_dp_aux *aux, int aux_max, in nv50_mstm_new() argument
1574 const int max_payloads = hweight8(outp->dcb->heads); in nv50_mstm_new()
1575 struct drm_device *dev = outp->base.base.dev; in nv50_mstm_new()
1581 mstm->outp = outp; in nv50_mstm_new()
2061 struct nv50_outp_atom *outp, *outt; in nv50_disp_atomic_commit_tail() local
2109 list_for_each_entry(outp, &atom->outp, head) { in nv50_disp_atomic_commit_tail()
2113 encoder = outp->encoder; in nv50_disp_atomic_commit_tail()
2117 outp->clr.mask, outp->set.mask); in nv50_disp_atomic_commit_tail()
2119 if (outp->clr.mask) { in nv50_disp_atomic_commit_tail()
2122 if (outp->flush_disable) { in nv50_disp_atomic_commit_tail()
2148 list_for_each_entry_safe(outp, outt, &atom->outp, head) { in nv50_disp_atomic_commit_tail()
2152 encoder = outp->encoder; in nv50_disp_atomic_commit_tail()
2156 outp->set.mask, outp->clr.mask); in nv50_disp_atomic_commit_tail()
2158 if (outp->set.mask) { in nv50_disp_atomic_commit_tail()
2163 list_del(&outp->head); in nv50_disp_atomic_commit_tail()
2164 kfree(outp); in nv50_disp_atomic_commit_tail()
2374 struct nv50_outp_atom *outp; in nv50_disp_outp_atomic_add() local
2376 list_for_each_entry(outp, &atom->outp, head) { in nv50_disp_outp_atomic_add()
2377 if (outp->encoder == encoder) in nv50_disp_outp_atomic_add()
2378 return outp; in nv50_disp_outp_atomic_add()
2381 outp = kzalloc(sizeof(*outp), GFP_KERNEL); in nv50_disp_outp_atomic_add()
2382 if (!outp) in nv50_disp_outp_atomic_add()
2385 list_add(&outp->head, &atom->outp); in nv50_disp_outp_atomic_add()
2386 outp->encoder = encoder; in nv50_disp_outp_atomic_add()
2387 return outp; in nv50_disp_outp_atomic_add()
2397 struct nv50_outp_atom *outp; in nv50_disp_outp_atomic_check_clr() local
2405 outp = nv50_disp_outp_atomic_add(atom, encoder); in nv50_disp_outp_atomic_check_clr()
2406 if (IS_ERR(outp)) in nv50_disp_outp_atomic_check_clr()
2407 return PTR_ERR(outp); in nv50_disp_outp_atomic_check_clr()
2409 if (outp->encoder->encoder_type == DRM_MODE_ENCODER_DPMST) { in nv50_disp_outp_atomic_check_clr()
2410 outp->flush_disable = true; in nv50_disp_outp_atomic_check_clr()
2413 outp->clr.ctrl = true; in nv50_disp_outp_atomic_check_clr()
2427 struct nv50_outp_atom *outp; in nv50_disp_outp_atomic_check_set() local
2434 outp = nv50_disp_outp_atomic_add(atom, encoder); in nv50_disp_outp_atomic_check_set()
2435 if (IS_ERR(outp)) in nv50_disp_outp_atomic_check_set()
2436 return PTR_ERR(outp); in nv50_disp_outp_atomic_check_set()
2438 outp->set.ctrl = true; in nv50_disp_outp_atomic_check_set()
2507 struct nv50_outp_atom *outp, *outt; in nv50_disp_atomic_state_clear() local
2509 list_for_each_entry_safe(outp, outt, &atom->outp, head) { in nv50_disp_atomic_state_clear()
2510 list_del(&outp->head); in nv50_disp_atomic_state_clear()
2511 kfree(outp); in nv50_disp_atomic_state_clear()
2534 INIT_LIST_HEAD(&atom->outp); in nv50_disp_atomic_state_alloc()