drivers/media/platform/renesas/vsp1/vsp1_rwpf.h

Source file repositories/reference/linux-study-clean/drivers/media/platform/renesas/vsp1/vsp1_rwpf.h

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/renesas/vsp1/vsp1_rwpf.h
Extension
.h
Size
1902 bytes
Lines
89
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 vsp1_rwpf_memory {
	dma_addr_t addr[3];
};

struct vsp1_rwpf {
	struct vsp1_entity entity;
	struct v4l2_ctrl_handler ctrls;

	struct vsp1_video *video;

	struct v4l2_pix_format_mplane format;
	const struct vsp1_format_info *fmtinfo;
	unsigned int brx_input;

	unsigned int alpha;

	u32 mult_alpha;
	u32 outfmt;

	struct {
		spinlock_t lock;
		struct {
			struct v4l2_ctrl *vflip;
			struct v4l2_ctrl *hflip;
			struct v4l2_ctrl *rotate;
		} ctrls;
		unsigned int pending;
		unsigned int active;
		bool rotate;
	} flip;

	struct vsp1_rwpf_memory mem;
	bool writeback;

	struct vsp1_dl_manager *dlm;
};

static inline struct vsp1_rwpf *to_rwpf(struct v4l2_subdev *subdev)
{
	return container_of(subdev, struct vsp1_rwpf, entity.subdev);
}

static inline struct vsp1_rwpf *entity_to_rwpf(struct vsp1_entity *entity)
{
	return container_of(entity, struct vsp1_rwpf, entity);
}

struct vsp1_rwpf *vsp1_rpf_create(struct vsp1_device *vsp1, unsigned int index);
struct vsp1_rwpf *vsp1_wpf_create(struct vsp1_device *vsp1, unsigned int index);

void vsp1_wpf_stop(struct vsp1_rwpf *wpf);

int vsp1_rwpf_init_ctrls(struct vsp1_rwpf *rwpf, unsigned int ncontrols);

extern const struct v4l2_subdev_ops vsp1_rwpf_subdev_ops;

#endif /* __VSP1_RWPF_H__ */

Annotation

Implementation Notes