xref: /linux/include/media/vsp1.h (revision bffba473)
1f3af9572SLaurent Pinchart /*
2f3af9572SLaurent Pinchart  * vsp1.h  --  R-Car VSP1 API
3f3af9572SLaurent Pinchart  *
4f3af9572SLaurent Pinchart  * Copyright (C) 2015 Renesas Electronics Corporation
5f3af9572SLaurent Pinchart  *
6f3af9572SLaurent Pinchart  * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
7f3af9572SLaurent Pinchart  *
8f3af9572SLaurent Pinchart  * This program is free software; you can redistribute it and/or modify
9f3af9572SLaurent Pinchart  * it under the terms of the GNU General Public License as published by
10f3af9572SLaurent Pinchart  * the Free Software Foundation; either version 2 of the License, or
11f3af9572SLaurent Pinchart  * (at your option) any later version.
12f3af9572SLaurent Pinchart  */
13f3af9572SLaurent Pinchart #ifndef __MEDIA_VSP1_H__
14f3af9572SLaurent Pinchart #define __MEDIA_VSP1_H__
15f3af9572SLaurent Pinchart 
16f3af9572SLaurent Pinchart #include <linux/types.h>
17c6b013abSLaurent Pinchart #include <linux/videodev2.h>
18f3af9572SLaurent Pinchart 
19f3af9572SLaurent Pinchart struct device;
20f3af9572SLaurent Pinchart 
21f3af9572SLaurent Pinchart int vsp1_du_init(struct device *dev);
22f3af9572SLaurent Pinchart 
23f3af9572SLaurent Pinchart int vsp1_du_setup_lif(struct device *dev, unsigned int width,
24f3af9572SLaurent Pinchart 		      unsigned int height);
25f3af9572SLaurent Pinchart 
26c6b013abSLaurent Pinchart struct vsp1_du_atomic_config {
27c6b013abSLaurent Pinchart 	u32 pixelformat;
28c6b013abSLaurent Pinchart 	unsigned int pitch;
29*bffba473SLaurent Pinchart 	dma_addr_t mem[3];
30c6b013abSLaurent Pinchart 	struct v4l2_rect src;
31c6b013abSLaurent Pinchart 	struct v4l2_rect dst;
32c6b013abSLaurent Pinchart 	unsigned int alpha;
33c6b013abSLaurent Pinchart 	unsigned int zpos;
34c6b013abSLaurent Pinchart };
35c6b013abSLaurent Pinchart 
36fa369c93SLaurent Pinchart void vsp1_du_atomic_begin(struct device *dev);
37c3f34a4bSLaurent Pinchart int vsp1_du_atomic_update(struct device *dev, unsigned int rpf,
38c6b013abSLaurent Pinchart 			  const struct vsp1_du_atomic_config *cfg);
39f5e04e7eSLaurent Pinchart void vsp1_du_atomic_flush(struct device *dev);
40f5e04e7eSLaurent Pinchart 
41f3af9572SLaurent Pinchart #endif /* __MEDIA_VSP1_H__ */
42