Lines Matching refs:encoder
113 void nv04_dfp_update_fp_control(struct drm_encoder *encoder, int mode) in nv04_dfp_update_fp_control() argument
115 struct drm_device *dev = encoder->dev; in nv04_dfp_update_fp_control()
121 nv_crtc = nouveau_crtc(encoder->crtc); in nv04_dfp_update_fp_control()
132 nv_crtc->fp_users |= 1 << nouveau_encoder(encoder)->dcb->index; in nv04_dfp_update_fp_control()
139 nv_crtc->fp_users &= ~(1 << nouveau_encoder(encoder)->dcb->index); in nv04_dfp_update_fp_control()
152 static struct drm_encoder *get_tmds_slave(struct drm_encoder *encoder) in get_tmds_slave() argument
154 struct drm_device *dev = encoder->dev; in get_tmds_slave()
155 struct dcb_output *dcb = nouveau_encoder(encoder)->dcb; in get_tmds_slave()
182 static bool nv04_dfp_mode_fixup(struct drm_encoder *encoder, in nv04_dfp_mode_fixup() argument
186 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv04_dfp_mode_fixup()
244 static void nv04_dfp_prepare(struct drm_encoder *encoder) in nv04_dfp_prepare() argument
246 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv04_dfp_prepare()
247 const struct drm_encoder_helper_funcs *helper = encoder->helper_private; in nv04_dfp_prepare()
248 struct drm_device *dev = encoder->dev; in nv04_dfp_prepare()
249 int head = nouveau_crtc(encoder->crtc)->index; in nv04_dfp_prepare()
254 helper->dpms(encoder, DRM_MODE_DPMS_OFF); in nv04_dfp_prepare()
279 static void nv04_dfp_mode_set(struct drm_encoder *encoder, in nv04_dfp_mode_set() argument
283 struct drm_device *dev = encoder->dev; in nv04_dfp_mode_set()
286 struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc); in nv04_dfp_mode_set()
290 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv04_dfp_mode_set()
418 encoder->crtc->primary->fb->depth > connector->display_info.bpc * 3)) { in nv04_dfp_mode_set()
444 static void nv04_dfp_commit(struct drm_encoder *encoder) in nv04_dfp_commit() argument
446 struct drm_device *dev = encoder->dev; in nv04_dfp_commit()
448 const struct drm_encoder_helper_funcs *helper = encoder->helper_private; in nv04_dfp_commit()
449 struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc); in nv04_dfp_commit()
450 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv04_dfp_commit()
452 int head = nouveau_crtc(encoder->crtc)->index; in nv04_dfp_commit()
467 NVWriteRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + nv04_dac_output_offset(encoder), 0xf0000000); in nv04_dfp_commit()
469 NVWriteRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + nv04_dac_output_offset(encoder), 0x00100000); in nv04_dfp_commit()
472 slave_encoder = get_tmds_slave(encoder); in nv04_dfp_commit()
477 helper->dpms(encoder, DRM_MODE_DPMS_ON); in nv04_dfp_commit()
484 static void nv04_dfp_update_backlight(struct drm_encoder *encoder, int mode) in nv04_dfp_update_backlight() argument
487 struct drm_device *dev = encoder->dev; in nv04_dfp_update_backlight()
511 static void nv04_lvds_dpms(struct drm_encoder *encoder, int mode) in nv04_lvds_dpms() argument
513 struct drm_device *dev = encoder->dev; in nv04_lvds_dpms()
514 struct drm_crtc *crtc = encoder->crtc; in nv04_lvds_dpms()
516 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv04_lvds_dpms()
547 nv04_dfp_update_backlight(encoder, mode); in nv04_lvds_dpms()
548 nv04_dfp_update_fp_control(encoder, mode); in nv04_lvds_dpms()
559 static void nv04_tmds_dpms(struct drm_encoder *encoder, int mode) in nv04_tmds_dpms() argument
561 struct nouveau_drm *drm = nouveau_drm(encoder->dev); in nv04_tmds_dpms()
562 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv04_tmds_dpms()
571 nv04_dfp_update_backlight(encoder, mode); in nv04_tmds_dpms()
572 nv04_dfp_update_fp_control(encoder, mode); in nv04_tmds_dpms()
575 static void nv04_dfp_save(struct drm_encoder *encoder) in nv04_dfp_save() argument
577 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv04_dfp_save()
578 struct drm_device *dev = encoder->dev; in nv04_dfp_save()
585 static void nv04_dfp_restore(struct drm_encoder *encoder) in nv04_dfp_restore() argument
587 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv04_dfp_restore()
588 struct drm_device *dev = encoder->dev; in nv04_dfp_restore()
610 static void nv04_dfp_destroy(struct drm_encoder *encoder) in nv04_dfp_destroy() argument
612 struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); in nv04_dfp_destroy()
614 if (get_slave_funcs(encoder)) in nv04_dfp_destroy()
615 get_slave_funcs(encoder)->destroy(encoder); in nv04_dfp_destroy()
617 drm_encoder_cleanup(encoder); in nv04_dfp_destroy()
621 static void nv04_tmds_slave_init(struct drm_encoder *encoder) in nv04_tmds_slave_init() argument
623 struct drm_device *dev = encoder->dev; in nv04_tmds_slave_init()
624 struct dcb_output *dcb = nouveau_encoder(encoder)->dcb; in nv04_tmds_slave_init()
642 if (!nv_gf4_disp_arch(dev) || !bus || get_tmds_slave(encoder)) in nv04_tmds_slave_init()
649 drm_i2c_encoder_init(dev, to_encoder_slave(encoder), in nv04_tmds_slave_init()
680 struct drm_encoder *encoder; in nv04_dfp_create() local
703 encoder = to_drm_encoder(nv_encoder); in nv04_dfp_create()
708 drm_encoder_init(connector->dev, encoder, &nv04_dfp_funcs, type, NULL); in nv04_dfp_create()
709 drm_encoder_helper_add(encoder, helper); in nv04_dfp_create()
711 encoder->possible_crtcs = entry->heads; in nv04_dfp_create()
712 encoder->possible_clones = 0; in nv04_dfp_create()
716 nv04_tmds_slave_init(encoder); in nv04_dfp_create()
718 drm_mode_connector_attach_encoder(connector, encoder); in nv04_dfp_create()