drivers/media/platform/amlogic/c3/isp/c3-isp-common.h

Source file repositories/reference/linux-study-clean/drivers/media/platform/amlogic/c3/isp/c3-isp-common.h

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/amlogic/c3/isp/c3-isp-common.h
Extension
.h
Size
8715 bytes
Lines
341
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 c3_isp_cap_format_info {
	u32 mbus_code;
	u32 fourcc;
	u32 format;
	u32 planes;
	u32 ch0_pix_bits;
	u8 uv_swap;
	u8 in_bits;
	u8 hdiv;
	u8 vdiv;
};

/*
 * struct c3_isp_cap_buffer - A container of vb2 buffer used by the video
 *                            devices: capture video devices
 *
 * @vb: vb2 buffer
 * @dma_addr: buffer physical address
 * @list: entry of the buffer in the queue
 */
struct c3_isp_cap_buffer {
	struct vb2_v4l2_buffer vb;
	dma_addr_t dma_addr[C3_ISP_NUM_PLANES];
	struct list_head list;
};

/*
 * struct c3_isp_stats_dma_buffer - A container of vb2 buffer used by the video
 *                                  devices: stats video devices
 *
 * @vb: vb2 buffer
 * @dma_addr: buffer physical address
 * @list: entry of the buffer in the queue
 */
struct c3_isp_stats_buffer {
	struct vb2_v4l2_buffer vb;
	dma_addr_t dma_addr;
	struct list_head list;
};

/*
 * struct c3_isp_params_buffer - A container of vb2 buffer used by the
 *                               params video device
 *
 * @vb: vb2 buffer
 * @cfg: scratch buffer used for caching the ISP configuration parameters
 * @list: entry of the buffer in the queue
 */
struct c3_isp_params_buffer {
	struct vb2_v4l2_buffer vb;
	void *cfg;
	struct list_head list;
};

/*
 * struct c3_isp_dummy_buffer - A buffer to write the next frame to in case
 *				there are no vb2 buffers available.
 *
 * @vaddr:	return value of call to dma_alloc_attrs
 * @dma_addr:	dma address of the buffer
 * @size:	size of the buffer
 */
struct c3_isp_dummy_buffer {
	void *vaddr;
	dma_addr_t dma_addr;
	u32 size;
};

/*
 * struct c3_isp_core - ISP core subdev
 *
 * @sd: ISP sub-device
 * @pads: ISP sub-device pads
 * @src_pad: source sub-device pad
 * @isp: pointer to c3_isp_device
 */
struct c3_isp_core {
	struct v4l2_subdev sd;
	struct media_pad pads[C3_ISP_CORE_PAD_MAX];
	struct media_pad *src_pad;
	struct c3_isp_device *isp;
};

/*
 * struct c3_isp_resizer - ISP resizer subdev
 *
 * @id: resizer id
 * @sd: resizer sub-device
 * @pads: resizer sub-device pads
 * @src_sd: source sub-device

Annotation

Implementation Notes