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

Commit fa17b46a authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

[media] media: add macros to check if subdev or V4L2 DMA



As we'll be removing entity subtypes from the Kernel, we need
to provide a way for drivers and core to check if a given
entity is represented by a V4L2 subdev or if it is an V4L2
I/O entity (typically with DMA).

Drivers that create entities that don't belong to any defined subdev
category should use MEDIA_ENT_T_V4L2_SUBDEV_UNKNOWN.

Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent fef486a0
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -220,6 +220,40 @@ static inline u32 media_gobj_gen_id(enum media_gobj_type type, u32 local_id)
	return id;
}

static inline bool is_media_entity_v4l2_io(struct media_entity *entity)
{
	if (!entity)
		return false;

	switch (entity->type) {
	case MEDIA_ENT_T_V4L2_VIDEO:
	case MEDIA_ENT_T_V4L2_VBI:
	case MEDIA_ENT_T_V4L2_SWRADIO:
		return true;
	default:
		return false;
	}
}

static inline bool is_media_entity_v4l2_subdev(struct media_entity *entity)
{
	if (!entity)
		return false;

	switch (entity->type) {
	case MEDIA_ENT_T_V4L2_SUBDEV_UNKNOWN:
	case MEDIA_ENT_T_V4L2_SUBDEV_SENSOR:
	case MEDIA_ENT_T_V4L2_SUBDEV_FLASH:
	case MEDIA_ENT_T_V4L2_SUBDEV_LENS:
	case MEDIA_ENT_T_V4L2_SUBDEV_DECODER:
	case MEDIA_ENT_T_V4L2_SUBDEV_TUNER:
		return true;

	default:
		return false;
	}
}

#define MEDIA_ENTITY_ENUM_MAX_DEPTH	16
#define MEDIA_ENTITY_ENUM_MAX_ID	64

+3 −0
Original line number Diff line number Diff line
@@ -75,6 +75,9 @@ struct media_device_info {
#define MEDIA_ENT_T_V4L2_SWRADIO	(MEDIA_ENT_T_V4L2_BASE + 6)

/* V4L2 Sub-device entities */

#define MEDIA_ENT_T_V4L2_SUBDEV_UNKNOWN	MEDIA_ENT_T_V4L2_SUBDEV_BASE

#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR	(MEDIA_ENT_T_V4L2_SUBDEV_BASE + 1)
#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH	(MEDIA_ENT_T_V4L2_SUBDEV_BASE + 2)
#define MEDIA_ENT_T_V4L2_SUBDEV_LENS	(MEDIA_ENT_T_V4L2_SUBDEV_BASE + 3)