Lines Matching refs:nv_encoder

307 nv50_outp_release(struct nouveau_encoder *nv_encoder)  in nv50_outp_release()  argument
309 struct nv50_disp *disp = nv50_disp(nv_encoder->base.base.dev); in nv50_outp_release()
315 .base.hasht = nv_encoder->dcb->hasht, in nv50_outp_release()
316 .base.hashm = nv_encoder->dcb->hashm, in nv50_outp_release()
320 nv_encoder->or = -1; in nv50_outp_release()
321 nv_encoder->link = 0; in nv50_outp_release()
325 nv50_outp_acquire(struct nouveau_encoder *nv_encoder, bool hda) in nv50_outp_acquire() argument
327 struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev); in nv50_outp_acquire()
335 .base.hasht = nv_encoder->dcb->hasht, in nv50_outp_acquire()
336 .base.hashm = nv_encoder->dcb->hashm, in nv50_outp_acquire()
347 nv_encoder->or = args.info.or; in nv50_outp_acquire()
348 nv_encoder->link = args.info.link; in nv50_outp_acquire()
460 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_dac_disable() local
463 if (nv_encoder->crtc) in nv50_dac_disable()
464 core->func->dac->ctrl(core, nv_encoder->or, ctrl, NULL); in nv50_dac_disable()
465 nv_encoder->crtc = NULL; in nv50_dac_disable()
466 nv50_outp_release(nv_encoder); in nv50_dac_disable()
472 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_dac_enable() local
490 nv50_outp_acquire(nv_encoder, false); in nv50_dac_enable()
492 core->func->dac->ctrl(core, nv_encoder->or, ctrl, asyh); in nv50_dac_enable()
495 nv_encoder->crtc = encoder->crtc; in nv50_dac_enable()
501 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_dac_detect() local
509 .base.hasht = nv_encoder->dcb->hasht, in nv50_dac_detect()
510 .base.hashm = nv_encoder->dcb->hashm, in nv50_dac_detect()
551 struct nouveau_encoder *nv_encoder; in nv50_dac_create() local
555 nv_encoder = kzalloc(sizeof(*nv_encoder), GFP_KERNEL); in nv50_dac_create()
556 if (!nv_encoder) in nv50_dac_create()
558 nv_encoder->dcb = dcbe; in nv50_dac_create()
562 nv_encoder->i2c = &bus->i2c; in nv50_dac_create()
564 encoder = to_drm_encoder(nv_encoder); in nv50_dac_create()
594 struct nouveau_encoder *nv_encoder; in nv50_audio_component_get_eld() local
605 nv_encoder = nouveau_encoder(encoder); in nv50_audio_component_get_eld()
619 if (!nv_crtc || nv_encoder->or != port || in nv50_audio_component_get_eld()
622 *enabled = nv_encoder->audio; in nv50_audio_component_get_eld()
700 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_audio_disable() local
708 .base.hasht = nv_encoder->dcb->hasht, in nv50_audio_disable()
709 .base.hashm = (0xf0ff & nv_encoder->dcb->hashm) | in nv50_audio_disable()
713 if (!nv_encoder->audio) in nv50_audio_disable()
716 nv_encoder->audio = false; in nv50_audio_disable()
719 nv50_audio_component_eld_notify(drm->audio.component, nv_encoder->or, in nv50_audio_disable()
728 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_audio_enable() local
741 .base.mthd.hasht = nv_encoder->dcb->hasht, in nv50_audio_enable()
742 .base.mthd.hashm = (0xf0ff & nv_encoder->dcb->hashm) | in nv50_audio_enable()
746 nv_connector = nv50_outp_get_new_connector(nv_encoder, state); in nv50_audio_enable()
754 nv_encoder->audio = true; in nv50_audio_enable()
756 nv50_audio_component_eld_notify(drm->audio.component, nv_encoder->or, in nv50_audio_enable()
766 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_hdmi_disable() local
774 .base.hasht = nv_encoder->dcb->hasht, in nv50_hdmi_disable()
775 .base.hashm = (0xf0ff & nv_encoder->dcb->hashm) | in nv50_hdmi_disable()
787 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_hdmi_enable() local
797 .base.hasht = nv_encoder->dcb->hasht, in nv50_hdmi_enable()
798 .base.hashm = (0xf0ff & nv_encoder->dcb->hashm) | in nv50_hdmi_enable()
813 nv_connector = nv50_outp_get_new_connector(nv_encoder, state); in nv50_hdmi_enable()
867 ret = drm_scdc_readb(nv_encoder->i2c, SCDC_TMDS_CONFIG, &config); in nv50_hdmi_enable()
875 ret = drm_scdc_writeb(nv_encoder->i2c, SCDC_TMDS_CONFIG, config); in nv50_hdmi_enable()
1596 nv50_sor_update(struct nouveau_encoder *nv_encoder, u8 head, in nv50_sor_update() argument
1599 struct nv50_disp *disp = nv50_disp(nv_encoder->base.base.dev); in nv50_sor_update()
1603 nv_encoder->ctrl &= ~BIT(head); in nv50_sor_update()
1604 if (NVDEF_TEST(nv_encoder->ctrl, NV507D, SOR_SET_CONTROL, OWNER, ==, NONE)) in nv50_sor_update()
1605 nv_encoder->ctrl = 0; in nv50_sor_update()
1607 nv_encoder->ctrl |= NVVAL(NV507D, SOR_SET_CONTROL, PROTOCOL, proto); in nv50_sor_update()
1608 nv_encoder->ctrl |= BIT(head); in nv50_sor_update()
1612 core->func->sor->ctrl(core, nv_encoder->or, nv_encoder->ctrl, asyh); in nv50_sor_update()
1619 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_sor_disable() local
1620 struct nouveau_crtc *nv_crtc = nouveau_crtc(nv_encoder->crtc); in nv50_sor_disable()
1622 nv50_outp_get_old_connector(nv_encoder, state); in nv50_sor_disable()
1624 nv_encoder->crtc = NULL; in nv50_sor_disable()
1630 if (nv_encoder->dcb->type == DCB_OUTPUT_DP) { in nv50_sor_disable()
1640 nv_encoder->update(nv_encoder, nv_crtc->index, NULL, 0, 0); in nv50_sor_disable()
1642 nv50_hdmi_disable(&nv_encoder->base.base, nv_crtc); in nv50_sor_disable()
1643 nv50_outp_release(nv_encoder); in nv50_sor_disable()
1650 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_sor_enable() local
1660 .base.hasht = nv_encoder->dcb->hasht, in nv50_sor_enable()
1661 .base.hashm = nv_encoder->dcb->hashm, in nv50_sor_enable()
1672 nv_connector = nv50_outp_get_new_connector(nv_encoder, state); in nv50_sor_enable()
1673 nv_encoder->crtc = encoder->crtc; in nv50_sor_enable()
1679 nv50_outp_acquire(nv_encoder, hda); in nv50_sor_enable()
1681 switch (nv_encoder->dcb->type) { in nv50_sor_enable()
1683 if (nv_encoder->link & 1) { in nv50_sor_enable()
1692 nv_encoder->dcb->duallink_possible && in nv50_sor_enable()
1699 nv50_hdmi_enable(&nv_encoder->base.base, state, mode); in nv50_sor_enable()
1735 if (nv_encoder->link & 1) in nv50_sor_enable()
1747 nv_encoder->update(nv_encoder, nv_crtc->index, asyh, proto, depth); in nv50_sor_enable()
1760 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_sor_destroy() local
1761 nv50_mstm_del(&nv_encoder->dp.mstm); in nv50_sor_destroy()
1764 if (nv_encoder->dcb->type == DCB_OUTPUT_DP) in nv50_sor_destroy()
1765 mutex_destroy(&nv_encoder->dp.hpd_irq_lock); in nv50_sor_destroy()
1791 struct nouveau_encoder *nv_encoder; in nv50_sor_create() local
1805 nv_encoder = kzalloc(sizeof(*nv_encoder), GFP_KERNEL); in nv50_sor_create()
1806 if (!nv_encoder) in nv50_sor_create()
1808 nv_encoder->dcb = dcbe; in nv50_sor_create()
1809 nv_encoder->update = nv50_sor_update; in nv50_sor_create()
1811 encoder = to_drm_encoder(nv_encoder); in nv50_sor_create()
1820 disp->core->func->sor->get_caps(disp, nv_encoder, ffs(dcbe->or) - 1); in nv50_sor_create()
1826 mutex_init(&nv_encoder->dp.hpd_irq_lock); in nv50_sor_create()
1834 nv_encoder->i2c = &aux->i2c; in nv50_sor_create()
1836 nv_encoder->i2c = &nv_connector->aux.ddc; in nv50_sor_create()
1838 nv_encoder->aux = aux; in nv50_sor_create()
1843 ret = nv50_mstm_new(nv_encoder, &nv_connector->aux, in nv50_sor_create()
1845 &nv_encoder->dp.mstm); in nv50_sor_create()
1853 nv_encoder->i2c = &bus->i2c; in nv50_sor_create()
1877 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_pior_disable() local
1880 if (nv_encoder->crtc) in nv50_pior_disable()
1881 core->func->pior->ctrl(core, nv_encoder->or, ctrl, NULL); in nv50_pior_disable()
1882 nv_encoder->crtc = NULL; in nv50_pior_disable()
1883 nv50_outp_release(nv_encoder); in nv50_pior_disable()
1889 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_pior_enable() local
1903 nv50_outp_acquire(nv_encoder, false); in nv50_pior_enable()
1912 switch (nv_encoder->dcb->type) { in nv50_pior_enable()
1922 core->func->pior->ctrl(core, nv_encoder->or, ctrl, asyh); in nv50_pior_enable()
1923 nv_encoder->crtc = &nv_crtc->base; in nv50_pior_enable()
1955 struct nouveau_encoder *nv_encoder; in nv50_pior_create() local
1974 nv_encoder = kzalloc(sizeof(*nv_encoder), GFP_KERNEL); in nv50_pior_create()
1975 if (!nv_encoder) in nv50_pior_create()
1977 nv_encoder->dcb = dcbe; in nv50_pior_create()
1978 nv_encoder->i2c = ddc; in nv50_pior_create()
1979 nv_encoder->aux = aux; in nv50_pior_create()
1981 encoder = to_drm_encoder(nv_encoder); in nv50_pior_create()
1990 disp->core->func->pior->get_caps(disp, nv_encoder, ffs(dcbe->or) - 1); in nv50_pior_create()
2561 struct nouveau_encoder *nv_encoder = in nv50_display_init() local
2563 nv50_mstm_init(nv_encoder, runtime); in nv50_display_init()