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 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) 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 if (encoder->bridge) in drm_encoder_disable()
167 encoder->bridge->funcs->disable(encoder->bridge); in drm_encoder_disable()
170 (*encoder_funcs->disable)(encoder); in drm_encoder_disable()
172 (*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF); in drm_encoder_disable()
174 if (encoder->bridge) in drm_encoder_disable()
175 encoder->bridge->funcs->post_disable(encoder->bridge); in drm_encoder_disable()
180 struct drm_encoder *encoder; in __drm_helper_disable_unused_functions() local
185 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in __drm_helper_disable_unused_functions()
186 if (!drm_helper_encoder_in_use(encoder)) { in __drm_helper_disable_unused_functions()
187 drm_encoder_disable(encoder); in __drm_helper_disable_unused_functions()
189 encoder->crtc = NULL; in __drm_helper_disable_unused_functions()
233 struct drm_encoder *encoder; in drm_crtc_prepare_encoders() local
235 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in drm_crtc_prepare_encoders()
236 encoder_funcs = encoder->helper_private; in drm_crtc_prepare_encoders()
238 if (encoder->crtc == NULL) in drm_crtc_prepare_encoders()
239 drm_encoder_disable(encoder); in drm_crtc_prepare_encoders()
242 encoder->crtc != (*encoder_funcs->get_crtc)(encoder)) in drm_crtc_prepare_encoders()
243 drm_encoder_disable(encoder); in drm_crtc_prepare_encoders()
278 struct drm_encoder *encoder; in drm_crtc_helper_set_mode() local
310 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in drm_crtc_helper_set_mode()
312 if (encoder->crtc != crtc) in drm_crtc_helper_set_mode()
315 if (encoder->bridge && encoder->bridge->funcs->mode_fixup) { in drm_crtc_helper_set_mode()
316 ret = encoder->bridge->funcs->mode_fixup( in drm_crtc_helper_set_mode()
317 encoder->bridge, mode, adjusted_mode); in drm_crtc_helper_set_mode()
324 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
325 if (!(ret = encoder_funcs->mode_fixup(encoder, mode, in drm_crtc_helper_set_mode()
341 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in drm_crtc_helper_set_mode()
343 if (encoder->crtc != crtc) in drm_crtc_helper_set_mode()
346 if (encoder->bridge) in drm_crtc_helper_set_mode()
347 encoder->bridge->funcs->disable(encoder->bridge); in drm_crtc_helper_set_mode()
349 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
351 encoder_funcs->prepare(encoder); in drm_crtc_helper_set_mode()
353 if (encoder->bridge) in drm_crtc_helper_set_mode()
354 encoder->bridge->funcs->post_disable(encoder->bridge); in drm_crtc_helper_set_mode()
368 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in drm_crtc_helper_set_mode()
370 if (encoder->crtc != crtc) in drm_crtc_helper_set_mode()
374 encoder->base.id, encoder->name, in drm_crtc_helper_set_mode()
376 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
377 encoder_funcs->mode_set(encoder, mode, adjusted_mode); in drm_crtc_helper_set_mode()
379 if (encoder->bridge && encoder->bridge->funcs->mode_set) in drm_crtc_helper_set_mode()
380 encoder->bridge->funcs->mode_set(encoder->bridge, mode, in drm_crtc_helper_set_mode()
387 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in drm_crtc_helper_set_mode()
389 if (encoder->crtc != crtc) in drm_crtc_helper_set_mode()
392 if (encoder->bridge) in drm_crtc_helper_set_mode()
393 encoder->bridge->funcs->pre_enable(encoder->bridge); in drm_crtc_helper_set_mode()
395 encoder_funcs = encoder->helper_private; in drm_crtc_helper_set_mode()
396 encoder_funcs->commit(encoder); in drm_crtc_helper_set_mode()
398 if (encoder->bridge) in drm_crtc_helper_set_mode()
399 encoder->bridge->funcs->enable(encoder->bridge); in drm_crtc_helper_set_mode()
428 struct drm_encoder *encoder; in drm_crtc_helper_disable() local
431 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in drm_crtc_helper_disable()
432 if (encoder->crtc != crtc) in drm_crtc_helper_disable()
436 if (connector->encoder != encoder) in drm_crtc_helper_disable()
439 connector->encoder = NULL; in drm_crtc_helper_disable()
471 struct drm_encoder *save_encoders, *new_encoder, *encoder; in drm_crtc_helper_set_config() local
532 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in drm_crtc_helper_set_config()
533 save_encoders[count++] = *encoder; in drm_crtc_helper_set_config()
578 new_encoder = connector->encoder; in drm_crtc_helper_set_config()
597 if (new_encoder != connector->encoder) { in drm_crtc_helper_set_config()
603 if (connector->encoder) in drm_crtc_helper_set_config()
604 connector->encoder->crtc = NULL; in drm_crtc_helper_set_config()
605 connector->encoder = new_encoder; in drm_crtc_helper_set_config()
616 if (!connector->encoder) in drm_crtc_helper_set_config()
619 if (connector->encoder->crtc == set->crtc) in drm_crtc_helper_set_config()
622 new_crtc = connector->encoder->crtc; in drm_crtc_helper_set_config()
631 !drm_encoder_crtc_ok(connector->encoder, new_crtc)) { in drm_crtc_helper_set_config()
635 if (new_crtc != connector->encoder->crtc) { in drm_crtc_helper_set_config()
638 connector->encoder->crtc = new_crtc; in drm_crtc_helper_set_config()
698 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in drm_crtc_helper_set_config()
699 *encoder = save_encoders[count++]; in drm_crtc_helper_set_config()
719 static int drm_helper_choose_encoder_dpms(struct drm_encoder *encoder) in drm_helper_choose_encoder_dpms() argument
723 struct drm_device *dev = encoder->dev; in drm_helper_choose_encoder_dpms()
726 if (connector->encoder == encoder) in drm_helper_choose_encoder_dpms()
733 static void drm_helper_encoder_dpms(struct drm_encoder *encoder, int mode) in drm_helper_encoder_dpms() argument
735 struct drm_bridge *bridge = encoder->bridge; in drm_helper_encoder_dpms()
745 encoder_funcs = encoder->helper_private; in drm_helper_encoder_dpms()
747 encoder_funcs->dpms(encoder, mode); in drm_helper_encoder_dpms()
764 if (connector->encoder && connector->encoder->crtc == crtc) in drm_helper_choose_crtc_dpms()
782 struct drm_encoder *encoder = connector->encoder; in drm_helper_connector_dpms() local
783 struct drm_crtc *crtc = encoder ? encoder->crtc : NULL; in drm_helper_connector_dpms()
792 if (encoder) in drm_helper_connector_dpms()
793 encoder_dpms = drm_helper_choose_encoder_dpms(encoder); in drm_helper_connector_dpms()
803 if (encoder) in drm_helper_connector_dpms()
804 drm_helper_encoder_dpms(encoder, encoder_dpms); in drm_helper_connector_dpms()
809 if (encoder) in drm_helper_connector_dpms()
810 drm_helper_encoder_dpms(encoder, encoder_dpms); in drm_helper_connector_dpms()
873 struct drm_encoder *encoder; in drm_helper_resume_force_mode() local
893 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { in drm_helper_resume_force_mode()
895 if(encoder->crtc != crtc) in drm_helper_resume_force_mode()
899 encoder); in drm_helper_resume_force_mode()
901 drm_helper_encoder_dpms(encoder, encoder_dpms); in drm_helper_resume_force_mode()