Commit 6184b944 authored by Maxime Ripard's avatar Maxime Ripard Committed by Dave Stevenson
Browse files

drm/vc4: hvs: Print error if we fail an allocation



We need to allocate a few additional structures when checking our
atomic_state, especially related to hardware SRAM that will hold the
plane descriptors (DLIST) and the current line context (LBM) during
composition.

Since those allocation can fail, let's add some error message in that
case to help debug what goes wrong.

Signed-off-by: default avatarMaxime Ripard <mripard@kernel.org>
Reviewed-by: default avatarMaxime Ripard <mripard@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240621152055.4180873-11-dave.stevenson@raspberrypi.com


Signed-off-by: default avatarDave Stevenson <dave.stevenson@raspberrypi.com>
parent b6d7a953
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -475,8 +475,10 @@ int vc4_hvs_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state)
	ret = drm_mm_insert_node(&vc4->hvs->dlist_mm, &vc4_state->mm,
				 dlist_count);
	spin_unlock_irqrestore(&vc4->hvs->mm_lock, flags);
	if (ret)
	if (ret) {
		drm_err(dev, "Failed to allocate DLIST entry: %d\n", ret);
		return ret;
	}

	return 0;
}
+5 −2
Original line number Diff line number Diff line
@@ -739,7 +739,8 @@ static void vc4_plane_calc_load(struct drm_plane_state *state)

static int vc4_plane_allocate_lbm(struct drm_plane_state *state)
{
	struct vc4_dev *vc4 = to_vc4_dev(state->plane->dev);
	struct drm_device *drm = state->plane->dev;
	struct vc4_dev *vc4 = to_vc4_dev(drm);
	struct vc4_plane_state *vc4_state = to_vc4_plane_state(state);
	unsigned long irqflags;
	u32 lbm_size;
@@ -765,8 +766,10 @@ static int vc4_plane_allocate_lbm(struct drm_plane_state *state)
						 0, 0);
		spin_unlock_irqrestore(&vc4->hvs->mm_lock, irqflags);

		if (ret)
		if (ret) {
			drm_err(drm, "Failed to allocate LBM entry: %d\n", ret);
			return ret;
		}
	} else {
		WARN_ON_ONCE(lbm_size != vc4_state->lbm.size);
	}