Lines Matching defs:encoder

113 void nv04_dfp_update_fp_control(struct drm_encoder *encoder, int mode)
115 struct drm_device *dev = encoder->dev;
121 nv_crtc = nouveau_crtc(encoder->crtc);
132 nv_crtc->fp_users |= 1 << nouveau_encoder(encoder)->dcb->index;
139 nv_crtc->fp_users &= ~(1 << nouveau_encoder(encoder)->dcb->index);
152 static struct drm_encoder *get_tmds_slave(struct drm_encoder *encoder)
154 struct drm_device *dev = encoder->dev;
155 struct dcb_output *dcb = nouveau_encoder(encoder)->dcb;
182 static bool nv04_dfp_mode_fixup(struct drm_encoder *encoder,
186 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
245 static void nv04_dfp_prepare(struct drm_encoder *encoder)
247 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
248 const struct drm_encoder_helper_funcs *helper = encoder->helper_private;
249 struct drm_device *dev = encoder->dev;
250 int head = nouveau_crtc(encoder->crtc)->index;
255 helper->dpms(encoder, DRM_MODE_DPMS_OFF);
280 static void nv04_dfp_mode_set(struct drm_encoder *encoder,
284 struct drm_device *dev = encoder->dev;
287 struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc);
291 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
294 const struct drm_framebuffer *fb = encoder->crtc->primary->fb;
446 static void nv04_dfp_commit(struct drm_encoder *encoder)
448 struct drm_device *dev = encoder->dev;
450 const struct drm_encoder_helper_funcs *helper = encoder->helper_private;
451 struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc);
452 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
454 int head = nouveau_crtc(encoder->crtc)->index;
469 NVWriteRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + nv04_dac_output_offset(encoder), 0xf0000000);
471 NVWriteRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + nv04_dac_output_offset(encoder), 0x00100000);
474 slave_encoder = get_tmds_slave(encoder);
479 helper->dpms(encoder, DRM_MODE_DPMS_ON);
486 static void nv04_dfp_update_backlight(struct drm_encoder *encoder, int mode)
489 struct drm_device *dev = encoder->dev;
514 static void nv04_lvds_dpms(struct drm_encoder *encoder, int mode)
516 struct drm_device *dev = encoder->dev;
517 struct drm_crtc *crtc = encoder->crtc;
519 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
526 NV_DEBUG(drm, "Setting dpms mode %d on lvds encoder (output %d)\n",
544 * disconnected LVDS encoder there is no native_mode
550 nv04_dfp_update_backlight(encoder, mode);
551 nv04_dfp_update_fp_control(encoder, mode);
562 static void nv04_tmds_dpms(struct drm_encoder *encoder, int mode)
564 struct nouveau_drm *drm = nouveau_drm(encoder->dev);
565 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
571 NV_DEBUG(drm, "Setting dpms mode %d on tmds encoder (output %d)\n",
574 nv04_dfp_update_backlight(encoder, mode);
575 nv04_dfp_update_fp_control(encoder, mode);
578 static void nv04_dfp_save(struct drm_encoder *encoder)
580 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
581 struct drm_device *dev = encoder->dev;
588 static void nv04_dfp_restore(struct drm_encoder *encoder)
590 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
591 struct drm_device *dev = encoder->dev;
613 static void nv04_dfp_destroy(struct drm_encoder *encoder)
615 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
617 if (get_slave_funcs(encoder))
618 get_slave_funcs(encoder)->destroy(encoder);
620 drm_encoder_cleanup(encoder);
624 static void nv04_tmds_slave_init(struct drm_encoder *encoder)
626 struct drm_device *dev = encoder->dev;
627 struct dcb_output *dcb = nouveau_encoder(encoder)->dcb;
645 if (!nv_gf4_disp_arch(dev) || !bus || get_tmds_slave(encoder))
652 drm_i2c_encoder_init(dev, to_encoder_slave(encoder),
683 struct drm_encoder *encoder;
706 encoder = to_drm_encoder(nv_encoder);
711 drm_encoder_init(connector->dev, encoder, &nv04_dfp_funcs, type, NULL);
712 drm_encoder_helper_add(encoder, helper);
714 encoder->possible_crtcs = entry->heads;
715 encoder->possible_clones = 0;
719 nv04_tmds_slave_init(encoder);
721 drm_connector_attach_encoder(connector, encoder);