Lines Matching defs:encoder
321 nv50_outp_atomic_check_view(struct drm_encoder *encoder,
330 struct nouveau_drm *drm = nouveau_drm(encoder->dev);
332 NV_ATOMIC(drm, "%s atomic_check\n", encoder->name);
368 nv50_outp_atomic_fix_depth(struct drm_encoder *encoder, struct drm_crtc_state *crtc_state)
371 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
397 nv50_outp_atomic_check(struct drm_encoder *encoder,
406 ret = nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
415 nv50_outp_atomic_fix_depth(encoder, crtc_state);
425 struct drm_encoder *encoder = to_drm_encoder(outp);
429 if (connector_state->best_encoder == encoder)
441 struct drm_encoder *encoder = to_drm_encoder(outp);
445 if (connector_state->best_encoder == encoder)
472 nv50_dac_atomic_disable(struct drm_encoder *encoder, struct drm_atomic_state *state)
474 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
475 struct nv50_core *core = nv50_disp(encoder->dev)->core;
484 nv50_dac_atomic_enable(struct drm_encoder *encoder, struct drm_atomic_state *state)
486 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
490 struct nv50_core *core = nv50_disp(encoder->dev)->core;
514 nv50_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector)
516 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
520 loadval = nouveau_drm(encoder->dev)->vbios.dactestval;
540 nv50_dac_destroy(struct drm_encoder *encoder)
542 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
546 drm_encoder_cleanup(encoder);
547 kfree(encoder);
563 struct drm_encoder *encoder;
575 encoder = to_drm_encoder(nv_encoder);
576 encoder->possible_crtcs = dcbe->heads;
577 encoder->possible_clones = 0;
578 drm_encoder_init(connector->dev, encoder, &nv50_dac_func, type,
580 drm_encoder_helper_add(encoder, &nv50_dac_help);
582 drm_connector_attach_encoder(connector, encoder);
604 struct drm_encoder *encoder;
613 drm_for_each_encoder(encoder, drm->dev) {
616 if (encoder->encoder_type == DRM_MODE_ENCODER_DPMST)
619 nv_encoder = nouveau_encoder(encoder);
708 nv50_audio_supported(struct drm_encoder *encoder)
710 struct nv50_disp *disp = nv50_disp(encoder->dev);
720 nv50_audio_disable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc)
722 struct nouveau_drm *drm = nouveau_drm(encoder->dev);
723 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
726 if (!nv50_audio_supported(encoder))
741 nv50_audio_enable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc,
745 struct nouveau_drm *drm = nouveau_drm(encoder->dev);
746 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
749 if (!nv50_audio_supported(encoder) || !drm_detect_monitor_audio(nv_connector->edid))
768 nv50_hdmi_enable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc,
772 struct nouveau_drm *drm = nouveau_drm(encoder->dev);
773 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
841 nv50_audio_enable(encoder, nv_crtc, nv_connector, state, mode);
849 #define nv50_msto(p) container_of((p), struct nv50_msto, encoder)
861 struct drm_encoder encoder;
870 struct nouveau_encoder *nv50_real_outp(struct drm_encoder *encoder)
874 if (encoder->encoder_type != DRM_MODE_ENCODER_DPMST)
875 return nouveau_encoder(encoder);
877 msto = nv50_msto(encoder);
889 struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev);
893 NV_ATOMIC(drm, "%s: msto cleanup\n", msto->encoder.name);
910 struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev);
916 NV_ATOMIC(drm, "%s: msto prepare\n", msto->encoder.name);
939 nv50_msto_atomic_check(struct drm_encoder *encoder,
952 ret = nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
1004 nv50_msto_atomic_enable(struct drm_encoder *encoder, struct drm_atomic_state *state)
1006 struct nv50_msto *msto = nv50_msto(encoder);
1016 drm_connector_list_iter_begin(encoder->dev, &conn_iter);
1018 if (connector->state->best_encoder == &msto->encoder) {
1048 nv50_msto_atomic_disable(struct drm_encoder *encoder, struct drm_atomic_state *state)
1050 struct nv50_msto *msto = nv50_msto(encoder);
1069 nv50_msto_destroy(struct drm_encoder *encoder)
1071 struct nv50_msto *msto = nv50_msto(encoder);
1072 drm_encoder_cleanup(&msto->encoder);
1091 ret = drm_encoder_init(dev, &msto->encoder, &nv50_msto,
1098 drm_encoder_helper_add(&msto->encoder, &nv50_msto_help);
1099 msto->encoder.possible_crtcs = drm_crtc_mask(&head->base.base);
1116 return &nv50_head(crtc)->msto->encoder;
1262 &nv50_head(crtc)->msto->encoder);
1278 struct drm_encoder *encoder;
1283 drm_for_each_encoder(encoder, mstm->outp->base.base.dev) {
1284 if (encoder->encoder_type == DRM_MODE_ENCODER_DPMST) {
1285 struct nv50_msto *msto = nv50_msto(encoder);
1301 struct drm_encoder *encoder;
1306 drm_for_each_encoder(encoder, mstm->outp->base.base.dev) {
1307 if (encoder->encoder_type == DRM_MODE_ENCODER_DPMST) {
1308 struct nv50_msto *msto = nv50_msto(encoder);
1318 drm_for_each_encoder(encoder, mstm->outp->base.base.dev) {
1319 if (encoder->encoder_type == DRM_MODE_ENCODER_DPMST) {
1320 struct nv50_msto *msto = nv50_msto(encoder);
1534 nv50_sor_atomic_disable(struct drm_encoder *encoder, struct drm_atomic_state *state)
1536 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1567 nv50_audio_disable(encoder, nv_crtc);
1573 nv50_sor_atomic_enable(struct drm_encoder *encoder, struct drm_atomic_state *state)
1575 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1580 struct nv50_disp *disp = nv50_disp(encoder->dev);
1582 struct drm_device *dev = encoder->dev;
1607 nv50_hdmi_enable(encoder, nv_crtc, nv_connector, state, mode, hda);
1663 nv50_audio_enable(encoder, nv_crtc, nv_connector, state, mode);
1689 nv50_sor_destroy(struct drm_encoder *encoder)
1691 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1696 drm_encoder_cleanup(encoder);
1701 kfree(encoder);
1726 struct drm_encoder *encoder;
1745 encoder = to_drm_encoder(nv_encoder);
1746 encoder->possible_crtcs = dcbe->heads;
1747 encoder->possible_clones = 0;
1748 drm_encoder_init(connector->dev, encoder, &nv50_sor_func, type,
1750 drm_encoder_helper_add(encoder, &nv50_sor_help);
1752 drm_connector_attach_encoder(connector, encoder);
1798 nv50_pior_atomic_check(struct drm_encoder *encoder,
1802 int ret = nv50_outp_atomic_check(encoder, crtc_state, conn_state);
1810 nv50_pior_atomic_disable(struct drm_encoder *encoder, struct drm_atomic_state *state)
1812 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1813 struct nv50_core *core = nv50_disp(encoder->dev)->core;
1822 nv50_pior_atomic_enable(struct drm_encoder *encoder, struct drm_atomic_state *state)
1824 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1828 struct nv50_core *core = nv50_disp(encoder->dev)->core;
1872 nv50_pior_destroy(struct drm_encoder *encoder)
1874 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
1878 drm_encoder_cleanup(encoder);
1881 kfree(encoder);
1900 struct drm_encoder *encoder;
1927 encoder = to_drm_encoder(nv_encoder);
1928 encoder->possible_crtcs = dcbe->heads;
1929 encoder->possible_clones = 0;
1930 drm_encoder_init(connector->dev, encoder, &nv50_pior_func, type,
1932 drm_encoder_helper_add(encoder, &nv50_pior_help);
1934 drm_connector_attach_encoder(connector, encoder);
2057 struct drm_encoder *encoder;
2059 encoder = outp->encoder;
2060 help = encoder->helper_private;
2062 NV_ATOMIC(drm, "%s: clr %02x (set %02x)\n", encoder->name,
2066 help->atomic_disable(encoder, state);
2096 struct drm_encoder *encoder;
2098 encoder = outp->encoder;
2099 help = encoder->helper_private;
2101 NV_ATOMIC(drm, "%s: set %02x (clr %02x)\n", encoder->name,
2105 help->atomic_enable(encoder, state);
2319 nv50_disp_outp_atomic_add(struct nv50_atom *atom, struct drm_encoder *encoder)
2324 if (outp->encoder == encoder)
2333 outp->encoder = encoder;
2341 struct drm_encoder *encoder = old_connector_state->best_encoder;
2352 outp = nv50_disp_outp_atomic_add(atom, encoder);
2356 if (outp->encoder->encoder_type == DRM_MODE_ENCODER_DPMST) {
2371 struct drm_encoder *encoder = connector_state->best_encoder;
2381 outp = nv50_disp_outp_atomic_add(atom, encoder);
2509 struct drm_encoder *encoder;
2511 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
2512 if (encoder->encoder_type != DRM_MODE_ENCODER_DPMST)
2513 nv50_mstm_fini(nouveau_encoder(encoder));
2524 struct drm_encoder *encoder;
2529 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
2530 if (encoder->encoder_type != DRM_MODE_ENCODER_DPMST) {
2532 nouveau_encoder(encoder);
2685 head->msto->encoder.possible_crtcs = crtcs;
2689 /* create encoder/connector objects based on VBIOS DCB table */
2714 NV_WARN(drm, "failed to create encoder %d/%d/%d: %d\n",
2721 /* cull any connectors we created that don't have an encoder */