1*ee4a77a3SMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0+ */ 2*ee4a77a3SMauro Carvalho Chehab /* 3*ee4a77a3SMauro Carvalho Chehab * vsp1_clu.h -- R-Car VSP1 Cubic Look-Up Table 4*ee4a77a3SMauro Carvalho Chehab * 5*ee4a77a3SMauro Carvalho Chehab * Copyright (C) 2015 Renesas Corporation 6*ee4a77a3SMauro Carvalho Chehab * 7*ee4a77a3SMauro Carvalho Chehab * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com) 8*ee4a77a3SMauro Carvalho Chehab */ 9*ee4a77a3SMauro Carvalho Chehab #ifndef __VSP1_CLU_H__ 10*ee4a77a3SMauro Carvalho Chehab #define __VSP1_CLU_H__ 11*ee4a77a3SMauro Carvalho Chehab 12*ee4a77a3SMauro Carvalho Chehab #include <linux/spinlock.h> 13*ee4a77a3SMauro Carvalho Chehab 14*ee4a77a3SMauro Carvalho Chehab #include <media/media-entity.h> 15*ee4a77a3SMauro Carvalho Chehab #include <media/v4l2-ctrls.h> 16*ee4a77a3SMauro Carvalho Chehab #include <media/v4l2-subdev.h> 17*ee4a77a3SMauro Carvalho Chehab 18*ee4a77a3SMauro Carvalho Chehab #include "vsp1_entity.h" 19*ee4a77a3SMauro Carvalho Chehab 20*ee4a77a3SMauro Carvalho Chehab struct vsp1_device; 21*ee4a77a3SMauro Carvalho Chehab struct vsp1_dl_body; 22*ee4a77a3SMauro Carvalho Chehab 23*ee4a77a3SMauro Carvalho Chehab #define CLU_PAD_SINK 0 24*ee4a77a3SMauro Carvalho Chehab #define CLU_PAD_SOURCE 1 25*ee4a77a3SMauro Carvalho Chehab 26*ee4a77a3SMauro Carvalho Chehab struct vsp1_clu { 27*ee4a77a3SMauro Carvalho Chehab struct vsp1_entity entity; 28*ee4a77a3SMauro Carvalho Chehab 29*ee4a77a3SMauro Carvalho Chehab struct v4l2_ctrl_handler ctrls; 30*ee4a77a3SMauro Carvalho Chehab 31*ee4a77a3SMauro Carvalho Chehab bool yuv_mode; 32*ee4a77a3SMauro Carvalho Chehab spinlock_t lock; 33*ee4a77a3SMauro Carvalho Chehab unsigned int mode; 34*ee4a77a3SMauro Carvalho Chehab struct vsp1_dl_body *clu; 35*ee4a77a3SMauro Carvalho Chehab struct vsp1_dl_body_pool *pool; 36*ee4a77a3SMauro Carvalho Chehab }; 37*ee4a77a3SMauro Carvalho Chehab to_clu(struct v4l2_subdev * subdev)38*ee4a77a3SMauro Carvalho Chehabstatic inline struct vsp1_clu *to_clu(struct v4l2_subdev *subdev) 39*ee4a77a3SMauro Carvalho Chehab { 40*ee4a77a3SMauro Carvalho Chehab return container_of(subdev, struct vsp1_clu, entity.subdev); 41*ee4a77a3SMauro Carvalho Chehab } 42*ee4a77a3SMauro Carvalho Chehab 43*ee4a77a3SMauro Carvalho Chehab struct vsp1_clu *vsp1_clu_create(struct vsp1_device *vsp1); 44*ee4a77a3SMauro Carvalho Chehab 45*ee4a77a3SMauro Carvalho Chehab #endif /* __VSP1_CLU_H__ */ 46