Lines Matching refs:encoder

110 bool drm_helper_encoder_in_use(struct drm_encoder *encoder)  in drm_helper_encoder_in_use()  argument
113 struct drm_device *dev = encoder->dev; in drm_helper_encoder_in_use()
125 if (connector->encoder == encoder) in drm_helper_encoder_in_use()
144 struct drm_encoder *encoder; in drm_helper_crtc_in_use() local
154 drm_for_each_encoder(encoder, dev) in drm_helper_crtc_in_use()
155 if (encoder->crtc == crtc && drm_helper_encoder_in_use(encoder)) in drm_helper_crtc_in_use()
162 drm_encoder_disable(struct drm_encoder *encoder) in drm_encoder_disable() argument
164 const struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private; in drm_encoder_disable()
166 drm_bridge_disable(encoder->bridge); in drm_encoder_disable()
169 (*encoder_funcs->disable)(encoder); in drm_encoder_disable()
171 (*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF); in drm_encoder_disable()
173 drm_bridge_post_disable(encoder->bridge); in drm_encoder_disable()
178 struct drm_encoder *encoder; in __drm_helper_disable_unused_functions() local
183 drm_for_each_encoder(encoder, dev) { in __drm_helper_disable_unused_functions()
184 if (!drm_helper_encoder_in_use(encoder)) { in __drm_helper_disable_unused_functions()
185 drm_encoder_disable(encoder); in __drm_helper_disable_unused_functions()
187 encoder->crtc = NULL; in __drm_helper_disable_unused_functions()
231 struct drm_encoder *encoder; in drm_crtc_prepare_encoders() local
233 drm_for_each_encoder(encoder, dev) { in drm_crtc_prepare_encoders()
234 encoder_funcs = encoder->helper_private; in drm_crtc_prepare_encoders()
236 if (encoder->crtc == NULL) in drm_crtc_prepare_encoders()
237 drm_encoder_disable(encoder); in drm_crtc_prepare_encoders()
240 encoder->crtc != (*encoder_funcs->get_crtc)(encoder)) in drm_crtc_prepare_encoders()
241 drm_encoder_disable(encoder); in drm_crtc_prepare_encoders()
276 struct drm_encoder *encoder; in drm_crtc_helper_set_mode() local
308 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_set_mode()
310 if (encoder->crtc != crtc) in drm_crtc_helper_set_mode()
313 ret = drm_bridge_mode_fixup(encoder->bridge, in drm_crtc_helper_set_mode()
320 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
321 if (!(ret = encoder_funcs->mode_fixup(encoder, mode, in drm_crtc_helper_set_mode()
337 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_set_mode()
339 if (encoder->crtc != crtc) in drm_crtc_helper_set_mode()
342 drm_bridge_disable(encoder->bridge); in drm_crtc_helper_set_mode()
344 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
346 encoder_funcs->prepare(encoder); in drm_crtc_helper_set_mode()
348 drm_bridge_post_disable(encoder->bridge); in drm_crtc_helper_set_mode()
362 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_set_mode()
364 if (encoder->crtc != crtc) in drm_crtc_helper_set_mode()
368 encoder->base.id, encoder->name, in drm_crtc_helper_set_mode()
370 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
371 encoder_funcs->mode_set(encoder, mode, adjusted_mode); in drm_crtc_helper_set_mode()
373 drm_bridge_mode_set(encoder->bridge, mode, adjusted_mode); 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 drm_bridge_pre_enable(encoder->bridge); in drm_crtc_helper_set_mode()
386 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
387 encoder_funcs->commit(encoder); in drm_crtc_helper_set_mode()
389 drm_bridge_enable(encoder->bridge); in drm_crtc_helper_set_mode()
418 struct drm_encoder *encoder; in drm_crtc_helper_disable() local
421 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_disable()
422 if (encoder->crtc != crtc) in drm_crtc_helper_disable()
426 if (connector->encoder != encoder) in drm_crtc_helper_disable()
429 connector->encoder = NULL; in drm_crtc_helper_disable()
461 struct drm_encoder *save_encoders, *new_encoder, *encoder; in drm_crtc_helper_set_config() local
522 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_set_config()
523 save_encoders[count++] = *encoder; in drm_crtc_helper_set_config()
568 new_encoder = connector->encoder; in drm_crtc_helper_set_config()
587 if (new_encoder != connector->encoder) { in drm_crtc_helper_set_config()
593 if (connector->encoder) in drm_crtc_helper_set_config()
594 connector->encoder->crtc = NULL; in drm_crtc_helper_set_config()
595 connector->encoder = new_encoder; in drm_crtc_helper_set_config()
606 if (!connector->encoder) in drm_crtc_helper_set_config()
609 if (connector->encoder->crtc == set->crtc) in drm_crtc_helper_set_config()
612 new_crtc = connector->encoder->crtc; in drm_crtc_helper_set_config()
621 !drm_encoder_crtc_ok(connector->encoder, new_crtc)) { in drm_crtc_helper_set_config()
625 if (new_crtc != connector->encoder->crtc) { in drm_crtc_helper_set_config()
628 connector->encoder->crtc = new_crtc; in drm_crtc_helper_set_config()
688 drm_for_each_encoder(encoder, dev) { in drm_crtc_helper_set_config()
689 *encoder = save_encoders[count++]; in drm_crtc_helper_set_config()
709 static int drm_helper_choose_encoder_dpms(struct drm_encoder *encoder) in drm_helper_choose_encoder_dpms() argument
713 struct drm_device *dev = encoder->dev; in drm_helper_choose_encoder_dpms()
716 if (connector->encoder == encoder) in drm_helper_choose_encoder_dpms()
723 static void drm_helper_encoder_dpms(struct drm_encoder *encoder, int mode) in drm_helper_encoder_dpms() argument
725 struct drm_bridge *bridge = encoder->bridge; in drm_helper_encoder_dpms()
733 encoder_funcs = encoder->helper_private; in drm_helper_encoder_dpms()
735 encoder_funcs->dpms(encoder, mode); in drm_helper_encoder_dpms()
750 if (connector->encoder && connector->encoder->crtc == crtc) in drm_helper_choose_crtc_dpms()
771 struct drm_encoder *encoder = connector->encoder; in drm_helper_connector_dpms() local
772 struct drm_crtc *crtc = encoder ? encoder->crtc : NULL; in drm_helper_connector_dpms()
781 if (encoder) in drm_helper_connector_dpms()
782 encoder_dpms = drm_helper_choose_encoder_dpms(encoder); in drm_helper_connector_dpms()
792 if (encoder) in drm_helper_connector_dpms()
793 drm_helper_encoder_dpms(encoder, encoder_dpms); in drm_helper_connector_dpms()
798 if (encoder) in drm_helper_connector_dpms()
799 drm_helper_encoder_dpms(encoder, encoder_dpms); in drm_helper_connector_dpms()
862 struct drm_encoder *encoder; in drm_helper_resume_force_mode() local
882 drm_for_each_encoder(encoder, dev) { in drm_helper_resume_force_mode()
884 if(encoder->crtc != crtc) in drm_helper_resume_force_mode()
888 encoder); in drm_helper_resume_force_mode()
890 drm_helper_encoder_dpms(encoder, encoder_dpms); in drm_helper_resume_force_mode()