Lines Matching refs:encoder
353 nv50_outp_atomic_check_view(struct drm_encoder *encoder,
362 struct nouveau_drm *drm = nouveau_drm(encoder->dev);
364 NV_ATOMIC(drm, "%s atomic_check\n", encoder->name);
400 nv50_outp_atomic_fix_depth(struct drm_encoder *encoder, struct drm_crtc_state *crtc_state)
403 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
429 nv50_outp_atomic_check(struct drm_encoder *encoder,
438 ret = nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
447 nv50_outp_atomic_fix_depth(encoder, crtc_state);
458 struct drm_encoder *encoder = to_drm_encoder(outp);
462 if (connector_state->best_encoder == encoder)
475 struct drm_encoder *encoder = to_drm_encoder(outp);
479 if (connector_state->best_encoder == encoder)
490 nv50_dac_disable(struct drm_encoder *encoder, struct drm_atomic_state *state)
492 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
493 struct nv50_core *core = nv50_disp(encoder->dev)->core;
502 nv50_dac_enable(struct drm_encoder *encoder, struct drm_atomic_state *state)
504 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
505 struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc);
507 struct nv50_core *core = nv50_disp(encoder->dev)->core;
527 nv_encoder->crtc = encoder->crtc;
531 nv50_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector)
533 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
534 struct nv50_disp *disp = nv50_disp(encoder->dev);
546 args.load.data = nouveau_drm(encoder->dev)->vbios.dactestval;
566 nv50_dac_destroy(struct drm_encoder *encoder)
568 drm_encoder_cleanup(encoder);
569 kfree(encoder);
584 struct drm_encoder *encoder;
596 encoder = to_drm_encoder(nv_encoder);
597 encoder->possible_crtcs = dcbe->heads;
598 encoder->possible_clones = 0;
599 drm_encoder_init(connector->dev, encoder, &nv50_dac_func, type,
601 drm_encoder_helper_add(encoder, &nv50_dac_help);
603 drm_connector_attach_encoder(connector, encoder);
625 struct drm_encoder *encoder;
634 drm_for_each_encoder(encoder, drm->dev) {
637 nv_encoder = nouveau_encoder(encoder);
641 if (connector->state->best_encoder == encoder) {
650 nv_crtc = nouveau_crtc(encoder->crtc);
729 nv50_audio_disable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc)
731 struct nouveau_drm *drm = nouveau_drm(encoder->dev);
732 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
733 struct nv50_disp *disp = nv50_disp(encoder->dev);
756 nv50_audio_enable(struct drm_encoder *encoder, struct drm_atomic_state *state,
759 struct nouveau_drm *drm = nouveau_drm(encoder->dev);
760 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
761 struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc);
763 struct nv50_disp *disp = nv50_disp(encoder->dev);
796 nv50_hdmi_disable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc)
798 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
799 struct nv50_disp *disp = nv50_disp(encoder->dev);
815 nv50_hdmi_enable(struct drm_encoder *encoder, struct drm_atomic_state *state,
818 struct nouveau_drm *drm = nouveau_drm(encoder->dev);
819 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
820 struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc);
821 struct nv50_disp *disp = nv50_disp(encoder->dev);
891 nv50_audio_enable(encoder, state, mode);
918 #define nv50_msto(p) container_of((p), struct nv50_msto, encoder)
930 struct drm_encoder encoder;
937 struct nouveau_encoder *nv50_real_outp(struct drm_encoder *encoder)
941 if (encoder->encoder_type != DRM_MODE_ENCODER_DPMST)
942 return nouveau_encoder(encoder);
944 msto = nv50_msto(encoder);
953 struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev);
960 NV_ATOMIC(drm, "%s: vcpi %d\n", msto->encoder.name, vcpi);
980 struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev);
987 NV_ATOMIC(drm, "%s: msto cleanup\n", msto->encoder.name);
998 struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev);
1014 NV_ATOMIC(drm, "%s: msto prepare\n", msto->encoder.name);
1026 msto->encoder.name, msto->head->base.base.name,
1035 nv50_msto_atomic_check(struct drm_encoder *encoder,
1047 ret = nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
1090 nv50_msto_enable(struct drm_encoder *encoder, struct drm_atomic_state *state)
1092 struct nv50_head *head = nv50_head(encoder->crtc);
1094 struct nv50_msto *msto = nv50_msto(encoder);
1102 drm_connector_list_iter_begin(encoder->dev, &conn_iter);
1104 if (connector->state->best_encoder == &msto->encoder) {
1136 nv50_msto_disable(struct drm_encoder *encoder, struct drm_atomic_state *state)
1138 struct nv50_msto *msto = nv50_msto(encoder);
1159 nv50_msto_destroy(struct drm_encoder *encoder)
1161 struct nv50_msto *msto = nv50_msto(encoder);
1162 drm_encoder_cleanup(&msto->encoder);
1181 ret = drm_encoder_init(dev, &msto->encoder, &nv50_msto,
1188 drm_encoder_helper_add(&msto->encoder, &nv50_msto_help);
1189 msto->encoder.possible_crtcs = drm_crtc_mask(&head->base.base);
1204 return &nv50_head(crtc)->msto->encoder;
1371 &nv50_head(crtc)->msto->encoder);
1385 struct drm_encoder *encoder;
1393 drm_for_each_encoder(encoder, mstm->outp->base.base.dev) {
1394 if (encoder->encoder_type == DRM_MODE_ENCODER_DPMST) {
1395 struct nv50_msto *msto = nv50_msto(encoder);
1409 struct drm_encoder *encoder;
1415 drm_for_each_encoder(encoder, mstm->outp->base.base.dev) {
1416 if (encoder->encoder_type == DRM_MODE_ENCODER_DPMST) {
1417 struct nv50_msto *msto = nv50_msto(encoder);
1648 nv50_sor_disable(struct drm_encoder *encoder,
1651 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1673 nv50_audio_disable(encoder, nv_crtc);
1680 nv50_sor_enable(struct drm_encoder *encoder, struct drm_atomic_state *state)
1682 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1683 struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc);
1695 struct nv50_disp *disp = nv50_disp(encoder->dev);
1696 struct drm_device *dev = encoder->dev;
1705 nv_encoder->crtc = encoder->crtc;
1772 nv50_audio_enable(encoder, state, mode);
1790 nv50_sor_destroy(struct drm_encoder *encoder)
1792 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1794 drm_encoder_cleanup(encoder);
1799 kfree(encoder);
1824 struct drm_encoder *encoder;
1843 encoder = to_drm_encoder(nv_encoder);
1844 encoder->possible_crtcs = dcbe->heads;
1845 encoder->possible_clones = 0;
1846 drm_encoder_init(connector->dev, encoder, &nv50_sor_func, type,
1848 drm_encoder_helper_add(encoder, &nv50_sor_help);
1850 drm_connector_attach_encoder(connector, encoder);
1895 nv50_pior_atomic_check(struct drm_encoder *encoder,
1899 int ret = nv50_outp_atomic_check(encoder, crtc_state, conn_state);
1907 nv50_pior_disable(struct drm_encoder *encoder, struct drm_atomic_state *state)
1909 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1910 struct nv50_core *core = nv50_disp(encoder->dev)->core;
1919 nv50_pior_enable(struct drm_encoder *encoder, struct drm_atomic_state *state)
1921 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1922 struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc);
1924 struct nv50_core *core = nv50_disp(encoder->dev)->core;
1966 nv50_pior_destroy(struct drm_encoder *encoder)
1968 drm_encoder_cleanup(encoder);
1969 kfree(encoder);
1988 struct drm_encoder *encoder;
2013 encoder = to_drm_encoder(nv_encoder);
2014 encoder->possible_crtcs = dcbe->heads;
2015 encoder->possible_clones = 0;
2016 drm_encoder_init(connector->dev, encoder, &nv50_pior_func, type,
2018 drm_encoder_helper_add(encoder, &nv50_pior_help);
2020 drm_connector_attach_encoder(connector, encoder);
2038 struct drm_encoder *encoder;
2042 drm_for_each_encoder(encoder, drm->dev) {
2043 if (encoder->encoder_type != DRM_MODE_ENCODER_DPMST) {
2044 mstm = nouveau_encoder(encoder)->dp.mstm;
2056 drm_for_each_encoder(encoder, drm->dev) {
2057 if (encoder->encoder_type != DRM_MODE_ENCODER_DPMST) {
2058 mstm = nouveau_encoder(encoder)->dp.mstm;
2143 struct drm_encoder *encoder;
2145 encoder = outp->encoder;
2146 help = encoder->helper_private;
2148 NV_ATOMIC(drm, "%s: clr %02x (set %02x)\n", encoder->name,
2152 help->atomic_disable(encoder, state);
2182 struct drm_encoder *encoder;
2184 encoder = outp->encoder;
2185 help = encoder->helper_private;
2187 NV_ATOMIC(drm, "%s: set %02x (clr %02x)\n", encoder->name,
2191 help->atomic_enable(encoder, state);
2404 nv50_disp_outp_atomic_add(struct nv50_atom *atom, struct drm_encoder *encoder)
2409 if (outp->encoder == encoder)
2418 outp->encoder = encoder;
2426 struct drm_encoder *encoder = old_connector_state->best_encoder;
2437 outp = nv50_disp_outp_atomic_add(atom, encoder);
2441 if (outp->encoder->encoder_type == DRM_MODE_ENCODER_DPMST) {
2456 struct drm_encoder *encoder = connector_state->best_encoder;
2466 outp = nv50_disp_outp_atomic_add(atom, encoder);
2589 struct drm_encoder *encoder;
2591 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
2592 if (encoder->encoder_type != DRM_MODE_ENCODER_DPMST)
2593 nv50_mstm_fini(nouveau_encoder(encoder));
2604 struct drm_encoder *encoder;
2609 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
2610 if (encoder->encoder_type != DRM_MODE_ENCODER_DPMST) {
2612 nouveau_encoder(encoder);
2745 head->msto->encoder.possible_crtcs = crtcs;
2749 /* create encoder/connector objects based on VBIOS DCB table */
2774 NV_WARN(drm, "failed to create encoder %d/%d/%d: %d\n",
2781 /* cull any connectors we created that don't have an encoder */