Lines Matching defs:set

264  * drm_crtc_helper_set_mode - internal helper to set a mode
271 * Try to set @mode on @crtc. Give @crtc and its associated connectors a chance
272 * to fixup or reject the mode prior to trying to set it. This is an internal
281 * True if the mode was set successfully, false otherwise.
393 DRM_DEBUG_KMS("[ENCODER:%d:%s] set [MODE:%s]\n",
399 /* Now enable the clocks, plane, pipe, and connectors that we set up. */
517 * drm_crtc_helper_set_config - set a new config from userspace
518 * @set: mode set configuration
541 * performs a full mode set sequence by calling the ->prepare(), ->mode_set()
554 int drm_crtc_helper_set_config(struct drm_mode_set *set,
560 bool mode_changed = false; /* if true do a full mode set */
572 BUG_ON(!set);
573 BUG_ON(!set->crtc);
574 BUG_ON(!set->crtc->helper_private);
577 BUG_ON(!set->mode && set->fb);
578 BUG_ON(set->fb && set->num_connectors == 0);
580 crtc_funcs = set->crtc->helper_private;
582 dev = set->crtc->dev;
585 if (!set->mode)
586 set->fb = NULL;
588 if (set->fb) {
590 set->crtc->base.id, set->crtc->name,
591 set->fb->base.id,
592 (int)set->num_connectors, set->x, set->y);
595 set->crtc->base.id, set->crtc->name);
596 drm_crtc_helper_disable(set->crtc);
634 save_set.crtc = set->crtc;
635 save_set.mode = &set->crtc->mode;
636 save_set.x = set->crtc->x;
637 save_set.y = set->crtc->y;
638 save_set.fb = set->crtc->primary->fb;
642 if (set->crtc->primary->fb != set->fb) {
643 /* If we have no fb then treat it as a full mode set */
644 if (set->crtc->primary->fb == NULL) {
645 DRM_DEBUG_KMS("crtc has no fb, full mode set\n");
647 } else if (set->fb->format != set->crtc->primary->fb->format) {
653 if (set->x != set->crtc->x || set->y != set->crtc->y)
656 if (!drm_mode_equal(set->mode, &set->crtc->mode)) {
657 DRM_DEBUG_KMS("modes are different, full mode set\n");
658 drm_mode_debug_printmodeline(&set->crtc->mode);
659 drm_mode_debug_printmodeline(set->mode);
663 /* take a reference on all unbound connectors in set, reuse the
666 for (ro = 0; ro < set->num_connectors; ro++) {
667 if (set->connectors[ro]->encoder)
669 drm_connector_get(set->connectors[ro]);
679 for (ro = 0; ro < set->num_connectors; ro++) {
680 if (set->connectors[ro] == connector) {
705 * the appropriate crtc will be set later.
725 if (connector->encoder->crtc == set->crtc)
730 for (ro = 0; ro < set->num_connectors; ro++) {
731 if (set->connectors[ro] == connector)
732 new_crtc = set->crtc;
763 if (drm_helper_crtc_in_use(set->crtc)) {
764 DRM_DEBUG_KMS("attempting to set mode from"
766 drm_mode_debug_printmodeline(set->mode);
767 set->crtc->primary->fb = set->fb;
768 if (!drm_crtc_helper_set_mode(set->crtc, set->mode,
769 set->x, set->y,
771 DRM_ERROR("failed to set mode on [CRTC:%d:%s]\n",
772 set->crtc->base.id, set->crtc->name);
773 set->crtc->primary->fb = save_set.fb;
778 for (i = 0; i < set->num_connectors; i++) {
779 DRM_DEBUG_KMS("\t[CONNECTOR:%d:%s] set DPMS on\n", set->connectors[i]->base.id,
780 set->connectors[i]->name);
781 set->connectors[i]->funcs->dpms(set->connectors[i], DRM_MODE_DPMS_ON);
786 set->crtc->x = set->x;
787 set->crtc->y = set->y;
788 set->crtc->primary->fb = set->fb;
789 ret = crtc_funcs->mode_set_base(set->crtc,
790 set->x, set->y, save_set.fb);
792 set->crtc->x = save_set.x;
793 set->crtc->y = save_set.y;
794 set->crtc->primary->fb = save_set.fb;
816 /* after fail drop reference on all unbound connectors in set, let
819 for (ro = 0; ro < set->num_connectors; ro++) {
820 if (set->connectors[ro]->encoder)
822 drm_connector_put(set->connectors[ro]);
963 * has successfully set the restored configuration already. Hence this should
969 * configuration is restored in a different order than when userspace set it up)
999 DRM_ERROR("failed to set mode on crtc %p\n", crtc);
1048 struct drm_mode_set set = {
1052 ret = drm_mode_set_config_internal(&set);