drivers/media/platform/amd/isp4/isp4_video.h

Source file repositories/reference/linux-study-clean/drivers/media/platform/amd/isp4/isp4_video.h

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/amd/isp4/isp4_video.h
Extension
.h
Size
1330 bytes
Lines
58
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 isp4vid_capture_buffer {
	/*
	 * struct vb2_v4l2_buffer must be the first element
	 * the videobuf2 framework will allocate this struct based on
	 * buf_struct_size and use the first sizeof(struct vb2_buffer) bytes of
	 * memory as a vb2_buffer
	 */
	struct vb2_v4l2_buffer vb2;
	struct isp4if_img_buf_info img_buf;
	struct list_head list;
	struct dma_buf *dbuf;
	void *bo;
	u64 gpu_addr;
};

struct isp4vid_dev {
	struct video_device vdev;
	struct media_pad vdev_pad;
	struct v4l2_pix_format format;

	/* mutex that protects vbq */
	struct mutex vbq_lock;
	struct vb2_queue vbq;

	/* mutex that protects buf_list */
	struct mutex buf_list_lock;
	struct list_head buf_list;

	u32 sequence;
	bool stream_started;

	struct device *dev;
	struct v4l2_subdev *isp_sdev;
	struct v4l2_fract timeperframe;
};

int isp4vid_dev_init(struct isp4vid_dev *isp_vdev, struct v4l2_subdev *isp_sd);

void isp4vid_dev_deinit(struct isp4vid_dev *isp_vdev);

void isp4vid_handle_frame_done(struct isp4vid_dev *isp_vdev,
			       const struct isp4if_img_buf_info *img_buf);

#endif /* _ISP4_VIDEO_H_ */

Annotation

Implementation Notes