Lines Matching refs:encoder

89 bool drm_helper_encoder_in_use(struct drm_encoder *encoder)  in drm_helper_encoder_in_use()  argument
93 struct drm_device *dev = encoder->dev; in drm_helper_encoder_in_use()
107 if (connector->encoder == encoder) { in drm_helper_encoder_in_use()
130 struct drm_encoder *encoder; in drm_helper_crtc_in_use() local
140 drm_for_each_encoder(encoder, dev) in drm_helper_crtc_in_use()
141 if (encoder->crtc == crtc && drm_helper_encoder_in_use(encoder)) in drm_helper_crtc_in_use()
148 drm_encoder_disable(struct drm_encoder *encoder) in drm_encoder_disable() argument
150 const struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private; in drm_encoder_disable()
155 drm_bridge_disable(encoder->bridge); in drm_encoder_disable()
158 (*encoder_funcs->disable)(encoder); in drm_encoder_disable()
160 (*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF); in drm_encoder_disable()
162 drm_bridge_post_disable(encoder->bridge); in drm_encoder_disable()
167 struct drm_encoder *encoder; in __drm_helper_disable_unused_functions() local
172 drm_for_each_encoder(encoder, dev) { in __drm_helper_disable_unused_functions()
173 if (!drm_helper_encoder_in_use(encoder)) { in __drm_helper_disable_unused_functions()
174 drm_encoder_disable(encoder); in __drm_helper_disable_unused_functions()
176 encoder->crtc = NULL; in __drm_helper_disable_unused_functions()
232 struct drm_encoder *encoder; in drm_crtc_prepare_encoders() local
234 drm_for_each_encoder(encoder, dev) { in drm_crtc_prepare_encoders()
235 encoder_funcs = encoder->helper_private; in drm_crtc_prepare_encoders()
240 if (encoder->crtc == NULL) in drm_crtc_prepare_encoders()
241 drm_encoder_disable(encoder); in drm_crtc_prepare_encoders()
244 encoder->crtc != (*encoder_funcs->get_crtc)(encoder)) in drm_crtc_prepare_encoders()
245 drm_encoder_disable(encoder); in drm_crtc_prepare_encoders()
280 struct drm_encoder *encoder; in drm_crtc_helper_set_mode() local
312 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_set_mode()
314 if (encoder->crtc != crtc) in drm_crtc_helper_set_mode()
317 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
321 ret = drm_bridge_mode_fixup(encoder->bridge, in drm_crtc_helper_set_mode()
328 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
330 if (!(ret = encoder_funcs->mode_fixup(encoder, mode, in drm_crtc_helper_set_mode()
350 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_set_mode()
352 if (encoder->crtc != crtc) in drm_crtc_helper_set_mode()
355 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
359 drm_bridge_disable(encoder->bridge); in drm_crtc_helper_set_mode()
363 encoder_funcs->prepare(encoder); in drm_crtc_helper_set_mode()
365 drm_bridge_post_disable(encoder->bridge); in drm_crtc_helper_set_mode()
379 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_set_mode()
381 if (encoder->crtc != crtc) in drm_crtc_helper_set_mode()
384 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
389 encoder->base.id, encoder->name, in drm_crtc_helper_set_mode()
392 encoder_funcs->mode_set(encoder, mode, adjusted_mode); in drm_crtc_helper_set_mode()
394 drm_bridge_mode_set(encoder->bridge, mode, adjusted_mode); in drm_crtc_helper_set_mode()
400 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_set_mode()
402 if (encoder->crtc != crtc) in drm_crtc_helper_set_mode()
405 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
409 drm_bridge_pre_enable(encoder->bridge); in drm_crtc_helper_set_mode()
412 encoder_funcs->commit(encoder); in drm_crtc_helper_set_mode()
414 drm_bridge_enable(encoder->bridge); in drm_crtc_helper_set_mode()
443 struct drm_encoder *encoder; in drm_crtc_helper_disable() local
446 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_disable()
449 if (encoder->crtc != crtc) in drm_crtc_helper_disable()
454 if (connector->encoder != encoder) in drm_crtc_helper_disable()
457 connector->encoder = NULL; in drm_crtc_helper_disable()
519 struct drm_encoder **save_connector_encoders, *new_encoder, *encoder; in drm_crtc_helper_set_config() local
583 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_set_config()
584 save_encoder_crtcs[count++] = encoder->crtc; in drm_crtc_helper_set_config()
590 save_connector_encoders[count++] = connector->encoder; in drm_crtc_helper_set_config()
626 if (set->connectors[ro]->encoder) in drm_crtc_helper_set_config()
637 new_encoder = connector->encoder; in drm_crtc_helper_set_config()
656 if (new_encoder != connector->encoder) { in drm_crtc_helper_set_config()
662 if (connector->encoder) in drm_crtc_helper_set_config()
663 connector->encoder->crtc = NULL; in drm_crtc_helper_set_config()
664 connector->encoder = new_encoder; in drm_crtc_helper_set_config()
677 if (!connector->encoder) in drm_crtc_helper_set_config()
680 if (connector->encoder->crtc == set->crtc) in drm_crtc_helper_set_config()
683 new_crtc = connector->encoder->crtc; in drm_crtc_helper_set_config()
692 !drm_encoder_crtc_ok(connector->encoder, new_crtc)) { in drm_crtc_helper_set_config()
697 if (new_crtc != connector->encoder->crtc) { in drm_crtc_helper_set_config()
700 connector->encoder->crtc = new_crtc; in drm_crtc_helper_set_config()
761 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_set_config()
762 encoder->crtc = save_encoder_crtcs[count++]; in drm_crtc_helper_set_config()
768 connector->encoder = save_connector_encoders[count++]; in drm_crtc_helper_set_config()
775 if (set->connectors[ro]->encoder) in drm_crtc_helper_set_config()
792 static int drm_helper_choose_encoder_dpms(struct drm_encoder *encoder) in drm_helper_choose_encoder_dpms() argument
797 struct drm_device *dev = encoder->dev; in drm_helper_choose_encoder_dpms()
801 if (connector->encoder == encoder) in drm_helper_choose_encoder_dpms()
810 static void drm_helper_encoder_dpms(struct drm_encoder *encoder, int mode) in drm_helper_encoder_dpms() argument
812 struct drm_bridge *bridge = encoder->bridge; in drm_helper_encoder_dpms()
815 encoder_funcs = encoder->helper_private; in drm_helper_encoder_dpms()
825 encoder_funcs->dpms(encoder, mode); in drm_helper_encoder_dpms()
842 if (connector->encoder && connector->encoder->crtc == crtc) in drm_helper_choose_crtc_dpms()
873 struct drm_encoder *encoder = connector->encoder; in drm_helper_connector_dpms() local
874 struct drm_crtc *crtc = encoder ? encoder->crtc : NULL; in drm_helper_connector_dpms()
883 if (encoder) in drm_helper_connector_dpms()
884 encoder_dpms = drm_helper_choose_encoder_dpms(encoder); in drm_helper_connector_dpms()
894 if (encoder) in drm_helper_connector_dpms()
895 drm_helper_encoder_dpms(encoder, encoder_dpms); in drm_helper_connector_dpms()
900 if (encoder) in drm_helper_connector_dpms()
901 drm_helper_encoder_dpms(encoder, encoder_dpms); in drm_helper_connector_dpms()
943 struct drm_encoder *encoder; in drm_helper_resume_force_mode() local
963 drm_for_each_encoder(encoder, dev) { in drm_helper_resume_force_mode()
965 if(encoder->crtc != crtc) in drm_helper_resume_force_mode()
969 encoder); in drm_helper_resume_force_mode()
971 drm_helper_encoder_dpms(encoder, encoder_dpms); in drm_helper_resume_force_mode()