Lines Matching defs:nv_encoder

372 	struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
376 switch (nv_encoder->dcb->type) {
378 max_rate = nv_encoder->dp.link_nr * nv_encoder->dp.link_bw;
475 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
479 core->func->dac->ctrl(core, nv_encoder->outp.or.id, ctrl, NULL);
480 nv_encoder->crtc = NULL;
486 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
487 struct nouveau_crtc *nv_crtc = nv50_outp_get_new_crtc(state, nv_encoder);
505 if (!nvif_outp_acquired(&nv_encoder->outp))
506 nvif_outp_acquire_dac(&nv_encoder->outp);
508 core->func->dac->ctrl(core, nv_encoder->outp.or.id, ctrl, asyh);
511 nv_encoder->crtc = &nv_crtc->base;
517 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
525 ret = nvif_outp_load_detect(&nv_encoder->outp, loadval);
543 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
545 nvif_outp_dtor(&nv_encoder->outp);
557 nv50_dac_create(struct nouveau_encoder *nv_encoder)
559 struct drm_connector *connector = &nv_encoder->conn->base;
564 struct dcb_output *dcbe = nv_encoder->dcb;
569 nv_encoder->i2c = &bus->i2c;
571 encoder = to_drm_encoder(nv_encoder);
599 struct nouveau_encoder *nv_encoder;
613 nv_encoder = nouveau_encoder(encoder);
614 nv_connector = nv_encoder->conn;
615 nv_crtc = nouveau_crtc(nv_encoder->crtc);
617 if (!nv_crtc || nv_encoder->outp.or.id != port || nv_crtc->index != dev_id)
620 *enabled = nv_encoder->audio.enabled;
711 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
713 switch (nv_encoder->dcb->type) {
729 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
730 struct nvif_outp *outp = &nv_encoder->outp;
736 if (nv_encoder->audio.enabled) {
737 nv_encoder->audio.enabled = false;
738 nvif_outp_hda_eld(&nv_encoder->outp, nv_crtc->index, NULL, 0);
751 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
752 struct nvif_outp *outp = &nv_encoder->outp;
759 nvif_outp_hda_eld(&nv_encoder->outp, nv_crtc->index, nv_connector->base.eld,
761 nv_encoder->audio.enabled = true;
777 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
793 if (nv_encoder->i2c && hdmi->scdc.scrambling.supported) {
797 ret = drm_scdc_readb(nv_encoder->i2c, SCDC_TMDS_CONFIG, &scdc);
809 ret = drm_scdc_writeb(nv_encoder->i2c, SCDC_TMDS_CONFIG, scdc);
815 ret = nvif_outp_hdmi(&nv_encoder->outp, nv_crtc->index, true, max_ac_packet, rekey,
834 nvif_outp_infoframe(&nv_encoder->outp, NVIF_OUTP_INFOFRAME_V0_AVI, &args.infoframe, size);
844 nvif_outp_infoframe(&nv_encoder->outp, NVIF_OUTP_INFOFRAME_V0_VSI, &args.infoframe, size);
846 nv_encoder->hdmi.enabled = true;
1537 nv50_sor_update(struct nouveau_encoder *nv_encoder, u8 head,
1540 struct nv50_disp *disp = nv50_disp(nv_encoder->base.base.dev);
1544 nv_encoder->ctrl &= ~BIT(head);
1545 if (NVDEF_TEST(nv_encoder->ctrl, NV507D, SOR_SET_CONTROL, OWNER, ==, NONE))
1546 nv_encoder->ctrl = 0;
1548 nv_encoder->ctrl |= NVVAL(NV507D, SOR_SET_CONTROL, PROTOCOL, proto);
1549 nv_encoder->ctrl |= BIT(head);
1553 core->func->sor->ctrl(core, nv_encoder->outp.or.id, nv_encoder->ctrl, asyh);
1564 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1565 struct nv50_head *head = nv50_head(nv_encoder->crtc);
1567 struct nouveau_connector *nv_connector = nv50_outp_get_old_connector(state, nv_encoder);
1568 struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev);
1581 if (nv_encoder->dcb->type == DCB_OUTPUT_TMDS && nv_encoder->hdmi.enabled) {
1582 nvif_outp_hdmi(&nv_encoder->outp, head->base.index,
1584 nv_encoder->hdmi.enabled = false;
1587 if (nv_encoder->dcb->type == DCB_OUTPUT_DP)
1588 nouveau_dp_power_down(nv_encoder);
1593 nv_encoder->update(nv_encoder, head->base.index, NULL, 0, 0);
1595 nv_encoder->crtc = NULL;
1743 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1744 struct nouveau_crtc *nv_crtc = nv50_outp_get_new_crtc(state, nv_encoder);
1750 struct nvif_outp *outp = &nv_encoder->outp;
1762 nv_connector = nv50_outp_get_new_connector(state, nv_encoder);
1763 nv_encoder->crtc = &nv_crtc->base;
1767 nv_encoder->dcb->type != DCB_OUTPUT_LVDS &&
1774 switch (nv_encoder->dcb->type) {
1780 if (nv_encoder->outp.or.link & 1) {
1789 nv_encoder->dcb->duallink_possible &&
1823 nvif_outp_lvds(&nv_encoder->outp, lvds_dual, lvds_8bpc);
1826 nouveau_dp_train(nv_encoder, false, mode->clock, asyh->or.bpc);
1827 nv50_sor_dp_watermark_sst(nv_encoder, head, asyh);
1830 if (nv_encoder->outp.or.link & 1)
1849 head->func->display_id(head, BIT(nv_encoder->outp.id));
1851 nv_encoder->update(nv_encoder, nv_crtc->index, asyh, proto, depth);
1864 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1866 nv50_mstm_del(&nv_encoder->dp.mstm);
1869 if (nv_encoder->dcb->type == DCB_OUTPUT_DP)
1870 mutex_destroy(&nv_encoder->dp.hpd_irq_lock);
1872 nvif_outp_dtor(&nv_encoder->outp);
1882 nv50_sor_create(struct nouveau_encoder *nv_encoder)
1884 struct drm_connector *connector = &nv_encoder->conn->base;
1889 struct dcb_output *dcbe = nv_encoder->dcb;
1902 nv_encoder->update = nv50_sor_update;
1904 encoder = to_drm_encoder(nv_encoder);
1911 disp->core->func->sor->get_caps(disp, nv_encoder, ffs(dcbe->or) - 1);
1912 nv50_outp_dump_caps(drm, nv_encoder);
1915 mutex_init(&nv_encoder->dp.hpd_irq_lock);
1928 nv_encoder->i2c = &aux->i2c;
1930 nv_encoder->i2c = &nv_connector->aux.ddc;
1933 if (nv_connector->type != DCB_CONNECTOR_eDP && nv_encoder->outp.info.dp.mst) {
1934 ret = nv50_mstm_new(nv_encoder, &nv_connector->aux,
1936 &nv_encoder->dp.mstm);
1941 if (nv_encoder->outp.info.ddc != NVIF_OUTP_DDC_INVALID) {
1945 nv_encoder->i2c = &bus->i2c;
1969 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1973 core->func->pior->ctrl(core, nv_encoder->outp.or.id, ctrl, NULL);
1974 nv_encoder->crtc = NULL;
1980 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1981 struct nouveau_crtc *nv_crtc = nv50_outp_get_new_crtc(state, nv_encoder);
2002 if (!nvif_outp_acquired(&nv_encoder->outp))
2003 nvif_outp_acquire_pior(&nv_encoder->outp);
2005 switch (nv_encoder->dcb->type) {
2011 nouveau_dp_train(nv_encoder, false, asyh->state.adjusted_mode.clock, 6);
2018 core->func->pior->ctrl(core, nv_encoder->outp.or.id, ctrl, asyh);
2019 nv_encoder->crtc = &nv_crtc->base;
2032 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
2034 nvif_outp_dtor(&nv_encoder->outp);
2038 mutex_destroy(&nv_encoder->dp.hpd_irq_lock);
2048 nv50_pior_create(struct nouveau_encoder *nv_encoder)
2050 struct drm_connector *connector = &nv_encoder->conn->base;
2059 struct dcb_output *dcbe = nv_encoder->dcb;
2064 bus = nvkm_i2c_bus_find(i2c, nv_encoder->outp.info.ddc);
2069 aux = nvkm_i2c_aux_find(i2c, nv_encoder->outp.info.dp.aux);
2077 nv_encoder->i2c = ddc;
2079 mutex_init(&nv_encoder->dp.hpd_irq_lock);
2081 encoder = to_drm_encoder(nv_encoder);
2088 disp->core->func->pior->get_caps(disp, nv_encoder, ffs(dcbe->or) - 1);
2089 nv50_outp_dump_caps(drm, nv_encoder);
2133 struct nouveau_encoder *nv_encoder = nouveau_encoder(outp->encoder);
2136 nv50_audio_enable(outp->encoder, nouveau_crtc(nv_encoder->crtc),
2137 nv_encoder->conn, NULL, NULL);
2141 nvif_outp_release(&nv_encoder->outp);
2796 struct nouveau_encoder *nv_encoder =
2798 nv50_mstm_init(nv_encoder, runtime);