Lines Matching refs:nv_encoder

322 nv50_outp_release(struct nouveau_encoder *nv_encoder)  in nv50_outp_release()  argument
324 struct nv50_disp *disp = nv50_disp(nv_encoder->base.base.dev); in nv50_outp_release()
330 .base.hasht = nv_encoder->dcb->hasht, in nv50_outp_release()
331 .base.hashm = nv_encoder->dcb->hashm, in nv50_outp_release()
335 nv_encoder->or = -1; in nv50_outp_release()
336 nv_encoder->link = 0; in nv50_outp_release()
340 nv50_outp_acquire(struct nouveau_encoder *nv_encoder, bool hda) in nv50_outp_acquire() argument
342 struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev); in nv50_outp_acquire()
350 .base.hasht = nv_encoder->dcb->hasht, in nv50_outp_acquire()
351 .base.hashm = nv_encoder->dcb->hashm, in nv50_outp_acquire()
362 nv_encoder->or = args.info.or; in nv50_outp_acquire()
363 nv_encoder->link = args.info.link; in nv50_outp_acquire()
489 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_dac_atomic_disable() local
493 core->func->dac->ctrl(core, nv_encoder->or, ctrl, NULL); in nv50_dac_atomic_disable()
494 nv_encoder->crtc = NULL; in nv50_dac_atomic_disable()
495 nv50_outp_release(nv_encoder); in nv50_dac_atomic_disable()
501 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_dac_atomic_enable() local
502 struct nouveau_crtc *nv_crtc = nv50_outp_get_new_crtc(state, nv_encoder); in nv50_dac_atomic_enable()
520 nv50_outp_acquire(nv_encoder, false); in nv50_dac_atomic_enable()
522 core->func->dac->ctrl(core, nv_encoder->or, ctrl, asyh); in nv50_dac_atomic_enable()
525 nv_encoder->crtc = &nv_crtc->base; in nv50_dac_atomic_enable()
531 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_dac_detect() local
539 .base.hasht = nv_encoder->dcb->hasht, in nv50_dac_detect()
540 .base.hashm = nv_encoder->dcb->hashm, in nv50_dac_detect()
581 struct nouveau_encoder *nv_encoder; in nv50_dac_create() local
585 nv_encoder = kzalloc(sizeof(*nv_encoder), GFP_KERNEL); in nv50_dac_create()
586 if (!nv_encoder) in nv50_dac_create()
588 nv_encoder->dcb = dcbe; in nv50_dac_create()
592 nv_encoder->i2c = &bus->i2c; in nv50_dac_create()
594 encoder = to_drm_encoder(nv_encoder); in nv50_dac_create()
624 struct nouveau_encoder *nv_encoder; in nv50_audio_component_get_eld() local
638 nv_encoder = nouveau_encoder(encoder); in nv50_audio_component_get_eld()
639 nv_connector = nouveau_connector(nv_encoder->audio.connector); in nv50_audio_component_get_eld()
640 nv_crtc = nouveau_crtc(nv_encoder->crtc); in nv50_audio_component_get_eld()
642 if (!nv_crtc || nv_encoder->or != port || nv_crtc->index != dev_id) in nv50_audio_component_get_eld()
645 *enabled = nv_encoder->audio.enabled; in nv50_audio_component_get_eld()
730 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_audio_disable() local
738 .base.hasht = nv_encoder->dcb->hasht, in nv50_audio_disable()
739 .base.hashm = (0xf0ff & nv_encoder->dcb->hashm) | in nv50_audio_disable()
744 if (nv_encoder->audio.enabled) { in nv50_audio_disable()
745 nv_encoder->audio.enabled = false; in nv50_audio_disable()
746 nv_encoder->audio.connector = NULL; in nv50_audio_disable()
751 nv50_audio_component_eld_notify(drm->audio.component, nv_encoder->or, in nv50_audio_disable()
761 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_audio_enable() local
772 .base.mthd.hasht = nv_encoder->dcb->hasht, in nv50_audio_enable()
773 .base.mthd.hashm = (0xf0ff & nv_encoder->dcb->hashm) | in nv50_audio_enable()
786 nv_encoder->audio.enabled = true; in nv50_audio_enable()
787 nv_encoder->audio.connector = &nv_connector->base; in nv50_audio_enable()
791 nv50_audio_component_eld_notify(drm->audio.component, nv_encoder->or, in nv50_audio_enable()
801 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_hdmi_disable() local
809 .base.hasht = nv_encoder->dcb->hasht, in nv50_hdmi_disable()
810 .base.hashm = (0xf0ff & nv_encoder->dcb->hashm) | in nv50_hdmi_disable()
823 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_hdmi_enable() local
832 .base.hasht = nv_encoder->dcb->hasht, in nv50_hdmi_enable()
833 .base.hashm = (0xf0ff & nv_encoder->dcb->hashm) | in nv50_hdmi_enable()
900 ret = drm_scdc_readb(nv_encoder->i2c, SCDC_TMDS_CONFIG, &config); in nv50_hdmi_enable()
908 ret = drm_scdc_writeb(nv_encoder->i2c, SCDC_TMDS_CONFIG, config); in nv50_hdmi_enable()
1634 nv50_sor_update(struct nouveau_encoder *nv_encoder, u8 head, in nv50_sor_update() argument
1637 struct nv50_disp *disp = nv50_disp(nv_encoder->base.base.dev); in nv50_sor_update()
1641 nv_encoder->ctrl &= ~BIT(head); in nv50_sor_update()
1642 if (NVDEF_TEST(nv_encoder->ctrl, NV507D, SOR_SET_CONTROL, OWNER, ==, NONE)) in nv50_sor_update()
1643 nv_encoder->ctrl = 0; in nv50_sor_update()
1645 nv_encoder->ctrl |= NVVAL(NV507D, SOR_SET_CONTROL, PROTOCOL, proto); in nv50_sor_update()
1646 nv_encoder->ctrl |= BIT(head); in nv50_sor_update()
1650 core->func->sor->ctrl(core, nv_encoder->or, nv_encoder->ctrl, asyh); in nv50_sor_update()
1661 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_sor_atomic_disable() local
1662 struct nouveau_crtc *nv_crtc = nouveau_crtc(nv_encoder->crtc); in nv50_sor_atomic_disable()
1663 struct nouveau_connector *nv_connector = nv50_outp_get_old_connector(state, nv_encoder); in nv50_sor_atomic_disable()
1665 struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev); in nv50_sor_atomic_disable()
1681 if (nv_encoder->dcb->type == DCB_OUTPUT_DP) { in nv50_sor_atomic_disable()
1691 nv_encoder->update(nv_encoder, nv_crtc->index, NULL, 0, 0); in nv50_sor_atomic_disable()
1693 nv50_hdmi_disable(&nv_encoder->base.base, nv_crtc); in nv50_sor_atomic_disable()
1694 nv50_outp_release(nv_encoder); in nv50_sor_atomic_disable()
1695 nv_encoder->crtc = NULL; in nv50_sor_atomic_disable()
1701 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_sor_atomic_enable() local
1702 struct nouveau_crtc *nv_crtc = nv50_outp_get_new_crtc(state, nv_encoder); in nv50_sor_atomic_enable()
1712 .base.hasht = nv_encoder->dcb->hasht, in nv50_sor_atomic_enable()
1713 .base.hashm = nv_encoder->dcb->hashm, in nv50_sor_atomic_enable()
1727 nv_connector = nv50_outp_get_new_connector(state, nv_encoder); in nv50_sor_atomic_enable()
1728 nv_encoder->crtc = &nv_crtc->base; in nv50_sor_atomic_enable()
1734 nv50_outp_acquire(nv_encoder, hda); in nv50_sor_atomic_enable()
1736 switch (nv_encoder->dcb->type) { in nv50_sor_atomic_enable()
1738 if (nv_encoder->link & 1) { in nv50_sor_atomic_enable()
1747 nv_encoder->dcb->duallink_possible && in nv50_sor_atomic_enable()
1754 nv50_hdmi_enable(&nv_encoder->base.base, nv_crtc, nv_connector, state, mode); in nv50_sor_atomic_enable()
1790 if (nv_encoder->link & 1) in nv50_sor_atomic_enable()
1810 nv_encoder->update(nv_encoder, nv_crtc->index, asyh, proto, depth); in nv50_sor_atomic_enable()
1823 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_sor_destroy() local
1824 nv50_mstm_del(&nv_encoder->dp.mstm); in nv50_sor_destroy()
1827 if (nv_encoder->dcb->type == DCB_OUTPUT_DP) in nv50_sor_destroy()
1828 mutex_destroy(&nv_encoder->dp.hpd_irq_lock); in nv50_sor_destroy()
1854 struct nouveau_encoder *nv_encoder; in nv50_sor_create() local
1868 nv_encoder = kzalloc(sizeof(*nv_encoder), GFP_KERNEL); in nv50_sor_create()
1869 if (!nv_encoder) in nv50_sor_create()
1871 nv_encoder->dcb = dcbe; in nv50_sor_create()
1872 nv_encoder->update = nv50_sor_update; in nv50_sor_create()
1874 encoder = to_drm_encoder(nv_encoder); in nv50_sor_create()
1883 disp->core->func->sor->get_caps(disp, nv_encoder, ffs(dcbe->or) - 1); in nv50_sor_create()
1884 nv50_outp_dump_caps(drm, nv_encoder); in nv50_sor_create()
1890 mutex_init(&nv_encoder->dp.hpd_irq_lock); in nv50_sor_create()
1898 nv_encoder->i2c = &aux->i2c; in nv50_sor_create()
1900 nv_encoder->i2c = &nv_connector->aux.ddc; in nv50_sor_create()
1902 nv_encoder->aux = aux; in nv50_sor_create()
1907 ret = nv50_mstm_new(nv_encoder, &nv_connector->aux, in nv50_sor_create()
1909 &nv_encoder->dp.mstm); in nv50_sor_create()
1917 nv_encoder->i2c = &bus->i2c; in nv50_sor_create()
1941 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_pior_atomic_disable() local
1945 core->func->pior->ctrl(core, nv_encoder->or, ctrl, NULL); in nv50_pior_atomic_disable()
1946 nv_encoder->crtc = NULL; in nv50_pior_atomic_disable()
1947 nv50_outp_release(nv_encoder); in nv50_pior_atomic_disable()
1953 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv50_pior_atomic_enable() local
1954 struct nouveau_crtc *nv_crtc = nv50_outp_get_new_crtc(state, nv_encoder); in nv50_pior_atomic_enable()
1968 nv50_outp_acquire(nv_encoder, false); in nv50_pior_atomic_enable()
1977 switch (nv_encoder->dcb->type) { in nv50_pior_atomic_enable()
1987 core->func->pior->ctrl(core, nv_encoder->or, ctrl, asyh); in nv50_pior_atomic_enable()
1988 nv_encoder->crtc = &nv_crtc->base; in nv50_pior_atomic_enable()
2020 struct nouveau_encoder *nv_encoder; in nv50_pior_create() local
2039 nv_encoder = kzalloc(sizeof(*nv_encoder), GFP_KERNEL); in nv50_pior_create()
2040 if (!nv_encoder) in nv50_pior_create()
2042 nv_encoder->dcb = dcbe; in nv50_pior_create()
2043 nv_encoder->i2c = ddc; in nv50_pior_create()
2044 nv_encoder->aux = aux; in nv50_pior_create()
2046 encoder = to_drm_encoder(nv_encoder); in nv50_pior_create()
2055 disp->core->func->pior->get_caps(disp, nv_encoder, ffs(dcbe->or) - 1); in nv50_pior_create()
2056 nv50_outp_dump_caps(drm, nv_encoder); in nv50_pior_create()
2655 struct nouveau_encoder *nv_encoder = in nv50_display_init() local
2657 nv50_mstm_init(nv_encoder, runtime); in nv50_display_init()