Lines Matching refs:outp
314 struct nouveau_encoder *outp)
317 outp->base.base.name, outp->caps.dp_interlace);
421 nv50_outp_get_new_connector(struct drm_atomic_state *state, struct nouveau_encoder *outp)
425 struct drm_encoder *encoder = to_drm_encoder(outp);
437 nv50_outp_get_old_connector(struct drm_atomic_state *state, struct nouveau_encoder *outp)
441 struct drm_encoder *encoder = to_drm_encoder(outp);
453 nv50_outp_get_new_crtc(const struct drm_atomic_state *state, const struct nouveau_encoder *outp)
457 const u32 mask = drm_encoder_mask(&outp->base.base);
478 core->func->dac->ctrl(core, nv_encoder->outp.or.id, ctrl, NULL);
480 nvif_outp_release(&nv_encoder->outp);
505 nvif_outp_acquire_rgb_crt(&nv_encoder->outp);
507 core->func->dac->ctrl(core, nv_encoder->outp.or.id, ctrl, asyh);
524 ret = nvif_outp_load_detect(&nv_encoder->outp, loadval);
544 nvif_outp_dtor(&nv_encoder->outp);
583 return nvif_outp_ctor(disp->disp, nv_encoder->base.base.name, dcbe->id, &nv_encoder->outp);
623 if (!nv_crtc || nv_encoder->outp.or.id != port || nv_crtc->index != dev_id)
724 struct nvif_outp *outp = &nv_encoder->outp;
733 nvif_outp_hda_eld(&nv_encoder->outp, nv_crtc->index, NULL, 0);
737 nv50_audio_component_eld_notify(drm->audio.component, outp->or.id, nv_crtc->index);
747 struct nvif_outp *outp = &nv_encoder->outp;
754 nvif_outp_hda_eld(&nv_encoder->outp, nv_crtc->index, nv_connector->base.eld,
761 nv50_audio_component_eld_notify(drm->audio.component, outp->or.id, nv_crtc->index);
811 ret = nvif_outp_acquire_tmds(&nv_encoder->outp, nv_crtc->index, true,
829 nvif_outp_infoframe(&nv_encoder->outp, NVIF_OUTP_INFOFRAME_V0_AVI, &args.infoframe, size);
839 nvif_outp_infoframe(&nv_encoder->outp, NVIF_OUTP_INFOFRAME_V0_VSI, &args.infoframe, size);
880 return msto->mstc->mstm->outp;
927 nvif_outp_dp_mst_vcpi(&mstm->outp->outp, msto->head->base.index, 0, 0, 0, 0);
932 nvif_outp_dp_mst_vcpi(&mstm->outp->outp, msto->head->base.index,
977 struct nouveau_encoder *outp = mstc->mstm->outp;
980 outp->dp.link_bw, outp->dp.link_nr);
1031 nvif_outp_acquire_dp(&mstm->outp->outp, mstm->outp->dp.dpcd, 0, 0, false, true);
1034 if (mstm->outp->outp.or.link & 1)
1039 mstm->outp->update(mstm->outp, head->base.index, asyh, proto,
1054 mstm->outp->update(mstm->outp, msto->head->base.index, NULL, 0, 0);
1113 if (!(mstc->mstm->outp->dcb->heads & drm_crtc_mask(crtc)))
1124 struct nouveau_encoder *outp = mstc->mstm->outp;
1130 return nv50_dp_mode_valid(outp, mode, NULL);
1234 struct drm_device *dev = mstm->outp->base.base.dev;
1258 if (!(mstm->outp->dcb->heads & drm_crtc_mask(crtc)))
1277 struct nouveau_drm *drm = nouveau_drm(mstm->outp->base.base.dev);
1280 NV_ATOMIC(drm, "%s: mstm cleanup\n", mstm->outp->base.base.name);
1283 drm_for_each_encoder(encoder, mstm->outp->base.base.dev) {
1300 struct nouveau_drm *drm = nouveau_drm(mstm->outp->base.base.dev);
1303 NV_ATOMIC(drm, "%s: mstm prepare\n", mstm->outp->base.base.name);
1306 drm_for_each_encoder(encoder, mstm->outp->base.base.dev) {
1318 drm_for_each_encoder(encoder, mstm->outp->base.base.dev) {
1329 nvif_outp_release(&mstm->outp->outp);
1402 nv50_mstm_detect(struct nouveau_encoder *outp)
1404 struct nv50_mstm *mstm = outp->dp.mstm;
1430 nv50_mstm_fini(struct nouveau_encoder *outp)
1432 struct nv50_mstm *mstm = outp->dp.mstm;
1441 mutex_lock(&outp->dp.hpd_irq_lock);
1443 mutex_unlock(&outp->dp.hpd_irq_lock);
1450 nv50_mstm_init(struct nouveau_encoder *outp, bool runtime)
1452 struct nv50_mstm *mstm = outp->dp.mstm;
1464 mutex_lock(&outp->dp.hpd_irq_lock);
1466 mutex_unlock(&outp->dp.hpd_irq_lock);
1484 nv50_mstm_new(struct nouveau_encoder *outp, struct drm_dp_aux *aux, int aux_max,
1487 const int max_payloads = hweight8(outp->dcb->heads);
1488 struct drm_device *dev = outp->base.base.dev;
1494 mstm->outp = outp;
1525 core->func->sor->ctrl(core, nv_encoder->outp.or.id, nv_encoder->ctrl, asyh);
1568 nvif_outp_release(&nv_encoder->outp);
1581 struct nvif_outp *outp = &nv_encoder->outp;
1605 nvif_outp_acquire_tmds(outp, nv_crtc->index, false, 0, 0, 0, false);
1609 if (nv_encoder->outp.or.link & 1) {
1652 nvif_outp_acquire_lvds(&nv_encoder->outp, lvds_dual, lvds_8bpc);
1655 nvif_outp_acquire_dp(&nv_encoder->outp, nv_encoder->dp.dpcd, 0, 0, hda, false);
1658 if (nv_encoder->outp.or.link & 1)
1693 nvif_outp_dtor(&nv_encoder->outp);
1791 return nvif_outp_ctor(disp->disp, nv_encoder->base.base.name, dcbe->id, &nv_encoder->outp);
1816 core->func->pior->ctrl(core, nv_encoder->outp.or.id, ctrl, NULL);
1818 nvif_outp_release(&nv_encoder->outp);
1849 nvif_outp_acquire_tmds(&nv_encoder->outp, false, false, 0, 0, 0, false);
1853 nvif_outp_acquire_dp(&nv_encoder->outp, nv_encoder->dp.dpcd, 0, 0, false, false);
1860 core->func->pior->ctrl(core, nv_encoder->outp.or.id, ctrl, asyh);
1876 nvif_outp_dtor(&nv_encoder->outp);
1939 return nvif_outp_ctor(disp->disp, nv_encoder->base.base.name, dcbe->id, &nv_encoder->outp);
2006 struct nv50_outp_atom *outp, *outt;
2055 list_for_each_entry(outp, &atom->outp, head) {
2059 encoder = outp->encoder;
2063 outp->clr.mask, outp->set.mask);
2065 if (outp->clr.mask) {
2068 if (outp->flush_disable) {
2094 list_for_each_entry_safe(outp, outt, &atom->outp, head) {
2098 encoder = outp->encoder;
2102 outp->set.mask, outp->clr.mask);
2104 if (outp->set.mask) {
2109 list_del(&outp->head);
2110 kfree(outp);
2321 struct nv50_outp_atom *outp;
2323 list_for_each_entry(outp, &atom->outp, head) {
2324 if (outp->encoder == encoder)
2325 return outp;
2328 outp = kzalloc(sizeof(*outp), GFP_KERNEL);
2329 if (!outp)
2332 list_add(&outp->head, &atom->outp);
2333 outp->encoder = encoder;
2334 return outp;
2344 struct nv50_outp_atom *outp;
2352 outp = nv50_disp_outp_atomic_add(atom, encoder);
2353 if (IS_ERR(outp))
2354 return PTR_ERR(outp);
2356 if (outp->encoder->encoder_type == DRM_MODE_ENCODER_DPMST) {
2357 outp->flush_disable = true;
2360 outp->clr.ctrl = true;
2374 struct nv50_outp_atom *outp;
2381 outp = nv50_disp_outp_atomic_add(atom, encoder);
2382 if (IS_ERR(outp))
2383 return PTR_ERR(outp);
2385 outp->set.ctrl = true;
2454 struct nv50_outp_atom *outp, *outt;
2456 list_for_each_entry_safe(outp, outt, &atom->outp, head) {
2457 list_del(&outp->head);
2458 kfree(outp);
2481 INIT_LIST_HEAD(&atom->outp);