drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_proc.h

Source file repositories/reference/linux-study-clean/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_proc.h

File Facts

System
Linux kernel
Corpus path
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_proc.h
Extension
.h
Size
1498 bytes
Lines
67
Domain
Driver Families
Bucket
drivers/staging
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 sun6i_isp_proc_format {
	u32	mbus_code;
	u8	input_format;
	u8	input_yuv_seq;
};

struct sun6i_isp_proc_source {
	struct v4l2_subdev		*subdev;
	struct v4l2_fwnode_endpoint	endpoint;
	bool				expected;
};

struct sun6i_isp_proc_async_subdev {
	struct v4l2_async_connection	async_subdev;
	struct sun6i_isp_proc_source	*source;
};

struct sun6i_isp_proc {
	struct v4l2_subdev		subdev;
	struct media_pad		pads[3];
	struct v4l2_async_notifier	notifier;
	struct v4l2_mbus_framefmt	mbus_format;
	struct mutex			lock; /* Mbus format lock. */

	struct sun6i_isp_proc_source	source_csi0;
	struct sun6i_isp_proc_source	source_csi1;
};

/* Helpers */

void sun6i_isp_proc_dimensions(struct sun6i_isp_device *isp_dev,
			       unsigned int *width, unsigned int *height);

/* Format */

const struct sun6i_isp_proc_format *sun6i_isp_proc_format_find(u32 mbus_code);

/* Proc */

int sun6i_isp_proc_setup(struct sun6i_isp_device *isp_dev);
void sun6i_isp_proc_cleanup(struct sun6i_isp_device *isp_dev);

#endif

Annotation

Implementation Notes