rk: gcc-wrapper.py ignore memcontrol.c:5355
[firefly-linux-kernel-4.4.55.git] / include / linux / display-sys.h
index 579af11cc3457a34da9bae4fe54c6d2f2c43ae96..5ce29973c5dd0249f4fcd2dc911c18eb120aee2e 100755 (executable)
@@ -4,12 +4,13 @@
 #include <linux/device.h>
 #include <linux/fb.h>
 #include <linux/list.h>
+#include <dt-bindings/display/rk_fb.h>
 
 struct rk_display_device;
 
 enum rk_display_priority {
        DISPLAY_PRIORITY_TV = 0,
-       DISPLAY_PRIORITY_YPbPr,
+       DISPLAY_PRIORITY_YPBPR,
        DISPLAY_PRIORITY_VGA,
        DISPLAY_PRIORITY_HDMI,
        DISPLAY_PRIORITY_LCD,
@@ -20,6 +21,21 @@ enum {
        DISPLAY_SCALE_Y
 };
 
+enum rk_display_property {
+       DISPLAY_MAIN = 0,
+       DISPLAY_AUX
+};
+
+
+/* HDMI mode list*/
+struct display_modelist {
+       struct list_head        list;
+       struct fb_videomode     mode;
+       unsigned int            vic;
+       unsigned int            format_3d;
+       unsigned int            detail_3d;
+};
+
 /* This structure defines all the properties of a Display. */
 struct rk_display_driver {
        void (*suspend)(struct rk_display_device *, pm_message_t state);
@@ -32,18 +48,31 @@ struct rk_display_ops {
        int (*setenable)(struct rk_display_device *, int enable);
        int (*getenable)(struct rk_display_device *);
        int (*getstatus)(struct rk_display_device *);
-       int (*getmodelist)(struct rk_display_device *, struct list_head **modelist);
-       int (*setmode)(struct rk_display_device *, struct fb_videomode *mode);
-       int (*getmode)(struct rk_display_device *, struct fb_videomode *mode);
+       int (*getmodelist)(struct rk_display_device *,
+                          struct list_head **modelist);
+       int (*setmode)(struct rk_display_device *,
+                      struct fb_videomode *mode);
+       int (*getmode)(struct rk_display_device *,
+                      struct fb_videomode *mode);
        int (*setscale)(struct rk_display_device *, int, int);
        int (*getscale)(struct rk_display_device *, int);
+       int (*get3dmode)(struct rk_display_device *);
+       int (*set3dmode)(struct rk_display_device *, int);
+       int (*getcolor)(struct rk_display_device *, char *);
+       int (*setcolor)(struct rk_display_device *, const char *, int);
+       int (*setdebug)(struct rk_display_device *, int);
+       int (*getdebug)(struct rk_display_device *, char *);
+       int (*getedidaudioinfo)(struct rk_display_device *,
+                               char *audioinfo, int len);
+       int (*getmonspecs)(struct rk_display_device *,
+                          struct fb_monspecs *monspecs);
 };
 
 struct rk_display_device {
-       struct module *owner;                   /* Owner module */
+       struct module *owner;           /* Owner module */
        struct rk_display_driver *driver;
-       struct device *parent;                  /* This is the parent */
-       struct device *dev;                     /* This is this display device */
+       struct device *parent;          /* This is the parent */
+       struct device *dev;             /* This is this display device */
        struct mutex lock;
        void *priv_data;
        char type[16];
@@ -51,6 +80,7 @@ struct rk_display_device {
        int idx;
        struct rk_display_ops *ops;
        int priority;
+       int property;
        struct list_head list;
 };
 
@@ -59,18 +89,15 @@ struct rk_display_devicelist {
        struct rk_display_device *dev;
 };
 
-extern struct rk_display_device *rk_display_device_register(struct rk_display_driver *driver,
-                                       struct device *dev, void *devdata);
-extern void rk_display_device_unregister(struct rk_display_device *dev);
-
-extern void rk_display_device_enable(struct rk_display_device *ddev);
-
-extern void rk_display_device_enable_other(struct rk_display_device *ddev);
-extern void rk_display_device_disable_other(struct rk_display_device *ddev);
-
-
-extern void rk_display_device_select(int priority);
-
-#define to_rk_display_device(obj) container_of(obj, struct rk_display_device, class_dev)
+struct rk_display_device
+       *rk_display_device_register(struct rk_display_driver *driver,
+                                   struct device *parent, void *devdata);
+void rk_display_device_unregister(struct rk_display_device *dev);
+void rk_display_device_enable(struct rk_display_device *ddev);
+void rk_display_device_enable_other(struct rk_display_device *ddev);
+void rk_display_device_disable_other(struct rk_display_device *ddev);
+void rk_display_device_select(int property, int priority);
 
+int display_add_videomode(const struct fb_videomode *mode,
+                         struct list_head *head);
 #endif