1*ee4a77a3SMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0+ */ 2*ee4a77a3SMauro Carvalho Chehab /* 3*ee4a77a3SMauro Carvalho Chehab * vsp1_lut.h -- R-Car VSP1 Look-Up Table 4*ee4a77a3SMauro Carvalho Chehab * 5*ee4a77a3SMauro Carvalho Chehab * Copyright (C) 2013 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_LUT_H__ 10*ee4a77a3SMauro Carvalho Chehab #define __VSP1_LUT_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 22*ee4a77a3SMauro Carvalho Chehab #define LUT_PAD_SINK 0 23*ee4a77a3SMauro Carvalho Chehab #define LUT_PAD_SOURCE 1 24*ee4a77a3SMauro Carvalho Chehab 25*ee4a77a3SMauro Carvalho Chehab struct vsp1_lut { 26*ee4a77a3SMauro Carvalho Chehab struct vsp1_entity entity; 27*ee4a77a3SMauro Carvalho Chehab 28*ee4a77a3SMauro Carvalho Chehab struct v4l2_ctrl_handler ctrls; 29*ee4a77a3SMauro Carvalho Chehab 30*ee4a77a3SMauro Carvalho Chehab spinlock_t lock; 31*ee4a77a3SMauro Carvalho Chehab struct vsp1_dl_body *lut; 32*ee4a77a3SMauro Carvalho Chehab struct vsp1_dl_body_pool *pool; 33*ee4a77a3SMauro Carvalho Chehab }; 34*ee4a77a3SMauro Carvalho Chehab to_lut(struct v4l2_subdev * subdev)35*ee4a77a3SMauro Carvalho Chehabstatic inline struct vsp1_lut *to_lut(struct v4l2_subdev *subdev) 36*ee4a77a3SMauro Carvalho Chehab { 37*ee4a77a3SMauro Carvalho Chehab return container_of(subdev, struct vsp1_lut, entity.subdev); 38*ee4a77a3SMauro Carvalho Chehab } 39*ee4a77a3SMauro Carvalho Chehab 40*ee4a77a3SMauro Carvalho Chehab struct vsp1_lut *vsp1_lut_create(struct vsp1_device *vsp1); 41*ee4a77a3SMauro Carvalho Chehab 42*ee4a77a3SMauro Carvalho Chehab #endif /* __VSP1_LUT_H__ */ 43