From c8eac73296f8da9d667052370c00ad68eae79a06 Mon Sep 17 00:00:00 2001 From: Leandro Ribeiro Date: Tue, 24 Sep 2024 10:08:05 -0300 Subject: [PATCH] drm: fix a few dma-buf feedback failure reasons There are a few points in the code where we are wrongly using FAILURE_REASONS_ADD_FB_FAILED, probably because we didn't have so many "failure reasons" previously. This update such cases to use enum's that make sense. Signed-off-by: Leandro Ribeiro Upstream-Status: Backport --- libweston/backend-drm/drm-internal.h | 11 ++++++----- libweston/backend-drm/state-propose.c | 8 ++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/libweston/backend-drm/drm-internal.h b/libweston/backend-drm/drm-internal.h index 48bc2432..8405e8a8 100644 --- a/libweston/backend-drm/drm-internal.h +++ b/libweston/backend-drm/drm-internal.h @@ -282,11 +282,12 @@ enum try_view_on_plane_failure_reasons { FAILURE_REASONS_INADEQUATE_CONTENT_PROTECTION = 1 << 6, FAILURE_REASONS_INCOMPATIBLE_TRANSFORM = 1 << 7, FAILURE_REASONS_NO_BUFFER = 1 << 8, - FAILURE_REASONS_BUFFER_TYPE = 1 << 9, - FAILURE_REASONS_GLOBAL_ALPHA = 1 << 10, - FAILURE_REASONS_NO_GBM = 1 << 11, - FAILURE_REASONS_GBM_BO_IMPORT_FAILED = 1 << 12, - FAILURE_REASONS_GBM_BO_GET_HANDLE_FAILED = 1 << 13, + FAILURE_REASONS_BUFFER_TOO_BIG = 1 << 9, + FAILURE_REASONS_BUFFER_TYPE = 1 << 10, + FAILURE_REASONS_GLOBAL_ALPHA = 1 << 11, + FAILURE_REASONS_NO_GBM = 1 << 12, + FAILURE_REASONS_GBM_BO_IMPORT_FAILED = 1 << 13, + FAILURE_REASONS_GBM_BO_GET_HANDLE_FAILED = 1 << 14, }; /** diff --git a/libweston/backend-drm/state-propose.c b/libweston/backend-drm/state-propose.c index 74739aeb..30b287e1 100644 --- a/libweston/backend-drm/state-propose.c +++ b/libweston/backend-drm/state-propose.c @@ -400,19 +400,19 @@ drm_output_find_plane_for_view(struct drm_output_state *state, /* check view for valid buffer, doesn't make sense to even try */ if (!weston_view_has_valid_buffer(ev)) { pnode->try_view_on_plane_failure_reasons |= - FAILURE_REASONS_FB_FORMAT_INCOMPATIBLE; + FAILURE_REASONS_NO_BUFFER; return NULL; } buffer = ev->surface->buffer_ref.buffer; if (buffer->type == WESTON_BUFFER_SOLID) { pnode->try_view_on_plane_failure_reasons |= - FAILURE_REASONS_FB_FORMAT_INCOMPATIBLE; + FAILURE_REASONS_BUFFER_TYPE; return NULL; } else if (buffer->type == WESTON_BUFFER_SHM) { if (!output->cursor_plane || device->cursors_are_broken) { pnode->try_view_on_plane_failure_reasons |= - FAILURE_REASONS_FB_FORMAT_INCOMPATIBLE; + FAILURE_REASONS_BUFFER_TYPE; return NULL; } @@ -433,7 +433,7 @@ drm_output_find_plane_for_view(struct drm_output_state *state, "(buffer (%dx%d) too large for cursor plane)\n", ev, buffer->width, buffer->height); pnode->try_view_on_plane_failure_reasons |= - FAILURE_REASONS_FB_FORMAT_INCOMPATIBLE; + FAILURE_REASONS_BUFFER_TOO_BIG; return NULL; }