1*11696c5eSBiju Das /* SPDX-License-Identifier: GPL-2.0+ */
2*11696c5eSBiju Das /*
3*11696c5eSBiju Das  * R-Car Display Unit Mode Setting
4*11696c5eSBiju Das  *
5*11696c5eSBiju Das  * Copyright (C) 2013-2014 Renesas Electronics Corporation
6*11696c5eSBiju Das  *
7*11696c5eSBiju Das  * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
8*11696c5eSBiju Das  */
9*11696c5eSBiju Das 
10*11696c5eSBiju Das #ifndef __RCAR_DU_KMS_H__
11*11696c5eSBiju Das #define __RCAR_DU_KMS_H__
12*11696c5eSBiju Das 
13*11696c5eSBiju Das #include <linux/types.h>
14*11696c5eSBiju Das 
15*11696c5eSBiju Das struct dma_buf_attachment;
16*11696c5eSBiju Das struct drm_file;
17*11696c5eSBiju Das struct drm_device;
18*11696c5eSBiju Das struct drm_gem_object;
19*11696c5eSBiju Das struct drm_mode_create_dumb;
20*11696c5eSBiju Das struct rcar_du_device;
21*11696c5eSBiju Das struct sg_table;
22*11696c5eSBiju Das 
23*11696c5eSBiju Das struct rcar_du_format_info {
24*11696c5eSBiju Das 	u32 fourcc;
25*11696c5eSBiju Das 	u32 v4l2;
26*11696c5eSBiju Das 	unsigned int bpp;
27*11696c5eSBiju Das 	unsigned int planes;
28*11696c5eSBiju Das 	unsigned int hsub;
29*11696c5eSBiju Das 	unsigned int pnmr;
30*11696c5eSBiju Das 	unsigned int edf;
31*11696c5eSBiju Das };
32*11696c5eSBiju Das 
33*11696c5eSBiju Das const struct rcar_du_format_info *rcar_du_format_info(u32 fourcc);
34*11696c5eSBiju Das 
35*11696c5eSBiju Das int rcar_du_modeset_init(struct rcar_du_device *rcdu);
36*11696c5eSBiju Das 
37*11696c5eSBiju Das int rcar_du_dumb_create(struct drm_file *file, struct drm_device *dev,
38*11696c5eSBiju Das 			struct drm_mode_create_dumb *args);
39*11696c5eSBiju Das 
40*11696c5eSBiju Das struct drm_gem_object *rcar_du_gem_prime_import_sg_table(struct drm_device *dev,
41*11696c5eSBiju Das 				struct dma_buf_attachment *attach,
42*11696c5eSBiju Das 				struct sg_table *sgt);
43*11696c5eSBiju Das 
44*11696c5eSBiju Das #endif /* __RCAR_DU_KMS_H__ */
45