backend/drm: move legacy-specific checks to legacy.c
Now that we have a test_only arg in crtc_commit, we can move the legacy checks to legacy.c.
This commit is contained in:
		
							parent
							
								
									017555651b
								
							
						
					
					
						commit
						fde56c20b4
					
				| 
						 | 
				
			
			@ -419,14 +419,6 @@ static bool drm_connector_set_pending_fb(struct wlr_drm_connector *conn,
 | 
			
		|||
		}
 | 
			
		||||
		break;
 | 
			
		||||
	case WLR_OUTPUT_STATE_BUFFER_SCANOUT:;
 | 
			
		||||
		/* Legacy never gets to have nice things. But I doubt this would ever work,
 | 
			
		||||
		 * and there is no reliable way to try, without risking messing up the
 | 
			
		||||
		 * modesetting state. */
 | 
			
		||||
		if (drm->iface == &legacy_iface) {
 | 
			
		||||
			wlr_drm_conn_log(conn, WLR_DEBUG,
 | 
			
		||||
				"Cannot use direct scan-out with legacy KMS API");
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
		if (!drm_fb_import(&plane->pending_fb, drm, state->buffer,
 | 
			
		||||
				&crtc->primary->formats)) {
 | 
			
		||||
			wlr_drm_conn_log(conn, WLR_DEBUG,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,9 +8,24 @@
 | 
			
		|||
#include "backend/drm/iface.h"
 | 
			
		||||
#include "backend/drm/util.h"
 | 
			
		||||
 | 
			
		||||
static bool legacy_crtc_test(struct wlr_drm_connector *conn,
 | 
			
		||||
		const struct wlr_output_state *state) {
 | 
			
		||||
	if ((state->committed & WLR_OUTPUT_STATE_BUFFER) &&
 | 
			
		||||
			state->buffer_type == WLR_OUTPUT_STATE_BUFFER_SCANOUT) {
 | 
			
		||||
		wlr_drm_conn_log(conn, WLR_DEBUG,
 | 
			
		||||
			"Cannot use direct scan-out with legacy KMS API");
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static bool legacy_crtc_commit(struct wlr_drm_backend *drm,
 | 
			
		||||
		struct wlr_drm_connector *conn, const struct wlr_output_state *state,
 | 
			
		||||
		uint32_t flags, bool test_only) {
 | 
			
		||||
	if (!legacy_crtc_test(conn, state)) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	if (test_only) {
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue