Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15807780 authored by Brian Starkey's avatar Brian Starkey Committed by Liviu Dudau
Browse files

drm: mali-dp: Refactor plane initialisation



As we add more features, it makes sense to skip all the features not
supported by the smart layer together, instead of checking each one
individually. Achieve this by refactoring the plane init loop.

Signed-off-by: default avatarBrian Starkey <brian.starkey@arm.com>
[re-factor code after upstream changed rotation property to be per-plane]
Signed-off-by: default avatarLiviu Dudau <Liviu.Dudau@arm.com>
parent de9c4810
Loading
Loading
Loading
Loading
+8 −13
Original line number Diff line number Diff line
@@ -235,6 +235,8 @@ int malidp_de_planes_init(struct drm_device *drm)
	struct malidp_plane *plane = NULL;
	enum drm_plane_type plane_type;
	unsigned long crtcs = 1 << drm->mode_config.num_crtc;
	unsigned long flags = DRM_ROTATE_0 | DRM_ROTATE_90 | DRM_ROTATE_180 |
			      DRM_ROTATE_270 | DRM_REFLECT_X | DRM_REFLECT_Y;
	u32 *formats;
	int ret, i, j, n;

@@ -267,23 +269,16 @@ int malidp_de_planes_init(struct drm_device *drm)
		if (ret < 0)
			goto cleanup;

		/* SMART layer can't be rotated */
		if (id != DE_SMART) {
			unsigned long flags = DRM_ROTATE_0 |
					      DRM_ROTATE_90 |
					      DRM_ROTATE_180 |
					      DRM_ROTATE_270 |
					      DRM_REFLECT_X |
					      DRM_REFLECT_Y;
			drm_plane_create_rotation_property(&plane->base,
							   DRM_ROTATE_0,
							   flags);
		}

		drm_plane_helper_add(&plane->base,
				     &malidp_de_plane_helper_funcs);
		plane->hwdev = malidp->dev;
		plane->layer = &map->layers[i];

		/* Skip the features which the SMART layer doesn't have */
		if (id == DE_SMART)
			continue;

		drm_plane_create_rotation_property(&plane->base, DRM_ROTATE_0, flags);
	}

	kfree(formats);