brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 5ac9f0a Raw
89 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/*3 * vsp1_rwpf.h  --  R-Car VSP1 Read and Write Pixel Formatters4 *5 * Copyright (C) 2013-2014 Renesas Electronics Corporation6 *7 * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)8 */9#ifndef __VSP1_RWPF_H__10#define __VSP1_RWPF_H__11 12#include <linux/spinlock.h>13 14#include <media/media-entity.h>15#include <media/v4l2-ctrls.h>16#include <media/v4l2-subdev.h>17 18#include "vsp1.h"19#include "vsp1_entity.h"20 21#define RWPF_PAD_SINK				022#define RWPF_PAD_SOURCE				123 24struct v4l2_ctrl;25struct vsp1_dl_manager;26struct vsp1_rwpf;27struct vsp1_video;28 29struct vsp1_rwpf_memory {30	dma_addr_t addr[3];31};32 33struct vsp1_rwpf {34	struct vsp1_entity entity;35	struct v4l2_ctrl_handler ctrls;36 37	struct vsp1_video *video;38 39	unsigned int max_width;40	unsigned int max_height;41 42	struct v4l2_pix_format_mplane format;43	const struct vsp1_format_info *fmtinfo;44	unsigned int brx_input;45 46	unsigned int alpha;47 48	u32 mult_alpha;49	u32 outfmt;50 51	struct {52		spinlock_t lock;53		struct {54			struct v4l2_ctrl *vflip;55			struct v4l2_ctrl *hflip;56			struct v4l2_ctrl *rotate;57		} ctrls;58		unsigned int pending;59		unsigned int active;60		bool rotate;61	} flip;62 63	struct vsp1_rwpf_memory mem;64	bool writeback;65 66	struct vsp1_dl_manager *dlm;67};68 69static inline struct vsp1_rwpf *to_rwpf(struct v4l2_subdev *subdev)70{71	return container_of(subdev, struct vsp1_rwpf, entity.subdev);72}73 74static inline struct vsp1_rwpf *entity_to_rwpf(struct vsp1_entity *entity)75{76	return container_of(entity, struct vsp1_rwpf, entity);77}78 79struct vsp1_rwpf *vsp1_rpf_create(struct vsp1_device *vsp1, unsigned int index);80struct vsp1_rwpf *vsp1_wpf_create(struct vsp1_device *vsp1, unsigned int index);81 82void vsp1_wpf_stop(struct vsp1_rwpf *wpf);83 84int vsp1_rwpf_init_ctrls(struct vsp1_rwpf *rwpf, unsigned int ncontrols);85 86extern const struct v4l2_subdev_ops vsp1_rwpf_subdev_ops;87 88#endif /* __VSP1_RWPF_H__ */89