drivers/media/platform/arm/mali-c55/mali-c55-common.h

Source file repositories/reference/linux-study-clean/drivers/media/platform/arm/mali-c55/mali-c55-common.h

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/arm/mali-c55/mali-c55-common.h
Extension
.h
Size
8451 bytes
Lines
313
Domain
Driver Families
Bucket
drivers/media
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct mali_c55_tpg {
	struct mali_c55 *mali_c55;
	struct v4l2_subdev sd;
	struct media_pad pad;
	struct mali_c55_tpg_ctrls {
		struct v4l2_ctrl_handler handler;
		struct v4l2_ctrl *vblank;
	} ctrls;
};

struct mali_c55_isp {
	struct mali_c55 *mali_c55;
	struct v4l2_subdev sd;
	struct media_pad pads[MALI_C55_ISP_NUM_PADS];
	struct v4l2_ctrl_handler handler;
	struct media_pad *remote_src;
	/* Mutex to guard vb2 start/stop streaming */
	struct mutex capture_lock;
	unsigned int frame_sequence;
};

enum mali_c55_resizer_ids {
	MALI_C55_RSZ_FR,
	MALI_C55_RSZ_DS,
	MALI_C55_NUM_RSZS,
};

enum mali_c55_rsz_pads {
	MALI_C55_RSZ_SINK_PAD,
	MALI_C55_RSZ_SOURCE_PAD,
	MALI_C55_RSZ_SINK_BYPASS_PAD,
	MALI_C55_RSZ_NUM_PADS
};

struct mali_c55_resizer {
	struct mali_c55 *mali_c55;
	struct mali_c55_cap_dev *cap_dev;
	enum mali_c55_resizer_ids id;
	struct v4l2_subdev sd;
	struct media_pad pads[MALI_C55_RSZ_NUM_PADS];
	unsigned int num_routes;
};

enum mali_c55_cap_devs {
	MALI_C55_CAP_DEV_FR,
	MALI_C55_CAP_DEV_DS,
	MALI_C55_NUM_CAP_DEVS
};

struct mali_c55_format_info {
	u32 fourcc;
	/*
	 * The output formats can be produced by a couple of different media bus
	 * formats, depending on how the ISP is configured.
	 */
	unsigned int mbus_codes[2];
	bool is_raw;
	struct {
		u32 base_mode;
		u32 uv_plane;
	} registers;
};

struct mali_c55_isp_format_info {
	u32 code;
	u32 shifted_code;
	bool bypass;
	u32 order;
};

enum mali_c55_planes {
	MALI_C55_PLANE_Y,
	MALI_C55_PLANE_UV,
	MALI_C55_NUM_PLANES
};

struct mali_c55_buffer {
	struct vb2_v4l2_buffer vb;
	unsigned int planes_pending;
	struct list_head queue;
	dma_addr_t addrs[MALI_C55_NUM_PLANES];
};

struct mali_c55_cap_dev {
	struct mali_c55 *mali_c55;
	struct mali_c55_resizer *rsz;
	struct video_device vdev;
	struct media_pad pad;
	struct vb2_queue queue;
	/* Mutex to provide to vb2 */

Annotation

Implementation Notes